はじめに
ゼロつく第2章の「パーセプトロン」に続いて、いよいよ本格的なAIの入口である「第3章:ニューラルネットワーク」の復習を終えたので、学んだことをまとめてみました。
参考書籍
『ゼロから作るDeep Learning ーPythonで学ぶディープラーニングの理論と実装』
著者:斎藤 康毅
第3章でやったこと:パーセプトロンからネットワークへ
第2章で学んだ「パーセプトロン」は、シンプルな判断は得意ですが、人間が手動で重みを決めなくてはいけない、という限界がありました。第3章では、その限界を突破して、AIが「自分で判断する力」を持つための土台を学習しました。
- ニューラルネットワークの構造: 「入力層」「中間層(隠れ層)」「出力層」の3階層モデルの実装
- 活性化関数の切り替え: ステップ関数からシグモイド関数、そしてReLU関数への進化
- 行列の計算(Numpy): 多次元配列を使って、大量の計算を一瞬で終わらせられる方法
- 出力層の設計: 分類問題(Softmax関数)と回帰問題(恒等関数)の使い分け
深く理解したこと①:活性化関数の秘密
ここが一番の驚きでした。なぜステップ関数(0か1)じゃダメなのか。それは、「AIが少しずつ反省するためには、なだらかな坂道が必要だから」です。
- シグモイド関数: 0から1の間をなだらかに動く関数。これのおかげで、AIは「0.001だけ正解に近づいた」という微小な手応えを感じ取れるようになります。
- ReLU関数: 0以下は切り捨て、0より上はそのまま通す。シンプルだけど、深い層になっても学習が止まらない魔法の関数です。
深く理解したこと②:行列計算は「まとめて一気に!」
ニューラルネットワークは、裏側で膨大な掛け算と足し算をしています。
1つずつ計算していたら日が暮れてしまいますが、NumPyの多次元配列を使うことで、数千個の計算を「ひとかたまり」として一瞬で処理できる爽快感を知りました。
深く理解したこと③:出力層の「出口」の形
AIが何をしたいかによって、最後に見せる形を変える必要があることも学びました。
- 分類問題(数字の判別など:) Softmax関数を使います。出力の合計が1.0(100%)になるので、「これは80%の確率で『5』です!」と確率で答えを出してくれます。
- 回帰問題(数値の予測など): 恒等関数を使います。計算結果をそのまま出します。
おわりに
第3章を終えて、AIが「どうやって予測しているのか」の仕組みは分かりました。でも、今の段階では「誰かが用意してくれた正解の重み」を使っているだけです。
いよいよ第4章からは、AIが自分で間違いに気づき、学習するフェーズに入ります。
第3章の内容を土台に、さらに知識を深めていこうと思います。