ニューラルネットワーク
読み: にゅーらるねっとわーく
生物の神経回路を模倣した数理モデル。入力層・隠れ層・出力層で構成され、画像認識や生成など高度な画像処理の基盤技術。
ニューラルネットワーク (Neural Network) とは、生物の神経細胞 (ニューロン) の結合構造を数学的にモデル化した計算手法である。各ニューロンは入力に重みを掛けて合計し、活性化関数を通して出力する。この単純な演算ユニットを多層に積み重ねることで、画像分類・物体検出・超解像・画像生成など複雑なタスクを学習できる。
基本的な構成要素は以下のとおりである。
- 入力層: 画像のピクセル値や特徴量を受け取る層。RGB 画像なら幅 × 高さ × 3 チャンネルのテンソルが入力される
- 隠れ層: 入力を非線形変換する中間層。層数が深いほど複雑なパターンを表現できる (深層学習)
- 出力層: タスクに応じた結果を出力する。分類ならクラス確率、回帰なら連続値を返す
- 活性化関数: ReLU、Sigmoid、Tanh など。非線形性を導入し、ネットワークの表現力を高める
学習は誤差逆伝播法 (Backpropagation) で行われる。損失関数の勾配を出力層から入力層へ逆方向に伝播させ、各重みを更新する。最適化アルゴリズムには SGD、Adam、AdaGrad などが使われる。
model = Sequential([Dense(128, activation='relu'), Dense(10, activation='softmax')])- Keras での基本的な全結合ネットワークloss = nn.CrossEntropyLoss()- PyTorch での分類用損失関数
画像処理分野では、全結合層のみのネットワークは画像の空間構造を活かせないため、畳み込み層を導入した CNN が主流となった。さらに GAN、Transformer、拡散モデルなど多様なアーキテクチャが発展し、画像処理の精度と応用範囲を飛躍的に拡大している。