<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Statistics on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/statistics/</link><description>Recent content in Statistics on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sun, 21 Jun 2026 09:30:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/statistics/feed.xml" rel="self" type="application/rss+xml"/><item><title>AI 工程從零開始｜Phase 1 Part 2：機率與統計 — 不確定性的數學語言</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase1-part2-probability-stats-zh/</link><pubDate>Sun, 21 Jun 2026 09:30:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/ai-eng-from-scratch-phase1-part2-probability-stats-zh/</guid><description>大多數工程師把機率當成「加個 softmax 就好」的細節。 真正理解機率的工程師知道：每一個損失函數、每一個正則化項、每一個模型假設， 背後都是一個機率故事。 你選的分佈，決定了你的模型相信什麼樣的世界。
面試情境 面試官問：「你的分類模型在驗證集上 accuracy 已經 92%，但產品上線後客訴率比預期高出三倍。請問你會怎麼診斷這個問題？從機率與統計的角度，你會看哪些指標、做哪些檢定？」
一、核心問題：為什麼機率是 AI 的第一語言 AI 系統本質上是在處理不確定性。輸入有雜訊、標籤有錯誤、世界在變化——確定性的規則系統在這種環境下必然失敗。機率論提供了一套嚴謹的語言，讓我們能夠：
量化無知：我們不知道答案，但我們知道各種可能答案的相對可能性 更新信念：看到新資料後，理性地調整對世界的看法 做出決策：在不確定條件下，選擇期望效用最大的行動 評估模型：不只說「對或錯」，而是說「有多大把握」 許多工程師剛接觸機率時覺得抽象，但一旦你開始問「這個設計決策背後假設了什麼分佈？」，你會發現機率思維無處不在：
Cross-entropy 損失：假設模型輸出是伯努利（二分類）或類別（多分類）分佈的參數 L2 正則化：等價於對權重施加高斯先驗（MAP 估計） Dropout：對神經元激活引入伯努利雜訊，是一種 ensemble 的近似 Batch Normalization：假設每一層的激活值服從近似高斯分佈 Attention 機制：softmax 把分數轉為機率分佈，讓模型「選擇」關注哪裡 當你不理解這些假設，你就不知道模型在什麼情況下會失效，也不知道如何針對性地改進。
工程師常犯的三個機率錯誤 錯誤一：把 accuracy 當成唯一指標 accuracy 是 0/1 損失的期望值，它假設所有錯誤的代價相同。在醫療診斷（漏診癌症 vs 誤診）、詐欺偵測（放行詐欺 vs 誤封帳號）等場景，這個假設完全不成立。正確做法是看 precision/recall/F1，甚至直接最佳化 AUC-ROC。
錯誤二：忽略分佈偏移（Distribution Shift） 訓練集和測試集來自不同分佈時，任何在訓練集上學到的統計量都可能失效。這是上面面試題的核心：92% 的 accuracy 是在某個分佈下測的，但產品用戶的輸入分佈可能完全不同。
錯誤三：過度自信的點估計 大多數模型給出點預測（「這張圖片是貓」），但沒有說明不確定性。一個能說「我有 51% 的把握認為這是貓，你最好再確認一下」的模型，在高風險場景下遠比只說「是貓」的模型有價值。
二、三個演進階段：機率應用如何隨系統規模演進 Phase 1：POC / &amp;lt; 10K 用戶 核心目標：能跑起來，能得到合理的預測結果
╔══════════════════════════════════════════════════════════════╗ ║ POC 階段：機率應用 ║ ╠══════════════════════════════════════════════════════════════╣ ║ ║ ║ 輸入資料 模型 輸出 ║ ║ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ ║ ║ │ Raw CSV │───▶│ Sklearn │──▶│ 點預測（0 或 1） │ ║ ║ │ 或圖片 │ │ / PyTorch│ │ 或 softmax 機率 │ ║ ║ └──────────┘ └──────────┘ └──────────────────────┘ ║ ║ ║ ║ 評估：accuracy / loss curve ║ ║ 假設分佈：「系統預設的，沒有特別想過」 ║ ║ ║ ║ 可接受的捷徑： ║ ║ • 直接用 cross-entropy，不問為什麼 ║ ║ • 資料不平衡時用 class_weight=&amp;#39;balanced&amp;#39; ║ ║ • 不做 calibration ║ ╚══════════════════════════════════════════════════════════════╝ 花費：工程師時間 1–2 週，算力 &amp;lt; $50/月 遺留問題：模型機率輸出未校準、對分佈偏移無感知、評估指標不夠完整</description></item></channel></rss>