深度學習學習心得
第五篇


CNN
- 我們希望每個NUERAL都可以成為最小單位的分類器
- 使用DNN的時候,通常會需要太多的參數
- 所以使用CNN來減少參數
DNN:假設一張100x100的彩色照片 = 30000維
若每層nueral 有1000個,那參數就是30000x1000個
基本想法
- 一張圖不是全部的地方都有特徵
- 將一些不太重要的權重去掉來減少參數
- 減少參數:用一些我們已經知道的規則
- CNN模型結構比DNN結構還要簡單
重點1.Nueral
- 要找到輸入影像中的某些規則
往往不需要看整張影像
就可以找到規則(pattern)
- Ex. Find 鳥嘴不需要看整張圖
- 故得知每個nueral只要連接到部分網路
而非全部都要連接

重點2.減少分類器
- 某些pattern在不同訓練資料中
處在不同位置,不需要訓練2個
重複性的detector
- 一樣是舉鳥嘴的例子

重點3.Subsampling
- 子採樣可以有效降低參數數量
- 子採樣的方式通常採用maxpooling
- 當然不只maxpooling,還有其他的pooling
CNN進行流程與重點的關係
CNN流程:
input -> convolution -> maxpooling
->convolution -> maxpooling…
->flatten-> fully-connected ->output
- convolution -> maxpooling流程可以循環多次
- 重點1 & 重點2: convolution
- 重點3: maxpooling
Maxpooling(最大池化)

- 根據filter算出的feature map
我們可以再將它縮小成n個一組
- 這邊舉例用4個一組,然後4個裡面
選擇最大值代表(見下頁)
最大值代表

輸入大小變化

- input:6x6
- conv -> maxpooling
- output:2x2
- 參數真的有變少

Flatten
- feature map拉直 = DNN的input

做CNN時要注意input不再是一般向量
而是高維的向量
Next Lesson …
- CNN code review
tags: Deep learning
beginner
python
keras
tutorial
深度學習學習心得 第五篇
{"metaMigratedAt":"2023-06-15T05:46:28.127Z","metaMigratedFrom":"YAML","title":"深度學習學習心得-5","breaks":true,"disqus":"hackmd","contributors":"[{\"id\":\"6bb13895-9bc1-441a-8b8f-cc9578e3b5bc\",\"add\":5518,\"del\":3083}]"}