ニューラルネットワークの学習に使われるパックプロパゲーション(誤差逆伝播)。このアルゴリズムを体感するために一つのニューロンについてExcelで試してみました。
「高校数学からはじめるディープラーニング」(ブルーバックス)では、ニューラルネットワークのしくみを詳細にわかりやすく説明されており、これを参考にしました。これにかぎらず最近ディープラーニングについて、実用以上にそのしくみに興味があり、いろいろと調べていると、これまでさまざまな方々が試行錯誤を重ねたノウハウがあることがわかります。
これらは他の分野でも有用で好奇心をかきたてられます。
X:入力(n個) Y:出力 W:重み T:ターゲット
(参考書籍の図3-18に相当)
上記図を表す数式。(参考書籍 3-13, 3-24)
(https://www.mathcha.io/editor 利用)
この二つをもとに、N=1のとき計算してみました。(ニューロンの個数sが1つ)
オレンジセル:入力10個分
グリーンセル以下:重み10個分
学習率0.1で重みを更新しながらターゲット0.5に近づいていく様子
ターゲットと学習率をいろいろと変更しながら収束の様子が確かめられます。
こうやって自分でやってみると、ディープラーニングの計算コストがいかに高いが実感できる気がします。