神經網路調教(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