見出し画像

チマチマ修正は微分に通ず

前回では、神経電網(ニューラル・ネットワーク)がどうやって答えを出すか示した。答えを間違えた場合は、正しくなるよう修正する。これを学習と言う。カタカナ英語ではディープラーニング、技術的にはバックワード・プロパゲーション(BP)、前回の答えを出すのはフォアワード・プロパゲーション(FP)と書く人が多い。片仮名意味不明。日本語にすると、繰り返し学習または深層学習、前進(処理)、後進(処理)または逆伝播でんぱ、等となり漢字の意味は明瞭。

愚痴はさて置いて、神経電網の学習の説明に入ろう。以下は前回で使った神経電網と表計算の図である。

図の左下の神経電網の流れ(上矢印)の様に、学習は出た結果すなわち答えを正解と比較して、重みに修正を加えて行く事である。重みが変わると細胞の数値が変わる。例えば細胞値が2として、重み値が0.2だったとする。2 x 0.2 = 0.4 となる。これを二値化(0.5以下なら0、0.5より大きいなら1)すると「0」である。もし1になる事を期待するなら、重みを0.3とすると、2 x 0.3 = 0.6 は「1」 となる。

実際の計算は、正解(教師信号とも言う)と答えの差を取り、ゴニョゴニョっと計算をやって重みをどれくらい差し引きするかを決める。これを最下層から上層へ向けて全ての重み値について行う。答えから逆にさかのぼるので逆伝播でんぱや後進処理の名がある。

図の表計算で説明すると、第三層細胞の値(答え)を正解の「1」から引いて、誤差値を算出してある。この誤差を元にゴニョゴニョっと計算して行くのであるが、ここを数学で完全に理解するには、かなり微分の鬼になる必要がある。読者の多くは優しい方と思われるので割愛するが、第ニ節の「?」を理解するには何の不都合もない。後述するがAIのきもは、「?」の左側でも微分でもない。「?」そのものである。

図の表計算に戻ると、ゴニョゴニョ計算は、第三層の誤差から出発して重みを増減して、その差分から第二層の重みを増減させる。こうして下層から上層に変化を伝播させて行く。全ての重みの修正が終わったら、解答を出す前進処理を行う。解答が出て正解と成らなかったら、再び正解との誤差を取り後進処理を行い、再度前進処理を行う。これが、神経電網の学習と言われる工程である。学習は何万回も行われ、時には何十、何百万回も行うこともある。しかし回数が多ければ正解になると言う訳でもない。

ところで、ゴニョゴニョ計算には以下の様な媒介変数パラメータが付く。

重み差分 =
Etaイータ x (ゴニョ) + Alphaアルファ x (ゴニョ)

この媒介変数、EtaとAlphaには、それぞれ1.2や0.85等の数値が割り当てられている。図の左下にある曲線の様な最小値(解答)を期待するためである。では此の値、例えば上述の1.2や0.85はどうやって決めたのかと言うと、人が適当にやってみて、上手く解がでる数値を使ったのである。

AIと言うとまるで数学的に理論整然と、何もかも決まるように思うかもしれないが、実際の電脳応用無形具アプリケーションでは、人が結果が上手く行くよう微調整しているのである。つまり、正解が既知の多くの問題を解ける様に人が微調整して、正解が未知の問題を解かせて見るのである。可なり人間臭いし、解答は鵜呑みにできない。

長々と書いたが第ニ節の「?」の左側での数値の動きは理解できたと思う。次回は、いよいよ本丸の「?」の説明を試みる。

以上

いいなと思ったら応援しよう!