1980 - 福島新認知機(卷積神經網路的遠祖)#
案件摘要#
1980 年,日本的 福島邦彥(Kunihiko Fukushima, 1936– ) 發表 Neocognitron(新認知機)——史上第一個卷積神經網路架構:
在感知機寒冬(見「1969-明斯基感知機寒冬.md」)最深的時刻, 福島用生物學的證據,造出了一台模仿視覺皮層的多層網路: - S 層(Simple cells):局部感受野 + 捲積核——偵測邊緣與線段; - C 層(Complex cells):池化——特徵位置偏一點也能抓到(平移不變性); - 層層堆疊:邊緣 → 線段 → 角落 → 形狀 → 整體——由簡到繁的特徵階層。
寒冬中沒有人理會這台機器——但它是一切 CNN 的遠祖: LeCun 於 1989 年的手寫數字辨識(見「人工智慧/1989-LeCunCNN手寫辨識.md」) 公開承認受 Neocognitron 啟發。
前因 -- 為什麼會有這個案子#
- 感知機寒冬(1969): Minsky 與 Papert 的《Perceptrons》證明單層無法解 XOR(見「1969-明斯基感知機寒冬.md」), 資金斷絕、人才離場——多層網路成了禁區。 但福島問了一個反向的問題:
- Hubel 與 Wiesel 的視覺皮層研究(1959–1962): David Hubel 與 Torsten Wiesel 在貓的視覺皮層植入電極, 發現兩種細胞(1981 年諾貝爾生理醫學獎,見「生理醫學史/」):
- 簡單細胞:感受野狹小——亮區與暗區並排(邊緣偵測器);
- 複雜細胞:接受簡單細胞的輸入、取最大值——平移不變;
- 階層結構:V1 → V2 → V4 → IT——由簡到繁的特徵階層。
- 福島的早期工作(Cognitron, 1975): 福島在 1975 年先發表 Cognitron(認知機)—— 一個自組織的多層網路,但沒有平移不變性。 1980 年的 Neocognitron 加入 S 層 / C 層的交替結構—— 生物學證據 + 工程實現的完美結合。
- 沒有反向傳播的訓練: 福島的 Neocognitron 用自組織學習(無監督的權重競爭)—— 不是 1986 年的反向傳播(見「人工智慧/1986-反向傳播演算法.md」)。 這是它「不夠實用」的原因,也是它「超前時代」的證據。
線索與推理 -- 數學式、程式、理論#
第一條線索:卷積(局部感受野的數學)#
S 層的核心運算是二維卷積。輸入影像 \(I\) 、捲積核 \(K\) (感受野的權重):
- \(K\) 是一個小小的核(如 \(3 \times 3\) )——只看局部:
- 同一個核滑過整張影像(權重共享)—— 在哪裡出現的邊緣都抓得到;
- 不同核 = 不同特徵(垂直邊緣、水平邊緣、斜線……)—— S 層有多張特徵圖(feature maps)。 福島的 S 層輸出再經非線性:
其中激發性輸入( excitatory,來自前一層 C)與抑制性輸入(inhibitory)相互競爭。
第二條線索:池化與平移不變性#
C 層的核心運算是池化(pooling):
其中 \(R(i, j)\) 是以 \((i, j)\) 為中心的局部區域(如 \(2 \times 2\) )。 平移不變性的證明(直覺版): 若特徵在影像中偏移 1 格,卷積輸出的峰值也偏移 1 格—— 但池化在 \(2 \times 2\) 區域內取最大值,峰值仍在同一格被抓到:
這正是 Hubel 與 Wiesel 的複雜細胞: 簡單細胞的輸出匯聚、取最大——生物與機器的同構。
第三條線索:特徵階層(由簡到繁)#
Neocognitron 的結構是 S 層與 C 層的交替堆疊:
每升一層: - 感受野變大: \(3 \times 3 \to 5 \times 5 \to 7 \times 7 \cdots\) ; - 特徵變抽象:邊緣 → 線段 → 角落 → 形狀 → 整體; - 對平移與形變越不敏感。
這是 2012 年深度學習革命的理論預言 (見「人工智慧/2012-AlexNetImageNet革命.md」)—— 早了三十二年。
Python:純 Python 實作小型 2D 卷積與 max pooling#
# 純 Python 實作:2D 卷積 + Max Pooling(Neocognitron 的核心運算)
I = [ # 6x6 輸入影像:一條垂直亮帶(數位視網膜的「光」)
[0, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 0],
[0, 0, 1, 1, 0, 0],
]
K = [ # 3x3 捲積核:垂直邊緣偵測器(簡單細胞 S 層的「感受野」)
[-1, 0, 1],
[-1, 0, 1],
[-1, 0, 1],
]
def conv2d(image, kernel):
"""有效卷積(valid convolution):核在影像上滑動,輸出 4x4 特徵圖"""
kh, kw = len(kernel), len(kernel[0])
oh, ow = len(image) - kh + 1, len(image[0]) - kw + 1
out = [[0] * ow for _ in range(oh)]
for i in range(oh):
for j in range(ow):
s = 0
for u in range(kh):
for v in range(kw):
s += image[i + u][j + v] * kernel[u][v]
out[i][j] = s
return out
def maxpool2d(feature, size=2):
"""max pooling:局部取最大值(複雜細胞 C 層——平移不變的關鍵)"""
oh, ow = len(feature) // size, len(feature[0]) // size
out = [[0] * ow for _ in range(oh)]
for i in range(oh):
for j in range(ow):
vals = [feature[i * size + u][j * size + v]
for u in range(size) for v in range(size)]
out[i][j] = max(vals)
return out
def show(m, title):
print(title)
for row in m:
print(" " + " ".join(f"{v:2d}" for v in row))
show(I, "輸入影像 6x6(垂直亮帶):")
show(K, "捲積核 3x3(垂直邊緣偵測):")
F = conv2d(I, K)
show(F, "\n卷積輸出 4x4 特徵圖(亮帶的左右邊緣現形):")
P = maxpool2d(F)
show(P, "\nMax pooling 2x2 輸出 2x2(平移不變的抽象特徵):")
print("\nNeocognitron 的流水線:影像 → S 層(卷積)→ C 層(池化)→ 下一層")
print("特徵圖壓縮:36 像素 → 16 特徵 → 4 特徵;邊緣位置改變 1 格,池化輸出仍相同")
輸入影像 6x6(垂直亮帶):
0 0 1 1 0 0
0 0 1 1 0 0
0 0 1 1 0 0
0 0 1 1 0 0
0 0 1 1 0 0
0 0 1 1 0 0
捲積核 3x3(垂直邊緣偵測):
-1 0 1
-1 0 1
-1 0 1
卷積輸出 4x4 特徵圖(亮帶的左右邊緣現形):
3 3 -3 -3
3 3 -3 -3
3 3 -3 -3
3 3 -3 -3
Max pooling 2x2 輸出 2x2(平移不變的抽象特徵):
3 -3
3 -3
Neocognitron 的流水線:影像 → S 層(卷積)→ C 層(池化)→ 下一層
特徵圖壓縮:36 像素 → 16 特徵 → 4 特徵;邊緣位置改變 1 格,池化輸出仍相同
結案 -- 後果與影響#
- CNN 的遠祖(1980 → 1989 → 1998):
LeCun 在 1989 年的論文中公開承認:他的卷積網路架構受 Neocognitron 啟發—— 加上反向傳播(1986)與梯度學習,福島的架構第一次能被端到端訓練。 LeCun 後來獲 2018 年圖靈獎(與 Hinton、Bengio)—— 獎章裡有福島的一份功勞。 - 平移不變性的工業實現: Neocognitron 的 S/C 交替結構成為一切 CNN 的標準配備:
- LeNet-5(1998):美國銀行手寫數字辨識系統(1998 年上線,讀取全國 10% 支票);
- AlexNet(2012):ImageNet 冠軍,深度學習革命(見「人工智慧/2012-AlexNetImageNet革命.md」);
- ResNet(2015):152 層的殘差網路——福島「特徵階層」的極致。
- 生物啟發的典範:
Neocognitron 是生物學啟發 AI 的最佳案例: - 簡單/複雜細胞 → 卷積/池化層; - 感受野階層 → 網路深度; - 1981 年 Hubel 與 Wiesel 獲諾貝爾生理醫學獎—— 福島把他們的發現變成了機器。 - 寒冬中的孤島(1980–1986): Neocognitron 發表時正值 AI 寒冬最深的時刻—— 沒有經費、沒有算力(福島用當時的電腦模擬一層要數小時)、 論文發表在日本的期刊上(英語世界長期忽略)。
火種沒有熄滅——它只是等到了自己的時代。 - 歷史定位:福島邦彥是 CNN 的遠祖、深度學習的先知—— 他在寒冬中造出了正確的架構,卻沒有等到正確的時代;
「深度」的意義,福島在 1980 年就懂了。
關鍵人物與文獻#
- K. Fukushima:Neocognitron: A Self-organizing Neural Network Model(1980);Cognitron(1975)——卷積架構的發明人。
- D. Hubel & T. Wiesel:視覺皮層的簡單/複雜細胞(1959–1962);1981 年諾貝爾生理醫學獎。
- Y. LeCun:Backpropagation Applied to Handwritten Zip Code Recognition(1989);LeNet-5(1998)——公開承認受 Neocognitron 啟發;2018 圖靈獎。
- F. Rosenblatt:感知機(1958)——單層的起點(見「1958-羅森布拉特感知機.md」)。
- M. Minsky & S. Papert:Perceptrons(1969)——寒冬的判決(見「1969-明斯基感知機寒冬.md」)。
- 相關案件:
1936-圖靈機.md、1969-明斯基感知機寒冬.md、1982-霍普菲爾德網路.md、人工智慧/1986-反向傳播演算法.md、人工智慧/1989-LeCunCNN手寫辨識.md、人工智慧/2012-AlexNetImageNet革命.md。