パーセプトロンと多層パーセプトロン(MLP)

以下に、パーセプトロンと**多層パーセプトロン(MLP: Multi-Layer Perceptron)**について詳しく説明します。


パーセプトロン(Perceptron)

概要

パーセプトロンは、1958年にフランク・ローゼンブラットによって提案された、最も基本的なニューラルネットワークのモデルです。単層の人工ニューロンで構成され、線形分類器として働きます。

構成要素

  • 入力ベクトルx = (x₁, x₂, ..., xₙ)

  • 重みベクトルw = (w₁, w₂, ..., wₙ)

  • バイアスb

  • 活性化関数(通常はステップ関数)

計算式

makefile
z = w₁x₁ + w₂x₂ + ... + wₙxₙ + b = wᵀx + b 出力 y = f(z) = 1(z > 0 のとき) = 0(z ≦ 0 のとき)

特徴

  • ANDやORのような線形分離可能な問題は解ける。

  • しかし、XORのような線形分離不可能な問題は解けない。


多層パーセプトロン(MLP: Multi-Layer Perceptron)

概要

多層パーセプトロンは、複数の層(隠れ層)を持つニューラルネットワークです。非線形関数を用いることで、非線形な関係も学習可能になり、XORのような問題も解けるようになります。

構成

  • 入力層:入力特徴量を受け取る

  • 隠れ層:1層以上(通常はReLUなどの非線形活性化関数を使用)

  • 出力層:最終的な分類または回帰の出力を行う

計算の流れ(順伝播)

  1. 入力 x に対し、隠れ層で重み付き和を計算し、活性化関数を通す。

  2. それを次の層に渡して再び計算。

  3. 最終的な出力が得られる。

例(1隠れ層の場合)

lua
z₁ = W₁x + b₁ a₁ = σ(z₁) ← 活性化関数(ReLU, tanh, sigmoidなど) z₂ = W₂a₁ + b₂ y = softmax(z₂) ← 出力層(分類の場合)

活性化関数の例

  • ReLU(Rectified Linear Unit)f(x) = max(0, x)

  • シグモイドf(x) = 1 / (1 + e^(-x))

  • tanhf(x) = (e^x - e^(-x)) / (e^x + e^(-x))

学習方法

  • 誤差逆伝播法(Backpropagation)と勾配降下法(SGDやAdamなど)を用いて重みを更新する。


パーセプトロンとMLPの比較

項目 パーセプトロン 多層パーセプトロン(MLP)
層の構成 単層(出力層のみ) 複数層(隠れ層+出力層)
解ける問題 線形分離可能な問題のみ 線形・非線形どちらも対応可能
活性化関数 ステップ関数 ReLU、シグモイドなどの非線形関数
学習アルゴリズム 単純な重み更新 誤差逆伝播法+最適化手法

まとめ

  • パーセプトロンは単純なモデルで、ニューラルネットワークの出発点。

  • 多層パーセプトロンは、より深く複雑な関係を学習可能な強力なモデル。

  • MLPは深層学習(Deep Learning)の基礎をなす重要な構造です。

生成日:2025/06/01