Closed3
機械学習
単層パーセプトロンの理論と実装
単層パーセプトロンのアルゴリズムの理解をした上で,書籍に従って実装する.
理論
重みベクトル
実装
実装前は以下の点がよく分からなかった.
- どのように重みを更新すれば
の値が\hat{y} に近づくのか?y - numpyやpandas, sklearnなどのツールの利用方法
まず,重みの更新は以下の式で表される.
この式を理解するために以下のようなシンプルなケースを考える.
Pythonで実装すると以下のようなコードになる.これで重み更新のイメージはそれなりに掴めた.
perceptron.py
update = self.eta * (target - self.predict(xi))
self.w_[1:] += update * xi
次にツール郡の使い方に関するメモを列挙する.
- numpy
-
dot(x, y)
で内積計算 -
arccos(vec)
で逆余弦関数 -
np.linalg.norm
はベクトルのノルムを計算 -
where(condition, x, y)
はconditionがTrueなら値をxに,Falseならyに置換 - 単位ステップ関数は
where
を使うことで実装される
-
- pandas
-
read_csv
でCSVの読み込み
ADALINE
重みの更新を単位ステップ関数ではなく線形活性化関数に基づいて行う.単層パーセプトロンでは予測値と正解の値を比較していたが,ADALINEでは線形活性化関数の出力値(連続値)と正解の値を比較する.線形活性化関数になったことでコスト関数が微分可能になり,勾配が得やすくなる(そしたら勾配降下法とかが使える).重みの変化
このスクラップは2023/11/18にクローズされました