科学技術計算」タグアーカイブ

AI独学ロードマップの生存率は5% ― 「わかったつもり」を防ぎ完走するための生存戦略

チャットボットを使うだけのAIユーザー、APIを使ってブラックボックスだがAIエンジニアっぽい事を出来る状態から抜け出すための算数から大学数学をしっかり学び、AI関連論文に書かれているような内容を数学的に理解して、自分でAIサービスの実装を出来るようにするまでのロードマップを3本シリーズでまとめました。

このロードマップの概要は「数学ゼロから始めるAI理解の独学ロードマップ — 1年で理論も実装も攻略」で解説しました。
そのロードマップで失敗しないために何を理解すべきか、どう学習していくかの補足を「AIを「使うだけ」で終わらせないために ― 数学ゼロから始めるAI理解ロードマップの補足解説」で解説しました。
そして、数学学習はAIだけでなく様々なシミュレーション、構造解析などの科学技術計算でも役立つ事を「AI学習のその先へ ― 「科学技術計算」というもう一つの強力な武器」で解説しました。

AI学習を1年間完走出来るのは10%以下

この学習は数ヶ月では無く1年ほどの学習を必須にしています。
社会人が1日2時間ほど学習することを前提にしたロードマップで、継続はかなり厳しい物ですが、やる気がある人なら実現は可能なレベルの物です。

しかし、分数の割り算の意味をしっかり理解するとか、マイナス×マイナスがプラスになる事を理解しましょうというレベルから始まります。

一般の方の多くはそんなルールは知っているからと、ロードマップはすっ飛ばして、いきなり高校数学の復習から入ってしまうと思います。
また、1年間の学習をしっかりやろうとしたとしてもかなりの割合が脱落して、1年間を完走出来るのは1割いればいい方。そして、追加で科学技術計算なども含めた学習を追加でさらに1年出来るのはそのうちの半分以下になる。
つまり、1000人が同じ状態からスタートしても、AIによるシミュレーションでも、2年間を完走できるのは1000人中50人ほどという結果が出ました。

好奇心旺盛な方の多くは高校数学でわかるAI・機械学習みたいな内容を読んで、高校数学を軽く読み流して、大学レベルの数学の中身はあまり理解しないで、AIの挙動をわかった気で終わらせてしまっていると思います。

そうならないために、しっかりと数学を理解して、AI関連の論文の内容を理解出来るようにするのがこの一連の投稿の目的です。

AI学習を完走するための基本的なアドバイス

まず重要になるのが、大学レベルの数学を理解出来る数学の基礎を作る事です。

そのためには高校レベルの数学が必要になりますが、その高校レベルの数学も、基礎が必要になります。
問題は高校数学は数学の概念をあまり理解していなくても、解き方さえわかれば、合格点はとれてしまい、自分は数学がわかった気になってしまうことです。

「理解」と「前進」のバランス ― わからない時は一旦進む

例えば小学校の算数で習う分数の割り算は、逆数をかけているということを知らなくても高校数学は乗り切れます。しかし、それからしばらくして大学で線形代数を学習すると逆行列が出てきます。ここで逆数(逆行列)をかけることで「割り算」と同じ操作を行うという概念がでてきますが、小学校レベルの数学の概念をしっかり理解していないと、このような部分で壁にぶち当たってしまう可能性があります。

逆数自体は、小学校での分数の割り算で出てきますが、この概念は中学校での方程式、高校での関数など様々なところで出てきています。

そのために、小学校や中学校で学習するレベルの内容はただ計算ができるだけではなく、各段階で、なぜこうなるのかの疑問を持つことが重要です。

Gemini作 数学のなぜとそれが大学数学にどうつながるか

とはいえ、それを学習した時点では、そういったこと自体の疑問を感じない場合もありますし、理屈を説明されてもなんだかスッキリしないこともあると思います。
そこを今すぐに完璧にしようとせずに、今の理解はそこまでにとどめて、次に進むことも重要です。先に進んでから戻ってみると、それまでの学習の積み重ねで案外すぐに理解出来てしまうこともあります。

ポイント よくわからなかったらとりあえず次に進む

なぜ今、高校数学なのか? ― 「AIのための」復習法

中学校レベルまでの数学をやり直したら、高校レベルにすすみます。高校レベルではAI関連で必要ない部分もありますが、どのような内容なのかをさらっとすべて見ておくくらいはしておいた方がいいでしょう。

