ニューラルネットワーク
脳のニューロンを“ざっくり”模した計算の仕組み。入力に重みを掛けて足し、活性化関数で曲げる――を層で積み重ね、誤差から重みを少しずつ直して学習する。
- 1.ニューラルネットは「入力に重みを掛けて足し、活性化関数で曲げる」ユニットを層状に積んだ関数。脳の比喩は入口だけで、中身は行列計算と微分。
- 2.学習=予測の誤差(損失)を測り、勾配降下+誤差逆伝播で重みを少しずつ正しい向きへ動かす作業。手で規則を書く代わりにデータから重みを決める。
- 3.活性化関数の非線形が肝。これが無いと何層重ねても1枚の直線(線形)に潰れ、曲がった境界を学べない。
1個のニューロン:重み付き和 → 活性化
まず最小単位を押さえます。1個のニューロン(ユニット)がやるのは2ステップだけです。
- 重み付き和:入力
x₁, x₂, …に、それぞれの重みwを掛けて足し、バイアスbを加える。z = w₁x₁ + w₂x₂ + … + b - 活性化:その
zを活性化関数に通して、出力a = f(z)を得る。
重みは「その入力をどれだけ重視するか」、バイアスは「どれくらい反応しやすいか(しきい値の下駄)」を表す数値です。学習とは、この w と b を良い値に調整することに尽きます。
入力 重み 和 活性化
x1 ──w1──┐
x2 ──w2──┤→ z = Σ(w·x) + b ──> a = f(z) ──> 次の層へ
x3 ──w3──┘
層を積む:入力 → 隠れ → 出力
ユニットを横に並べて「層」を作り、層を縦に重ねます。
- 入力層:データをそのまま受け取る入り口(例:画像なら各ピクセルの明るさ)。計算はしません。
- 隠れ層:重み付き和+活性化を行う中間の層。ここが「特徴を組み立てる」本体で、層を増やすほどより抽象的な特徴(線→形→物体…)を扱えるようになります。隠れ層が深いものを特に ディープラーニング と呼びます。
- 出力層:最終的な答えを出す(例:分類なら各クラスの確率、回帰なら数値)。
入力を入れて、層から層へ計算を前へ流して答えを出すこの流れを 順伝播(forward propagation) と呼びます。各層は本質的に行列の掛け算+活性化なので、GPU での並列計算と相性が良いのも特徴です。
なぜ「非線形(活性化関数)」が要るのか
ここが一番のキモであり、誤解されやすい点です。活性化関数(非線形)が無いと、何層重ねてもネットワークは1枚の直線(線形変換)に潰れます。
線形変換を何回繰り返しても、合成すれば結局また1回の線形変換にしかなりません(A(Bx) = (AB)x)。つまり活性化が無ければ、100層あっても表現力は1層と同じで、まっすぐな境界線しか引けません。間に曲げる関数を挟むことで初めて、入り組んだ(非線形な)パターンを学べます。
よく使う活性化関数に ReLU(負を0に、正はそのまま max(0, z))、シグモイド(0〜1に押し込む)、tanh(−1〜1)があります。今の主流は計算が軽く学習が進みやすい ReLU。シグモイド/tanh は層を深くすると勾配が消えやすい(後述)ため、隠れ層では出番が減りました。
| 関数 | 出力の範囲 | 役割・使いどころ | 弱点 |
|---|---|---|---|
| ReLU | 0 〜 ∞ | 隠れ層の定番。軽くて学習が速い | 負側が0で固まる(死んだReLU) |
| シグモイド | 0 〜 1 | 2値分類の出力(確率っぽく) | 深いと勾配消失しやすい |
| tanh | −1 〜 1 | 0中心で扱いやすい中間層 | 深いと勾配消失しやすい |
| ソフトマックス | 合計1の確率 | 多クラス分類の出力層 | (出力層専用) |
どう学習する?:損失 → 勾配降下 → 誤差逆伝播
順伝播は「今の重みで答えを出す」だけ。**学習は“答え合わせをして重みを直す”**ループで進みます。
- 損失(loss)を測る:出した予測と正解のズレを1つの数値にする。回帰なら二乗誤差、分類なら交差エントロピーが定番。損失が小さいほど良いモデル。
- 勾配を求める(誤差逆伝播):「各重みを少し動かすと損失がどっちにどれだけ変わるか」(=勾配=損失の傾き)を計算する。出力側の誤差を入力側へ逆向きに伝えながら、合成関数の微分(連鎖律)で各重みの担当分を一気に割り出すのが 誤差逆伝播(backpropagation) です。
- 重みを更新する(勾配降下):勾配が示す「損失が増える向き」の逆向きへ、重みを少しだけ動かす。この“少し”の歩幅が 学習率(learning rate)。
これを大量のデータで何度も繰り返すと、損失が下る方向へ重みが少しずつ動き、予測が正解に近づきます。**「霧の中で、足元の傾きを頼りに谷底(損失最小)へ一歩ずつ下りる」**イメージです。
誤差逆伝播は思考でも推論でもなく、ただの微分の計算手順です。連鎖律を使って各重みの勾配を効率よく求めているだけ。「ネットワークが理由を考えて重みを直している」のではなく、傾きの方向へ機械的にずらしているにすぎません。ここを擬人化すると、後で挙動を見誤ります。
例え:たくさんのつまみがあるミキサー
音響ミキサーに無数のフェーダー(つまみ)が並んでいると思ってください。各つまみが重み、出てくる音が予測、流したい理想の音が正解です。
- 音を流して聴く=順伝播
- 理想とのズレを聞き取る=損失
- 「どのつまみをどっちに回せばズレが減るか」を見極める=勾配(誤差逆伝播)
- そのつまみを少しだけ回す=勾配降下(更新)
人間が一本ずつ手で合わせる代わりに、ズレを頼りに全つまみを同時に少しずつ自動調整するのがニューラルネットの学習です。
ニューロンの比喩はあくまで着想の出発点。実際の脳の神経はもっと複雑で、誤差逆伝播のような仕組みで学んでいる証拠もありません。ニューラルネットは生物の再現ではなく、微分で最適化する数式モデルだと割り切るのが正確です。
つまずきポイント
| 症状 | 起きていること | 対処の方向 |
|---|---|---|
| 学習が進まない/発散する | 学習率が大きすぎ/小さすぎ | 学習率を調整、データを正規化 |
| 訓練は良いが本番でダメ | 過学習(暗記してしまう) | データ追加・正則化・早期終了 |
| 深くすると精度が落ちる | 勾配消失/爆発で奥まで届かない | ReLU・残差接続・正規化層 |
| 毎回結果が違う | 重みの初期値や順序がランダム | 乱数シード固定で再現性確保 |
- 学習率の調整がいちばん効く:大きすぎると谷を飛び越えて発散、小さすぎると一向に進みません。
- 勾配消失/爆発:層を深くすると、逆伝播で勾配がどんどん小さく(または大きく)なり、入力側の層がほぼ学習されない問題。ReLU や正規化、残差接続(スキップ接続)で緩和します。
- 過学習に注意:訓練データを“暗記”して未知データに弱くなる現象。これ自体が大きなテーマなので 過学習 で詳しく扱います。
まとめ:結局どういう道具か
ニューラルネットワークは、重み付き和+活性化を層で積んだ巨大な関数であり、損失を勾配降下+誤差逆伝播で最小化して重みを決める仕組みです。手で規則を書けない複雑なパターン(画像・音声・言語)でも、データさえあれば近似できるのが強みで、この基本構造をテキスト向けに発展させたのが LLM とトランスフォーマー です。魔法でも脳の再現でもなく、微分で最適化する数式モデル――この一点を押さえておけば、応用の話も迷わず読めます。
AI/機械学習 Article
ニューラルネットワークを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ニューラルネットワーク
比較で見る軸
難易度: basic / カテゴリ: AI/機械学習 / タグ数: 4
導入後に効く点
学習=予測の誤差(損失)を測り、勾配降下+誤差逆伝播で重みを少しずつ正しい向きへ動かす作業。手で規則を書く代わりにデータから重みを決める。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- basic
- カテゴリ
- AI/機械学習
- タグ数
- 4
判断チェックリスト
- 自社の用途が「ニューラルネットワーク / ディープラーニング」に近いか確認する。
- 強みである「ニューラルネットは「入力に重みを掛けて足し、活性化関数で曲げる」ユニットを層状に積んだ関数。脳の比喩は入口だけで、中身は行列計算と微分。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。