機械学習のための数学をどのように学ぶのでしょうか?

機械学習のための数学をどのように学ぶのでしょうか?

機械学習では数学が非常に重要です。アルゴリズムにおけるモデルコードの理解と、エンジニアリングにおけるシステムの構築の両方に不可欠です。学校を卒業した後、落ち着いて数学を勉強する機会を持つことは通常難しいので、読書会や読書クラブなどを通じて環境を作り、実践で必要となることが多い数学の知識を学ぶことに集中するのが最善です。

機械学習を始めるにはどの程度のレベルの数学が必要でしょうか? 特に学校で数学や統計を勉強していない人にとっては、それは明らかではありません。

[[238959]]

この記事の目的は、機械学習製品の構築や関連する学術研究を行うために必要な数学的背景と、工学や研究における数学の重要性を紹介することです。これらの推奨事項は、機械学習のエンジニア、研究者、教育者との会話、および機械学習の研究と業界で働いた私自身の個人的な経験に基づいています。

必要な数学的背景を構築するために、私はまず、誰もが学校外で数学教育を受けられるように、さまざまな思考パターンと戦略を提案します。次に、高校レベルの統計学や微積分学から確率的グラフィカルモデル (PGM) の最近の進歩まで、さまざまな種類の機械学習作業に必要な数学的背景を説明します。この記事を読んで、機械学習に取り組むために必要な数学教育を明確に理解していただければ幸いです。

数学不安について

エンジニアを含め、多くの人が数学を恐れています。まず、数学が得意であるという神話について触れておきたいと思います。

数学に精通している人は、一般的に数学に関連した実践的な経験が豊富です。したがって、数学を勉強するときに集中力を維持しやすくなります。内在的能力と比較して、生徒の思考パターンが、その人の数学学習能力を決定する鍵となります。

ただし、この状態を達成するには多くの時間と労力がかかりますが、退屈することはありません。以下は、必要な数学のレベルとその勉強方法を判断するのに役立ちます。

機械学習における数学

ソフトウェア エンジニアリング開発者として、私たちは通常、線形代数と行列微分積分の基礎知識に加え、確率論とプログラミングの基礎も持っています。したがって、それらに基づいて、さまざまな方向と分野に応じて知識構造を調整するだけで済みます。

では、学校の外で数学を学ぶにはどうすればいいのでしょうか? 数学を学ぶ最良の方法は、フルタイムの仕事として、つまり学生として学ぶことだと私は信じています。私たちは学校を卒業しているため、体系的な学習に取り組むことが難しく、また、仲間からの前向きなプレッシャーや数多くの学習リソースを得ることも困難です。ただし、キャンパス外での学習の場合は、学校のような学習環境を提供できる勉強会やセミナーを結成することをお勧めします。

研究室では、この課外学習は読書グループの形をとることがあります。教科書の理解しにくい部分について話し合ったり、それに対する自分の見解について話し合ったりすることができます。学習環境は長期的な数学学習を支える原動力であり、そのような環境を整え、工学や研究における数学の重要性を認識することが重要です。

数学とコード

機械学習のワークフローでは、数学とコードが密接に絡み合っています。コードは多くの場合、数学から直感的に構築でき、数学的な表記法や構文を共有することもあります。実際、NumPy などの最新のデータ サイエンス フレームワークを使用すると、数学演算を直感的なコードに変換するのが簡単になります。コードは学習を強化する方法として使用できますが、数学とコードはどちらも概念の正確な理解と記号表現に依存しています。たとえば、NumPy で損失関数や最適化アルゴリズムを手動で実装することは、それらの概念を理解するのに最適な方法です。

コードを通じて数学を学ぶ例として、ニューラル ネットワークのバックプロパゲーションと ReLU 活性化関数を実装する実用的な例を考えてみましょう。入門的な概念として、バックプロパゲーションは、微積分の連鎖律を利用して勾配を効率的に計算する手法です。ニューラル ネットワークで連鎖律を利用するには、上流導関数に ReLU 活性化関数の勾配を掛けます。

バックプロパゲーションの例を完了するために、まず ReLU 活性化関数を視覚化します。

ReLU の勾配または傾きを計算するには、独立変数がゼロ未満の場合は傾きが 0 になり、独立変数がゼロより大きい場合は傾きが常に 1 になる区分関数として視覚化できます。

NumPy は ReLU 関数の構築に役立ちます。最大関数を使用すると、関数内のすべてのパラメータの中で比較的大きな値のみを出力できます。以下に示すように、x は入力で、relu は出力です。

  1. relu = np.maximum (x, 0)

