単純パーセプトロン

提供:MonoBook
2024年8月16日 (金) 07:47時点におけるAdministrator (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

単純パーセプトロンとは、入力として配列(特徴ベクトル)を受け取り、出力として0または1の数字を返す単純なニューラルネットワークのことです。

構造[編集 | ソースを編集]

  1. 入力層:特徴ベクトル(例:[x_1, x_2, …, x_n])を受け取ります。
  2. 重み:各入力に対する重み(例:[w_1, w_2, …, w_n])。これらの重みは学習プロセス中に調整されます。
  3. バイアス:バイアス項(例:b)。これは、モデルの柔軟性を高めるために使用されます。
  4. 活性化関数ステップ関数(またはヘヴィサイド関数)を使用して、出力を0または1に変換します。

動作[編集 | ソースを編集]

  1. 入力の受け取り:特徴ベクトル[x_1, x_2, …, x_n]を入力として受け取ります。
  2. 線形結合の計算:入力と重みの線形結合を計算し、バイアスを加えます。 [ z = \sum_{i=1}^{n} w_i x_i + b ]
  3. 活性化関数の適用:ステップ関数を適用し、出力を0または1に変換します。 [ y = \begin{cases} 1 & \text{if } z \geq 0 \ 0 & \text{if } z < 0 \end{cases} ]

学習プロセス[編集 | ソースを編集]

  1. 初期化:重みとバイアスをランダムに初期化します。
  2. 予測:現在の重みとバイアスを使用して、入力データに対する予測を行います。
  3. 誤差の計算:予測と実際のラベルとの誤差を計算します。
  4. 重みとバイアスの更新:誤差に基づいて重みとバイアスを更新します。更新は以下のように行います: [ w_i = w_i + \Delta w_i ] [ \Delta w_i = \eta (y_{\text{true}} - y_{\text{pred}}) x_i ] [ b = b + \eta (y_{\text{true}} - y_{\text{pred}}) ] ここで、(\eta)は学習率です。


制限事項[編集 | ソースを編集]

単純パーセプトロンにはいくつかの制限があります:

  • 線形分離可能性:単純パーセプトロンは、線形分離可能なデータのみを正確に分類できます。非線形なデータには対応できません。
  • 複雑なパターンの学習:複雑なパターンや多クラス分類には適していません。