Я пытаюсь написать простой пользовательский слой для регуляризации в Keras следующим образом:
from tensorflow.keras.regularizers import Regularizer
import tensorflow as tf
class MyRegularization(Regularizer):
def __init__(self):
self.alpha = 100000000
def __call__(self, w):
return self.alpha * tf.reduce_sum(w ** 2)
, как вы видите, коэффициент регуляризации настолько велик. Затем я добавляю эту регуляризацию к каждому слою простой сети:
model = Sequential([
Dense(1000, activation='relu', input_shape=[10,], kernel_regularizer=MyRegularization()),
Dense(100, activation='relu', kernel_regularizer=MyRegularization()),
Dense(10, activation='relu', kernel_regularizer=MyRegularization()),
Dense(2, activation='softmax', kernel_regularizer=MyRegularization()),
])
Я ожидаю, что из-за большого alpha
обучение не сходится, но оно похоже на значение alpha
не влияет на учебный процесс. Почему?
Я взял alpha = 1e-4
, но там не отличается, когда alpha=1e+10
. : - \