ReLU 活性化関数の勾配値は次のように表すことができます。ここで、grad は上流勾配を表します。

  1. 卒業[x <   0 ] = 0

上記のコードは、最初に手動で勾配を推測しなければ理解しにくいかもしれません。私たちのコードでは、条件 [x < 0] を満たすすべての要素の勾配 grad がゼロに設定されています。つまり、上流の勾配は x>0 の場合にのみ前方に伝播し続けることができます。数学的には、これは ReLU 活性化関数の勾配の区分線形表現に相当し、0 未満のすべての値を 0 に圧縮し、上流の勾配を乗算します。

上記のように、微積分についてある程度理解していれば、これら 2 行の基本コードを明確に理解できます。機械学習のコードの多くは数学的な演算を記述しているため、機械学習モデルのプロセスを理解するには数学的な原理を理解することが非常に重要です。

機械学習製品の構築における数学

この章を作成するにあたり、システムのデバッグに最も重要な数学について機械学習エンジニアと話をしました。以下の質問と回答は、数学的観点から見たエンジニアの見解です。

(1)高次元のユーザーデータを視覚化するためにどのような次元削減アルゴリズムを使用できますか?

方法: 主成分分析とt分布ランダム近傍埋め込み

(2)不正なユーザーデータを防ぐために、しきい値(例えば、信頼レベルとして0.9または0.8を選択する)をどのように調整すればよいでしょうか?

方法: 確率較正

(3)シリコンバレーやアラスカなど、世界の特定の地域に衛星データを偏らせる最善の方法は何ですか?

方法: 自由回答形式の質問、人口統計学的アプローチ

一般的に、統計学と線形代数は何らかの形でこれらの問題に適用できます。ただし、満足のいく回答を得るには、通常、ドメイン固有の方法が必要になります。そうだとしたら、学ぶべき数学をどのように選択すればよいのでしょうか?

システムを定義する

現在、データ分析でよく使われる scikit-learn や、ディープラーニングでよく使われる keras など、コードを書かずに関数を直接呼び出して機械学習システムを構築するのに役立つリソースは数多くあります。したがって、機械学習パイプラインの構築に関する次の質問に答えてみてください。

  • 機械学習システムの入力と出力とは何ですか?
  • システムに適合する適切なデータをどのように準備すればよいでしょうか?
  • モデルの一般化パフォーマンスを向上させるために、特徴やデータをどのように構築すればよいでしょうか?
  • タスクに適した目的関数を定義するにはどうすればよいでしょうか?

機械学習システムを定義するのは難しいかもしれませんが、構築するのはそれほど難しくないということを知ると驚かれるかもしれません。言い換えれば、機械学習製品の構築には多くのエンジニアリング作業が必要ですが、それほど深い数学の知識は必要ありません。

必要な数学を学ぶ

機械学習のワークフローに真っ先に飛び込むと、機械学習システムのデバッグで問題が発生する可能性があります。行き詰まったときに何を探すべきか知っていますか? 重みは妥当ですか? 一部の損失関数を使用してもモデルが収束しないのはなぜですか? モデルのパフォーマンスにとって意味のある指標は何ですか? このような場合、データ分布について仮定を立てたり、最適化方法を制限したり、別のアルゴリズムを使用したりすることが非常に役立ちます。

多くの場合、損失関数や評価メトリックの選択など、モデリングとデバッグのプロセスの背後には直感的な数学的原理があり、それがエンジニアリング上のより適切な意思決定に役立つことがあります。

したがって、実際のエンジニアリングで遭遇する数学をさらに学ぶことがより良いアプローチです。

機械学習研究における数学

ここでは、機械学習の研究に役立つ数学的な考え方について説明したいと思います。機械学習研究に対する皮肉な見方は、機械学習は優れたパフォーマンスを得るために多くのコンピューティング層を積み重ねるプラグアンドプレイ システムであるというものです。一部の研究者の間では、厳密な数学的導出を欠く経験的手法(たとえば、一部のディープラーニング手法)が汎用的な知能をもたらすことができるのかどうか、依然として疑問視されています。

研究コミュニティが機械学習の分野に対する基本的な理解を深めることなく、既存のシステムや仮定に基づいて構築しているのではないかと懸念されています。研究者は、新たな洞察や研究方法を生み出す新しい基礎研究モジュールを提供する必要があります。たとえば、ディープラーニングの先駆者である Geoff Hinton 氏は、画像分類で一般的に使用される CNN 基盤を再考した Capsule ネットワークを提案しました。

