【ゆるく学ぼう】【G検定】機械学習ってペーパーテストみたい
前回記事では
人間の脳神経回路を再現すれば学習できるんじゃない?
とりあえず形になったぞ!ってとこまで。
でも実際は問題だらけでした〜
1.パーセプトロンのおさらい
まずは、単純パーセプトロンの図を補足付きでおさらい。
ニューラルネットワークはパーセプトロンから構成されるよ。
「バイアス」「重み」って何?
パーセプトロンは「ペーパーテスト」をイメージすると分かりやすいかも。
入力…問題
バイアス…サービス配点(※)
重み…配点
出力…解答
※先生がテスト配点ミスって全員に与えられるアレね
このペーパーテストを繰り返して、機械は学習していくってわけ。
2.何が問題だったか
大きく二つ。
①勾配消失問題
②過学習
実はこの2つ、抜本的な解決策はまだない!
抑制方法しかない。
①勾配消失問題
学習が止まっちゃう!って問題。
そもそも、学習が止まるとは?
「学習」とはテストと復習の繰り返し。(人間みたいだね)
テストデータで機械に計算させて、実際の値と予測の「誤差」を修正する事によって機会に学習させてた。
つまり機械にテスト問題を解かせて、何故間違ったか復習して、再テストしてた。
ただ、隠れ層(計算)をどんどん深くするほど複雑で、人間はどこ間違ってたかを再計算するの大変。全部復習させるのハンパねえ〜ってわけ。
もっと数学の力でしゃしゃっとやりたい!って声を形にしたのが、誤差逆伝播法(バックプロパゲーション)って計算方法。
昔(1986年代)はとってたのね。
これは1つの問題毎に逐次、誤差修正するって方法。
問題ごとに答え合わせと復習するイメージ。
ここで登場!勾配消失問題!
そしたらどうだ、問題発生。
学習が進まない場合が出てきた。
どんな場合かは今回は端折るね。
(想定どおりに学習できなかったんだなって理解すればいいよ)
どんなにテスト問題を解かせても賢くならない。復習が身に付かない!
ばかやん!私みたい!
原因は、計算に使用する関数(シグモイド関数)ってのがわかった。
これはランプ関数(ReLU関数など)を代用すると、この問題は起きづらくなった。※つまりまだこの問題は解決してない。
②過学習
まあ、なんとか①勾配消失問題は落ち着いた。
でも今度はテスト問題に慣れすぎちゃうった問題が発生した。
英単語のテスト問題はバッチリだけど、
それ以外の英単語は苦手って感じ。
これも解決策はまだ無くて、抑制方法ならある。
①テストデータを増やす(たくさん問題を解かせて未知の問題を減らす)
②適当なタイミングで学習やめちゃう(60点くらいでやめちゃう)
③複雑な計算を簡単にしてみる。
④正則化する(問題配点を小さくして、トータル失点を小さくする)
などなど結構愚直な事をしてる。
この記事が気に入ったらサポートをしてみませんか?