{"notes":[{"id":"classic-cnns/nin","category":"classic-cnns","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"NiN","subtitle":"一乘一的伏筆","author":"Z. Yuan","paperDate":"2013-12-16","publishedOn":"2025-09-24","world":"external/network-in-network","paperTitle":"Network In Network","paperUrl":"https://arxiv.org/abs/1312.4400","bibliography":{"title":"Network In Network","authors":["Min Lin","Qiang Chen","Shuicheng Yan"],"url":"https://arxiv.org/abs/1312.4400","pdfUrl":"https://arxiv.org/pdf/1312.4400v3","codeUrl":null,"preprint":{"id":"1312.4400","submittedOn":"2013-12-16","url":"https://arxiv.org/abs/1312.4400"},"publication":null,"citation":"@misc{classiccnnsnin2013,\n  title = {{Network In Network}},\n  author = {Min Lin and Qiang Chen and Shuicheng Yan},\n  year = {2013},\n  eprint = {1312.4400},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1312.4400}\n}\n","citationPath":"/content/papers/citations/classic-cnns/nin.db58639ac47c.bib"},"thumbnail":{"src":"/content/papers/assets/8024fc245eb852a2c0cd34b59c18c680b92766c33d621b934dbf102c1cacda13.png","width":896,"height":330},"locale":"zh-hant","path":"/content/papers/zh-hant/classic-cnns/nin.9892cb25b0b4.md","headings":[{"id":"定義問題","text":"定義問題","depth":2},{"id":"解決問題","text":"解決問題","depth":2},{"id":"在每個區塊上跑一個小-mlp","text":"在每個區塊上跑一個小 MLP","depth":3},{"id":"把全連接層換成平均","text":"把全連接層換成平均","depth":3},{"id":"整個網路","text":"整個網路","depth":3},{"id":"討論","text":"討論","depth":2},{"id":"cifar-10-與-cifar-100","text":"CIFAR-10 與 CIFAR-100","depth":3},{"id":"svhn-與-mnist","text":"SVHN 與 MNIST","depth":3},{"id":"全域平均池化真的有正則化效果嗎","text":"全域平均池化真的有正則化效果嗎？","depth":3},{"id":"最後一層真的變成信心圖了嗎","text":"最後一層真的變成信心圖了嗎？","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"classic-cnns/inception-v1","relation":"referenced","topic":""},{"id":"classic-cnns/resnet","relation":"referenced","topic":""},{"id":"classic-cnns/cam","relation":"referenced","topic":""}]},{"id":"classic-cnns/inception-v1","category":"classic-cnns","legacyPath":"classic-cnns/1409-inception-v1","legacySlug":"1409-inception-v1","legacyPaths":[],"title":"GoogLeNet","subtitle":"或叫做 Inception-V1","author":"Z. Yuan","paperDate":"2014-09-17","publishedOn":"2024-09-22","paperTitle":"Going Deeper with Convolutions","paperUrl":"https://arxiv.org/abs/1409.4842","bibliography":{"title":"Going Deeper with Convolutions","authors":["Christian Szegedy","Wei Liu","Yangqing Jia","Pierre Sermanet","Scott Reed","Dragomir Anguelov","Dumitru Erhan","Vincent Vanhoucke","Andrew Rabinovich"],"url":"https://arxiv.org/abs/1409.4842","pdfUrl":"https://arxiv.org/pdf/1409.4842","codeUrl":null,"preprint":{"id":"1409.4842","submittedOn":"2014-09-17","url":"https://arxiv.org/abs/1409.4842"},"publication":{"venue":"CVPR","year":2015,"kind":"conference","url":"https://doi.org/10.1109/cvpr.2015.7298594"},"citation":"@misc{classiccnnsinceptionv12014,\n  title = {{Going Deeper with Convolutions}},\n  author = {Christian Szegedy and Wei Liu and Yangqing Jia and Pierre Sermanet and Scott Reed and Dragomir Anguelov and Dumitru Erhan and Vincent Vanhoucke and Andrew Rabinovich},\n  year = {2014},\n  eprint = {1409.4842},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1409.4842}\n}\n","citationPath":"/content/papers/citations/classic-cnns/inception-v1.3d20e0e32bcd.bib"},"thumbnail":{"src":"/content/papers/assets/254b970b1374c24267b60c2d684338760e9ba8b10dad761a5fa15f1bb8bcf6ef.jpg","width":1330,"height":394},"locale":"zh-hant","path":"/content/papers/zh-hant/classic-cnns/inception-v1.91efdf81ddcf.md","headings":[{"id":"解決問題","text":"解決問題","depth":2},{"id":"inception-模塊","text":"Inception 模塊","depth":3},{"id":"參數配置","text":"參數配置","depth":3},{"id":"模型架構","text":"模型架構","depth":3},{"id":"討論","text":"討論","depth":2},{"id":"在-ilsvrc-2014-上的表現","text":"在 ILSVRC 2014 上的表現","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"classic-cnns/resnext","relation":"comparison","topic":"分支、分組卷積與特徵重用"},{"id":"classic-cnns/cspnet","relation":"comparison","topic":"分支、分組卷積與特徵重用"}]},{"id":"classic-cnns/resnet","category":"classic-cnns","legacyPath":"classic-cnns/1512-resnet","legacySlug":"1512-resnet","legacyPaths":[],"title":"ResNet","subtitle":"卷積網路 100 層","author":"Z. Yuan","paperDate":"2015-12-10","publishedOn":"2024-08-08","paperTitle":"Deep Residual Learning for Image Recognition","paperUrl":"https://arxiv.org/abs/1512.03385","bibliography":{"title":"Deep Residual Learning for Image Recognition","authors":["Kaiming He","Xiangyu Zhang","Shaoqing Ren","Jian Sun"],"url":"https://arxiv.org/abs/1512.03385","pdfUrl":"https://arxiv.org/pdf/1512.03385","codeUrl":null,"preprint":{"id":"1512.03385","submittedOn":"2015-12-10","url":"https://arxiv.org/abs/1512.03385"},"publication":{"venue":"CVPR","year":2016,"kind":"conference","url":"https://doi.org/10.1109/cvpr.2016.90"},"citation":"@misc{classiccnnsresnet2015,\n  title = {{Deep Residual Learning for Image Recognition}},\n  author = {Kaiming He and Xiangyu Zhang and Shaoqing Ren and Jian Sun},\n  year = {2015},\n  eprint = {1512.03385},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1512.03385}\n}\n","citationPath":"/content/papers/citations/classic-cnns/resnet.cf4014e8baae.bib"},"thumbnail":{"src":"/content/papers/assets/b8fe87fe757249ea6d7bb667fef3196754b9f80e28bf842a69b540ca94585d08.jpg","width":1224,"height":408},"locale":"zh-hant","path":"/content/papers/zh-hant/classic-cnns/resnet.859f62e9e37d.md","headings":[{"id":"定義問題","text":"定義問題","depth":2},{"id":"解決問題","text":"解決問題","depth":2},{"id":"什麼是殘差","text":"什麼是殘差？","depth":3},{"id":"殘差學習","text":"殘差學習","depth":3},{"id":"殘差模塊","text":"殘差模塊","depth":3},{"id":"網路架構","text":"網路架構","depth":3},{"id":"參數配置","text":"參數配置","depth":3},{"id":"討論","text":"討論","depth":2},{"id":"resnet-18-vs-resnet-34","text":"ResNet-18 vs ResNet-34","depth":3},{"id":"更深的瓶頸架構","text":"更深的瓶頸架構","depth":3},{"id":"在-imagenet-上的表現","text":"在 ImageNet 上的表現","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"classic-cnns/vgg","relation":"background","topic":"如何訓練更深的卷積網路"},{"id":"classic-cnns/densenet","relation":"next","topic":"如何訓練更深的卷積網路"}]},{"id":"classic-cnns/cam","category":"classic-cnns","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"CAM","subtitle":"模型在看哪裡？","author":"Z. Yuan","paperDate":"2015-12-14","publishedOn":"2026-01-05","world":"external/cam","paperTitle":"Learning Deep Features for Discriminative Localization","paperUrl":"https://arxiv.org/abs/1512.04150","bibliography":{"title":"Learning Deep Features for Discriminative Localization","authors":["Bolei Zhou","Aditya Khosla","Agata Lapedriza","Aude Oliva","Antonio Torralba"],"url":"https://arxiv.org/abs/1512.04150","pdfUrl":"https://arxiv.org/pdf/1512.04150v1","codeUrl":null,"preprint":{"id":"1512.04150","submittedOn":"2015-12-14","url":"https://arxiv.org/abs/1512.04150"},"publication":null,"citation":"@misc{classiccnnscam2015,\n  title = {{Learning Deep Features for Discriminative Localization}},\n  author = {Bolei Zhou and Aditya Khosla and Agata Lapedriza and Aude Oliva and Antonio Torralba},\n  year = {2015},\n  eprint = {1512.04150},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1512.04150}\n}\n","citationPath":"/content/papers/citations/classic-cnns/cam.2ce837236f9d.bib"},"thumbnail":{"src":"/content/papers/assets/c3c6af7f1943634784331ca03a55efc3e68a7714d936d953a14f11b0828d9cf8.png","width":1372,"height":615},"locale":"zh-hant","path":"/content/papers/zh-hant/classic-cnns/cam.b0cd5bb57b0b.md","headings":[{"id":"定義問題","text":"定義問題","depth":2},{"id":"解決問題","text":"解決問題","depth":2},{"id":"把分數拆回空間","text":"把分數拆回空間","depth":3},{"id":"平均和最大差在哪裡","text":"平均和最大，差在哪裡","depth":3},{"id":"讓最後一層的解析度高一點","text":"讓最後一層的解析度高一點","depth":3},{"id":"從熱力圖到框","text":"從熱力圖到框","depth":3},{"id":"討論","text":"討論","depth":2},{"id":"拿掉全連接層分類變差多少","text":"拿掉全連接層，分類變差多少？","depth":3},{"id":"弱監督定位","text":"弱監督定位","depth":3},{"id":"換到其他任務","text":"換到其他任務","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"classic-cnns/nin","relation":"referenced","topic":""},{"id":"classic-cnns/zfnet","relation":"referenced","topic":""},{"id":"classic-cnns/resnet","relation":"referenced","topic":""}]}],"text":"2013 年的 ImageNet 分類賽，新加坡國立大學的隊伍拿下第二名，成員中有 Min Lin 與 Qiang Chen。\n\n同年 12 月，兩人和 Shuicheng Yan 放出這篇論文，後來發表在 ICLR 2014。論文本身沒有 ImageNet 的實驗，只在 CIFAR、SVHN、MNIST 這些小資料集上比較；它留下來的兩個零件，卻在之後幾年的卷積網路裡到處可見：$1\\times1$ 卷積，以及全域平均池化。\n\n這兩個零件都來自同一個疑問：卷積網路裡的濾波器，是不是太簡單了？\n\n## 定義問題\n\n先看一般的卷積層在做什麼。以 ReLU 為例，第 $k$ 張特徵圖在位置 $(i, j)$ 的輸出是：\n\n$$\nf_{i,j,k} = \\max(w_k^T x_{i,j},\\ 0)\n$$\n\n$x_{i,j}$ 是以 $(i, j)$ 為中心的輸入區塊，$w_k$ 是第 $k$ 個濾波器。換句話說，每個濾波器對區塊做一次線性內積，再過一次 ReLU。作者把它稱為廣義線性模型（GLM）。\n\n線性模型能分開的東西有限。假設某個濾波器想偵測「斜的邊緣」，而斜邊緣在不同光線、不同粗細下的樣子剛好都落在一個超平面的同一側，那一個濾波器就夠了。可是同一個概念的各種樣貌，常常散在彎曲的流形上，一個超平面切不乾淨。\n\n一般的卷積網路怎麼處理？多放一些濾波器，每個負責一種樣貌。作者指出這會把負擔推給下一層：下一層得考慮上一層所有樣貌的組合，才能拼出更高層的概念。\n\n當時剛發表的 maxout 網路往前走了一步。它在多張仿射特徵圖之間取最大值：\n\n$$\nf_{i,j,k} = \\max_m\\,(w_{k_m}^T x_{i,j})\n$$\n\n幾個線性函數取最大，會得到一個分段線性的凸函數，因此能分開落在凸集合裡的概念。但作者認為「概念落在凸集合裡」仍然是一個不一定成立的假設。\n\n那能不能在每個局部區塊上，放一個沒有這種假設、能逼近一般函數的模型？\n\n卷積網路的尾端還有另一個問題。最後幾層通常是全連接層，作者覺得它們像一個黑盒子，很難說清楚類別的資訊怎麼傳回卷積層；全連接層也容易過擬合，得靠 dropout 撐著。\n\n## 解決問題\n\n### 在每個區塊上跑一個小 MLP\n\n作者的答案是把線性濾波器換成一個小型的多層感知器（MLP），一樣滑過輸入的每個位置，所有位置共用同一組權重。這種層叫做 mlpconv：\n\n[![左右兩個示意圖。(a) 線性卷積層：輸入的局部區塊經過一個線性濾波器，得到輸出特徵圖上的一個點。(b) mlpconv 層：同一個局部區塊先經過兩層全連接的小網路，再得到輸出上的一個點](/content/papers/assets/8024fc245eb852a2c0cd34b59c18c680b92766c33d621b934dbf102c1cacda13.png)](/content/papers/assets/8024fc245eb852a2c0cd34b59c18c680b92766c33d621b934dbf102c1cacda13.png)\n\n*原論文 Figure 1，取自 [**v3 PDF 第 2 頁**](https://arxiv.org/pdf/1312.4400v3#page=2)。(a) 線性卷積層；(b) mlpconv 層，區塊裡多了一個小型 MLP。*\n\nMLP 有 $n$ 層時，mlpconv 的計算是：\n\n$$\n\\begin{aligned}\nf^{1}_{i,j,k_1} &= \\max\\left({w^{1}_{k_1}}^T x_{i,j} + b_{k_1},\\ 0\\right) \\\\\n&\\ \\ \\vdots \\\\\nf^{n}_{i,j,k_n} &= \\max\\left({w^{n}_{k_n}}^T f^{n-1}_{i,j} + b_{k_n},\\ 0\\right)\n\\end{aligned}\n$$\n\n第一行和一般的卷積完全一樣：對整個區塊 $x_{i,j}$ 做內積。從第二行開始，輸入換成了上一層在**同一個位置** $(i, j)$ 的輸出 $f^{n-1}_{i,j}$，也就是只看這個位置所有通道的值。\n\n只看同一個位置、把所有通道加權組合起來，這件事正是 $1\\times1$ 卷積。作者也直接寫出這個等價關係：mlpconv 等於一層普通卷積，後面接幾層 $1\\times1$ 卷積。\n\n我們用 PyTorch 驗證一次。輸入是 2 個通道、$5\\times5$ 的特徵圖；小 MLP 吃進每個 $3\\times3$ 區塊攤平後的 $2\\times3\\times3=18$ 個數字，經過 18 → 4 → 3 兩層：\n\n```python\nimport torch\nimport torch.nn.functional as F\n\ntorch.manual_seed(0)\nx = torch.randn(1, 2, 5, 5)            # 1 張圖、2 個通道、5×5\n\n# 小型 MLP：每個 3×3 區塊攤平成 2×3×3 = 18 個數字，經過 18 → 4 → 3\nw1, b1 = torch.randn(4, 18), torch.randn(4)\nw2, b2 = torch.randn(3, 4), torch.randn(3)\n\n# 做法一：把 MLP 滑過每個 3×3 區塊\npatches = F.unfold(x, kernel_size=3)            # [1, 18, 9]：9 個位置，每個 18 維\nh = F.relu(w1 @ patches + b1[:, None])          # [1, 4, 9]\ny_mlp = F.relu(w2 @ h + b2[:, None]).reshape(1, 3, 3, 3)\n\n# 做法二：3×3 卷積，再接 1×1 卷積\nh = F.relu(F.conv2d(x, w1.reshape(4, 2, 3, 3), b1))\ny_conv = F.relu(F.conv2d(h, w2.reshape(3, 4, 1, 1), b2))\n\nprint(y_mlp.shape, y_conv.shape)\nprint(\"最大差異：\", (y_mlp - y_conv).abs().max().item())\n```\n\n```text\ntorch.Size([1, 3, 3, 3]) torch.Size([1, 3, 3, 3])\n最大差異： 4.76837158203125e-07\n```\n\n兩種做法的輸出形狀相同，差異只有浮點誤差。\n\n做法一比較貼近作者的想法：每個位置都有一個小網路在判斷「這裡是不是某個概念」。做法二則是實作上的樣子：一層 $3\\times3$ 卷積先看整個區塊，之後的 $1\\times1$ 卷積只在每個位置上混合通道。作者也從通道的角度描述它：每一層 $1\\times1$ 卷積都是一次「跨通道、帶參數的池化」，把上一層的特徵圖重新加權組合，再過 ReLU，一層接一層。\n\n\n> [!TIP]\n> \n> 後來的 GoogLeNet 在 Inception 模組裡大量使用 $1\\times1$ 卷積，主要用途卻換成了降低通道數，讓後面的 $3\\times3$、$5\\times5$ 卷積便宜一點。\n> \n> - **[[14.09] GoogLeNet：或叫做 Inception-V1](/blog/papers/classic-cnns/inception-v1)**\n\n\n和 maxout 比，mlpconv 的差別在於：maxout 只能逼近凸函數，mlpconv 用的 MLP 是通用的函數逼近器，可以處理更多種形狀的概念分布。作者選 MLP 而不是另一種通用逼近器徑向基函數網路，理由也很實際：MLP 可以和卷積網路一起用反向傳播訓練，而且本身就能做深。\n\n### 把全連接層換成平均\n\n第二個零件處理網路的尾端。\n\n一般的卷積網路會把最後一層卷積的特徵圖攤平，送進幾層全連接，再接 softmax。NiN 改成這樣：讓最後一個 mlpconv 層輸出的特徵圖數量**剛好等於類別數**，每張特徵圖取空間平均，得到的向量直接送進 softmax。這叫做全域平均池化（global average pooling，GAP）。\n\n以 CIFAR-10 為例，有 10 個類別，最後一層就輸出 10 張特徵圖：\n\n```python\nimport torch\n\ntorch.manual_seed(0)\nfeature_maps = torch.randn(1, 10, 8, 8)    # 最後一層：10 個類別各一張 8×8 特徵圖\n\nlogits = feature_maps.mean(dim=(2, 3))      # 全域平均池化\nprint(logits.shape)\n\nfc_params = 10 * 8 * 8 * 10 + 10            # 若改接全連接層到 10 類\nprint(\"全連接層參數：\", fc_params, \"，全域平均池化參數：0\")\n```\n\n```text\ntorch.Size([1, 10])\n全連接層參數： 6410 ，全域平均池化參數：0\n```\n\n這裡的 $8\\times8$ 只是示意的大小。小網路的差距看起來不大，換到 AlexNet 就很明顯：它最後三層全連接（$9216\\to4096\\to4096\\to1000$），光權重就有 $9216\\times4096+4096\\times4096+4096\\times1000 = 58{,}621{,}952$ 個。\n\n作者列了 GAP 的三個好處：\n\n1. **沒有參數**，這一層本身不會過擬合。\n2. **每張特徵圖對應一個類別**，可以直接當成這個類別的信心圖來看，比全連接層好解釋。\n3. **把空間資訊加總掉**，對輸入的平移比較不敏感。\n\n第 2 點有個前提：最後一層要真的學得出「這張圖代表貓」的特徵圖。作者認為這要靠 mlpconv 更強的局部建模；用普通的線性卷積，這個要求可能太嚴格。後面的實驗會看到這一點。\n\n### 整個網路\n\n[![NiN 的整體架構：三個 mlpconv 層依序串接，每層內含一個小型多層感知器，最後一層的多張特徵圖經過全域平均池化，接到輸出的類別節點](/content/papers/assets/d94aa487d35fbfcdda30993d49c170efa0980e5c28d2a718b75659cd77164e3e.png)](/content/papers/assets/d94aa487d35fbfcdda30993d49c170efa0980e5c28d2a718b75659cd77164e3e.png)\n\n*原論文 Figure 2，取自 [**v3 PDF 第 4 頁**](https://arxiv.org/pdf/1312.4400v3#page=4)。本文實驗的 NiN 都是三層 mlpconv 加一層全域平均池化。*\n\n論文實驗用的 NiN 疊了三層 mlpconv，每層裡面是三層的感知器，最後接全域平均池化。每個 mlpconv 層後面接一個步幅 2 的最大池化；除了最後一層，mlpconv 的輸出都加了 dropout，另外再加 weight decay。各層的詳細參數，作者放在補充材料。\n\n## 討論\n\n作者在四個資料集上評估：CIFAR-10、CIFAR-100、SVHN、MNIST。資料前處理和訓練、驗證集的切法都照 maxout 論文；實作用的是 Alex Krizhevsky 的 cuda-convnet。\n\n### CIFAR-10 與 CIFAR-100\n\nCIFAR-10 是 10 類、$32\\times32$ 的彩色影像，5 萬張訓練、1 萬張測試。作者讓每個 mlpconv 層的特徵圖數量和 maxout 網路相同，只用驗證集調了兩個超參數：局部感受野大小與 weight decay。\n\n| 方法 | 測試錯誤率 |\n| --- | ---: |\n| Conv. maxout + Dropout | 11.68% |\n| **NIN + Dropout** | **10.41%** |\n| Conv. maxout + Dropout + 資料增強 | 9.38% |\n| DropConnect + 12 個網路 + 資料增強 | 9.32% |\n| **NIN + Dropout + 資料增強** | **8.81%** |\n\n*表：摘自原論文 Table 1。資料增強指平移與水平翻轉。*\n\n不用資料增強時，NIN 比 maxout 少了 1.27 個百分點；加上平移與水平翻轉，8.81% 也比用了 12 個網路的 DropConnect 低。\n\ndropout 的作用不小。作者比較了 mlpconv 層之間有沒有 dropout：拿掉 dropout，測試錯誤率是 14.51%，加上之後降到 10.41%，作者說相對降幅超過 20%。\n\nCIFAR-100 的影像格式相同，但有 100 類，每類的影像只有 CIFAR-10 的十分之一。作者沒有另外調參數，只把最後一層改成輸出 100 張特徵圖，測試錯誤率 35.68%，比當時沒用資料增強的最好結果（36.85%）低了一個多百分點。\n\n### SVHN 與 MNIST\n\nSVHN 是門牌號碼的數字辨識，NIN 的錯誤率是 2.35%，比 maxout 的 2.47% 低。不過同一張表裡，Multi-digit Number Recognition 是 2.16%，DropConnect 是 1.94%，都比 NIN 好。\n\nMNIST 上，NIN 是 0.47%，maxout 是 0.45%。作者的說法是 MNIST 已經被調到非常低的錯誤率。\n\n### 全域平均池化真的有正則化效果嗎？\n\n為了單獨看 GAP 的作用，作者把它換回全連接層，其他部分不動，在 CIFAR-10 上比較：\n\n| 頂層 | 測試錯誤率 |\n| --- | ---: |\n| mlpconv + 全連接 | 11.59% |\n| mlpconv + 全連接 + Dropout | 10.88% |\n| mlpconv + 全域平均池化 | 10.41% |\n\n*表：摘自原論文 Table 5。*\n\n沒有 dropout 的全連接層最差，加上 dropout 好一些，GAP 最好。\n\n作者接著問：普通的卷積網路換上 GAP，也有一樣的效果嗎？他們拿 Hinton 等人 dropout 論文中的網路（三層卷積加一層局部連接）來試。全連接層不加 dropout 是 17.56%，加 dropout 是 15.99%，換成 GAP 是 16.46%：比不加 dropout 好了約一個百分點，但輸給 dropout。作者的解釋就是前面那個前提：要線性卷積加 ReLU 直接學出各類別的信心圖，要求可能太高。\n\n### 最後一層真的變成信心圖了嗎？\n\n[![兩組 10 乘 10 的格子。每一列是一張 CIFAR-10 測試影像，左邊是原圖，右邊依序是最後一層 10 個類別的特徵圖；對角線上被紅框標出的，是影像真實類別對應的特徵圖，大多最亮，亮點的位置和原圖中物體的位置大致相同](/content/papers/assets/c0032c1fba54d5052a18867e6bd6347143d3ba47c5cf4b353a61516107a0cf65.png)](/content/papers/assets/c0032c1fba54d5052a18867e6bd6347143d3ba47c5cf4b353a61516107a0cf65.png)\n\n*原論文 Figure 4，取自 [**v3 PDF 第 9 頁**](https://arxiv.org/pdf/1312.4400v3#page=9)。最後一個 mlpconv 層的特徵圖，只顯示前 10% 的激活；類別依序是飛機、汽車、鳥、貓、鹿、狗、青蛙、馬、船、卡車，紅框是影像的真實類別。左右兩組只是不同的範例。*\n\n每一列是一張測試影像和它在 10 張特徵圖上的反應。紅框是真實類別那一張，大多是整列最亮的。GAP 本來就逼著它這樣，比較值得看的是另一件事：真實類別那張特徵圖上，最亮的地方大致落在原圖中物體所在的位置；作者特別提到汽車這種結構清楚的物體。\n\n這些特徵圖只用類別標籤訓練，沒有看過任何框。作者在結論提到，這讓用 NIN 做物體偵測成為可能。\n\n## 結論\n\nNiN 的兩個零件是一起設計的：mlpconv 讓每個局部區塊有更強的模型，GAP 才有辦法要求最後一層的特徵圖直接對應類別。實驗上，CIFAR-10、CIFAR-100 的成績和 GAP 的比較都支持這個設計；在普通卷積網路上，GAP 單獨使用的效果就打了折扣。\n\nNiN 在 ImageNet 上也有成績：根據 ILSVRC 的整理論文，2014 年偵測賽（只用提供資料的組別）的冠軍 NUS，就是在 R-CNN 框架裡用了 network-in-network。\n\nNiN 的兩個零件，後來都被拆開來用：$1\\times1$ 卷積在 GoogLeNet 和 ResNet 的瓶頸結構裡負責調整通道數，全域平均池化負責收尾，只是多半後面再接一層全連接，不再要求每張特徵圖對應一個類別。下次打開一個分類網路的程式碼，最後那行 `AdaptiveAvgPool2d(1)` 的源頭，就是這篇論文。\n\n\n> [!TIP]\n> \n> ResNet 的瓶頸區塊用 $1\\times1$ 卷積先降後升通道，網路尾端則是全域平均池化接一層全連接：\n> \n> - **[[15.12] ResNet：卷積網路 100 層](/blog/papers/classic-cnns/resnet)**\n\n\n至於「最後一層特徵圖看得出物體在哪」這件事，要到 [CAM](/blog/papers/classic-cnns/cam) 才被認真拿來用，我們在那篇再接著看。\n","imageSizes":{"/content/papers/assets/8024fc245eb852a2c0cd34b59c18c680b92766c33d621b934dbf102c1cacda13.png":{"width":896,"height":330},"/content/papers/assets/d94aa487d35fbfcdda30993d49c170efa0980e5c28d2a718b75659cd77164e3e.png":{"width":992,"height":296},"/content/papers/assets/c0032c1fba54d5052a18867e6bd6347143d3ba47c5cf4b353a61516107a0cf65.png":{"width":1078,"height":528}}}
