【医療AI教室:B7】誤差を逆さにたどる!? “深層学習”の学習プロセス

難易度:★★☆☆

こんにちは!今回は、いよいよ 深層学習(Deep Learning)の学習プロセス をわかりやすくご紹介します。

これまではAI・深層学習に関する技術などをトピック的にご紹介しました。今回は、深層学習の学習プロセスを一連の流れを見ていきます。以下の基本ステップを押さえていただくと、深層学習の基本となる“動き”が見えてきます。

深層学習のポイントは、ニューラルネットワークの各ニューロン同士の「つながりの強さ」を表す 重みやバイアス といった パラメーター を最適化することにあります。では、その最適化がどのように行われているのか、以下のステップを通して見ていきましょう。


目次

本記事で取り上げるステップ

  1. 順伝播 (Forward Propagation)
  2. 損失関数 (Loss Function) で誤差を計算
  3. 誤差逆伝播 (Backpropagation)
  4. 勾配降下法 (Gradient Descent)
  5. 反復 (Iteration)

これらをひととおり理解することで、深層学習がどうやってパラメーターを「賢く」アップデートしていくのかをイメージしやすくなるはずです。


1. 順伝播 (Forward Propagation)

何をしているのか?

深層学習モデル(ニューラルネットワーク)に 入力データ を与え、層を 順番に 通過させながら 出力(予測) を得る工程です。

イメージしやすい例

  • 画像診断では、CT画像を入力し、畳み込み層などで特徴を抽出 → 全結合層などで判定 → 最終的に「病変の有無」を出力
  • 数値データ(例:患者さんの血液検査値)であれば、複数の層を経て「疾患リスク○%」などを予測

専門用語解説

  • 層 (Layer):データを受け取り演算を行う単位。畳み込み層や全結合層など、多様な構成があります。
  • 活性化関数 (Activation Function):各層の出力を非線形に変換し、学習能力を高めるための関数。これが深層学習の賢さの源!今後、解説します!

2. 損失関数 (Loss Function) で誤差を計算

何をしているのか?

モデルの予測結果と 正解ラベル のズレを数値化するステップです。このズレの大きさを「損失(ロス)」と呼び、数式として定義したものが「損失関数」です。

  • 損失が大きいほど 予測が外れている
  • 損失が小さいほど 予測が正解に近い

統計的なアナロジー

ここで少し統計の考え方を取り入れると、損失(ロス)を「目的変数(y)」、各パラメーター(重み・バイアス)を「説明変数(x)」と見立てることができます。

  • つまり、「損失関数」とは「説明変数(=パラメーター)の値に応じて目的変数(=損失)がどのように変化するか」を表す関数です。
  • 深層学習の 最適化 とは、この「目的変数」である損失をできるだけ小さくするように、各パラメーター(説明変数)を調整していくプロセスだと理解できます。

イメージしやすい例

  • 「肺に影がある」が正解なのに、モデルが「影はない」と予測すれば、損失が大きい。
  • 正解と予測が一致していれば損失は小さくなる。

専門用語解説

  • 正解ラベル (Label):データに紐づく本来の正しい答え。
  • 損失関数 (Loss Function):代表的には、回帰問題で二乗誤差(MSE)、分類問題でクロスエントロピー損失などを使います。
【発展】数学的には?

ニューラルネットワークのパラメーターを θ(例:重み w やバイアス b の集合)と表します。

損失関数は、パラメーター θを入力とする関数であり、損失(スカラー値)を返します:

\(L = L(f_{\theta}(x),\; y)\)
  • x:入力データ
  • y:正解ラベル
  • \(f_{\theta}(x)\):パラメーター θ に基づいて入力 x を処理したモデルの出力(予測)
  • L:出力と正解の誤差(損失)を計算する関数(例:平均二乗誤差、クロスエントロピーなど)

最適化問題としての数式

深層学習の目的は、損失関数を最小にするようなパラメーター θ を求めることです:

\(\theta^* = \arg\min_{\theta} L(f_{\theta}(x),\; y)\)
  • θ∗:最適なパラメーターのセット

