ニューラルネットワークとは
Neural Network / NN
生物の神経回路を模した数理モデルで、層状に接続したノード間の重み付き信号伝播により学習する
ひとことで言うと
脳の神経細胞のつながりを真似た計算の仕組み。多くのAIモデルの基本構造になっている。
概要
ニューラルネットワークは、生物の脳内にあるニューロン(神経細胞)の結合構造を数理的に模した機械学習モデル。 入力層・隠れ層・出力層からなるノード(ユニット)の集合が重み付きの接続でつながり、各ノードは入力の重み付き和に非線形の活性化関数を適用して出力する。 層を重ねる(=深くする)ことで複雑な非線形関数を近似できるようになり、この多層構造を用いた学習手法は「深層学習(Deep Learning)」と呼ばれる。 画像認識・音声認識・自然言語処理など幅広い分野で中核技術として使われている。 学習は誤差逆伝播法(バックプロパゲーション)によって、出力と正解の誤差を各層に伝播させながら、勾配降下法で重みを少しずつ更新する仕組みで行われる。
背景
単純な線形モデルでは表現できない複雑なパターン(画像・音声・言語など)を学習するため、生物の神経系にヒントを得た多層構造のモデルが考案された。 層を重ねることで、入力データから段階的に抽象度の高い特徴表現を自動的に獲得できる点が、人手で特徴量を設計する従来の手法との大きな違い。
歴史
1943年: McCullochとPittsが人工ニューロンの数理モデルを提案し、ニューラルネットワークの概念的基盤を築く。 1958年: Rosenblattがパーセプトロンを提案しニューラルネットワークの原型となる。 1986年: 誤差逆伝播法(Backpropagation)が普及し多層ネットワークの学習が実用化。 2012年: AlexNetが画像認識コンペで従来手法を圧倒し深層学習ブームが本格化。 2017年以降: Transformerが主要アーキテクチャとして台頭。
アーキテクチャ
入力層・1つ以上の隠れ層・出力層で構成される。 各層のノードは前層の出力を重み付き和し、活性化関数(ReLU・シグモイド等)を通して非線形変換する。 層の接続形態により全結合層(MLP)・畳み込み層(CNN)・再帰層(RNN)・注意機構(Transformer)など多様な派生アーキテクチャが存在する。
ワークフロー
入力データをネットワークに通し出力を得る(順伝播) → 正解データとの誤差を計算 → 誤差を逆伝播させ各重みの勾配を求める → 勾配降下法で重みを更新 → 収束するまで繰り返す。
コード例
最小構成の全結合層(PyTorch)
import torch.nn as nn
model = nn.Sequential(
nn.Linear(784, 128),
nn.ReLU(),
nn.Linear(128, 10),
)利点
- 複雑な非線形関係を近似できる高い表現力
- 生データから自動的に特徴量を学習できる
- 画像・音声・テキストなど多様なデータ形式に適用できる汎用性
欠点
比較
関連用語
よくある質問
ニューラルネットワークと深層学習の違いは?
ニューラルネットワークはモデルの構造そのもの。 深層学習は、多数の層を持つニューラルネットワークを用いた学習手法全般を指す。
参考文献
- DocumentationPyTorch: Neural Networks