手書き数字から予測へ
手書き数字の予測は、28×28 画像を十個のスコアへ変え、確率に変換して数字を選び、方針に従って振り分ける。方針は信頼度を読めるが、正しかったかは独立して保持した正解ラベルとの照合でしか判定できない。
本レッスンは採点、80% の振り分け、正解との監査を分ける。誤答でも高い信頼度で自動受理されることを示すためだ。
手書き数字予測の仕組み
入力は実際の MNIST テスト画像で、784 個のバイト強度値を持つ。固定ネットワークは 784 → 25 → 25 → 10。実行間で重みを変えず、正解ラベルも受け取らない。一回で 20,475 個の学習済み重みとの積と、60 回のバイアス加算を行う。正規化、アフィン写像、ReLU は一つのモデル工程へまとめ、推論後の流れを観察する。
出力は各クラスの符号付き logit 十個。比較はできるが確率ではなく、負にもなり、固定の上限もなく、和も一とは限らない。30 サンプルで共通の [-40, 30] 軸を使い、個別の尺度変更で勝者がいつも強く見える錯覚を避ける。
安定した softmax は:
p_i = exp(logit_i - max(logits)) / sum_j exp(logit_j - max(logits))
最大値を引いて不要に大きい指数を避けても、順位は変わらない。最大スコアは最大確率のままだ。表示は最大剰余法でちょうど 100 セルに丸め、印字する割合で計算値の詳細を残す。
argmax が最大確率のクラスを prediction に書く。方針は topProbability だけを読み、topProbability >= 0.80 なら自動受理、未満なら Review へ送る。正解はまだ封じられ、方針から読めない。
振り分け後に別の評価経路が trueLabel を明かし、prediction と比べる。先に正解を推論や方針へ渡すと答えが漏れ、評価が無効になる。
数字予測のステップ
既定の d7-b は正解 7 の曖昧なテスト画像。モデルは 74.84% で正しく 7 を予測するが、80% 未満なのでレビューへ送る。
- 28×28 画像と ID d7-b を受け取り、正解を封じたままにする。
- 固定モデルが 784 画素から十 logit を出す。学習も重み更新もない。
- 十クラスの札がゼロ線に来る。まだ符号付きスコアで、確率や予測ではない。
- 共通
[-40, 30]軸で実値へ動く。7 は4.834、9 は3.737、差は1.097。 - softmax 変換で上位二クラスの対応を保ち、残る八つを残余の流れにする。まだセルを埋めず、まず対応を示す。
- 確率量が定まり、7 は 74.84%、9 は 24.99%、残る八つが余りを分け、合計 100% となる。
- サンプル ID、モデル版、上位スコア、信頼度の記録を作る。正解はまだ封じられている。
- 最大クラスを
prediction = 7と記録する。正誤は未知。 - 74.84% < 80% なので Review へ送る。後で正解と分かっても、この振り分けは規則どおりだ。
- 振り分け後に評価記録を開き、
trueLabel = 7を示す。 - 予測と正解が合うので正しいと判定する。経路は Review のままで、過去を書き換えない。
- 別の実記録を並べる。d7-b は
74.84% · REVIEW · CORRECT、d7-m は99.79% · AUTO-ACCEPT · WRONG。モデルと方針は同じで、保持していた入力だけが違う。 - 両記録を残す。信頼度が経路を説明し、独立した正解が判定を決める。
比較は既定実行に含まれ、設定を開かなくても確認できる。0–9 の各数字で明確、曖昧、誤分類を選び、全経路を調べることもできる。
信頼度の閾値が正しさを証明しない理由
80% のゲートが問うのは、モデルが softmax 質量の少なくとも 80% を第一候補へ集めたかだけで、現実と一致するかではない。選んだ 30 例は次の結果になる。
| 種類 | 0–9 の結果 | 最大確率 | 80% での経路 |
|---|---|---|---|
| 明確 | 10/10 正解 | 99.999% より大 | 10/10 自動受理 |
| 曖昧 | 10/10 正解 | 74.56%–75.29% | 10/10 レビュー |
| 誤分類 | 10/10 不正解 | 99.26%–99.99% | 10/10 自動受理 |
閾値は低信頼と高信頼を分けても、正解と誤答は分けられない。レビュー配分、棄権、サービス規則には使えるが、未校正スコアを証明へ変えることはできない。この選別した例は全体の正解率推定でもない。
70% に下げれば d7-b は自動受理へ移るが、予測と正誤は同じ。上げれば通常はレビューが増える。数値はレビュー費用と誤りのリスクに関する方針で、評価には保持した結果が引き続き必要だ。
境界ケース
>99.99%も有限の確率で、数学的な確実性とは表示しない。- 微小な非ゼロ値は科学表記を使い、偽のゼロに丸めない。
- ちょうど 80% は
>=なので自動受理する。 - 100 セルは表示で、最大剰余法が合計を 100 に保つ。細かい数値は割合の印字で確認する。
- 全 logit に同じ定数を足しても softmax は変わらず、差だけが分布に影響する。
- 全ゼロ画像でもバイアスから logit が出る。入力として有効かは別に判断する必要がある。
よくある間違い
- logit を確率と呼ぶ。符号付きスコアを softmax で和一の分布へ変える。
- softmax が正解を調べると思う。モデル自身のスコアを変換し、順位を保つだけだ。
- Review を誤予測と考える。既定はレビュー対象でも正解。
- Auto-accept を証明と考える。選んだ誤分類は全て閾値を通る。
- レビューと誤りのコストを決めずに閾値を選ぶ。モデルがその製品判断を代行することはできない。
- 正解を推論や振り分けに渡し、答えを漏らす。
- 各サンプルで独立にスコア軸を変え、見た目の優位を比べる。本レッスンは
[-40, 30]に固定する。
モデルの範囲
二つの 25 ユニット隠れ層を持つ固定重みの MNIST 全結合モデルを使う。内部処理は一場面で、順伝播と MNIST の専用レッスンが詳細を扱う。
80% は例示の方針で、確率が校正済みとは主張しない。校正測定、分布変化検出、モデル登録と展開、監視、再試行、キュー、プライバシー制御、人のレビュー作業は省く。実運用は多くの結果で評価する。ここで区別するのは、信頼度による振り分けと、正解による判定だ。
続けて学ぶ
同じ手法につながるレッスンや、次の概念への入口です。
鍵マークのあるレッスンの操作には有料アクセスが必要です。解説はすべて無料で読めます。
誤りや気になる点を見つけましたか? フィードバックを送る。