2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「ゼロから作るDeep Learning」ニューラルネットワークの仕組み(第3章)

2
Posted at

はじめに

ゼロつく第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章の内容を土台に、さらに知識を深めていこうと思います。

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?