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

多層パーセプトロン(MLP)は、ニューラルネットワークの一種で、入力層、隠れ層(中間層)、出力層の3つ以上の層から構成されています。以下に、MLPの構造とその動作を図を用いて説明します。

多層パーセプトロンの構造

1. 入力層 (Input Layer)

入力層は、外部からのデータを受け取る層です。各ノード(ニューロン)は、データの各特徴を表しています。

2. 隠れ層 (Hidden Layer)

隠れ層は、入力データを処理し、特徴を抽出する層です。MLPには1つ以上の隠れ層があり、各隠れ層のノードは前の層の全てのノードと接続されています。隠れ層のノードは非線形活性化関数を使用して、データの非線形性を捉えます。

3. 出力層 (Output Layer)

出力層は、最終的な予測結果を出力する層です。出力層のノード数は、分類問題の場合はクラス数、回帰問題の場合は予測する値の数に対応します。

図解

以下に、典型的な多層パーセプトロンの構造を示す図を掲載します。

graph TD; A[入力層] --> B[隠れ層1] B --> C[隠れ層2] C --> D[出力層] subgraph 入力層 A1[特徴1] A2[特徴2] A3[特徴3] end subgraph 隠れ層1 B1[ノード1] B2[ノード2] B3[ノード3] end subgraph 隠れ層2 C1[ノード1] C2[ノード2] C3[ノード3] end subgraph 出力層 D1[クラス1] D2[クラス2] end A1 --> B1 A1 --> B2 A1 --> B3 A2 --> B1 A2 --> B2 A2 --> B3 A3 --> B1 A3 --> B2 A3 --> B3 B1 --> C1 B1 --> C2 B1 --> C3 B2 --> C1 B2 --> C2 B2 --> C3 B3 --> C1 B3 --> C2 B3 --> C3 C1 --> D1 C1 --> D2 C2 --> D1 C2 --> D2 C3 --> D1 C3 --> D2

多層パーセプトロンの動作

1. 順伝播 (Forward Propagation)

入力データが入力層から隠れ層、そして出力層へと順に伝播します。各ノードは、前の層のノードからの入力を重み付けして合計し、活性化関数を適用して出力を生成します。

2. 誤差逆伝播 (Backpropagation)

出力層での予測結果と実際の値との誤差を計算し、その誤差を逆方向に伝播させて各層の重みを更新します。このプロセスにより、モデルは学習し、予測精度を向上させます。

活性化関数

MLPでは、シグモイド関数、ReLU(Rectified Linear Unit)、tanh(双曲線正接関数)などの非線形活性化関数が使用されます。これにより、MLPは線形分離不可能な問題も解決できます。

このように、多層パーセプトロンは複数の層と非線形活性化関数を用いることで、複雑なパターンや関係性を学習し、さまざまな機械学習のタスクに応用されています。

Citations:
[1] https://ja.wikipedia.org/wiki/%E5%A4%9A%E5%B1%A4%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%88%E3%83%AD%E3%83%B3
[2] https://towardsdatascience.com/multilayer-perceptron-explained-with-a-real-life-example-and-python-code-sentiment-analysis-cb408ee93141?gi=386289e69a01
[3] https://www.datacamp.com/tutorial/multilayer-perceptrons-in-machine-learning
[4] https://tmytokai.github.io/open-ed/activity/dlearning/text02/page02.html
[5] https://h2o.ai/wiki/multilayer-perceptron/
[6] https://www.shiksha.com/online-courses/articles/understanding-multilayer-perceptron-mlp-neural-networks/
[7] https://zero2one.jp/ai-word/multi-layer-perceptron/
[8] https://www.youtube.com/watch?v=7YaqzpitBXw
[9] https://www.geeksforgeeks.org/multi-layer-perceptron-learning-in-tensorflow/
[10] https://ainow.ai/2022/09/13/267819/
[11] https://en.wikipedia.org/wiki/Multilayer_perceptron
[12] https://gen-ai-media.guga.or.jp/glossary/mlp/
[13] https://ja.d2l.ai/chapter_deep-learning-basics/mlp.html
[14] https://qiita.com/maskot1977/items/d0253e1eab1ff1315dff
[15] https://www.researchgate.net/figure/A-schematic-diagram-of-a-Multi-Layer-Perceptron-MLP-neural-network_fig3_257071174