数学Iなら、二次関数グラフ、最大・最小、三角関数、平方完成などを中心に学習します。高校数学を学習している中で、なぜやり直しをしなければいけないのか、このくらいの理解で十分ではという疑問を持った場合、とりあえず大学数学の線形代数などにすすんでみてください。

大学での線形代数、微積分、行列が何の疑問も無くスラスラ学習できるようなら高校数学の復習は必要ありません。多くの方は高校レベルの基礎が欠けているとか、前述した小学校レベルの算数の概念をしっかり理解していないとかの理由で、大学レベルの数学の壁に当たります。

AIなどは関係なく、高校までの数学を公式の丸暗記と計算力だけで乗り切った方も、大学での抽象化された数学のイメージがつかめずに脱落してしまう場合もあるようです。
それまで数学は計算ルールを覚えて、計算が出来ればいいとだけ考えていた場合は、数学はその定義を理解する物だと切り替えて、学習の方向性を修正しましょう。

各段階での「現在地」確認 ― 基礎の穴を見逃さない

高校レベルの学習をおろそかにすると大学レベルの数学で必ず壁にぶちあたります

この学習ロードマップでは中学、高校レベルの復習をしっかり行います。特に高校レベルの復習は3ヶ月ほどかけて復習する前提になっています。
多くの方は学習量を最小限にするために、高校レベルの学習は最小限にしようとします。

その結果、大学レベルの数学がちんぷんかんぷんな状態に陥ります。
やさしくわかるAI・機械学習などの本では詳しく説明しており、何となくわかった感を得られるので、自分はわかっているような気がしますが、実際の理解はかなり浅い状態です。

後述しますが、大学レベルの数学で疑問が出たら、高校レベルなどに戻って基本的な部分の確認が必要になります。
基礎が出来ていない場合、自分はどこを理解していないのか、どこまで戻ればいいのか、そもそもどの基礎に戻るべきなのかの判断が出来ません。

ポイント 中学・高校レベルの数学は一通りしっかりとおさらいしよう

この段階で全体の4割が学習を続けられずに脱落すると推定されます。

「スパイラル学習」のすすめ ― 基礎と応用を行き来する

大学レベルの数学で、ここまで残った4割の中から3割は脱落すると推定されます。つまり残っているのは1割です。その原因は公式の丸暗記などでは対応出来ない、抽象化された大学の数学です。

方向としてはとりあえず何となく理解して、基本的な問題は解けるようになる、その定義は何かを理解しようとするの繰り返ししていけば理解が深まります。
このような学習をスパイラル学習(螺旋型学習)といいます。

例えばAIで損失関数、誤差を最小にするための微分の勾配降下法(Gradient Descent)があります。

勾配を計算して損失関数の谷底へ降りて最適解にいくイメージをもった状態で、とりあえず数式を計算してみます。
この計算を手計算する必要はありません。Pythonを電卓代わりに使って入力する数値を変えるとどうなるかを実際に見ていきます。
数式にマイナスがありますが、このあたりでなぜマイナスかと気づくことも重要です。
何度か計算してイメージが固まってきたら、また定義に戻ってみます。

ここで初めより理解が深まっている状態なのかを確認します。
よくわからない場合は、高校数学に戻ります。二次関数のグラフを書き、微分の接線の傾きを求めてみます。
ここでもPythonを使って、数字を変えながらどうなっていくかを理解します。
特にプラスやマイナスでどうなるかを確認するのが重要です。

このように、大学レベルの数学理解に疑問が出たら、その基礎となる学問で基礎的な計算を実際にやってどうなるかのイメージをつかむことが重要です。

この計算では、なぜその式では谷底に向かっていくのか誤差が最小になるのかが実際に理解できるようになります。
このように徐々に理解が深まります。

ポイント 大学レベルの数学の教科書で悩み続けるのは止めて基礎に戻る

AIの実践まで来たらあとは継続学習

Deep Learningの実践まで来たら脱落者はかなり減ります。

ただし、大学数学をある程度理解している事が前提となります。

関連書籍で出てくる数式の意味がわかり、なぜこの計算が必要なのかを理解して、すすめていけない場合は、必ず数学の学習に戻りましょう。

その上でこのレベルで脱落してしまうのは、実践環境の構築、関連情報を調べた際の、日本語での情報不足になっていきます。英語圏では無料で利用出来るコンテンツも多いですが、日本語の場合は一部に優良な無料コンテンツもありますが、有料の書籍などが必要になることが多いです。

英語での情報検索、有料書籍の購入、有料サービスとはいえ月に数千円レベルのコストをしっかりとかけて学習を継続しましょう。

