分类算法-多层感知机 Multi-layer Perceptron
生物神经网络具有相互连接的神经元,神经元带有接受输入信号的树突,然后基于这些输入,它们通过轴突向另一个神经元产生输出信号。
使用人工神经网络(Artificial Neural NetworkANN)来模拟这个过程,称为神经网络。
神经网络是一个试图模仿自然生物神经网络的学习模式的机器学习框架。 创建神经网络的过程从最基本的形式单个感知器开始。
感知器就是一个能够把训练集中的正例和反例划分为两个部分的器件,并且能够对未来输入的数据进行分类。
ANN是指由大量的处理单元(神经元) 互相连接而形成的复杂网络结构,是对人脑组织结构和运行机制的某种抽象、简化和模拟。
人工神经网络(Artificial Neural Network,简称ANN ),以数学模型模拟神经元活动,是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统。
人工神经网络有多层和单层之分,每一层包含若干神经元,各神经元之间用带可变权重的有向弧连接,网络通过对已知信息的反复学习训练,通过逐步调整改变神经元连接权重的方法,达到处理信息、模拟输入输出之间关系的目的。
它不需要知道输入输出之间的确切关系,不需大量参数,只需要知道引起输出变化的非恒定因素,即非常量性参数。
因此与传统的数据处理方法相比,神经网络技术在处理模糊数据、随机性数据、非线性数据方面具有明显优势,对规模大、结构复杂、信息不明确的系统尤为适用。
由Minsley和Papert提出的多层前向神经元网络(也称多层感知器)是目前最为常用的网络结构摘抄自百度百科[百度百科]https://baike.baidu.com/item/ANN/4973123)
0x00认识感知机
感知机就是一个能把训练集中的正例和反例划分为两个部分的器件,并且能够对未来输入的数据进行分类。
举个例子:
一个小孩妈妈教他什么是苹果什么不是苹果,首先会拿一个苹果来说,这是一个苹果,然后再拿一个杯子过来说“这不是一个苹果”,又拿来一个稍微不一样的苹果来说,“这也是一个苹果”,最后,小孩就学习到了用一个模型(判断苹果的标准)来判断什么是苹果、什么不是苹果。
感知器具有一个或多个输入、偏置、激活函数和单个输出。感知器接受输入,将他们乘以一些权重,然后将他们传递到激活函数以产生输出。有许多激活函数可供选择,如逻辑函数、三角函数、阶跃函数等。我们还确保向感知器添加偏差,避免所有输入可能等于0的问题,(意味着没有乘以权重会有影响)。感知器的图形表示如下:
0x01感知机的输入和输出
上面这个函数fx)称为感知机。
神经网络一般由输入层(Input Layer)、隐藏层(Hidden Layer),输出层( OutputLayer )组成,每层由单元(Units)组成,输入层是由训练集的实例特征向量传入,经过连接节点的权重(Weight)传入下一一层,上一层的输出是下一层的输入,隐藏层的个数是任意的,输出层和输入层只有一一个, 常见的神经网络如下图所示。
当有输出的时候,可以将其5已知标签进行比较,井相应地调整权重(权重通常以随机初始化值开始)。
重复此过程,直到达到允许迭代的最大数量或可接受的错误率。 上面网络中如果每个神经元都是由感知器构成的,则这个网络称为Muti-layer Percepron多层感知机。多层感知机的优点是:可以学习非线性模型,并且可以实时学习: 然而,多层感知机也有自身的缺点:有隐藏层的MLP包含一个非凸性损失函数, 存在超过一一个最小值,所以不同的随机初始权重可能导致不同的验证精确度; MLP要求调整系列超参数, 如隐藏神经元、隐藏层的个数及迭代的次数; MLP对特征缩放比较敏感。
0x02使用感知机注意事项
在使用神经网络前需要注意以下事项。
①使用神经网络训练数据之前,必须确定神经网络层数,以及每层单元个数。
②特征向量在被传入输入层时通常被先标准化( Normalize)到0和1之间。
③离散型变量可以被编码成每个输入单元对应一 个特征可能赋的值。 例如,特征值A可能取3个值
(20.21a2),可以使用3个输入单元来代表A,如果A=ao,那么代表ao的单元值就取1,其他取0;如果A=a1,那么代表a的单元值就取1,其他取0,以此类推。
④神经网络既可以用来做分类( Classification )问题,也可以解决回归( Regression )问题。对于分类问题,如果是两类,可以用一个输入单元表示(0和1分别代表两类),如果多于两类,每一个类别用一个输出单元表示,所以输入层的单元数量通常等于类别的数量,没有明确的规则来设计最好有多少个隐藏层,可以根据实验测试和误差,以及准确度来实验并改进最优的隐藏层数目。
本作品采用《CC 协议》,转载必须注明作者和本文链接