[機械学習]単純パーセプトロンとは?

広告

前回までで、入力2つ、出力1つとしてモデルを構築しました。今回は一歩前に進んで、入力がn個のときのモデルを考えてみましょう。図示すると下のようになります。

という形になります。このモデルを単純パーセプトロンと言います。そうすると、yが発火するかどうかというのは次の式で表せることになります。

閾値θは左辺にあった方が見やすいかと思って移行しました。

この左辺の積和の形が結構書くのが面倒だし、みにくいので入力と重みをそれぞれ一つの列ベクトルにしてみましょう。ちょうど内積で表せるようになりますので。教科書と同じように、ベクトルであることを上に矢印を使うか、太字を使って表現します。すなわち

とします。さらに-θ=bとして、わかりやすくしましょう。このbはバイアスと呼ばれます。こうすると、先ほどの式が次のように表されます。

ややこしいモデルもあっさりして見えますね。さらに、上の二つの式をまとめましょう。0以上なら1を返して、0未満なら0を返す関数があります。ステップ関数と呼ばれます。一応図示してみるとこんな感じ。

このステップ関数fを使うと、次の一つの式で出力が表現できることになります。

この式は大変重要ですので覚えておいてください。このモデルを使って誤り訂正学習をするとき、その更新式はベクトルのまま表すと、

となります。b=-θですから、更新式の符号も逆転しています。これが単純パーセプトロンになります。

今回はステップ関数を使用しましたが、今後様々な関数を代わりに使うことになります。ステップ関数やら他の関数やらはニューロンの出力に用いられる関数のことを活性化関数と言います。

実際に演習として、入力がいっぱいあるAND回路を学習してみてもいいのですが、ここまでくると、非常に時間がかかるし、ややこしいのでやめておきます。実際に試してみたいという人はプログラミングで実装するのが良いかと思います。そのコードも余力があればこのサイトにアップしていきたいと思ってます。

次は出力が0または1の二つではなく、0から1の間で自由に値を取れるようなモデルを考えていきます。

次回は6. ロジスティック回帰の基本

関連記事