機械学習の次のステップに進むには、基本的な質問をする必要があります。これには、数学の優れた知識と、『Deep Learning』の著者であるマイケル・ニールセン氏が「とても楽しい探求」と表現するものが必要です。このプロセスには、新しい視点を求めて何千時間も考え、質問し、問題を覆すことが含まれる場合があります。 「遊び心のある探究」により、科学者は単純なアイデアや枠組みを超えた、深く洞察力のある質問をすることができます。

機械学習の研究では、すべてを学習することは不可能であることに注意してください。 「面白い探求」にきちんと取り組むためには、常に最新の研究を気にするのではなく、自分の興味に従う必要があります。

機械学習は、公平性、説明可能性、使いやすさなど、未解決の問題が多数存在する、非常に豊かな研究分野です。すべての分野と同様に、基本的な考え方は自明なプロセスではなく、高度な数学的フレームワークを使用して主要な問題の解決策をじっくり考えることが必要です。

機械学習研究の民主化

「数学を使う」ということが難しすぎるように聞こえないように願っています。なぜなら、数学を使うことの背後にある考え方は直感的に説明されるべきだからです。残念なことに、多くの機械学習論文には依然として複雑で一貫性のない用語が多く含まれており、重要な直感を理解するのは困難です。学生として、ブログや Twitter などを通じて、これらの密度の高い論文を直感的に理解しやすい知識の塊に変換することで、自分自身と分野に大きな貢献をすることができます。たとえば、機械学習の研究についてわかりやすく説明することに重点を置いている distill.pub を見てみましょう。言い換えれば、学習と探求の方法として技術的なアイデアを説明することは興味深く、役に立つのです。

要約する

この記事が機械学習のための数学スキルの向上に役立つことを願っています。

  • 問題によって必要な数学のレベルは異なるため、まずは目標を明確にすることをお勧めします。
  • 製品を構築したい場合は、最終目標に向かって進むことで学習意欲を高めてくれる仲間や研究グループを探してください。
  • 学術研究において、幅広い数学的基礎は、新たな基本的な構成要素の創出に役立ち、その結果、その分野を前進させるのに役立ちます。
  • 数学は、特に研究論文の形式では、しばしば威圧的なものになりがちですが、「数学に没頭すること」は学習プロセスの大きな部分を占めます。

参考リンク: https://blog.ycombinator.com/learning-math-for-machine-learning/

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  自然言語処理における大きな前進: Word2Vec モデルを適用して単語ベクトル表現を学習する

>>:  AI人工知能がアパレル業界に侵入し、大量の「鉄丼」が解雇に直面!

ブログ    
ブログ    

推薦する

人工知能のトップ10のアプリケーション

人工知能は徐々に私たちの生活に入り込み、さまざまな分野に応用され、多くの産業に莫大な経済的利益をもた...

人工知能の過去、現在、未来を包括的に解説

[[227618]]人工知能がどのレベルに到達したかという質問に答える前に、まず人工知能の概念が何で...

医療の発展は自動化に向かっており、手術ロボットは急速に発展している。

社会の継続的な発展に伴い、わが国の医療・ヘルスケア産業は徐々に変化を迎え、医療機器のインテリジェント...

さようなら鉄丼!もう一つの業界が混乱に陥っています!中国建設銀行が正式に発表

[[231600]]無人スーパー、無人運転…これらはもう珍しいことではない「無人銀行」って聞いたこと...

データセンターにおける AI の未来

人工知能 (AI) はもはや未来的な概念ではなく、スーパーマーケットの物流から医療研究まで、ビジネス...

...

第4のパラダイム: AIによる意思決定が主要なビジネスシナリオを強化し、企業の質的変化の実現を支援

2021年6月23日、「変革の新パラダイム」をテーマにした2021年第4回パラダイム会議および企業イ...

Baidu が DuerOS 3.0 会話型 AI システムをリリース: Bluetooth デバイスに会話機能を持たせる

昨年のAI開発者会議で、百度は「人工知能時代のAndroidシステム」であると主張する会話型人工知能...

空飛ぶ車の将来展望は?

空飛ぶ車というアイデアは何十年も私たちの想像力をかき立て、交通渋滞の上を飛ぶことができる未来のビジョ...

...

...

2D ガール ジェネレーター、駆動可能なニューラル ネットワーク... 2019 年の優れた機械学習プロジェクト 17 選

2019 年のベスト オープンソース プロジェクトを選択するために、Medium のネットユーザーが...

人工知能とメタバースの関係を探る

AI とメタバースのつながりは、新たなデジタルのフロンティアを開拓しています… Metaverse ...