《Python机器学习基础教程》学习笔记(9) 深度学习(神经网络)

主要讨论深度学习中可用于分类与回归的多层感知机(MLP)。MLP的原理是多次重复线性回归的的加权求和过程(中间的计算结果称为隐单元,隐单元构成隐层),计算最后一层的隐单元的经过一个非线性函数的加权求和得到结果。常用的非线性函数有校正非线性(也叫relu,函数为f(x) = max(0, x))与正切双曲线(函数为f(x) = tanh(x))。

调参 

hidden_layer_sizes:数据类型为tuple,第i个数字代表第i层的隐单元数量,更多的隐层和隐单元能给出更平滑的决策边界,默认为单层100。

activation:隐层激活函数,即隐层到输出间的非线性,可选"relu"或"tanh",默认为relu。当然,也可以选择线性的,即"identity",函数为f(x) = x;或"logistic",函数为f(x) = 1 / (1 + exp(-x))。

solver:权重优化算法。可选"adam"、 "lbfgs"、 "sgd"。adam在多数情况下表现好,尤其是大数据集,但对数据的缩放相当敏感,对数据进行缩放时(均值为0,方差为1),需要增加迭代次数max_iter(1000或更多);lbfgs的健壮性好,在小数据集的表现比adam好;sgd是高级选项,有许多其他参数需要调节。默认为adam。

alpha:L2正则化(使权重趋向于0)。alpha越大模型越简单,泛化能力越好。默认为0.0001。

常用调参方法是,首先创建一个大到足以过拟合的网络,确保这个网络可以对任务进行学习,然后缩小网络或增大alpha来提高泛化性能。

 

性质

在开始学习之前随机设置的权重会影响模型的建立,对较小的网络影响较大,而对足够大且复杂度合理的网络影响较小。

其中,复杂度的估计可以通过计算权重(或系数)的个数,即输入层与第一个隐层之间的权重数、隐层与隐层间的权重数、隐层与输出层的权重数的总和。

在尝试解释模型时,如果某个特征对所有隐单元的权重都很小,那么这个特征对模型来说就不太重要。

 

其他

除了sklearn之外,优秀的深度学习库有keras,lasagna和tensorflow。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值