2017年07月17日

ディープラーニングとニューラルネットワークとの関係

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

これから有名な機械学習でよく使われる(らしい)手書き認識データセットMNISTを実際に学習するプログラムを実装しようと思います。

私の場合、Pythonもインストールしないといけいないので作業は次のようになります。

(1)Pythonのインストール(ライブラリも)
(2)P112以降にあるニューラルネットワークの学習アルゴリズムを実装
(3)実際に動かして結果を得る

ちなみに、ディープラーニングとニューラルネットワークとの関係ですが、本には次のように書いてあります。

  ディープラーニングは、層を深くしたディープなニューラルネットワークです。

さて、ここでニューラルネットワークの学習の手順を確認しておきます。

(前提)ニューラルネットワークは、適応可能な重みとバイアスがあり、その重みとバイアスを訓練データに適応するように調整することを学習と呼ぶ。ニューラルネットワークの学習は次の4つの手順で行う。

〔ステップ1(ミニバッチ)〕
訓練データの中からランダムに一部のデータを選び出す。その選ばれたデータをミニバッチと言い、ここでは、そのミニバッチの損失関数の値を減らすことを目的とする。

〔ステップ2(勾配の算出)〕
ミニバッチの損失関数を減らすために、各重みパラメータの勾配を求める。勾配は、損失関数の値を最も減らす方向を示す。

〔ステップ3(パラメータの更新)〕
重みパラメータを勾配方向に最小量だけ更新する。

〔ステップ4(繰り返す)〕
ステップ1、ステップ2、ステップ3を繰り返す。


皆さん、ニューラルネットワークの学習と言ってもこれだけです。人間の脳も化学的にこれと同じことをやっているのでしょうね。

では、これから作業を始めます。早ければ明日にも結果をレポート出来ると思います。



posted by tsurutsuru at 12:35| Comment(0) | 日常茶飯事
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: