ディープラーニング A to Z · 3-2

ニューラルネットワークの部品 — パーセプトロンから誤差逆伝播法まで

ニューラルネットワークはいくつかの部品の組み合わせである。入力を秤にかけるニューロン、信号を曲げる活性化関数、層を積み重ねる隠れ層、間違いの度合いを測る損失関数、そして責任を逆向きに分けて重みを直す誤差逆伝播法。部品を一つずつ自分で動かしてみて、最後にはこれらの部品で実際のモデルを作り、評価し、デプロイする全体の流れまでたどる。

1958パーセプトロン発表 [R1]
1986誤差逆伝播法の論文 [R3]
12種自分で描いてみる活性化関数
0.25シグモイドの勾配の最大値 = 勾配消失の種
3種並んで競走するオプティマイザ
2本Colabですぐ動かせるコード
1パーセプトロン

パーセプトロン — 入力を秤にかけ、直線一本で分ける

y = ステップ(w₁x₁ + w₂x₂ + b)Rosenblatt, 1958

ショウジョウバエでは

果物の香りと酢の香りが同時にするとき、ニューロンは二つの信号をそれぞれ異なる強さで受け取って足し合わせる。合計が発火のしきい値を超えると「近づけ」という信号を送る。シナプスの強さが重み、発火のしきい値がバイアスである。

ニューラルネットワークでは

入力ごとに重みを掛けて足し、バイアスを加えた値zが0以上なら1、そうでなければ0を出す。平面上で見ると、w₁x₁ + w₂x₂ + b = 0という直線一本が「餌」と「餌でないもの」を分ける。間違えた点に出会うたびに、その点の方へ直線を少しずつ動かすのがパーセプトロンの学習規則である。

問題

初心者のための解説

パーセプトロンの学習規則は一行である。間違えた点を一つ選んで w ← w + η·(正解 − 予測)·x。正解が1なのに0と答えたらその点の方へ直線を引き寄せ、逆なら押しやる。直線で分けられる問題なら、この規則だけでいつかはすべての点を当てられる。

XORのように「どちらか一方だけがあるときに餌」という問題は、どんな直線でも分けられない。1969年にMinskyとPapertがこの限界を数学的に示して以来、ニューラルネットワーク研究はしばらく停滞した。解決策は層をもう一つ入れること、つまり隠れ層である。その前に、ステップの代わりになめらかに曲がる関数から見てみよう。

2活性化関数

活性化関数 — 信号をどう曲げるか

活性化関数は重み付き和zを受け取り、ニューロンの出力aを決める。曲がる形があってこそ層を積み重ねる意味が生まれ、勾配(微分)の形が学習の速さを左右する。

関数 f(z)勾配 f′(z)現在の入力 z
入力 z

勾配消失 — なぜReLUが主流になったのか

誤差逆伝播法は層をさかのぼるたびに活性化関数の勾配を掛ける。シグモイドの勾配はどんなに大きくても0.25である。10層さかのぼると、多くても0.25¹⁰ ≈ 0.00000095倍に縮む。前の方の層には「直せ」という信号がほとんど届かない。これが勾配消失である。

ReLUは正の区間の勾配がちょうど1なので、何層さかのぼっても信号が縮まず、計算も「0と比べる」だけなので速い。その代わり負の区間では勾配が0なので、一度オフになったニューロンが二度と生き返れないことがある。Leaky ReLU、ELU、Swishのような変形は、この隙間を埋めようとする試みである。どの関数が常に最良というわけではなく、問題とモデルに応じて選ぶ。

3隠れ層

隠れ層 — 活性化関数があってこそ層を積む意味が生まれる

入力 2 → 隠れ → 隠れ → 出力 1同じデータ、同じ構造、活性化関数だけが違う

隠れ層ごとのニューロン数

線形 ∘ 線形 = 線形

活性化関数なしで層を積むと W₂(W₁x) = (W₂W₁)x、つまり重み行列一つとまったく同じになる。例えば W₁ = [[1, 2], [0, 1]]、W₂ = [[2, 0], [1, 1]] なら W₂W₁ = [[2, 4], [1, 3]]。二つの層を通っても、この行列一つを通っても結果は同じである。100層積んでも直線一本しか引けない。

活性化関数が層ごとに信号を曲げてくれると、直線の断片が重なり曲がって、渦巻きのような複雑な境界ができる。隠れニューロン数を4に減らしてみると、曲げられる断片が足りず渦巻きを包みきれない様子も見える。

4表現学習

表現学習 — 層を通るほど特徴が抽象的になる

点(ピクセル)→ 方向 → つなぎ目 → 形。前の層の特徴を材料に、次の層が一段階大きな特徴を作る。

入力図形

数字で見るニューロン1個

前の層の特徴4個(0.8, 0.1, 0.4, 0.0)を重み(0.5, 0.3, 0.2, 0.1)で秤にかけ、バイアス0.1を加える。

z = 0.8×0.5 + 0.1×0.3 + 0.4×0.2 + 0.0×0.1 + 0.1
= 0.40 + 0.03 + 0.08 + 0.00 + 0.10 = 0.61
a = ReLU(0.61) = max(0, 0.61) = 0.61

人が決めた特徴 vs 自ら学んだ特徴

上の図の方向・つなぎ目の検出器は、説明のために人があらかじめ決めておいた規則である。かつての機械学習では、実際にこのように人が特徴を設計していた。ディープラーニングはこれらの検出器の重みをデータから自ら学ぶ。だから人が思いつかなかった特徴も見つけ出す。

画像で実際にどんな特徴が層ごとに生まれるかは、3-3(画像とCNN)で見る。

5損失関数

損失関数(コスト関数) — 間違いの度合いを一つの数に

学習とは損失を減らすことである。何を損失と決めるかによって、モデルが「何を恐れるか」が変わる。

平均二乗誤差 (MSE)

(正解 − 予測)²。数値を当てる回帰問題の基本である。住宅価格、世帯支出、気温のように連続した値を予測するときに使う。下の誤差逆伝播法ダッシュボードがこの損失を使う。

交差エントロピー (Cross-Entropy)

−log(正解側に与えた確率)。分類問題の基本である。自信満々で間違えると罰点が際限なく大きくなる。出力にシグモイドやソフトマックスを使うときに組み合わせる。

正解
モデルの予測確率 p

なぜ分類には交差エントロピーなのか

出力にシグモイドを使うと、MSEの勾配は 2(p − t)·p(1 − p) になる。正解が1なのに p = 0.01 と自信満々で間違えると、p(1 − p) が0に近いので勾配もほぼ0である。大きく間違えたのに「直せ」という信号が弱いのだ。交差エントロピーを使うとシグモイドの微分がきれいに消え、勾配は単に p − t、つまり −0.99 になる。間違いが大きいほど強く直す。

6誤差逆伝播法

勾配降下法と誤差逆伝播法 — 推測し、測り、逆向きに分けて直す

入力 2 → 隠れ 3 → 出力 1目標 1.00 · 損失 = (目標 − 出力)² · 学習率 0.1

01 順伝播

まず推測する

入力が結合をたどって出力まで計算される。最初の出力は0.41。

02 損失

どれだけ間違えたかを測る

(1.00 − 0.41)² ≈ 0.35。上のセクション5のMSEである。

03 逆伝播

誰のせいかを分ける

出力から逆向きにたどりながら、重みごとに責任(勾配)を計算する。

04 更新

少しずつ直す

新しい重み = 元の重み − 学習率 × 勾配。これが勾配降下法である。

01 順伝播→ 02 損失→ 03 逆伝播→ 04 更新↺ もう一度

重みのマスを押すとその結合が図で強調され、下の「数字でたどる」がその重みの計算を示す。

速度
学習率 η
直す結合

数字でたどる — 重み1個の1周

誤差逆伝播法は「責任を掛け算で伝えること」である

まず出力での間違いの量 −2 × (目標 − 出力) が決まる。隠れ→出力の重みの責任は、これにその重みから入ってきた信号(隠れ層の値)を掛けたものである。入力→隠れの重みはもう一段さかのぼる。出力の重みvを掛けて隠れニューロンまで責任を送り、隠れニューロンがどれだけ敏感だったか h(1 − h) を掛け、入ってきた入力xを掛ける。この「掛けて逆向きに送る」が連鎖律である。セクション2の勾配消失も、まさにこの掛け算から生じる。

「出力側のみ(ショウジョウバエ方式)」を押すと入力→隠れの重みは固定され、上から降りてくる教師信号(ショウジョウバエのドーパミンにたとえたもの)が出力側の結合だけを直す。ショウジョウバエのキノコ体の学習構造を大きく簡略化したたとえであり、ドーパミン信号が勾配のように計算されているかどうかはまだ研究中である。

7オプティマイザ

オプティマイザ — 谷を下る三つの歩き方

損失を地形として描くと、学習とは最も低い場所を探して下っていくことである。同じ勾配を見ても、足をどう運ぶかがオプティマイザごとに異なる。

SGD:勾配の分だけ一歩モメンタム:転がってきた慣性を加えるAdam:方向ごとに歩幅を合わせる
学習率 η
ミニバッチのノイズ
SGD:w ← w − η·g
モメンタム:v ← 0.9·v − η·g,  w ← w + v
Adam:m ← 0.9·m + 0.1·g,  s ← 0.999·s + 0.001·g²,  w ← w − η·m̂ / (√ŝ + ε)  (m̂, ŝ は初期の偏りを補正した値)

初心者のための解説

この谷は横に長く、縦に急である。SGDは勾配の分だけ動くので、急な縦方向では大きな歩幅で上下に跳ね(ジグザグ)、学習率が小さいとなだらかな横方向は亀の歩みになる(「0.1 小さく」で確認)。モメンタムは転がってきた速度を覚えていて、一貫した方向(横)に加速し、ジグザグは互いに打ち消し合う。Adamは方向ごとに勾配の大きさを別々に測って歩幅を合わせるので、横・縦を同じくらいの速さで下っていく。

「ミニバッチのノイズ」は、実際の学習のようにデータの一部だけを見て勾配を計算するときに生じる揺れである。学習率を「大きく」にすると、SGDは谷の壁を越えて弾き飛ばされる。どのオプティマイザが常に勝つわけではない。Adamは多くの問題で無難なデフォルトなのでよく使われるが、いくつものディープラーニングの課題で、よく調整したSGDの方が初めて見るデータによく当てはまったという研究もある [R12]。

8過学習

過学習と正則化 — 暗記したものと理解したもの

学習点 14個 · 検証点 80個入力 1 → 隠れ 48 (tanh) → 出力 1, Adam

ドロップアウト
重み減衰 (L2)
早期終了

三つの処方

  1. 早期終了:検証損失が最も低かった時点のモデルを使う。最も簡単で、ほぼ常に使う。
  2. ドロップアウト:学習のたびに隠れニューロンの一部をランダムにオフにする。特定の数個のニューロンに頼って点を暗記することを防ぐ。テスト時はすべてオンにして使う。
  3. 重み減衰(L2):重みが大きくなるほど損失に罰点を加える。曲線が過度に曲がりくねるのを防ぐ。

最も確実な処方は、データをもっと集めることである。データが少ないのにモデルが大きいと、暗記しやすくなる。この図の数値はこのページで直接計算した説明用の実験であり、実行するたびに同じ結果になるよう乱数を固定してある。

9全体の流れ

モデル作りの全体の流れ — データからデプロイまで

ここまで見た部品は、学習という一つの段階に入る。実際の仕事はその前後の方が長い。例は工場の検査台の「不良品探し」モデルである。

① 集める→ ② 分ける→ ③ 前処理→ ④ 学習→ ⑤ 評価→ ⑥ 保存・デプロイ→ ⑦ モニタリング

⑤ 評価 — 正解率だけを見るとだまされる

検査した製品200個のうち、実際の不良は20個。モデルは製品ごとに「不良である確率」を出す。いくつ以上を不良と判定するか(しきい値)を変えてみよう。

不良判定しきい値

段階ごとのよくある失敗

  1. 分ける:テストデータは最後に一度だけ使う。検証データで設定を選び、テストデータで最終的な実力を測る。時間順序のあるデータはランダムに混ぜず、過去で学習し未来で評価する(3-6で詳しく)。
  2. 前処理:平均・標準偏差のようなスケール調整(標準化)の基準は学習データだけで計算する。全データで計算すると、テストの情報が漏れ込む(データリーケージ)。
  3. 評価:不良が10%しかなければ、「すべて正常」と言うだけで正解率90%になる。見逃してはいけない側(再現率)と誤警報のコスト(適合率)を一緒に見る。
  4. デプロイ・モニタリング:工場の照明が変わったり新しい部品が入ってきたりすると、データが変わって性能が落ちる。デプロイ後も性能を測り続け、必要なら再学習する。

Colabコード — このページを自分で実行してみる

どちらのコードも、Colabに標準でインストールされているライブラリだけを使う。「ノートブック(.ipynb)をダウンロード」したあと、Colabでファイル → ノートブックをアップロードで開くか、コピーして新しいノートブックのセルに貼り付ける。

コード1 · NumPyで自作する小さなニューラルネットワークセクション3·5·6·8と連携 · numpy, matplotlib · CPU 約10秒

順伝播 → 損失 → 逆伝播 → 更新の四段階を、ライブラリなしでそのまま書き移した。同じ渦巻きデータを「活性化関数なし」と「tanh隠れ層」で学習して比較する。自分のデータに替えるには、コード内の[自分のデータに替えるには]と書かれた部分でX, yだけを替える。

実行結果(2026-10-03 実行、numpy 2.4 · CPU)。乱数を固定しているので同じ結果になる。
コード2 · Kerasで同じニューラルネットワーク+過学習を防ぐセクション2·3·7·8·9と連携 · tensorflow(Keras) · CPU 約1〜2分

実務で使う方法である。活性化関数なし / ReLU / ReLU+ドロップアウト+早期終了の三つのモデルを比較し、最後のモデルをファイルに保存する(セクション9の⑥保存)。

AI応用プロンプト — このコードを出発点にする

ChatGPT、Qwen、ClaudeのようなAIアシスタントに貼り付けるプロンプトである。「コピー」を押すと、プロンプトのあとに選んだコードが一緒に付く。〔 〕の中を自分の状況に書き換えて使えばよい。

一緒に付けるコード

AIの答えは出発点にすぎない。提案された論文・数値・ライブラリ関数は、必ず原文と公式ドキュメントで確認する。コンテストや論文でAIの助けを借りた場合は、主催者や学術誌の規定に従って、使用した事実と範囲を明らかにする。

用語集

本文の黄色い点線の下線と同じ辞書である。シリーズ全体で同じ表記を使う。セクション名を押すと最初に出てきた場所へ移動する。

たとえ集 — そしてたとえが外れるところ

たとえは理解の第一歩だが、誤解の種にもなる。ショウジョウバエ・脳のたとえには強さを示した。直接 実際に同じことをしているという根拠がある · 部分 一部の性質だけが似ている · なし 対応するものが知られていない

概念日常のたとえショウジョウバエ・脳のたとえたとえが外れるところ
重み意見ごとに異なる信頼度部分的 シナプスの強さ実際のシナプスは時間や体の状態によって強さが変わり、信号も連続した数値ではなく電気パルス(スパイク)である
バイアス・しきい値決定を下す基準線部分的 ニューロンの発火しきい値ニューロンのしきい値は固定値ではなく、疲労・適応によって絶えず変わる
活性化関数いくら回しても限界があるボリュームつまみ部分的 刺激の強さに応じた発火頻度の曲線ニューラルネットワークは数値を一つ出すが、ニューロンは時間に沿ってパルスを出す
隠れ層報告を集めて整理する中間管理職部分的 キノコ体のケニオン細胞キノコ体の入力側の結合はほとんど学習で変わらない。ディープラーニングの隠れ層はすべての結合を学習する
損失関数テストの採点表部分的 砂糖(報酬)・電気ショック(罰)という結果ショウジョウバエは「どれだけ間違えたか」を一つの数値で計算しない
誤差逆伝播法事故の後に責任を逆向きに問いただすことなし ドーパミン信号は層をさかのぼって計算されない脳が誤差逆伝播法に似たことを別の方法で行っているかどうかは研究中である
学習率一度指摘されて直す幅部分的 一度の経験で変わるシナプスの量脳の変化の幅は状況・注意・反復によって異なる
オプティマイザ霧のかかった山を下る登山者の歩き方なし実際の損失地形は数百万次元なので、図のように一目では見えない
過学習過去問の答えだけを暗記した受験生なし人も暗記はするが、人の汎化の仕方はニューラルネットワークとは異なる
ドロップアウト何人か抜けても回るチームなし シナプス伝達がときどき失敗することに似ているという解釈はあるが、根拠は弱いテスト時はすべてのニューロンをオンにして使う。チームメンバーがいつも抜けているわけではない

著者紹介と参考文献

E-1 著者紹介 · E-2 学術参考文献 · E-3 図の参考資料

E-1 著者紹介

Sangsun Ahn(株式会社M-Robo代表)

韓国電気安全公社、毎日経済新聞を経て、現在は毎日経済の社外ベンチャーである株式会社M-Roboを創業し、代表を務めている。株式会社M-Roboは報道機関の社内ベンチャーとして始まったメディアベンチャーで、国民日報にロボット記者(ストックボット)をサービスし、韓国インターネット振興院、韓国言論振興財団、韓国放送通信電波振興院などで多数のプロジェクトを手がけた。その後、自社のAIニュース新聞であるMoney-Roboをサービスしている。代表在任中にアジア・オープンデータ・ハッカソンで優勝し、データ起業分野での功績により行政安全部長官賞を2回受賞した。また、人工知能およびブロックチェーン分野で5件の特許の発明者・登録者である。著書に『AI犯罪と自己防衛』があり、フィンテック分野、統計学、人工知能分野について韓国技術教育大学校オンライン生涯教育院のeラーニングコンテンツを開発した。最終学位は経済学博士(東国大学校、ミクロ数理経済学)。国民大学校、湖西大学校など複数の大学でデータおよび人工知能に関する科目を講義している。詳しいプロフィール

講義

  • Sangsun Ahn (2025). 『ビジネスのためのデータサイエンス』講義案. 韓国オープンサイバー大学 人工知能融合学科.
  • Sangsun Ahn (2025). [K-デジタル] 人工知能 自然言語処理. STEP(スマート職業訓練プラットフォーム), 韓国技術教育大学校オンライン生涯教育院.
  • Sangsun Ahn (2024). [K-デジタル] フィンテックデータ分析の基礎. STEP(スマート職業訓練プラットフォーム), 韓国技術教育大学校オンライン生涯教育院.

STEPの講義へのリンク:link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
サイトのリニューアルにより接続しにくい場合は、www.step.or.krからアクセスしてください。

論文と発表

  • Sangsun Ahn (2025). 国民老後保障パネルデータを活用した世帯支出予測モデルの研究:人工知能モデルに基づくアプローチ. 『未来社会』, 16(2). 原文
  • Sangsun Ahn (2025). 国民老後保障パネルデータを活用した世帯支出予測モデルの研究:人工知能によるアプローチ. 国民老後保障パネル学術大会 発表資料(2025.05.13), 国民年金公団 国民年金研究院. 発表資料
  • Sangsun Ahn (2025). SNSテキストに基づく麻薬疑い取引検出アルゴリズムに関する研究:パターンおよび文脈分析を中心に. 『未来社会』, 16(1). 原文
  • Sangsun Ahn (2024). 金融分野の異常検知モデルのセキュリティのための統計ベースの敵対的データ対応策:実証分析とシミュレーション結果. 『未来社会』, 15(3). 原文
  • Sangsun Ahn (2024). 人工知能を活用した仮想キャラクターの特性に基づくSNS投稿検出ソリューション. 2024 Summer Newmedia Party ポスター発表(2024.06.19), ソウルメディア大学院大学.
  • Sangsun Ahn (2024). 労災パネルデータを活用した機械学習モデル. 第10回 労災保険パネル学術大会 ポスター発表(2024.05.17), 勤労福祉公団 勤労福祉研究院.
  • Sangsun Ahn (2024). 暗号資産の時系列データの分析と予測:時系列モデルと人工知能モデルの比較、改善点の提示. 『未来社会』, 15(1). 原文

E-2 学術参考文献

  1. [R1] Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408. doi:10.1037/h0042519 — セクション1
  2. [R2] Minsky, M. L., & Papert, S. (1969). Perceptrons. MIT Press. — セクション1(XORの限界)
  3. [R3] Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. doi:10.1038/323533a0 — セクション4·6
  4. [R4] Nair, V., & Hinton, G. E. (2010). Rectified linear units improve restricted Boltzmann machines. Proceedings of ICML 2010, 807–814. — セクション2(ReLU)
  5. [R5] Maas, A. L., Hannun, A. Y., & Ng, A. Y. (2013). Rectifier nonlinearities improve neural network acoustic models. ICML 2013 Workshop on Deep Learning for Audio, Speech and Language Processing. — セクション2(Leaky ReLU)
  6. [R6] He, K., Zhang, X., Ren, S., & Sun, J. (2015). Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. Proceedings of ICCV 2015, 1026–1034. doi:10.1109/ICCV.2015.123 — セクション2(PReLU)
  7. [R7] Clevert, D.-A., Unterthiner, T., & Hochreiter, S. (2016). Fast and accurate deep network learning by exponential linear units (ELUs). ICLR 2016. arXiv:1511.07289 — セクション2(ELU)
  8. [R8] Klambauer, G., Unterthiner, T., Mayr, A., & Hochreiter, S. (2017). Self-normalizing neural networks. Advances in Neural Information Processing Systems 30. arXiv:1706.02515 — セクション2(SELU)
  9. [R9] Ramachandran, P., Zoph, B., & Le, Q. V. (2017). Searching for activation functions. arXiv:1710.05941 — セクション2(Swish)
  10. [R10] Misra, D. (2020). Mish: A self regularized non-monotonic activation function. BMVC 2020. arXiv:1908.08681 — セクション2(Mish)
  11. [R11] Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. ICLR 2015. arXiv:1412.6980 — セクション7
  12. [R12] Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. Advances in Neural Information Processing Systems 30. arXiv:1705.08292 — セクション7(AdamとSGDの汎化の比較)
  13. [R13] Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: A simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(56), 1929–1958. jmlr.org — セクション8
  14. [R14] LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436–444. doi:10.1038/nature14539 — セクション3·4
  15. [R15] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. deeplearningbook.org — セクション5·7·8·9(損失関数、最適化、正則化、早期終了)

E-3 図の参考資料

以下の資料を構成と内容の参考にした。

  • DataCraft Hub, "Activation Functions — Adding Nonlinearity to Neural Networks" (Series 01 · 05) インフォグラフィック — セクション2·3
  • DataCraft Hub, "Representation Learning — How Neural Networks Learn Useful Representations" (Series 01 · 06) インフォグラフィック — セクション4
  • mltut, "Activation Functions" インフォグラフィック — セクション2。Hard Sigmoidは図の定義(0.2x + 0.5)に従う
  • mltut, "A Quick Guide to Neural Networks" インフォグラフィック — セクション1·3
  • "How AI Learns? From Data to Intelligence" インフォグラフィック(制作者表記なし) — セクション9
  • "How a neural network actually learns" 教育用アニメーション(21秒、制作者表記なし) — セクション6の初期値

教育者向けTIP

講師、実務OJT担当者、チューターのための運営ガイドである。時間は目安なので、実際の授業に合わせて調整する。

対象ニューラルネットワークを初めて学ぶ大学生・社会人。Pythonの基礎があればColab実習まで、なければ本文のアニメーションまで
前提知識掛け算と足し算、関数のグラフの読み方。微分は「勾配 = 少し変えたときにどれだけ変わるか」程度で十分
学習目標① パーセプトロン・活性化関数・隠れ層がそれぞれ何をするかを説明できる ② 順伝播 → 損失 → 逆伝播 → 更新を数字でたどれる ③ 過学習を見分け、検証データ・早期終了・ドロップアウトで対処できる
所要時間の目安読む 40〜50分 · アニメーション実演 25分 · Colab実習 30分(コード1 10分、コード2 20分)

三つの運営案

講義形式 50分

概念中心

導入5分(セクション1 XORの失敗を実演)→ セクション2·3の実演15分 → セクション5·6のダッシュボード15分 → セクション8 過学習10分 → 確認問題5分。

実務OJT 90分

業務への適用中心

セクション6のダッシュボード15分 → セクション8·9 25分(正解率の落とし穴を業務事例で討論)→ コード2実習30分 → プロンプトカードで「自分のチームのデータに適用」20分。

1対1のチュータリング

レベル別の進度

入門者はセクション1·2·3·6だけ、中級者にはセクション6の「数字でたどる」を手で一度計算させた後、コード1の逆伝播部分と照らし合わせさせる。

セクション別の運営ポイント

セクション立ち止まって投げかける質問操作のコツ
1 パーセプトロン「XORでは直線をいくら動かしても、なぜ間違えた点が残るのか?」簡単な問題を先に学習させて成功を見せてから、XORに切り替える
2 活性化関数「シグモイドの勾配の最大値はどこで、いくつか?」シグモイドで停止した後、スライダーを0に動かして0.25を確認する
3 隠れ層「層を二つ積んだのに、なぜ左はまだ直線なのか?」ニューロン数を4に減らし、右も失敗する様子を見せる
4 表現学習「□はなぜ角4つで判断されるのか?人なら何を見るか?」TとLを交互に押して、つなぎ目の層だけが変わることを指摘する
5 損失関数「自信満々で間違えたとき、どちらの損失がより強く直せと言うか?」pを0.01にして二つの勾配の数値を比べる
6 誤差逆伝播法「出力に近い重みと遠い重み、どちらの勾配が大きいか?」「次のステップ」で1周をゆっくり回した後、重みのマスを替えながら式を読む
7 オプティマイザ「SGDはなぜジグザグに進むのか?」学習率を「大きく」に変えて、SGDが弾き飛ばされる場面を見せる
8 過学習「学習損失が下がり続ければ良いモデルなのか?」正則化をすべてオフにして最後まで回した後、一つずつオンにして比べる
9 全体の流れ「不良品検査で、見逃しと誤警報のどちらがより高くつくか?」しきい値を0.2と0.8に動かし、適合率・再現率が逆向きに動くのを見る

よくある誤解 Top 5