この後はモチベーションが続く限り学習を継続出来ます。
ここまで来ると、自分に必要なら続けるし、必要なく今学習した内容を実践でより深めていくような形になります。

冒頭のAIのシミュレーションでは1日2時間の学習を2年間学習を継続して、AIと科学技術計算の基礎を学べる人は5%と推定しています。

今後の学習では最新の論文は英語になるので、新しい情報をすぐにキャッチアップしたい場合は、英語の少なくとも読解や、最新情報の収集も重要です。

ポイント モチベーションが続く限り学習を継続、英語学習も重要です

AI学習のその先へ ― 「科学技術計算」というもう一つの強力な武器

AIをただ使うだけではなく、中学レベルから数学を学習し、AI関連の基本的な概念などを理解し、ある程度開発もある程度できる状態にする1年間の学習ロードマップです。
1日2時間程度の学習を前提にした、簡単ではないが現実的にできる範囲の物です。

数学ゼロから始めるAI理解の独学ロードマップ — 1年で理論も実装も攻略

さらに補足として、数学をどう学べばいいか、1年学習した後にさらに半年ほど学習して、自分専用AIアプリケーションを作成の入門レベルまでが可能になる方法を紹介しています。

AIを「使うだけ」で終わらせないために ― 数学ゼロから始めるAI理解ロードマップの補足解説

これらはあくまでもAIに関係する数学の内容を学習する流れです。

同じようなコンピュータを使う計算と言えば、AI以前から科学技術計算などがあります。
AI用に学ぶのではなく、科学技術計算用に学ぶ場合を説明します。

AI用に学習をしない場合、AI学習をした後に、科学技術計算をする場合のロードマップを紹介します。大きく変わるのは、大学レベルの数学学習となり、高校数学を学び、Pythonを電卓として使用できるようにするまでは基本的に同じです。

AI用の数学ではなく科学技術計算用の数学を学習する

AI用の数学では、線形代数、微積分の後に統計・確率を学習します。科学技術計算向けに特化する場合、微積分の後に、微分方程式、数値解析を学習し、物理シミュレーションを実際にどうやっているのかの実践を行います。

ここでは各種シミュレーション、科学技術計算、数値解析、科学演算、科学計算などを総称して「科学技術計算」としています。

ここでもディープラーニングの書籍ではなく「Pythonによる数値計算入門」のような科学技術計算に特化した書籍を活用します。

この後の学習は自分が何をやりたいのかによって変わっていきます。何か明確な目標がある場合は各分野1ヶ月から2ヶ月ほどかけてAIの学習と同様に、自分が行いたい分野の学習をしていきます。

AI関連学習をした後に、科学技術計算用の数学追加学習する

1年間AI関連を学習した後、もしくは1年半PyTorchを使えるようになった後に、科学技術計算向けの学習をします。
もちろんまだ学習が終わったばかりなので、経験も少なくすべてを何でもできる状態ではありませんが、基礎知識はあるので専門書を読んで謎の呪文が並んでいる状態ではありません。

前者なら合計1年半の学習で、AI関連の意味がわかる状態になって、科学技術計算ができるようになる。後者なら、AI関連のアプリを意味がわかって開発できる状態に加えて科学技術計算もできるようになります。

AI関連の学習を1年である程度の目処をつける場合は、PyTorchは使わずSciPyを使えるようにします。AI関連の学習を1年半行う場合、PyTorchに加えてSciPyも使えるようにします。
SciPyでは積分・微分方程式に加え、「最適化(Optimization)」などのモジュールがあり、簡単にややこしい計算の答えが出てきます。 この「最適化」は、AI学習でいう「誤差を最小にする(勾配降下法)」と本質は同じです。科学技術計算でも「実験データに最も合うパラメータを見つける」「最も強度の高い形状を見つける」といった場面で多用するため、AIの知識がそのまま武器になります。

この科学技術計算で重要なのは、その現象をどう数式でモデル化するという点です。
さらに、モデル化した物が妥当かを評価できるようになる必要があり、数値安定性、誤差評価、離散化の妥当性に関しての理解が必要です。SciPyにデータを入れれば求めている答えが出てくるほど簡単ではありません。

簡単ではありませんが、しっかりと学習していけば必ずできるようになります。そのための高校レベルまでの数学の知識などに問題があると思ったら、いつでも戻って学習しなおしましょう。

このあたりをどう学習していくかは本人が最終的に何を優先したいかによって変わっていきます。1年でAI学習を終わらせる場合は、画像認識はやったことがあるが、自然言語処理やPyTorchは使ったことがないような状態です。

