ニューラルネットワーク
読み: にゅーらるねっとわーく
生物の神経回路を模倣した数理モデル。入力層 / 隠れ層 / 出力層で構成され、画像認識や生成など高度な画像処理の基盤技術。
ニューラルネットワーク (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、拡散モデルなどのアーキテクチャも提案されている。