誤解正しい説明見せる場面
層をたくさん積めば必ず賢くなる活性化関数がなければ何層でも直線一本と同じ。あってもデータが少なければ過学習するセクション3の左の図、セクション8
ニューラルネットワークは脳をそのまま写した層・結合の強さ・しきい値という骨組みだけを借りた。誤差逆伝播法は脳では確認されていない共通セクションDの「なし」表示
学習損失が低ければ良いモデルである初めて見るデータ(検証・テスト)での性能が基準であるセクション8の右のグラフ
正解率が高ければ良いモデルである不均衡データでは「すべて正常」でも正解率が高い。適合率・再現率を一緒に見るセクション9 しきい値0.95
Adamがいつでも最良である無難なデフォルトにすぎない。問題によってはSGD+モメンタムの方が良いこともあるセクション7 学習率「小さく」

確認問題(解説は押して展開)

Q1. 活性化関数のないニューラルネットワークに隠れ層を10個積むと、どんな境界を描けるか?

直線(高次元では平面)一つだけである。線形変換を何回組み合わせても一つの線形変換になるからである(W₂W₁x = Wx)。セクション3の左の図がその例である。

Q2. シグモイドの代わりにReLUを使うと勾配消失が減る理由は?

シグモイドの勾配は最大0.25なので、層ごとに掛けられて急速に小さくなる。ReLUは正の区間の勾配が1なので、さかのぼっても縮まない。ただし負の区間では0なので、オフになったままのニューロンが生じうる。

Q3. 正解が1、予測が0.41のとき、MSE損失と∂L/∂yは?

L = (1 − 0.41)² = 0.3481 ≈ 0.35。∂L/∂y = −2 × (1 − 0.41) = −1.18。セクション6のダッシュボードの1周目の値と同じである。

Q4. 学習損失は下がり続け、検証損失はある時点から上がる。どんな状態で、何をすべきか?

過学習である。検証損失が最も低かった時点のモデルを使い(早期終了)、ドロップアウト・重み減衰をオンにするか、データを増やす。

Q5. 不良率10%の検査で「すべて正常」と答えるモデルの正解率と再現率は?

正解率90%、再現率0%。不良を一つも見つけられなかった。だから不均衡データでは正解率だけを見てはいけない。

Colab課題

基本

コード1でtanhをReLUに替える(活性化関数とその微分の2行)。隠れニューロン数を4、16、64に変えて検証正解率を表にまとめ、最も良い設定とその理由を3文で書く。

挑戦

コード2のデータを自分の業務データ(特徴2個以上、正解0/1)に替える。学習/検証/テストを6:2:2に分け、テストデータの正解率・適合率・再現率を報告する。しきい値0.5が業務に合っているかを、根拠を挙げて判断する。

難易度の調整とさらに学ぶ

入門者セクション4·7は飛ばしても流れは途切れない。セクション6は「次のステップ」ボタンで1周だけ一緒に見る
発展セクション6の「数字でたどる」を手で計算させた後、コード1のd1·d2·d3の行と一つずつ対応させる。セクション7に学習率の減衰(スケジュール)を加えるとどうなるかを討論する
さらに学ぶSangsun Ahn『ビジネスのためのデータサイエンス』講義案(データサイエンス全般) · STEP [K-デジタル] 人工知能 自然言語処理(3-5・3-8と連動) · STEP [K-デジタル] フィンテックデータ分析の基礎(3-6と連動)
講師用資料確認問題の採点基準と課題の解答例は教育者用解答ページ (3-2)で見られる

お疲れさまでした!

「3-2 ニューラルネットワークの部品」の回を最後まで読みました。研究室のメンバーがひと言ずつまとめます。

博士
博士ニューラルネットワークを構成する部品を一つずつ組み立ててみました。
  • ニューロン1個は、重み付き和に活性化関数をかぶせたもの
  • 誤差逆伝播法で誤差をさかのぼりながら、重みを少しずつ直す
  • 検証データで過学習を確認する
助手
助手黒板の数式が、もう怖くありません。
ハエ研究員
ハエ研究員勾配に沿って一歩ずつ、メモしておいた。