自分が最も優先したい物を先に行って、さらに他の分野も興味があればその後に学習するのでも問題ありません。

自社のチャットボットを作るようなAI関連よりも、自社の業務で必要な物理シミュレーションができる事を今すぐやりたい企業も多いです。AIを使った画像処理やチャットボットよりも、物理シミュレーションができる人材の方が価値が高い場合も多いため、今流行っているからと興味本位でAIの学習を優先する必要は無いです。

1年半AI学習をした後のおすすめルートは2つあります。これらのルートはそれぞれ半年ほどの学習になります。(1日2時間学習の場合)

Pythonで物理シミュレーションを学ぶ

流体力学と、構造力学を追加で学びます。製造業などでは必須の科学技術計算となります。

流体力学はAIの畳み込み演算が微分計算と同じような物な事に気づけます。構造力学は、強度計算などで使いますが、連立方程式を解くことになります。

そして、単純にデータをすべて入れて演算すればいいわけでもなく、正しい式に単純にデータを入れたとしても、数値計算では破綻することがあります。例えば、物理シミュレーションで時間の刻み幅を間違えるだけでデタラメな結果になってしまいます。
そのため誤差や安定性の概念を理解して、求めるデータが出力されるようにすることも必須です。

Pythonで信号・制御を学ぶ

信号処理、制御工学を学びます。ロボティクスや自動運転、IoTなどでも活用出来ます。

信号処理ではフーリエ変換を学習し、波形解析、ノイズ除去などで、AIのデータの前処理などでも活用できます。

制御工学では古典制御・現代制御などを学習し、ドローンの姿勢制御、ロボットアームの動きに活用できます。状態方程式を行列で行います。

よくわからないが将来に備えて科学技術計算用に何かを学習したい場合

実はこの将来に備えるという内容は非常に重要です。
科学技術計算で使う様々な知識は数十年変化していません。一方でAI、ディープラーニング、機械学習は1年後にどうなっているかわかりません。基本的な数学部分ではかわりませんが、1年後はともかく5年後にディープラーニングが広く使われているかも不明です。

そんな将来も確実に利用できる科学技術計算では、まずは、微分方程式を学習しましょう。
時間の流れ毎の変化を使って演算するシミュレーションの肝となる部分です。
AI関連では、これを応用したPhysics-Informed Neural Networks (PINNs)(物理法則を組み込んだニューラルネットワーク)などの新しい技術が注目されています。PINNsはデータが足りない場合でも、物理法則(微分方程式)をAIに学習の制約として与えることで、物理的に正しい予測を可能にする技術です。

次にフーリエ解析を学びます。
SciPyを使う場合、波の重ね合わせとしての理解が必要になります。フーリエ変換の意味がわかるようになれば、音声、株価、振動などのあらゆるデータがサイン波の足し算に分解できることがわかります。前述したようにノイズ除去などのAI関連でも役に立ちます。

これらの学習で重要なのは、微分方程式の複雑な解き方を覚えるのではなく、式を見たら、変化の勢いがイメージできる状態にすることです。フーリエ解析も複雑な積分計算を覚えるのではなく、波形が成分にわけられるというようなイメージやグラフの見方が重要になります。

日本語の書籍で何が参考になるかは難しいですが、例えば既に紹介している「Pythonによる数値計算入門」や「やさしく学べる ラプラス変換・フーリエ解析 増補版」などがあります。

AIや科学技術計算の数学を理解し、AIサービス、データ解析ができる状態とは

現在、多くの企業ではDXとして様々な業務改革を行う必要があります。
そのためには既存のデータを分析したり、そもそも必要なデータを集めたりする必要があります。

具体的に何をすればいいかよくわかっていない企業が多いのが現状です。大手企業なら、そのような人材もいますが、中小企業などにはいない状態です。
何かやろうとした場合、ITベンダーに依頼しても、それが求めている形になるかはわかりません。

このようなことができる人材は、2026年現在で多くて数万人程度しかいないと推定されます。日本のITエンジニアと呼ばれる人口は100万人程度なので、全体からしても希少な人材となります。

既に何年かの社会人経験がある場合、その経験と組み合わせた人材は更に貴重になります。

AIも科学技術計算も、現実をどう数式化するかという問題です。
関連する数学を学び、現在使われている様々な問題をどう解決していくかです。合計2年弱の期間学習することで、その問題を適切な数式でコンピュータを使った演算が出来るようになっていることが最終形としての理想です。