Download presentation
Presentation is loading. Please wait.
1
MNIST 手寫數字影像辨識
2
Keras MNIST 手寫數字資料集 Training data : (60000,28,28)
Training label: (60000,) Test data : (10000, 28,28) Test label: (10000,)
3
資料預處理 建立多層感知器模型必須先將內容進行資料預處理 資料預處理分為兩個部分 1.Features(數字影像特徵值)資料預處理
2.Labels(數字影像真實值)資料預處理
4
資料預處理 Features預處理分為兩個步驟 1. 28*28數字影像 784 , type:float
5
資料預處理 2. 數字影像Image的數字影像標準化
6
資料預處理 labels資料預處理 label原本是0~9的數字 10個0或1的組合 例如:
數字3經過one-hot encoding 數字7經過one-hot encoding One-hot encoding
7
多層感知器模型(MLP)介紹 . 輸入層 隱藏層 輸出層 X1 X2 X783 X784 h1 h2 y9 y1 y0 h256 資料預處理
8
多層感知器(MLP)訓練與預測 多層感知器 資料預處理 模型 多層感知器 0~9的數字 模型 訓練 訓練 … 7 1 … 3 預測 預測結果
… 多層感知器 模型 0~9的數字 預測 預測結果 資料預處理 預測
9
流程圖 1.資料預處理 2.建立模型 3.訓練模型 4.評估模型準確率 5.進行預測
10
設定訓練方式 1.設定訓練與驗證比例 80%作為訓練資料60000×0.8 =48000筆
20%作為驗證資料60000×0.2=12000筆 2.設定epochs次數與每一批次筆數 Epochs=10 每一批次筆數=200 3.設定訓練過程 48000筆訓練資料,每一批次200筆 大約分為48000/200=240批次
11
MLP實驗 多層感知器 輸入層:784個神經元,隱藏層:256個神經元,輸出層:10個神經元 Epoch=10
12
MLP實驗 Test data: accuracy=0.9762
13
MLP實驗 多層感知器 輸入層:784個神經元,隱藏層:800個神經元,輸出層:10個神經元 Epoch=10 overfitting
14
Overfitting問題 Overfitting(過度訓練): 當可選擇的參數自由度超過資料所包含的資訊內容時,
這會破壞模型一般化得能力。 解決方法: 1.增加數據量, 大部分過擬合產生的原因是因為數據量太少了。 2.加入DropOut功能,在訓練的時候,我們隨機忽略掉一些神 經元和神經元的連結,讓每一次預測結果都不會太過依賴於 其中某部分特定神經元。
15
多層感知器加入DropOut功能 增加DropOut功能:為了解決Overfitting的問題
例如: DropOut(0.5)放棄隱藏層中50%的神經元 DropOut(0.25)放棄隱藏層中25%的神經元
16
隱藏層800個神經元並加入DropOut功能 X1 X2 . . . . . . . . . . . . . X784 h1 h2
X784 h1 h2 h800 y0 y1 y9
17
MLP實驗 多層感知器 輸入層:784個神經元,隱藏層:800個神經元,輸出層:10個神經元 Epoch=10 加入DropOut(0.5)
改善overfitting
18
Confusion matrix 混淆矩陣(Confusion matrix)是一種對分類模型進行效果評估的 方法
通過將模型預測的數據與測試數據進行對比,使用準確率, 覆蓋率和命中率等指標對模型的分類效果進行度量。
19
MLP實驗 Confusion matrix 多層感知器 輸入層:784個神經元,隱藏層:800個神經元,輸出層:10個神經元
Epoch=10 加入DropOut(0.5) Confusion matrix
20
CNN卷積神經網路介紹 CNN卷積神經網路分為兩個部分 1.影像的特徵提取 透過卷積層1、池化層1、卷積層2、池化層2,提取影像特徵。
2.完全連結神經網路 包含平坦層、隱藏層、輸出層,所組成的類神經網路。
21
CNN卷積神經網路介紹 輸入層 . 平坦層 隱藏層 輸出層 d1 d2 d1763 d1764 y9 y1 y0 d128
22
卷積運算 (0×0)+(0×1)+(0×0)+ (0×1)+(1×1)+(1×1)+ (0×0)+(5×1)+(3×0)= 7 1 5 3
1 5 3 1 7 1 8 5 3 7 2 9 6 Filter weight
23
卷積運算 (0×0)+(0×1)+(0×0)+ (1×1)+(1×1)+(8×1)+ (5×0)+(3×1)+(7×0)= 13 1 8 5
1 8 5 3 7 1 7 13 1 8 5 3 7 2 9 6 Filter weight
24
Max-Pool運算 1 2 3 4 6 8 6 8 3 4 Max-Pool
25
Max-Pool運算說明 1 2 3 4 6 8 6 1 2 3 4 6 8 6 8
26
Max-Pool運算說明 1 2 3 4 6 8 6 8 3 1 2 3 4 6 8 6 8 3 4
27
CNN實驗 . 3 3 3 3 3 3 3 3 d1 d2 d1763 d1764 y9 y1 y0 d128 平坦層 隱藏層 輸出層 3
第一次convolution 第一次pooling 第二次convolution 第二次pooling Filter=16 Filter=36 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 28×28 3 3 3 3 3 3 3 3 3 3 3 3 輸入層 3 3 3 3 3 3 16×28×28 16×14×14 36×14×14 36×7×7
28
CNN實驗 CNN卷積神經網路 卷積層1:16層(28×28),池化層1:16層(14×14)
卷積層1:36層(14×14),池化層1:36層(7×7) 輸入層:1764個神經元,隱藏層:128個神經元,輸出層:10個神經元 Epoch=10 加入DropOut(0.25)
29
CNN實驗 Test data: loss accuracy=0.9902 結論:使用CNN會比用多層感知器(MLP)模型來的好
30
Reference TensorFlow+Keras深度學習人工智慧實務應用
31
The End
Similar presentations