Multi-class Classification, How to Solve Over&Underfit issue

1697 ワード

バッチ:バッチ・サイズとは、データセット全体が分割されたときに1つのグループに属するデータの数です.
Epoch:一度のEpochはデータセット全体の学習です.
Iteration:Epochの完了に必要なパラメータの更新回数(モデルでデータ全体を学習するために必要なバッチ数)

Multi-class Classification


Labeling


One-hot Encoding


0と1のみの書き込みとしてマークされた高次元ベクトル
Ex)マーク0から9の場合、0->[10…0]、9->[0…1]

Activation Function


Softmax


Output activationがSigmoidの場合に問題が発生
=>SigmoidではなくSoftmaxを使用
有効な出力値は0~1で、合計出力値の合計は1~>で出力を確率として解釈します.

Loss


Cross-Entropy



How to Solve the Over & Underfit issue


Regularizer


:コストに一定の値を追加することでfitの時点を遅延

:通常のCost関数に重み付け割引を追加

:通常のCost関数に二乗重み付け値を追加します.ランダが大きいほど正規化効果が大きい
from tensorflow.keras import regularizers
def regularizer_model():
	model=Sequential()
        model.add(Dense(20,'relu',kernel_regularizer=regularizers.l2(0.001)))

Dropout


:設定したdrop rateに従ってノードをランダムに削除し、学習のたびに削除します.学習ごとに異なるノードの削除と復元を繰り返します
from tensorflow.keras.layers import Dropout
def dropout_model():
	model=Sequential()
    model.add(Dense(units=10, activation='relu'))
    model.add(Dense(21,'relu'))
    model.add(Dropout(0.2)) #바로 위의 layer를 dropout #rate: 버릴 unit의 비율 결정