|
前提知識
・パーセプトロン
・勾配法(最急降下法)
・ロジスティック回帰(線形分離)
・シグモイド関数
・python関数
こちらでロジスティック回帰による線形分離の方法を説明しましたが、
以下の様に一次式では分離できない場合の対応として非線形分離の方法を説明します。

■考え方
やり方は線形分離の方法と同じく、パーセプトロンを用いる(活性化関数はシグモイド関数)のですが、異なる点はパーセプトロンへの入力式が多項式になる点です。
以下は2次の多項式の場合です。

重みの更新方法も線形分離と同じく勾配法を用いております。(1)式は多項式になっても変わりは有りません。誤差Eの微分を行うので、xの多項式になると形が変わるかと思いますが、
この微分は重みwの微分であるため、xは係数として扱われるのでwが2乗などにならない限り形は変わりません。

■pythonによる実装
実際にpythonでプログラムを作り動作を確認します。対象データは冒頭のグラフのデータとします。環境及びプログラムファイル等は以下。
・pythonバージョン:Ver3.6で確認
・必要ライブラリ:numpy,matplotlib (インストール方法はこちら)
・必要ファイル:logistic2.zip(プログラムファイル, 分類対象データ)
プログラムの内容は線形分離時のプログラムとほとんど同じで、異なる点は入力関数が多項式になっている点のみです。
実行結果
以下のとおり。きちんと分離することができました。

サブチャンネルあります。⇒ 何かのお役に立てればと
|
|