神經網路調教(AIA)
input
深度學習
必須是數值特徵
資料類型
名目資料
順序資料
區間型
取代表值
例:0-17?
程度型
Low, Medium, High
one-hot encoding
地址
缺點
資料可能會太sparse
轉成經緯度
權重型
labelencoding
給1,2,3
Re-scale 數值資料
原因
不同scale的weights修正需要不同的learning rates
相同scale
loss等高線較接近圓形
收斂較快
手法
Normalization
internal covariate shift
降低 learning rate
訓練會變慢
Batch normalization
beta , gama
可以用較高的learning rate
hidden layer 常見的激發函數
tanh
ReLU
Sigmoid
Leaky ReLU
Maxout
容易梯度消失
容易梯度消失
零以上
零以下
丟什麼近來 就什麼值出去
聽不懂
就給零
零的地方不給微分
優點
收斂較快
可以克服梯度消失
確保零以下還有梯度
ELU
改良ReLU
變成平滑可微分
收斂於0~1之間
收斂於-1~1之間
值太過接近1 or 0
值太過接近1 or -1
缺點
值接近0還是沒梯度
softplus
分類常用的激發函數
Softmax
最後一層的值先取exponential
Normalized by the sum
用於多分類
Loss Function
Linear Problems
Mean_absolute_percentage_error(MAPE)
Mean_squared_error(MSE)
Mean_squared_logarithmic_error(MSLE)
Mean_absolute_error(MAE)
Classification Problems
binary_crossentropy
categorical_crossentropy
loss function
R^2
F1-score
penalty
unbalanced dataset
Optimizer
Adagrad - Adaptive Learning Rate
RMSprop-Another Adaptive Learning Rate optimizer
SGD-Stochastic Gradient Descent
Adam - RMSprop + Momentum
Nadm - Adam + Nesterove Momentum
單筆訓練改變權重與偏差
較果相當不錯
兩點相減的平方
兩點的水平距離加上垂直距離
輸出層的激活函數
sigmoid
輸出層的激活函數
softmax
輸出層的激活函數
linear
深度網路中不建議使用
根據不同的feature scales 調整learning rate
會參考過去gradient的大小
不太需要更改預設的參數
Overfitting
處理的方法
What
training 的loss越來越低
但test的loss 停滯不前
training的auc越來越高
但test的auc停滯不前
Regularization
限制 weights 的大小
L1、L2
Early Stopping
減少支援浪費
Dropout
隨機 disable 一定比例的連結
可視為一個最終的ensemble
造成的原因
資料雜訊多
模型複雜度高
訓練資料較量少
為什麼可以重複使用?
Callbacks
LearningRateScheduler
Tensorboard
ModelCheckpoint
可以存儲最好的模型參數
資料來源
AIA TF2.5(part3~part4)
為什麼需要??
線性轉為非線性
click to edit