神經網路識數字 · NeuroLab
神經網路辨識手寫數字:在手寫板上寫一個數字,看訊號在三維神經網路裡逐層點亮、給出答案;親手給一個神經元畫權重,在瀏覽器裡從隨機權重開始現場訓練,看卷積核掃過整張圖,再看 AI 在旋轉、平移和雜訊面前怎樣認錯。
章節內容
圖像就是數字
在右邊的手寫板上寫一個數字。它會被縮成 28 × 28 個小格子,每個格子是一個像素,用 0(黑)到 1(白)之間的數表示有多亮。方塊越高、越亮,這個像素的數就越大。
所以在電腦眼裡,這張圖只是 784 個數。後面所有的「辨識」,都是對這 784 個數做加減乘除。
寫之前還有一步預處理:先框出筆跡,縮放到 20 × 20 以內,再按「重心」放到正中間。訓練用的 MNIST 資料集(7 萬張真人手寫數字)就是這樣整理的,寫得大小、位置不同也不要緊。
一個神經元
一個神經元只做一件事:把 784 個像素各乘上一個權重再全部加起來,加上偏置 b,得到 z;再經過激活函數,變成它的輸出 a。
地上的方塊:高度是像素,顏色是權重——藍色是正權重(這裡有筆畫就加分),橙色是負權重(這裡有筆畫就扣分)。連到大球上的線越亮,這個像素的貢獻越大。
選中右邊的畫筆,直接在地上的方塊上拖動來「畫權重」。試著設計一個只認「1」的神經元:中間一條豎線畫成藍色,兩側畫成橙色,再用「試一個 1」「試一個 0」檢驗它。
多層網路
把很多神經元排成幾層:第一層 32 個神經元各看整張圖,第二層 16 個看第一層的結果,最後 10 個輸出神經元分別代表 0 到 9。輸出經過 softmax 變成機率,最高的就是辨識結果。
寫一個數字,看訊號從左到右一層層流過去:連線只畫貢獻最大的那些,藍線是「支持」,橙線是「反對」。
點第一層的任意一個方塊,它頭頂會浮出它的 784 個權重拼成的圖——這就是它在找的筆畫形狀。這些權重不是人設計的,是網路看了 6 萬張手寫數字後自己學出來的。
現場訓練
這一次,網路的權重全是隨機數,什麼也不會。點「開始訓練」,它會一張張地看 3000 個帶答案的手寫數字:先猜,再用損失衡量猜得有多錯,然後把每個權重朝「讓損失變小」的方向挪一小步——這就是梯度下降。
看第一層頭頂的 32 張權重圖:一開始是雪花一樣的雜訊,訓練中慢慢長出筆畫的形狀。右邊的曲線裡,損失在下降,準確率在上升。
每一步挪多遠由學習率決定:太小學得慢,太大會在谷底兩邊來回跳,甚至越學越糟。訓練好以後暫停,再用手寫板考考它。
卷積網路
多層網路的每個神經元都盯著整張圖,數字挪一下位置就不認識了。卷積網路換了個思路:用一個 5 × 5 的小窗口(卷積核)在圖上逐格滑動,每到一處都問「這裡有沒有我要找的筆畫」,結果排成一張特徵圖。
第一層有 6 個卷積核,找橫、豎、斜這樣的簡單筆畫;池化把每 2 × 2 取最大值,圖變小但特徵保留;第二層 12 個卷積核把簡單筆畫組合成拐角、圓弧;最後才判斷是哪個數字。
看「掃描動畫」,再點任意一張特徵圖看它的卷積核。它的參數比多層網路少得多,準確率反而更高。
AI 也會犯錯
把數字旋轉、挪到角落、加上雜訊,看右邊的置信度怎麼一點點崩掉。訓練時它沒見過這樣的圖,就容易認錯;多層網路對位置尤其敏感,卷積網路穩一些,但也不是不會錯。
點「看它認錯的數字」,翻翻測試集裡它真的認錯的例子——有些連人也要猶豫。再在手寫板上畫一個笑臉或字母:它只認識 0 到 9,沒有「我不知道」這個選項,照樣會自信地報出一個數字。
所以 AI 的判斷要看訓練資料是否全面,重要的事情還需要人來把關。
更多實驗
- VoltLab 電學實驗臺
- 等高線 3D 課堂
- 大氣環流粒子課堂
- 地球運動課堂
- 潮汐的形成 · TideLab
- 海陸的變遷
- 水循環三維沙盤 · WaterCycle
- 細胞 · 三維結構
- 顯微鏡實驗台 · MicroLab
- 孟德爾豌豆雜交實驗 · PeaLab
- 細胞的能量“貨幣” · ATPLab
- DNA 的結構 · DNALab
- 體液免疫 · ImmuneLab
- 植物的一生 · PlantLab
- 元素週期表 · PeriodicLab
- 實驗室製取氣體 · GasLab
- 化學分析實驗臺 · AnalytLab
- 反應機理 · 分子動畫
- 分子構型 · VSEPR
- 原子軌道 · 電子雲
- 化學反應 · 微觀世界
- 立體幾何 · GeoSpace
- 圓錐曲線 · ConicLab
- 函數圖像 · FuncLab
- 尺規作圖 · ConstructLab
- 勾股定理 · PythagoLab
- 趣味數學 · WonderLab
- 運動與力 · MotionLab
- 簡單機械 · MachineLab
- 液體壓強與浮力 · FloatLab
- 神舟發射與返回 · RocketLab
- 熱力學 · ThermoLab
- 傳熱與物態變化 · HeatLab
- 光學實驗台 · OpticsLab
- 振動與波 · WaveLab
- 電場與磁場 · FieldLab
- 著名戰役沙盤 · WarTable
- 疆域變遷 · HistoryAtlas