1 of 46

深度學習

Convolutional Neural Network

1

2 of 46

Convolution Neural Network

  • Max Pooling(最大池化)
  • Abstract(抽象化)
  • Convolution (卷積)
  • Fully Connectd�(全連接層)

2

3 of 46

最大池化(Max Pooling) 降低解析度-降低計算量

3

4 of 46

最大池化(Max Pooling) 降低解析度-降低計算量

4

5 of 46

抽象化(Abstract)

姓名

張三

李四

王五

國籍

X

Y

Z

身高

165

175

176

血型

A

O

B

興趣

閱讀

運動

電影

學業成績

80

75

90

游泳

100M

50M

400M

100M速度

13.5秒

14.2秒

18.3秒

挑選大隊接力選手

5

6 of 46

抽象化(Abstract)

姓名

張三

李四

王五

100M速度

13.5秒

14.2秒

18.3秒

入選標準

15秒

15秒

15秒

6

7 of 46

抽象化(Abstract)

姓名

張三

李四

王五

超越標準秒數

1.5秒

0.8秒

-3.3 秒

姓名

張三

李四

王五

超越標準秒數

1.5秒

0.8秒

0.0 秒

Activation Function

7

8 of 46

8

  • 腦科學家發表腦內傳遞模式
  • 人類用眼睛看影像時,不是看細節,而是看輪廓。
  • 資訊學家依據模型重新設計模式
  • 點->線->面->物件
  • 向人類學習

8

運作概念

9 of 46

9

猜猜我是誰?

https://www.bilibili.com/video/BV1At411i7JY

9

10 of 46

10

11 of 46

11

CNN

  • 在照片上連續移動窗格,分析邊緣,不停的比對是否與認識的物件具有相同特徵。
    • 卷積層(Convolutional Layer) - 主要作用是提取特徵。
    • 池化層(Max Pooling Layer) - 主要作用是下採樣(downsampling),卻不會損壞識別結果。
    • 全連接層(Fully Connected Layer) - 主要作用是分類。

11

12 of 46

12

13 of 46

13

邊緣捲積(濾鏡->捲積核) 亂選很多個,再挑好的

  • -1*8+8=0:意指當鄰近像素顏色一致時,會得到黑色

  • 資料來源:https://t.ly/A6zJy

13

14 of 46

14

銳化捲積

  • 四周向內增強

14

15 of 46

卷積運算:擷取局部特徵

15

16 of 46

卷積運算:擷取局部特徵

  • 濾波器(Filter 、Kernel、kernel map)常用大小為 3 x 3 、5x5、7x7
  • 卷積(convolution):濾波器裡頭的每個數字與圖片對應位置的像素值相乘,把所有相乘結果加起來
  • CNN CNN 動畫說明CNN 動畫說明-1

16

17 of 46

卷積運算:

17

參考資料:Google Tensorflow 2.0 人工智慧

深度學習實作開發 黃士嘉、林邑撰 博碩

18 of 46

卷積運算:Padding

18

參考資料:Google Tensorflow 2.0 人工智慧

深度學習實作開發 黃士嘉、林邑撰 博碩

19 of 46

卷積運算:

19

參考資料:Google Tensorflow 2.0 人工智慧

深度學習實作開發 黃士嘉、林邑撰 博碩

20 of 46

卷積運算:Stride = 2

20

參考資料:Google Tensorflow 2.0 人工智慧

深度學習實作開發 黃士嘉、林邑撰 博碩

21 of 46

卷積運算:多個 channels 與多個Kernels

21

參考資料:Google Tensorflow 2.0 人工智慧

深度學習實作開發 黃士嘉、林邑撰 博碩

22 of 46

卷積運算:多個 channels 與多個Kernels

22

參考資料:Google Tensorflow 2.0 人工智慧

深度學習實作開發 黃士嘉、林邑撰 博碩

23 of 46

卷積層參數量計算

Parameter =(Inputchannel x Kernelheight x Kernelwidth + Bias) x Kernelnumbers

Inputchannel : 輸入影像深度

