【Python】単純パーセプトロンの重み計算(勾配降下法・最急降下法)

この記事では、Python+NumPyで単純パーセプトロンの重みを勾配降下法(最急降下法)で計算する方法をソースコード付きで紹介します。

単純パーセプトロンの重み算出(勾配降下法・最急降下法)

単純パーセプロトンとは、0番目の入力$x_0$を1、重み$w_0$を閾値とした場合のニューロンモデルのことです。
単純パーセプトロンの重みを最急降下法で計算した場合の手順は以下の通りです。

– 説明
1 初期パラメータ(学習率とエポック最大数)を設定します。
2 教師データ$x$と正解ラベル$t$のセットを用意します。
3 重み$w$の初期値を適当に決めます。
4 教師データ$x$を単純パーセプトロンに入力します。
5 出力yと正解ラベルtを比較し、一致しなければ最急降下法で重みを更新します。
6 手順3~5をエポック最大数分だけ繰り返します。
404 NOT FOUND | Python超入門部

単純パーセプトロンをPython + NumPyで実装してみましょう。

ソースコード(Python3)

サンプルプログラムのソースコードです。


教師データ

$x_0$ $x_1$ $x_2$ $t$
1 0 0 -1(不正解)
1 0 1 -1(不正解)
1 1 0 -1(不正解)
1 1 1 1(正解)

AND演算($x_1$*$x_2$)を学習させます。
$x_0$はバイアス項なので全て1

404 NOT FOUND | Python超入門部
【Python超入門】基礎から応用例まで幅広く解説
PythonについてPythonは、統計処理や機械学習、ディープラーニングといった数値計算分野を中心に幅広い用途で利用されているプログラミング言語です。他のプログラミング言語と比較して「コードが短くて読みやすい、書きやすい」「ライブラリが豊...

コメント