首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用MLPClassifier正则化将sklearn移植到Keras

用MLPClassifier正则化将sklearn移植到Keras
EN

Stack Overflow用户
提问于 2019-07-28 16:30:40
回答 1查看 1.2K关注 0票数 2

我想将以下滑雪板模型移植到keras:

代码语言:javascript
运行
复制
model = MLPClassifier(activation='tanh', hidden_layer_sizes=(60,50), alpha=0.001, random_state=42)

到目前为止,我得到的是:

代码语言:javascript
运行
复制
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:应用于层输出的正则化函数(它的“激活”)。

哪一种实际上等同于滑雪正规化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-28 21:06:47

根据sklearn文档,alpha参数用于调整权重。

supervised.html

MLPRegressor和MLPClassifier都使用参数α进行正则化(L2正则化)项,这有助于通过惩罚大幅度的权重来避免过度拟合。

Keras允许您对权重、偏差和激活值指定不同的正则化。很明显,你可以对这三个人都做同样的调整。

正则化也是在每一层的基础上进行的,例如:

代码语言:javascript
运行
复制
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),
  ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57242848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档