見出し画像

【ゆる理解】ディープラーニングにおける学習とは - 理系と文系の狭間の人向け

ニューラルネットワークの教師あり学習

「ニューラルネットワークの教師あり学習」とは、訓練データ(教師データとも呼ばれる)を利用し、「損失関数の値を小さくするために、重みパラメータの更新すること」です。

本稿の目的 - ゆる理解

本稿では、「ニューラルネットワークの教師あり学習」を、概念的に理解していただくことが目的です。(具体的な細かいところは無視しています)
そのため、「損失関数の値を小さくするために、重みパラメータの更新すること」をひたすら言い換えているだけですが、ふんわりでも理解したい方は読み進めていただければと思います。

ニューラルネットワークの構造は見たことがある前提で進めます。
------------------
※見たことがない人は

------------------

教師あり学習のステップ

教師あり学習で、コンピュータが行なっている処理は以下です。
①:データをたくさんニューラルネットワークに入力して、それぞれの出力と実際の正解と比較する
②:①を訓練データの数だけ繰り返す
③:全体としての出力と正解の差(損失)が、少なくなるようにニューラルネットワークの各ニューロンの係数(重みパラメータ)を更新する
④:①〜③を何度も繰り返す

ニューラルネットワークの学習の目的をそれっぽく言うと、「損失関数の値を最も小さくする最適な重みパラメータを見つけること」です。

損失関数とは

損失関数とは、「AIが出した答え(出力)」と「正解」のずれ(=損失)を表現する関数です。③の「全体としての出力と正解の差」の計算方法と捉えれば良いです。
損失関数(Loss関数)にはいくつか種類がありますが、「2乗和誤差(E)」がイメージしやすいと思います。

画像1

yk が出力、tk が正解の値。回帰問題でよく使用されます。
誤差がプラスの時もマイナスの時もあるため、「ひとまず2乗して絶対値っぽくした後に、足し算してしまって、便宜上1/2にしておく」的なやつです。

この損失関数の値(正解とのずれ)を、最小にするために学習(重みパラメータの更新)を行います。

ちょくちょくでてくる重みパラメータって何?

ここまでで、学習における
①訓練データをニューラルネットワークに通す
②回答が出力される
③出力と正解とのずれ(損失)を数値化する
というステップは理解できたかと思います。

次は、損失を小さくしたいので、
④損失を小さくするために、ニューラルネットワークの各ニューロンの重みパラメータをいじる
というステップになります。

重みパラメータの更新

ニューラルネットワークの構造を見るとわかりますが、各ニューロンには重みパラメータが設定されていて、出力は重みパラメータに依存します。つまり、重みパラメータで出力(yk)をコントロールできます。
ということは、重みパラメータによって、損失が決まる。

それっぽく言うと、損失関数は重みパラメータ(w1,w2,…)を変数とした関数としても表現できる。(理屈上)

ということは!
損失関数をwで微分したときに、各重みパラメータが最終的な誤差(損失)にどれほど影響を与えているかわかるということ!!

学習の目的は、損失関数の値を最小にすることなので、
その微分の結果から損失関数の値を小さくさせる方向がわかります。

その方向へ、パラメータを更新することで、損失関数の値は小さくなります。
この小さくさせるパラメータの更新を、損失関数の値が尤もな値になるまで、何度も繰り返します。
この更新を繰り返し、損失関数の値が最も小さくなった時、学習完了となります。

学習の体感ができるサイト


※似た名前で、「ハイパーパラメータ」というものもありますが、これは別物です。よく混同して勘違いしてしまうポイントです。ハイパーパラメータは「ニューラルネットワークを形作るもの」みたいなイメージで良いかと。

※そんな微分するだけで、うまくいくの?という疑問を抱いた方。正解です!実務レベルの出力をさせようとすると、普通うまくいきません。そのため、いろんなニューラルネットワークの形や、入力すべきデータについての研究や開発に、たくさんの研究者やエンジニアが励んでいます。

上記が学習の概要です。
割愛してますが正確な理解には、データは訓練用と確認用にわけるとか、バイアスの概念もあったり、重みパラメータを更新するための微分手法や、初期値の設定、学習率などなど、も理解する必要があります。

が、

インプットデータをニューラルネットワークに通して、その結果と正解データの誤差をひたすら最小にしていく演算プロセスが学習
という認識がざっくり理解にはちょうどいいと思います。※個人的にですが。

この記事が気に入ったらサポートをしてみませんか?