3. 誤差逆伝播 (Backpropagation)

何をしているのか?

「損失が大きいとき、どのパラメーター(重みやバイアス)が、どれだけ誤差に影響しているのか」を 逆方向 にたどって計算する工程です。

イメージしやすい例

  1. 出力層で誤差の大きさを確認
  2. その誤差がどこから生じているのかを 最終層 → 中間層 → 入力層 の順に逆向きにさかのぼる
  3. 「どこをどれだけ修正すれば誤差を小さくできるか」の情報(勾配)を算出

専門用語解説

  • 微分 (Derivative):ある関数がどの方向に、どのくらい変化するかを調べる手法。
  • 勾配 (Gradient):パラメーターそれぞれに対して微分を行った結果の集合。モデルをどう修正すれば損失が減るかを教えてくれる指針となります。

4. 勾配降下法 (Gradient Descent)

何をしているのか?

誤差逆伝播で求めた 勾配 をもとに、重みやバイアス(パラメーター)を「損失が減る方向」へ少しずつ更新していきます。

イメージしやすい例

  • 山の頂上が「損失が最大になる地点」、山のふもとが「損失が最小になる地点」とイメージすると、勾配降下法は山を下る(損失を下げる)方向を探って進む作業
  • 一度に大きく動かしすぎると通り過ぎてしまうので、更新幅(学習率(上の図だと歩幅のようなもの))は慎重に設定します。

専門用語解説

  • 重み (Weight):入力の重要度を表すパラメーター。
  • バイアス (Bias):全体の演算結果を微調整するためのパラメーター。
【発展】数学的には?

実際にはこうやって更新される(勾配降下法)

パラメーターは、損失関数の勾配に基づいて繰り返し更新されます:

\(\theta \leftarrow \theta – \eta \cdot \nabla_{\theta} L(f_{\theta}(x),\; y)\)
  • η:学習率(learning rate)
  • ∇θL:パラメーター θ に関する損失関数の勾配

5. 反復 (Iteration)

何をしているのか?

  1. 順伝播 → 2. 損失の計算 → 3. 誤差逆伝播 → 4. 勾配降下法 という流れを繰り返し行うことで、少しずつパラメーターを最適化していきます。

イメージしやすい例

  • 学習用データ(例:数千~数万枚の医療画像)を何度も何度も使い、損失が下がる方向にパラメーターをアップデートし続けることで、モデルの予測精度を上げる。
  • これを複数回繰り返す1サイクルを「エポック (Epoch)」と呼び、学習が進むたびに損失がだんだん下がっていくのを観察します。

専門用語解説

  • エポック (Epoch):データセット全体を1回すべて学習に使用する単位。
  • バッチ (Batch):データをメモリなどの制限から小分けにして学習させるときの1回分のまとまり。

全体の流れをシンプルに整理

  1. 順伝播:入力→出力の流れを計算
  2. 損失を計算:予測と正解のズレ(損失)を数値化
  3. 誤差逆伝播:どこをどれだけ修正すれば損失が減るかを逆向きに分析
  4. 勾配降下法:損失が下がる方向にパラメーターを調整
  5. 反復:これらを何度も回しながら、最適な重み・バイアスを探る

深層学習の本質は、「損失関数」という“目的変数”をできるだけ小さくするように“説明変数”であるパラメーターを修正していくプロセスです。


まとめ

  • 深層学習では、重みやバイアス といったパラメーターを使い、ニューラルネットワークの各ニューロン同士のつながりの強さを表現。
  • 損失(ロス) はモデルの予測が正解からどれだけ外れているかを示す指標で、これを小さくするようにパラメーターを微調整することが深層学習の最適化です。
  • 具体的には、順伝播 → 損失の計算 → 誤差逆伝播 → 勾配降下法 → 反復 という流れで、損失を徐々に小さくするように学習を進めていきます。

裏側の仕組みを知ると、AIをどのように活用し、どこまで期待するかがより明確になるでしょう。

ご質問やご感想などありましたら、お気軽にお問い合わせください。それではまた次回!

  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次