パーセプトロンとAdalineの違いについて。

Python機械学習プログラミングを読んでいて混乱したので調べてみた。
結論から言うと、この両者の違いは「活性化関数」と「学習」の違いだということ。

まず、パーセプトロンについて。
こちらは活性化関数にステップ関数(ヘビサイド関数)が用いられる。
入力データに重みをかけたものに対して一定のしきい値を超えたかどうかで、1か-1の値を出力する。
また、学習においては、この1 or -1の値を教師データと突き合わせることで各重みの更新を行う。

一方、Adaline。
こちらの活性化関数は、総入力の恒等関数、つまり入力データと重みを掛け合わせたものがそのまま使われる。
識別の結果としては活性化関数の出力を量子化して1 or -1にするが、パーセプトロンとは異なり学習には活性化関数の出力である実数値が用いられる。
さらにAdalineは2乗誤差をコスト関数として用いて、このコスト関数の値が最小になるように学習が行われる。
2乗値の最小を求めるため、ここでは勾配降下法を用いることができる。

以上が今回調べてみてわかった、両者の違いになる。