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

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

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

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

[[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人工知能がアパレル業界に侵入し、大量の「鉄丼」が解雇に直面!

ブログ    

推薦する

大量のニューロンを必要とせず、ニューロモルフィックロボットはスピードと正確さでテーブルサッカーをプレイします

人間は機械にゲームをさせることに魅了されているようだ。1770 年という早い時期に、発明家たちは「ト...

Meili United のビジネスアップグレードにおける機械学習の応用

一般的に、機械学習は電子商取引の分野では、推奨、検索、広告の 3 つの主要な用途があります。今回は、...

...

ユニサウンドがマルチモーダルAIチップ戦略を発表、同時に開発中の3つのチップを公開

昨年5月に業界初となるモノのインターネット(IoT)向けAIチップ「Swift」とそのシステムソリュ...

人工知能に関してどのような基礎教育が必要でしょうか?

人工知能の基礎教育を強化することは、将来の社会の発展に備えるための避けられない選択であり、要件です。...

JD Search EE リンクの進化

検索システムにはヘッド効果が存在する可能性が高く、高品質のミッドテールおよびロングテール製品が十分な...

人工知能は中国の製造業にどのような変化をもたらすのでしょうか?

[[260379]]データマップ:中国航空宇宙科学産業集団第三科学院第35研究所が開発に成功した新...

...

シティグループは5年以内に1万人の雇用を人工知能で置き換える計画

[[233047]]フィナンシャル・タイムズによると、シティグループは5年以内に投資銀行部門の技術・...

組織のセキュリティを保護するための暗号化トラフィック分析における機械学習の役割

脅威の攻撃者が戦術や手法を進化させ続けるにつれて(たとえば、暗号化されたトラフィック内に攻撃を隠すな...

...