わかりやすく ニューロン どうやって 学ぶ
いくつものスイッチが、一つの電球につながっているとしましょう。電球に強く影響するスイッチもあれば、弱く影響するスイッチもあります。影響を全部足して十分大きければ電球がつき、足りなければ消えたままです。人工ニューロンは、まさにこのように動きます。入力ごとに強さをかけて足し、その合計が基準に届くとオンになります。
入力に重みをかけて足す
前のレッスンでは、つまみを少しずつ回して損失を減らす方法を見ました。今度は、そのつまみがどこについているかを見る番です。人工ニューロンは、いくつもの入力を受け取って一つの値を作る小さな計算の単位で、脳の神経細胞から考え方を借りてきました。
ニューロンは、入力をそのまま足すわけではありません。入力ごとに強さを決めておき、その強さをかけてから足します。この強さを重みと呼びます。大事な入力には大きな重みを、あまり大事でない入力には小さな重みをあたえます。
入力を押して、オンとオフを切りかえてみましょう。オンの入力だけに重みがかけられ、合計に足されます。
入力をオンにするたびに、その入力の重みのぶんだけ合計が増えました。重みの大きい入力は合計を大きく動かし、小さい入力は少しだけ動かします。合計は入力そのものではなく、入力と重みをいっしょに見た結果です。
ところで、入力に何かの数をかけて足すこの形、どこかで見た気がしませんか。
重みは回帰の傾き
線形回帰で、直線をax+bと書いたことを思い出しましょう。入力xに傾きaをかけ、bを足しました。傾きが大きいほど、同じ入力でも結果が大きく変わりました。
ニューロンの重みが、まさにこの傾きです。入力に重みをかけることは傾きをかけることと同じなので、重みを大きくするとその入力が結果に強く影響し、小さくすると弱くなります。回帰のbにあたる値もニューロンにはあって、これをバイアスと呼びます。
重みを大きくしたり小さくしたりしてみましょう。傾きのように入力にかけられ、出力がそれにつれて変わります。
重みを動かすと、出力がついてきました。傾きを変えると直線がかたむくように、重みを変えるとニューロンの反応が変わります。だから、ニューロンによく当てさせるには、結局、重みをうまく決めることがかなめです。
では、合計を出したあと、ニューロンは何をするのでしょうか。合計をそのまま出すのではなく、もう一つ決定をします。
しきい値をこえるとオンになる
ニューロンは合計を出したあと、基準になる値と比べます。この基準の値を、しきい値と呼びます。合計がしきい値に届くかこえるとニューロンはオンになり、このとき出す答えは1です。合計がしきい値に届かなければニューロンはオフのままで、答えは0です。
電球は十分明るくなってはじめてつくように、ニューロンも合計が十分大きくてはじめてオンになります。しきい値と比べることは、合計にバイアスを足して、その結果が負かどうかを見ることに言いかえることもできます。
合計を上げたり下げたりしてみましょう。しきい値に届くとニューロンはオンになり(1)、届かなければオフです(0)。
合計がしきい値にふれたとたん、ニューロンがぱっとオンになりました。オンかオフ、二つのうち一つで答えが決まります。このようにニューロンは、入力を受けてオンにするかオフにするかを決めます。
でも、最初からうまく当てられるわけではありません。重みがいいかげんだと、オンにすべきときにオフになり、オフにすべきときにオンになります。まちがいです。まちがえたとき、ニューロンはどうやってよくなるのでしょうか。
まちがえたら重みを少し直す
前に見た勾配降下法を思い出しましょう。まちがいの度合いを見て、方向を決めて少しずつ下りていく方法でした。ニューロンも同じ考えで学びます。オンになるべきなのにオフだったら、合計が大きくなるように重みを少し大きくし、オフになるべきなのにオンだったら、重みを少し小さくします。
一度に大きく変えず、一歩ずつだけ動かします。これを何度もくり返すと、だんだんよく当たるようになります。オンとオフを切りかえるニューロン一つでこのように学ぶしくみを、パーセプトロンと呼びます。
まちがった答えを見て、少し調整するボタンを押してみましょう。重みが正解の方へ一歩ずつ大きくなり、やがて当たります。
直すほど、まちがいは減りました。方向さえ合っていれば、一歩ずつでも、やがて正解に近づきます。人が重みを一つずつ決めてあげるのではなく、ニューロンがまちがいを見て、自分で重みを整えていくのです。
ただし、実際のニューラルネットワークは、オンとオフのようにぱっと切りかわるかわりに、なめらかに変わる関数を使います。ぱっと切りかわると、傾きがほとんどどこでも平らになって、勾配降下法で直す方向を見つけにくいからです。こうした関数を、活性化関数といいます。
まとめ
まとめるとこうです。ニューロンは、入力ごとに重みをかけて足します。これは回帰のax+bと同じ形で、傾きaがすなわち重みです。足した合計がしきい値に届けばオンになり(1)、届かなければオフです(0)。
まちがえたら勾配降下法のように重みを少しずつ直し、これをくり返すとだんだんよく当たるようになります。かけて足し、基準でオンにし、まちがえたら直す。これがニューロンです。
要点を順に押して振り返りましょう。(入力×重みの合計 → 重みは傾き → しきい値をこえるとオン → まちがえたら調整)
これで、脳の神経細胞をまねた小さな計算の単位が分かりました。かけて足し、オンとオフを切りかえ、まちがえたら直すこの単純な単位が、学習の出発点です。
でも、ニューロン一つでは、境界を直線でしか引けません。そこでニューロンを何層にもつないで、ずっと複雑なことを学ばせます。その姿を、次のレッスン「ニューラルネットワーク」で見ていきます。