ニューラルネットワーク
ニューラルネットワークは、人間の脳の神経回路網を模倣した数学モデルです。簡単に言うと、コンピュータに人間の脳のような学習能力を持たせるための技術と言えるでしょう。
ニューラルネットワークの仕組み
ニューラルネットワークは、ニューロンと呼ばれるノードが多数接続されたネットワークで構成されています。各ニューロンは、入力された情報を処理し、次のニューロンに伝えます。この処理を繰り返すことで、複雑な計算が可能になります。
- 入力層: 外部のデータを受け取る層です。
- 隠れ層: 入力層と出力層の間にある層で、特徴抽出を行います。
- 出力層: 最終的な結果を出力する層です。
ニューラルネットワークの種類
- 多層パーセプトロン (MLP): 最も基本的なニューラルネットワークです。
- 畳み込みニューラルネットワーク (CNN): 画像認識に特化したニューラルネットワークです。
- 再帰型ニューラルネットワーク (RNN): 時系列データの処理に特化したニューラルネットワークです。
- 長短期記憶 (LSTM): RNNの一種で、長期的な依存関係を学習できます。
ニューラルネットワークの応用
- 画像認識: 顔認識、物体検出、医療画像診断など
- 音声認識: 音声アシスタント、音声翻訳など
- 自然言語処理: 機械翻訳、文章生成、感情分析など
- ゲーム: ゲームAI、ゲーム開発など
例題作成
画像の認識
〇は一つのニューロンを表し、ノードと呼ぶことにします。
画像について
3x3のマス目として、黒は1を白(空白)は0のビットとします。
入力層
入力層は画像の状態をすべての隠れ層のノードへ渡します。入力層のニューロンはデータを配達することしか行いません。
隠れ層
隠れ層は画像の検知を行います。H1~H3のそれぞれのニューロンは検知する画像パターンが設定されています。この検知パターンは学習によって獲得されます。
入力層から与えられたデータと自分の検知パターンとの含み具合を、出力へ渡すことが役割となります。
出力層
出力層は、判定をします。画像は0と1のビットで表現されます。Y1は0の判定を行い、Y2は1の判定を行います。3つの隠れ層のノードからの結果から、Y1は〇である可能性を0~1の数値で返します。また、Y2は×である可能性を0~1の数値で返します。
隠れ層のパターン認識
H1のパターンを認識させるには、x1とx3のつながりを強くする必要があります。(太線)
また閾値はフィルターとして機能します。
出力層の判定
Y1が〇を判定し、Y2が×を判定するので、隠れ層Hからのパスは、×の場合、H1とY2のつながりが強くなります。Y1とY2のニューロンの重みはそれぞれの判定対象に合わせた値にする必要があります。
重みと閾値の決定
重みと閾値は学習によって決定します。
ニューラルネットワークは、重みと閾値の誤差を最小化することで機能します。
ネットワークのニューロン表記
各層は以下のように表記されます。
入力層
上からi番目の入力を表す。
隠れ層
出力層
コメント