AI実装検定A級合格体験記

もうすでに2ヶ月以上前のことではあるが、AI実装検定A級の合格をしたのでここにその過程をまとめる。

合格に必要な知識
- 従来型の機械学習(ML)と深層学習(DL)の違い
- AIの理論(順伝播、逆伝播、誤差逆伝播法、勾配降下法などの理解)
- 平均二乗誤差(MSE)、平均絶対誤差(MAE)の計算方法(試験では数学問題として出た)
- Sigmoid関数、ReLU関数などの活性化関数の用途と理由
- 過学習と勾配消失が起こる原因
- 数学の知識(行列、微分、極限、確率、ノルム、連鎖律)
- Pythonの構文+ライブラリのメソッド(特にpandas と numpy と matplotlib)
まずすることは、深層学習はどういった流れで学習と推論が実現できるのか?という問題。
順伝播を行うにしても、入力層・中間層・出力層を経て計算が行われている。
その計算結果と正解ラベルとの誤差を計算し、誤差を元に微分で傾きを求める。傾きからどちらの方向に重みをずらせば良いかを勾配降下法で調整をする。
この深層学習の流れの理解がまずは必要だと思われる。逆にこの流れを不透明なままに、Sigmoid関数とはなにか、Softmax関数はどういうときに使うのか、などと言ったことを勉強してもピンとこないだろう。
この理論を理解した上で、数学の知識を部品として理解する。
最後にPythonでその実装を行う。
試験の内容
実際に試験を受けてみた所感をまとめる。
- 同じパターンの問題が複数問ある
- AIの理論を踏まえ、数学の知識を使い、Pythonで実装できればOK
- Pythonのライブラリのメソッドは一通り覚えておいた方が良い
- 試験時間は短めなので、わからなければ次の問題へ飛ばす
同じパターンの問題が複数問ある
まず所感として、「この試験問題、AIで作ったんじゃないか?」と思うぐらい単調だった。
例えば行列計算。要素の値を書き換えただけの同じ問題が3〜5問ぐらいあった。
極限と微分を使った問題も、確率も同様に、数値を書き換えただけの同じ趣旨の問題が複数問ある。
そのため、対策に抜け漏れがあるとあっという間に数問分の減点になる。
数学の問題は特に対策を厳重にしておきたい。アダマール積と通常の行列積の違い、L1ノルムとL2ノルムの違いなどがはっきりとわからなければ点数は取れない。
各分野ごとにまんべんなく対策をして、抜け漏れをなく対策をするのが重要だ。
AIの理論を踏まえ、数学の知識を使い、Pythonで実装できればOK
前項「合格に必要な知識」で挙げた通り、AIの理論を理解して、数学の知識を使い、Pythonで実装できれば良い。
例えば、以下のPythonコードの結果を答えよ(Pythonで行列を作り、自作のReLU関数を呼び出している) という問題が普通に出てくる。
ここで、PythonでReLU関数、Sigmoid関数を実装した経験がなければおそらく詰む。
単純にPythonの構文を覚えただけ、AIの理論を覚えただけ、数学の公式を覚えただけでは、この試験では簡単に点数が取れないようになっているようだ。
Pythonのライブラリのメソッドは一通り覚えておいた方が良い
特にmatplotlib とpandas とnumpy は頻出。
numpyは前項の行列に対しての関数にはよく使われるので、扱い方だけでも覚えておいたほうがよい。
試験時間は短めなので、わからなければ次の問題へ飛ばす
試験時間は60分。問題数は60問あるため、1問1分以内でほぼ即答できるレベルで解かないと時間切れになる。
普段の勉強では30秒で答えが出せるようにしておきたい。
合格して得られたもの
- オライリー社のゼロから作るディープラーニングの本の内容が面白いほどわかる!
- AIの理論は計算必須、計算式使わずに表現した本の価値はないのでは?と思う
- これで本当にAIが実装できるか?と言うと微妙。あくまでも理論ははっきりとわかる程度
オライリー社のゼロから作るディープラーニングの本の内容が面白いほどわかる!
この試験を経て、当たり前のように行列計算や微分のイメージがついた。
そのおかげか、これまで避けていたオライリー社のゼロから作るディープラーニング
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 単行本(ソフトカバー) – 2016/9/24
これが面白いほどよくわかるようになった。
AI実装検定の先ほどの勉強方法により、DLがどのような手順で学習と推論を行っているのかがわかるからである。
むしろ、こういったAIの理論系の本はこれらの前提知識がなければ、理解が難しいのかもしれないなと思った。
事前に理論を理解しておけば、どんなに新しいものが出てきたとしてもすぐに対応できる。
AIの理論は計算必須、計算式使わずに表現した本の価値はないのでは?と思う
だからこそ、計算式を使わずにAIの説明をしている本が、急に役に立たなく思えてきた。
付け焼き刃の手法でしのいでいるだけで、応用が効かなさそうに見える。
なぜSoftmax関数を使うのか、なぜ計算コストが重いのか、どうやったら精度を上げることができるのか。
その点の理解がずさんだと、計算式を使わない本の上ではAIは作れるのかもしれないが、実践では全く役に立たない。
教科書を舐めるぐらいだったら誰にでもできる。教科書の範囲を超えて、応用できなければAIを使った商売は難しい。
これで本当にAIが実装できるか?と言うと微妙。あくまでも理論ははっきりとわかる程度
とはいえ、この試験に受かったからと言って、AIが作れるか?と言うと正直微妙なところである。
というのも、これらの理論はAIを作る上で持っていて当たり前だからである。
今のAI開発は既存のモデルをDLしてファインチューニングを行って実装をする。その過程で行列計算や微分などを使う機会はかなり限定されている。
とはいえ、AI開発を行う上で問題が起こったとき(例: 損失が下がっている状況でも過学習を疑う、その原因を突き止める)際にはこの理論は武器として利用はできるだろう。
むしろ理論すっ飛ばして、教科書に書かれてあるとおりのものを作ったとしても、使い物にはならない。