我想将以下滑雪板模型移植到keras:
model = MLPClassifier(activation='tanh', hidden_layer_sizes=(60,50), alpha=0.001, random_state=42)到目前为止,我得到的是:
from keras.models import Sequential
from keras.layers import Dense
from keras import regularizers
from tensorflow import set_random_seed
set_random_seed(42)
model = Sequential([
Dense(60, activation='tanh'),
Dense(50, activation='tanh'),
Dense(1, kernel_initializer='normal', activation='sigmoid')
])
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy', 'binary_accuracy'])
model.fit(
x_train,
y_train,
epochs=200,
batch_size=200,
validation_data=(x_test, y_test)
)但现在我在为正规化这个词而挣扎。关于这一点,sklearn文档并不是很有表现力:
alpha :浮动,可选,默认0.0001 L2惩罚(正则化项)参数。
但在角化层中,致密层具有3种正则化性质。
kernel_regularizer:应用于内核权重矩阵的正则化函数(参见正则化)。bias_regularizer:正则化函数应用于偏置向量(参见正则化)。activity_regularizer:应用于层输出的正则化函数(它的“激活”)。
哪一种实际上等同于滑雪正规化?
发布于 2019-07-28 21:06:47
根据sklearn文档,alpha参数用于调整权重。
MLPRegressor和MLPClassifier都使用参数α进行正则化(L2正则化)项,这有助于通过惩罚大幅度的权重来避免过度拟合。
Keras允许您对权重、偏差和激活值指定不同的正则化。很明显,你可以对这三个人都做同样的调整。
正则化也是在每一层的基础上进行的,例如:
from keras import regularizers.l2
reg1 = l2(0.0001)
reg2 = l2(0.001)
model = Sequential([
Dense(60, activation='tanh', kernel_regularizer=reg1, bias_regularizer=reg1, activity_regularizer=reg1),
Dense(50, activation='tanh', kernel_regularizer=reg2, bias_regularizer=reg2, activity_regularizer=reg2),
...https://stackoverflow.com/questions/57242848
复制相似问题