【Python与机器学习 7-1】人工神经网络 ANN——MLP

本文介绍了神经网络的基本组成,包括输入层、隐藏层和输出层,并详细探讨了多层感知器(MLP)的结构,如单层和多层MLP的实现。还讲解了在sklearn中使用MLPClassifier,讨论了激活函数的作用,特别是ReLU的使用。同时,文章指出过拟合问题,并提出通过正则化来防止过拟合。
摘要由CSDN通过智能技术生成

神经网络基本组成

神经网络由输入层(input layer),隐藏层(hidden layers),输出层(output layer)三部分组成,如下图。
输入层(input layer)是由训练集的样本特征向量传入。
每层由神经元(neuron)或单元(unit)组成。
这里写图片描述
经过连接节点的权重(weight)传入下一层,上一层的输出是下一层的输入,一层中的加权求和,然后根据非线性方程转化为下一层的输入。

即一个神经元,可以把它分成左半球和右半球两部分。左半球为上一层加权求和的结果,为此神经元的输入。右半球为加权求和结果即左半球值通过非线性方程转化后的值,为此神经元的输出。

激活函数

这个非线性方程就是激活函数,通过激活函数就可以把线性的值转成非线性的值。
常用的激活函数有三种,Sigmoid,Tanh和ReLU。其中sklearn中神经网络默认选择的是ReLU。

下图为这三种激活函数的结果,可以看出:Sigmoid和Tanh都是曲线,Sigmoid是把x归一化到0到1范围,Tanh归一化到-1到1范围。ReLU是折线,若x<0则输出0,否则y=x。
这里写图片描述

MLP (Multi-Layer Perceptron) 多层感知器

单层MLP

MLP为多层感知器,我们首先来看只有一个隐含层的MLP,如下图。
和上面介绍过的一样,h0的输入值就是x0*w00+x1*w10+x2*w20+x3*w30,输出值就是用激活函数,即tanh(x0*w00+x1*w10+x2*w20+x3*w30)。
最后y的值就是前一层即隐含层的权重和。

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值