<L1 노름>
<L2 노름>
※ L2 노름은 가중치의 파라미터를 모두 제곱하여 더한 후 이 값의 제곱근을 구한 것이므로, L2 규제에서 추가되는 비용은 정확히는 L2 노름의 제곱이다.
※ L2 규제는 신경망에서 **가중치 감쇠(weight decay)**라고도 부른다.
from keras.datasets import imdb
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
import numpy as np
from keras import models
from keras import layers
def vectorize_sequences(sequences, dimension=10000):
results = np.zeros((len(sequences), dimension))
for i, sequence in enumerate(sequences):
results[i, sequence] = 1.
return results
train_data = vectorize_sequences(train_data)
model = models.Sequential([
layers.Dense(16, activation='relu'),
layers.Dense(16, activation='relu'),
layers.Dense(1, activation='sigmoid')])
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
history_original = model.fit(train_data, train_labels,
epochs=20, batch_size=512, validation_split=0.4)