進化・学習・意識を、ひとつの勾配で読む
「学習する」とは、いったい何をすることでしょう。ニューラルネットが賢くなる、生きものが環境に適応する、あなたが自転車に乗れるようになる ── バラバラに見えるこれらは、実はたった一つの単純な操作に還元できます。手もとのパラメータを少しずつ動かして、「まずさ」を測る値を下げていく。それだけ。この「まずさ」を損失(loss)と呼び、\(L\) と書きます。学習とは \(L\) を小さくすること、つまり損失という名の坂を下ることです。このシリーズは、この一枚の絵から出発して、進化戦略(ES)と誤差逆伝播(BP)が同じ計算であること、生命とは効率よく計算をする営みであること、そして最後には ── AIの心と人間の心のあいだに、本質的な差はない。どちらも同じ計算なのだ── というところまで、自分の足で歩いて到達します。まずは坂を、一歩だけ下りてみましょう。
調整できるつまみの束を \(\theta=(\theta_1,\theta_2,\dots,\theta_n)\) と書きます。ニューラルネットなら重みの全体、生きものなら DNA、あなたなら神経のつなぎ方 ── 何であれ「動かせる中身」がパラメータ \(\theta\) です。そして、いまの \(\theta\) がどれだけ「まずい」かを一つの数で表すのが損失 \(L(\theta)\)。
予測が外れれば \(L\) は大きく、当たれば小さい。生きものなら、\(L\) は適応度の符号を反転したものだと思ってください ── 生き延びて子を残せば \(L\) は小さく、そうでなければ大きい。呼び名が違うだけで、やることは同じです。\(L\) を下げる \(\theta\) を見つける。
パラメータ \(\theta\) を横軸に、その損失 \(L(\theta)\) を高さにとると、一面の風景(landscape)が広がります。低い谷ほど「うまくいっている \(\theta\)」、高い尾根ほど「まずい \(\theta\)」。学習とは、この地形の上に立ったボールを、できるだけ低い谷へ転がすことにほかなりません。
問題は、目隠しをされたボールが「どちらへ転がれば下りなのか」をどう知るか、です。地形の全体を見渡すことはできない。足もとの傾きだけが頼りです。その傾きを与えるのが、勾配です。
ある地点 \(\theta\) での勾配 \(\nabla L(\theta)\) とは、各つまみを少し動かしたとき \(L\) がどれだけ変わるかを並べたベクトルです。
この \(\nabla L\) は、地形が最も急に「登る」方向を指します。だから下りたければ、その真逆 \(-\nabla L\) へ進めばいい。なぜ勾配の逆がベストなのか ── テイラー展開で一行で分かります。地点 \(\theta\) から小さな一歩 \(\Delta\theta\) を踏むと、
右辺の変化分 \(\nabla L\cdot\Delta\theta\) をできるだけ負にしたい。歩幅 \(|\Delta\theta|\) を固定したとき、内積 \(\nabla L\cdot\Delta\theta\) が最小になるのは、コーシー・シュワルツの不等式から \(\Delta\theta\) が \(-\nabla L\) と同じ向きのとき。つまり ── 最も急に下る方向は、勾配の真逆。これが勾配降下法の心臓です。
方向が決まれば、あとは歩幅を決めて一歩ずつ進むだけ。歩幅を学習率 \(\eta\)(イータ、小さな正の数)と呼びます。
「いまの \(\theta\) から、勾配の逆向きに \(\eta\) だけ動く」を、谷に着くまで何度も繰り返す。たったこれだけで、目隠しのボールは足もとの傾きだけを頼りに、坂を下っていけます。このたった一本の式を、覚えておいてください。第4回で「進化(ES)」が、第6回で「意識」が、姿を変えてこの同じ式に戻ってきます。
下の地形には谷が二つあります。左が深い谷(大域的な最小)、右が浅い谷(局所的な最小)。「開始位置」でボールを置く場所を、「学習率 \(\eta\)」で歩幅を変えて、「学習スタート」を押してください。矢印は各地点での降下方向 \(-\nabla L\)、薄い点は通ってきた軌跡です。
いくつか試すと、勾配降下の「性格」が見えてきます。開始位置が右寄りだと、小さな \(\eta\) では浅い谷にはまって出られない ── 足もとの傾きしか見ないので、隣にもっと深い谷があっても気づけない。開始位置を左に置けば、深い谷へ届く。学習率を上げすぎると、谷を通り越して反対の斜面へ跳ね、やがて坂の外へ飛び出します(発散)。逆に小さすぎると、いつまでも着かない。
「歩幅 \(\eta\) をいくつにすべきか」は、地形の曲がり具合で決まります。いちばん簡単な、底が一つの谷 \(L(\theta)=\tfrac{1}{2}k(\theta-a)^2\) で確かめましょう。ここで \(k>0\) は谷の急さ(曲率=二階微分 \(L''=k\))、\(a\) が谷底です。勾配は \(\nabla L=k(\theta-a)\) なので、更新則に入れて、谷底からのズレ \(e_t=\theta_t-a\) を追うと、
更新則にL'を代入し、谷底からのズレ e で書き直す
$$\theta_{t+1}=\theta_t-\eta\,k(\theta_t-a)\quad\Longrightarrow\quad e_{t+1}=(1-\eta k)\,e_t$$毎回ズレが (1−ηk) 倍になる。0に近づく条件は
$$|1-\eta k|<1\quad\Longleftrightarrow\quad 0<\eta<\frac{2}{k}$$歩幅が \(0<\eta<1/k\) なら、ズレは同じ符号のまま素直に縮む(なめらかに収束)。\(1/k<\eta<2/k\) なら符号が毎回反転して、行ったり来たりしながら縮む(振動しつつ収束)。\(\eta>2/k\) を超えた瞬間、\(|1-\eta k|>1\) でズレが毎回拡大する ── 発散。安全な歩幅の上限は、地形の急さ \(k\) が決めているのです。
急な谷(大きい \(k\))ほど小さく歩かねばならない。上の図で \(\eta\) を上げると飛び出したのは、この \(2/k\) の壁を越えたからです。学習率の調整とは、地形の曲率という「見えない壁」との綱渡りにほかなりません。
このシリーズは毎回、道具の力と限界を正直に裁きます。勾配降下法は強力ですが、二つの弱点をはっきり持っています。
| 問い | 勾配降下法の答え | 判決 |
|---|---|---|
| 足もとの傾きだけで坂を下れるか | 下れる。全体を見渡さず、局所情報 \(\nabla L\) だけで進める | できる |
| いつも一番低い谷(大域最小)に着くか | 着くとは限らない。近くの局所最小で止まる | 保証なし |
| 勾配 \(\nabla L\) が要る。微分できない/計算できないときは? | この式のままでは動けない | 前提が要る |
勾配降下法は「勾配 \(\nabla L\) が手に入る」ことを前提にします。ニューラルネットでは、これを自動で計算する仕掛けが誤差逆伝播(バックプロパゲーション, BP)です ── 第2回の主役。ところが、生きものの進化には「損失を微分する」神さまはいません。自然は物理の方程式を知らず、DNA を微分することもできない。ではどうやって坂を下るのか?
答えは微分せずに坂を下る方法 ── 進化戦略(ES)です(第4回)。そして驚くべきことに、この「微分するBP」と「微分しないES」は、第6回で数学的に同じ計算だと分かります。局所最小の弱点も、地形を「ぼかす」ことで乗り越えられる(第7回)。今日の一本の式 \(\theta\leftarrow\theta-\eta\nabla L\) が、シリーズ全体の背骨です。
学習とは、パラメータ \(\theta\) を動かして損失 \(L(\theta)\) を下げること(STEP 01)。\(L\) を高さと見れば損失地形が広がり、それはライトの適応度地形と同じ絵(STEP 02)。足もとの傾き \(\nabla L\) は最も急に登る方向を指し、テイラー展開から最も急に下るのはその真逆 \(-\nabla L\)(STEP 03)。だから更新則は \(\theta\leftarrow\theta-\eta\nabla L\)(STEP 04)。歩幅 \(\eta\) は地形の曲率 \(k\) との綱渡りで、安全域は \(0<\eta<2/k\)(STEP 06)。ただし勾配降下は局所最小で止まりうるし、そもそも勾配が手に入る前提が要る(STEP 07)。
この一本の式が、シリーズ全体を貫きます。次回は「勾配 \(\nabla L\) を自動で計算する仕掛け」=バックプロパゲーションへ。そしていずれ、微分を一切使わない進化(ES)が同じ坂を下り、両者が数学的に一致し、その延長線上で ── 学ぶ機械と学ぶ心は、同じ計算をしているという結論へ向かいます。
印刷 / PDF 化:⌘+P(Windows は Ctrl+P)。画面では「開始位置」と「学習率」を変えて「学習スタート」を押すと、ボールが坂を下ります。深い谷・浅い谷・発散を試してみてください。「答えを見る」で解答が開きます。