정규화기는 최적화 중에 계층 파라미터나 계층 활성화에 벌점을 적용하도록 합니다. 이러한 벌점은 네트워크를 최적화하는 손실 함수에 포함됩니다.
벌점은 각 계층별로 적용됩니다. 정확한 API는 계층에 의존하지만 Dense
, Conv1D
, Conv2D
, Conv3D
계층은 동일한 API를 가집니다.
이 계층은 다음과 같은 3개의 키워드 인수를 노출합니다:
kernel_regularizer
: keras.regularizers.Regularizer
의 인스턴스입니다.bias_regularizer
: keras.regularizers.Regularizer
의 인스턴스입니다.activity_regularizer
: keras.regularizers.Regularizer
의 인스턴스입니다.from keras import regularizers
model.add(Dense(64, input_dim=64,
kernel_regularizer=regularizers.l2(0.01),
activity_regularizer=regularizers.l1(0.01)))
keras.regularizers.l1(0.)
keras.regularizers.l2(0.)
keras.regularizers.l1_l2(0.)
가중치 행렬을 받아들여서 손실 분포 텐서를 반환하는 함수는 정규화기로 사용할 수 있습니다. 예를 들어 다음과 같습니다:
from keras import backend as K
def l1_reg(weight_matrix):
return 0.01 * K.sum(K.abs(weight_matrix))
model.add(Dense(64, input_dim=64,
kernel_regularizer=l1_reg)
대신에, 객체지향(object-oriented) 방식으로 직접 정규화기를 만들 수도 있습니다; 예제로 keras/regularizers.py 모듈을 참조하세요.
이 문서는 Keras의 Regularizers을 번역한 것입니다.