fashion_mnist
model = tf.keras.sequential(
[ tf.keras.layers.flatten(input_shape=(28
,28))
, tf.keras.layers.dense(
128,activation=
'relu'),
tf.keras.layers.dropout(
0.55),
tf.keras.layers.dense(
10,activation=
'softmax')]
)
模型由tf.keras的api實現
tf.keras.layers.flatten : 將二維的輸入一維化
tf.keras.layers.dense : 對原矩陣進行變換,通過矩陣變化得到矩陣形狀
tf.keras.layers.dropout: 防止網路過擬合
正常訓練
準確率為 97.2%左右
將啟用函式改為 sigmoid 後,準確率下降為96.2%左右
將訓練資料減少到5000組,進行相同次數的訓練。relu仍能達到92%左右,sigmoid只有90%
符合sigmoid函式收斂緩慢的特點
將訓練次數增多,sigmoid和relu都能達到近似97%的正確率
將dense層中的輸出維度進行修改以下為修改後資料與其相應結果
為了讓效果更明顯,減少訓練的次數
dense維度
結果128
92.21%
1024
94.37%
3290.07%
dense層維度的增大可以提高模型的準確率,但是會降低其訓練速度
修改dropout
dropout結果0
94.96%
0.195.23%
0.594.63%
0.993.80%
0.99
72.39%
dropout是為了提高模型的泛化能力,因為mnist的測試集和訓練集較為特殊,dropout不需要太高
修改optimizer
optimizer
結果adam
98.04%
sgd94.41%
nadam
97.97%
adamax
97.61%
但是nadam明顯慢於其餘三個優化器
5.增加dense層
dense層數
每層的維度結果2
(512,128)
98.00%
2(512,512)
98.11%
2(128,512)
97.53%
3(512,512,512)
98.00%
fashion_mnist 也能用上述模型去擬合資料,只是需要再新增dense層,提高epoch到50-100之間,我設定epoch=100後居然準確率能達到100%,真的是很神奇
ML學習小筆記 Gradien Descent
關於本課程的相關資料 根據前面所為,當我們得到loss方程的時候,我們希望求得最優的loss方程。為此,我們可以採用了一種方法 gradien descent。為什麼可以使用這種方法呢,我們先保留這個疑問,先看一下什麼是gradien descent。如下圖,我們假定某個loss方程有兩個引數,同時...
ML讀書筆記(整合學習)
a.boosting 級聯順序訓練,不能model並行 只能每個弱分類器內部data並行 樣本有權重 弱分類器有權重 bagging 可並行訓練 偏差 由於分類器的表達能力有限導致的系統性錯誤,表現在訓練誤差不收斂 例如假設錯誤,比如資料本來符合二次函式,而建模用了一次函式 在訓練集上即可體現出來 ...
ML 學習筆記 吳恩達
吳恩達ml logistic介紹代價函式的時候,有點迷糊。見下圖 因為這它定義了乙個叫cost 的函式,我就突然把這個函式與之前線性回歸 linear regression 的cost 函式搞混了,然後引發了我的疑惑。首先我們在做線性回歸 是要先確定 函式h hypthesis 然後將整個資料集代入...