<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>混合模型 on Intellectual Guides</title><link>https://ckw19810413.github.io/tags/%E6%B7%B7%E5%90%88%E6%A8%A1%E5%9E%8B/</link><description>Recent content in 混合模型 on Intellectual Guides</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><lastBuildDate>Sat, 17 Oct 2026 08:00:00 +0800</lastBuildDate><atom:link href="https://ckw19810413.github.io/tags/%E6%B7%B7%E5%90%88%E6%A8%A1%E5%9E%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>研究生知識寓言：兩座鐘樓的失落配方</title><link>https://ckw19810413.github.io/blog/2026-10-17-em-algorithm-fable/</link><pubDate>Sat, 17 Oct 2026 08:00:00 +0800</pubDate><guid>https://ckw19810413.github.io/blog/2026-10-17-em-algorithm-fable/</guid><description>&lt;p&gt;在海濱城市「貝爾維亞（Bellvia）」，立著兩座古老的鐘樓：北鐘樓與南鐘樓。&lt;/p&gt;
&lt;p&gt;兩座鐘樓的鐘，分别出自兩位傳奇鐘匠之手。北鐘樓的鐘匠叫「銅心」，南鐘樓的叫「錫影」。每位鐘匠都守著一盞秘密的&lt;strong&gt;合金配方&lt;/strong&gt;——多少比例的銅、多少比例的錫，熔出來的鐘才有正確的音調。配方寫在密典裡，由鐘樓深處的密庫保管。&lt;/p&gt;
&lt;p&gt;然而兩位鐘匠先後過世，密典隨密庫一同燒毀了。&lt;/p&gt;
&lt;p&gt;城市還留著兩樣東西：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;鐘本身&lt;/strong&gt;：兩座鐘樓歷年共鑄了幾百口鐘。有的還掛在鐘樓上，更多的早已散到全城的教堂、港口與廣場。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一份音調簿&lt;/strong&gt;：末代鐘吏留下的一張清單，記載每口鐘的「音調」——一個數字，鐘聲的基頻。數字越低，鐘聲越深沉。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;市議會給新任鐘吏出了一道題：「&lt;strong&gt;不用原配方，把兩位鐘匠的配方重現出來&lt;/strong&gt;——每座鐘樓鐘聲的典型音調、離散程度，以及當年各鑄了多少口鐘。」&lt;/p&gt;
&lt;p&gt;問題在於：音調簿只記了音調，&lt;strong&gt;沒有記每口鐘屬於哪座鐘樓&lt;/strong&gt;。幾百口鐘混在一起，兩家鐘匠的產品音調相近，老匠人也只能靠鐘身一絲「銅味」或「錫味」的微妙線索來分辨——而且，往往分辨不准。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="一第一種直覺硬分"&gt;一、第一種直覺：硬分
&lt;/h3&gt;&lt;p&gt;年輕見習鐘吏「魯賓（Rubin）」提了個直截了當的辦法：&lt;/p&gt;
&lt;p&gt;「先把所有鐘硬分兩堆——音調低的歸北樓，音調高的歸南樓。再各自算平均，不就成了？」&lt;/p&gt;
&lt;p&gt;老鐘吏「萊爾德（Laird）」搖了搖頭：&lt;/p&gt;
&lt;p&gt;「你根本不知道北、南的分界在哪，你憑什麼決定『從哪裡切』？切在 400Hz 呢，北樓那些偏輕、偏高的鐘就被分進南樓，把南樓的平均壓低；明天你按新平均再切，分組又換了。&lt;strong&gt;切一刀，兩邊的平均都跟著歪&lt;/strong&gt;，越切越亂。城市需要的不是一次下錯就鎖死的猜測，而是一個&lt;strong&gt;越跑越接近真相的過程&lt;/strong&gt;。」&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="二尋鐘人的日夜法"&gt;二、尋鐘人的日夜法
&lt;/h3&gt;&lt;p&gt;老鐘吏的導師「丹普斯特（Dempster）」沉思了三個晚上，教了魯賓一套「&lt;strong&gt;日夜法&lt;/strong&gt;」：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;夜間（軟讀）&lt;/strong&gt;：不強求口口鐘「非北即南」。對每一口鐘，只問一個問題——「按我們&lt;strong&gt;現在相信的配方&lt;/strong&gt;，這口鐘是北樓鑄的機率有多大？」然後把兩個數字寫在鐘的牌子上：「北 70%、南 30%」。鐘的音調越接近北樓的配方，北的比例越高；兩個數字永遠加總 100%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;白天（重估）&lt;/strong&gt;：拿著夜間的百分比，重新算配方——&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新的北樓配方 = 每口鐘音調 × 它的「北」百分比，全部加總，再除以北百分比的總和；&lt;/li&gt;
&lt;li&gt;南樓配方，照同樣的加權法重算；&lt;/li&gt;
&lt;li&gt;每座鐘樓鐘聲的「離散程度」（音調偏離配方的幅度），也照權重重估；&lt;/li&gt;
&lt;li&gt;順手估出「兩座鐘樓各鑄了多少口」：北樓的份額 = 北百分比總和 ÷ 鐘的總數。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;算完，用&lt;strong&gt;新配方&lt;/strong&gt;在夜裡重新讀鐘，讀完再在白天重估配方。如此循環。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="三怪事確信只升不降"&gt;三、怪事：確信只升不降
&lt;/h3&gt;&lt;p&gt;循環了幾周，怪事發生了。&lt;/p&gt;
&lt;p&gt;萊爾德同時記著第二本簿子——「&lt;strong&gt;確信簿&lt;/strong&gt;」：每一夜，他根據當夜的軟讀與當下的配方，算出這几百個音調「出自這兩份配方」的&lt;strong&gt;整體確信度&lt;/strong&gt;。結果是：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;第一輪 → 第二輪 → 第三輪 → 第四輪……這個數字&lt;strong&gt;每一輪都上升，有時只升一點，但從不下降。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;魯賓很驚訝：「我每輪都改了配方、也改了讀法，怎麼總體確信度永遠不跌？」&lt;/p&gt;
&lt;p&gt;丹普斯特回答：&lt;/p&gt;
&lt;p&gt;「因為夜間做的是**『在當前配方下最合理的讀法』&lt;strong&gt;，白天做的是&lt;/strong&gt;『在當前讀法下最合理的配方』&lt;strong&gt;。每一步只做一件事：讓總確信變高。就像一個人在山坡上走路，他可能迷路，但&lt;/strong&gt;每一步都不往下走**。老前輩管這個性質叫&lt;strong&gt;琴生不等式&lt;/strong&gt;——對數的期望，永遠不大於期望的對數。所以每輪算出的確信，都是真相之下的一個『地板』，而每一輪，地板不是被墊高，就是被守住。」&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="四停止的鐘聲"&gt;四、停止的鐘聲
&lt;/h3&gt;&lt;p&gt;大約第七天，兩本簿子都不動了：配方不再變，百分比不再變，確信度也不再上升。&lt;/p&gt;
&lt;p&gt;城市宣布勝利：兩份失落的配方，尋回來了！&lt;/p&gt;
&lt;p&gt;但那晚，另一個見習鐘吏從鄰鎮過來。他的日夜法&lt;strong&gt;一模一樣&lt;/strong&gt;，只是起手的初值猜得不同——他一開始就賭「北樓原來是高的那批」。等他跑完日夜法，他也停下了——但停在&lt;strong&gt;另一對配方&lt;/strong&gt;上：兩座鐘樓的典型音調互換了一點，份額也調了調。&lt;/p&gt;
&lt;p&gt;「你們兩個都停了，也都一路上升，&lt;strong&gt;卻停在不同的地方&lt;/strong&gt;。萊爾德合上確信簿，「日夜法『停止』的地方，不是鐘匠寫下的真配方，而是**『從你那個起點出發、最可能的那份配方』**。」&lt;/p&gt;
&lt;p&gt;城市最後的處理方式：從&lt;strong&gt;不同的起點&lt;/strong&gt;各跑幾遍，收斂後比確信度，&lt;strong&gt;取確信最高的那個解&lt;/strong&gt;當成最終答案。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="五揭曉"&gt;五、揭曉
&lt;/h3&gt;&lt;p&gt;故事說到這裡，你猜到這是在描述什麼概念了嗎？&lt;/p&gt;
&lt;p&gt;這是統計推論與機器學習領域中一顆研究生級的基石：&lt;strong&gt;期望–最大化算法（Expectation–Maximization, EM）&lt;/strong&gt;，由 Dempster、Laird、Rubin 於 1977 年系統化（所以故事裡的三位老者都用了真名）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;兩位鐘匠、兩座鐘樓&lt;/strong&gt; = 混合模型（mixture model）的兩個「成分」（本故事是兩個高斯分量）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;鐘的音調&lt;/strong&gt; = 觀察得到的資料 $x$；&lt;strong&gt;每口鐘屬於哪座鐘樓&lt;/strong&gt; = 潛變量 $z$（成分歸屬），我們看得到資料，卻看不到歸屬。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;夜間軟讀「北 70% 南 30%」&lt;/strong&gt; = &lt;strong&gt;E-step&lt;/strong&gt;：在當前參數下，算出每個資料點的「責任」$\gamma(z) = \mathbb{E}[z \mid x, \theta]$，即它屬於各成分的後驗機率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;白天用加權重估配方&lt;/strong&gt; = &lt;strong&gt;M-step&lt;/strong&gt;：把責任當權重，閉式解出新的均值、變數與混合比例 $\pi$。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;「確信只升不降」&lt;/strong&gt; = EM 的&lt;strong&gt;單調性定理&lt;/strong&gt;：每一輪迭代都不會降低觀察資料的對數似然。琴生不等式保證 E-step 構造出一個下界，M-step 再把下界抬到新參數的實際似然上。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;兩位見習停在不同的配方&lt;/strong&gt; = EM 收斂到對數似然的&lt;strong&gt;局部極大值&lt;/strong&gt;，不保證是全域最大值；對初值敏感，實務上用多次隨機重啟取最佳。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它的應用遍佈在「有觀察資料、又有看不見的隱藏原因」之處：高斯混合模型（soft clustering）、隱藏馬可夫模型（&lt;strong&gt;Baum–Welch 算法就是 EM 的特例&lt;/strong&gt;）、因子分析、潛在類模型，以及所有含有缺失資料的最大似然估計。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="隱喻對照表"&gt;隱喻對照表
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;故事元素&lt;/th&gt;
&lt;th&gt;對應概念&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;兩座鐘樓（北樓、南樓）&lt;/td&gt;
&lt;td&gt;混合模型的两个成分（K=2 的高斯混合）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;失落的秘密合金配方&lt;/td&gt;
&lt;td&gt;待估參數：均值 $\mu_1,\mu_2$、變數 $\sigma_1^2,\sigma_2^2$、混合比例 $\pi_1,\pi_2$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;音調簿上幾百口鐘的音調&lt;/td&gt;
&lt;td&gt;觀察資料 $x$（一維量測）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;不知道每口鐘屬於哪座鐘樓&lt;/td&gt;
&lt;td&gt;潛變量 $z$（成分歸屬）不可觀察&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;「硬分兩堆」一切就歪&lt;/td&gt;
&lt;td&gt;對潛變量做硬指派沒有閉式最優解——切在哪裡全憑猜&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;夜間：牌子寫「北 70%、南 30%」&lt;/td&gt;
&lt;td&gt;E-step：計算後驗責任 $\gamma(z) = \mathbb{E}[z \mid x, \theta]$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;白天：用百分比加權重估配方、離散、份額&lt;/td&gt;
&lt;td&gt;M-step：$\theta \leftarrow \arg\max_{\theta}, \mathbb{E}[\log p(x,z \mid \theta)]$（高斯混合下有閉式解）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;日夜循環&lt;/td&gt;
&lt;td&gt;EM 迭代：E → M → E → M …&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;確信簿裡的「整體確信度」&lt;/td&gt;
&lt;td&gt;觀察資料的對數似然（EM 的 ELBO 下界）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;「確信只升不降」&lt;/td&gt;
&lt;td&gt;EM 單調性定理（琴生不等式保證）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;「數字不再變動」的停止&lt;/td&gt;
&lt;td&gt;收斂到固定點（非凸時即局部極大）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;兩位見習從不同起點、停在不同配方&lt;/td&gt;
&lt;td&gt;對初值敏感、局部最優問題；實務上多重重啟（multi-start）取最佳&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;「從你起點出發、最可能的那份配方」&lt;/td&gt;
&lt;td&gt;EM 找的是觀察資料的 MLE，不是「真相」&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;老鐘吏 丹普斯特、萊爾德、見習 魯賓&lt;/td&gt;
&lt;td&gt;Dempster–Laird–Rubin（1977），EM 經典論文的三位作者&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;「從不同起點跑幾遍、取確信最高的」&lt;/td&gt;
&lt;td&gt;多重重啟（multi-start）實務策略&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;一句話總結&lt;/strong&gt;：當資料背後的「隱藏原因」看不見時，不要強行一槌定音——先「軟猜」每個資料點的歸屬，再用歸屬「重擬」模型，日夜循環；每一輪確信只升不降，直到數字停止變動——這就是期望–最大化算法（EM）。&lt;/p&gt;</description></item></channel></rss>