神经网络模型

神经网络模型

多层感知机

多层感知机(Multi-layer Perceptron)是一个监督学习算法,学习函数 f : R m → R o f:R^m\rightarrow R^o f:RmRo,其中, m m m是输入维度的数量, o o o是输出的维度数量。给定一个特征集合 X = x 1 , x 2 , . . . . , x m X = x_1, x_2, ...., x_m X=x1,x2,....,xm和一个目标值 y y y,它能够学习用于分类或回归的非线性函数逼近。它不同于逻辑回归,因为在输入和输出层中,会有一个和多个非线性层,称作隐藏层。

输入层包含神经元集合 { x i ∣ x 1 , x 2 , . . . , x m } \{x_i|x_1, x_2, ..., x_m\} {xix1,x2,...,xm}表示输入特征。隐藏层中的每个神经元转换前面层的值转化为一个线性加权和 w 1 x 1 + w 2 x 2 + . . . + w m x m w_1x_1+w_2x_2+...+w_mx_m w1x1+w2x2+...+wmxm,后面紧接着一个非线性的激活函数 g : R → R g: R\rightarrow R g:RR。输出层收到从上一隐藏层得到的值,并将他们转化为输出值。

多层感知机的优点是

  • 能学习非线性模型
  • 能够实时学习模型

多层感知机的缺点是

  • 使用隐藏层的多层感知机有非凸的损失函数,存在多个局部最优
  • 需要调整大量的超参
  • 对特征缩放敏感
分类

MLPClassifier实现了一个多层感知机算法,使用Backpropagation训练数据。它支持使用Softmax作为输出函数来实现多类别分类。

from sklearn.neural_network import MLPClassifier

x = [[0., 0.], [1., 1.]]
y = [0, 1]

clf = MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(5, 2),
                    random_state=1)
clf.fit(x, y)

print(clf.predict([[2., 2.]]))

print([coef.shape for coef in clf.coefs_])

print(clf.predict_proba([[2., 2.]]))
回归

MLPRegressor实现了一个多层感知机,在输出层不使用激活函数的反向传播训练数据。它使用最小二乘作为损失函数,输出是连续值。

正则

MLPRegressorMLPClassifier使用参数alpha作为正则项,有助于避免过拟合。

算法

MLP使用Stochastic Gradient Descent Algorithm/Adam/L-BFGS训练算法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值