x Kernelheight : 卷積核高度

x Kernelwidth : 卷積核寬度

Kernelnumbers : 卷積核數量

Bais : 有 bais 則為1,無則為 0

Parameterss = (3x3x3+0)x2 = 54

23

24 of 46

卷積運算:

多個 channels

與多個Kernels

24

25 of 46

卷積運算:

多個 channels

與多個Kernels

25

26 of 46

26

1

2

16

2

4

6

8

1

3

5

7

9

1

2

3

4

5

6

7

8

9

1

3

5

7

9

2

4

6

8

1

4

7

2

5

8

3

6

9

28x28

14x14

28x28

28x28

14x14

14x14

Convolution

Max

pooling

Filter(kernel map)

1

2

16

Convo

Pooling

Filter(kernel map)

7x7

7x7

1

784

Flattern

1

2

3

10

1

2

16

14x14

14x14

14x14

+

14x14

7x7

27 of 46

卷積運算:擷取局部特徵

  • 為何要用小小的濾波器擷取圖片特徵,而不是使用尺寸跟圖片大小一樣的濾波器呢?
  • 每張圖片大小不一,就像我無法預測你上傳的圖的大小一樣
  • 很多圖片特徵並不跟原圖大小相同,而是更小的 pattern
  • 同樣 pattern 可能重複出現在不同圖中的不同位置

27

28 of 46

CNN 特徵擷取

  • CNN 不但自己學到一些有用的濾波器
  • 當深度越深萃取出來的特徵越抽象
  • 任何類型的神經網路本質上都是一個映射函數。
  • 在內部進行一連串特定的數據轉換步驟,想辦法將給定的輸入數據轉換成指定的輸出形式。

28

29 of 46

Convolution + Max Pooling🡪 Abstract

29

30 of 46

Convolution + Max Pooling🡪 Abstract

30

31 of 46

Convolution + Max Pooling

31

32 of 46

CNN 特徵擷取

32

33 of 46

CNN-Case 1辨識貓(抽象化)

CNN 神經網路

解析度:150x150

33

34 of 46

CNN 參數計算

34

35 of 46

CNN-Case 1辨識貓(抽象化)

第一層CNN

32 個過濾器

32 張特徵照片

32 張縮小1/4

特徵照片

35

36 of 46

CNN-Case 1辨識貓(抽象化)

第二層CNN

64 個過濾器

64 張特徵照片

64 張縮小1/4

特徵照片

36

37 of 46

CNN-Case 1辨識貓(抽象化)

第三層CNN

128 個過濾器

128 張特徵照片

37

38 of 46

CNN-Case 1辨識貓(抽象化)

128 張縮小1/4

特徵照片

38

39 of 46

CNN-Case 1辨識貓(抽象化)

第四層CNN

128 個過濾器

128 張特徵照片

39

40 of 46

CNN-Case 1辨識貓(抽象化)

128 張縮小1/4

特徵照片

抽象化

40

41 of 46

CNN-Case 2-特徵萃取

  • 第一層基本線條
  • 第二層響應角落和其他的邊緣/顏色資訊
  • 第三層具有更復雜的不變性,捕獲相似的紋理
  • 第四層顯示了顯著的變化,並且更加類別具體化,
  • 第五層則顯示了具有顯著姿態變化的整個物件。

41

42 of 46

CNN-Case 2-特徵萃取

42

43 of 46

CNN-Case 2-特徵萃取

43

44 of 46

CNN

44

45 of 46

結語

  • 卷積層可以捕捉特徵
  • 相對全連接層參數量較小,計算量也小
  • 透過max pooling 將特徵抽象化
  • 透過全連接層進行分類投票
  • CNN 用於圖片辨識效果好

45

46 of 46

補充資料:手寫數字分類-簡化版

  • 數字照片解析度28x28,資料集55000張
  • 分成「 8 」 與「不是 8 」
  • 單個神經元,識別率達 90%
  • 識別 0-9 這 10 個數字,只需 10 個神經元就能達 92% 的準確度。�

46