【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の使い方について、基礎文法から応用例まで入門者向けに解説します。

コメント