[最下層からの深さ学習]#14レッスンはコーディネートにぴったり
5406 ワード
ふさわしい
パラメータの個数が学習データの個数より相対的に多い場合に発生するのに適している.
Regularization
NNに研修データの重要な情報のみを含ませ,副次的,偶発的または特殊な情報を含ませない方法
Weight Decay
罰は重み付け値の和であるため,学習時に罰を下げることは情報を失う役割を果たす.しかし、あまり重要でない(少ない)情報は、より重要な(多い)情報に比べて、より多くの情報を残すことはありません.
練習問題1
練習問題
L=Lc+Lpは理解し、w 1に微分しなければならない.
Lpをw 1に微分するのは難しい.
ただし,式でLpをwに微分する値はw自体で決定されることを覚えておく必要がある.また,Lpをbに微分すると,変数が0になることも知らなければならない.
きかがくてきかいせき
L 2 regの等位線を平面に描くと円になります.
L 1 regの等位線を平面に描くと四角い.
赤い線は勾配の反対方向です.
Dropout
学習に関連するパラメータはありません.ReLU,Softmax,損失なし.
Affine、Batch Normalization(gamma、beta)には学習するパラメータがあります.
ランダムにシャットダウンするため、新しいモデルを引き続き使用するようにEnsembleと同じ効果を得ることができます.
関係を断ち切る方法でネット詐欺を防ぐ.
コード実装
class Dropout:
def __init__(self, dropout_ratio = 0.5):
self.dropout_ratio = dropout_ratio
self.mask = None
def forward(self, x, train_flg=True):
if train_flg:
# dropout_ratio와 행렬의 원소를 비교해서 True, False로 이루어진 행렬을 만든다.
# rand는 0~1의 값이다.
self.mask = np.random.rand(*x.shape) > self.dropout_ratio
# 인풋에 mask를 씌워준다.
return x * self.mask
else:
# 전체적인 feature의 스케일을 학습시와 맞춰주기 위해서 사용한다.
# rescaling이다.
return x * (1.0 - self.dropout_ratio)
def backward(self, dout):
# 순전파에서 죽인 자리에 맞춰서, 흘러 들어온 미분을 죽인다.
# ReLU층의 역전파와 threshold 빼곤 동일하다.
return dout * self.mask
Reference
この問題について([最下層からの深さ学習]#14レッスンはコーディネートにぴったり), 我々は、より多くの情報をここで見つけました https://velog.io/@clayryu328/밑바닥부터-시작하는-딥러닝-14-과적합-overfittingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol