AIをしっかり理解して利用するための現実的な独習ロードマップ「数学ゼロから始めるAI理解の独学ロードマップ — 1年で理論も実装も攻略」の補足です。
特に数学の学習方法を間違えて、計算が出来ればいいだけ、難しい計算を手計算で、できるようにすることを目標にしないでください。
このあたりを間違えると、大学レベルの数学でつまずきますし、その後の実践学習で使うAI関連の式の理解にまで影響します。
多くの場合、途中で嫌にやって止めるか、ロードマップを自己流に解釈してわかったつもりで進み、高校レベルの数学で脱落し、ほとんどの方は大学レベルの数学で脱落します。
何を学習すればいいか、学習した後の実践までを補足しています。
AIは「使うだけ」と「理解して使う」で何が違うのか
AI関連はチャットボットなどを使うだけなら何の知識もなく可能です。
それ以上理解して使うには、
APIなどを使って中身はブラックボックスだが一応理解したことにした自称AIエンジニアとする
APIが具体的に何をしているかを関連論文の意味わかる状態まで理解したうえで、本当のAIエンジニアになって他にはないオリジナルのAIサービスを開発できる
などの、使えるレベルには大きな差があります。
車で言えば、乗客として乗るだけが、運転ができるレベル、部品の意味がわかって修理や改造ができるレベルなどでしょうか。
その上のレベルにAlexNetやTransformerなどを生み出す人達がいます。
このレベルに到達するには更なる学習、研究などが必要になります。自動車の組立などをする人が直接必要のない、燃焼力学、空気力学などを学習するような努力が必要になります。
そのための数学学習を1年間行う基本ルートを「数学ゼロから始めるAI理解の独学ロードマップ — 1年で理論も実装も攻略」として説明しています。
ここでのゴールはAI関連を理解するために最低限必要な数学知識をつけることです。
最終的に「ゼロから作るDeep Learning」に出てくる数式の意味がすべてわかる状態にします。このようなAI関連書籍で出てくる数式などを読んで理解したつもりになるのではなく、その計算がなんで必要なのか、その計算の意味を自分で理解できるレベルにするという意味です。
APIを使うだけのAIエンジニアの限界
例えば、生成するデータの創造性を高めるTransformerのTemperatureという数字があります。
この数字をいじれば出力結果が大きく変わることだけを知っているのがAPIを利用しているだけの自称AIエンジニアです。
その数字がなんのための物か、数式のどの部分に影響しているのかを理解して数字を調整できる、必要なら他の項目を調整できるのが本当のAIエンジニアと言えるでしょう。
この本当のAIエンジニアを目指すのが一連の学習ルートになります。
そのために具体的に何を使ってどう学習するのか、ロードマップでは1年でAI関連の数学理解をする基本を解説しました。その中では学習の流れを解説したので、学習するさいに課題となるポイントを解説します。
さらにその後の半年程度の追加学習で、より理解を深め、その先に行くための土俵作りも説明してます。
本当のAIエンジニアに必要な数学的理解とは
学習で重要な事は基礎をしっかり固めることです。
本当のAIエンジニアに必要な数学的基礎の理解とは、テストで良い点を取るために公式を使えることではなく、その数式が何を表しているかを自分の言葉で説明できるレベルの理解です。
初めの1ヶ月は中学数学までの復習をします。その後、3ヶ月ほどかけて高校数学の必要な範囲を学習します。
この基礎的な数学の学習で重要な事は、基礎的な計算ができるようになることではないです。
数学ゼロからAI理解を目指す学習ロードマップの考え方
例えば、計算方法だけを覚えて、計算ドリルを高速に正確に解けるようになる事がゴールではありません。
分数の割り算で分子と分母をひっくり返すことを知っているのですらすら解けるのではなく、なぜひっくり返すのか、逆数をかけていることなどをしっかり理解するということが最も重要です。
多くの方はこのあたりを勘違いして、自分は基礎的な計算ができるからと、数学の基本的な概念を理解せずにその先の分野にすすんでしまいます。大学数学では公式の丸暗記では乗り切れなくなり、大きな壁にぶつかります。
とはいえ、各分野で完全な理解をしないと先絶対すすんではいけない物ではありません。
本当にそれをやった場合、多くの方が前半で脱落してしまいます。よくわからないなら、とりあえず自分が理解した計算ルールだけでも先に進んでみましょう。
その状態で後の項目でまた壁にぶち当たってしまったら、ここまで戻ってきます。
それまでの学習成果から、以前の悩みがすぐに解消される事もあります。
どうしてもわからないことは、わからないという事を覚えておけば十分です。
なぜ中学・高校数学の理解がAIで重要なのか
例えば、計算ドリルなどで高速に計算できること、大学入学試験の問題をできるようになることを、ここでの目標にする事は間違っています。
このような学習自体に損はないですが、基礎的な計算を手計算で満足してできるようになれば十分です。計算はコンピュータにやらせればいいので、複雑な計算を手計算で高速に解ける必要は無いです。
他にも連立一次方程式はなにをやっているのか、因数分解とは何か、ベクトルとは何かのようなことをしっかり理解します。
連立一次方程式は複数の未知数の解を求める手法、因数分解は式を「積」の形にまとめる、ベクトルは向きと大きさを持つ矢印などのことを理解します。
もしも、学習内容が計算は出来るが、なんだか腑に落ちない場合、書籍などを読んでもパッとしない場合、これから自分が理解しようとしているチャットAIに聞いてみましょう。
「マイナス×マイナスがプラスになるルールは覚えましたが感覚的に理解出来ません」
大学数学(線形代数・微積分・確率)がAIでどう使われるか
その上で将来AI関連の学習を始めると、
連立一次方程式 – 予測誤差をゼロにするための最適な重み計算に使う
因数分解 – 膨大なデータを扱う際の計算を簡略化し「行列分解」として、ユーザーの好みと商品の特徴を抜き出すレコメンド機能に活用
ベクトル – 言葉や画像を数値の並びに変換し、データの類似度を判定
のような事に数学が使われていることが理解できるようになります。
中学生、高校生くらいが、将来なんの役に立つかわからないと思って学習させられている数学が、AIでは様々な分野で使われていることがこれだけでもわかると思います。
分数の割り算自体は、大学数学の線形代数で逆行列という概念が出てきた際に役立ちます。(2011年以前に高校入学していた場合は数学Cで学習します。なお数学Cはすべての高校生が学んでいません)
分数と同じように基礎的なことは他にもあります。例えば、マイナス同士のかけ算でプラスになる理屈のような初期段階で出てくるが、覚えただけで終わっている内容をしっかり理解している事も重要です。
そのために、難しい数式を解く解法の計算が主な受験参考書よりも、数学がわからない人向けにやさしく解説している講義系参考書などを使って、なぜその計算になるのかなどの理解を中心に学習することがおすすめです。
例えば受験向け参考書で学習する場合、チャート式なら白チャート、問題精講なら入門問題精講、他にも基本的な数学をしっかり解説した参考書や読み物などを利用しましょう。
中学レベルまでを1ヶ月、高校レベルを3ヶ月で合計4ヶ月を目安にします。
Pythonを電卓として使う準備
高校までの学習が終わるタイミングで、Pythonの学習をします。
ここでのPythonの学習はプログラミング初心者が、数式を電卓代わりにPythonで計算でできるようにすることが目的です。
NumPyというのを使い、一般的な数式をここで計算できる状態にします。
すでにPythonをある程度利用出来ている方は、数式をNumPyで処理できるようにすることを早めのタイミングで始めるのがいいでしょう。
PC上でPythonを使うには、Python環境のインストールや設定などの構築が一般的に必要ですが、Google Colabを使えば環境構築なしでブラウザ上で簡単に使えます。
NumPyなどに関するオンライン上の学習コンテンツを使うのが便利です。
Matplotlibでグラフを書けるようにすると、簡単にグラフが書けるようになるので、こちらも視覚的に数式を確認できるようになるので便利です。
もしも、この時点でPythonプログラミング自体をある程度理解したい場合でも、あまり深入りする必要は無いです。
基本的には計算ができるようになればいいです。それもすべて覚えるのではなく、初めは何かを見ながらその数式をNumPy用にかけるようになればいいだけです。
プログラミングがさっぱりわからなくて不安な場合は、何となくこうすればプログラミングができるレベルまで軽く学習しましょう。
最終的には「Pythonで動かして学ぶ!あたらしい機械学習の教科書」などを使ってAI関連の内容を学習することになるので、この時点でこのような書籍の基本的な部分で学習してもいいかもしれまません。
この時点で半年ほどかけて、AI関連で使う高校数学はある程度理解し、それらの数式をPythonで記述できるレベルになっている状態にします。
数学などが既にできる人は数ヶ月単位で期間が短くなります。
NumPyでの演算練習と高校レベルまでの数学復習を1ヶ月ほどで終わらせます。ここまでを5ヶ月程度を目安にします。
Pythonを電卓として使えるようにするのは便利です。しかしすべてこのように学習することが正解とは言えません。
例えば、NumPyで連立一次方程式の解法のガウスの消去法を自分でなんとかしようとするとかなり沼にはまってしまうでしょう。
しばらくやってうまく出来ない場合は、何が起きているのか理解した上で、早々にあきらめてより便利な方法に移行することも重要です。
大学レベルの数学を学習する
大学レベルの数学学習は、線形代数、微分積分、確率統計になりますが、AI関係で必要な内容だけでも各分野1ヶ月くらいかかります。
各分野1ヶ月で合計3ヶ月、復習1ヶ月として、最短でも4ヶ月ほど。実質は5ヶ月くらいかかるかもしれません。
大学レベルの学習を一通り終わらせるまで10ヶ月程度、復習を含めて、余裕を持って11ヶ月で終わらせる事を目安にします。
このレベルの学習は日本語の書籍などでも可能ですが、英語がわかれば欧米の大学が無料で提供している各種コンテンツを活用する事も有効です。
学習が終わったら「Pythonで動かして学ぶ!あたらしい機械学習の教科書」を使って、機械学習関連の計算ができるかを確認しましょう。
そして、「ゼロから作るDeep Learning」を実際に読み進めていきます。
ここで、今までの学習とAI関連がつながっているかを確認します。もしもさっぱりわからない場合は、勇気を持って基本的な部分から数学を理解しているかを復習しましょう。
しっかり学習出来ていれば、それぞれの内容と今までの数学の学習の内容がつながっていきます。
この一連の数学の学習を終わらせた後の実践練習の目安が約1ヶ月です。
小学生レベルの復習から初めて、ここまでで1年を目安にします。
1年でAI数学を理解する学習ステップ
ここまで1年間の学習でやっとAI関連数学の学習の基礎が出来た段階になりました。
しっかり学習が出来ていれば、関連書式が記号ばかりで意味不明だった物が、それぞれ意味がわかる状態になっています。
しかし、本格的に使えるするための学習はまだ続きます。
ゼロから作るDeep Learningの続編「ゼロから作るDeep Learning ❷ ―自然言語処理編」などで学習を続けます。
この追加学習を2ヶ月として、学習を始めて1年2ヶ月後には、ChatGPTやGeminiなどのチャットボットが何をやっているのかが理解できるようになります。
数学を理解した先にできるようになること
このあたりまで来たら、数学自体の学習はおおむね出来ているはずなので、電卓扱いのNumPyではなく、より実践的でよく使われているPyTorchを使えるようしていきます。
PyTorchを使った機械学習について学び、自分でファインチューニングして、自分専用AIアプリを作れるようになることを目標とします。
初めからPyTorchを使った方が便利ですが、便利すぎて学習になりません。初期段階は電卓扱いのNumPyで学習しましょう。
AI関連でPyTorchを使う学習には「最短コースでわかる PyTorch &深層学習プログラミング」などが役立ちます。
ここまでの学習で数学と、その数学を使ってAI関連コードの理解がかなり深まった状態です。
この状態になれば、Hugging Faceにある様々なAIコードを確認できるようになります。
既存のコードの意味がわかる、実際にPythonやPyTorchを使ってコードを書けるようになった段階で、ようやくAI関連の実践入れます。
Transformerを使うための知識はあるので、これを使って自分のデータでファインチューニングしてオリジナルAIサービスを作れるようになります。
とはいえ、いきなり何か作れと言われても難しいので「機械学習エンジニアのためのTransformers ―最先端の自然言語処理ライブラリによるモデル開発」で、Hugging Faceを使った開発を学習します。
そして「大規模言語モデル入門」でチャットボットをどうやって作って行くのかを学習します。
ここまでで1日2時間程度の学習で1年半程度の期間を目安にします。
半年程度で数学の基本及び数式をコンピュータを使って計算させる方法を学びます。
その後の半年程度で、AI関連の数学の内容を理解できるようにし、機械学習関連でどう使われているかまで学習します。
この1年ほど学習した段階で、AIの裏側で何の計算が行われているかがわかるようになります。
さらに半年程学んで、実際にAI関連アプリを作れるようになるまでの実践練習の期間です。
ここまできたら、何も知らずにAPIを使っているだけの自称AIエンジニアとの差がかなりついている状態になります。しかし、Transformerなどを生み出した本物のAIエンジニア・研究者との差はまだまだあります。
つまり、1年程度でAIで使われる数学関連の知識を身につけます。この時点で学習を一段落させてもいいですが、その後、半年かけてAI関連の開発の実践演習に入り、より理解を深めるか、さらにその先へと行くかという流れです。
この、1年半というのはかなりの期間だと思いますが、分数の割り算の意味がよくわかっていなかった人がこの短期間でAIアプリを開発できるようになるなら、すごい事ではと思います。
この内容は主に数学から離れていて、プログラミングの知識もない方向けにも、無理なく続けられる社会人向けの内容です。
仮に高校3年生くらいがこの内容を元に学習し、大学に入ってより深くAI関連の研究をしていけば、数年後には次のTransformerを生み出すようなトップクラスのAI技術者になっている可能性もあります。
ピンバック: 数学ゼロから始めるAI理解の独学ロードマップ — 1年で理論も実装も攻略 | Masaru Kamikura Blog
ピンバック: AI学習のその先へ ― 「科学技術計算」というもう一つの強力な武器 | Masaru Kamikura Blog
ピンバック: AI独学ロードマップの生存率は5% ― 「わかったつもり」を防ぎ完走するための生存戦略 | Masaru Kamikura Blog