开发者学堂课程【机器学习算法 :单层感知器】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7234
单层感知器
内容介绍
一、感知器模型
二、单层感知器:线性分类
三、单层感知器的学习算法
一、感知器模型
1.感知器(Perceptron):用于线性可分模式分类的最简单的神经网络模型。由一个具有可调树突权值和偏置的神经元组成。1958 年 Frank Rosenblatt 提出一种具有单层计算单元的神经网络,即为 Perceptron。其本质是一个非线性前馈网络,同层内无互联,不同层间无反馈,由下层向上层传递。其输入、输出均为离散值,神经元对输入加权求和后,由阈值函数决定其输出。感知器实际上是一个简单的单层神经网络模型。单节点感知器就是 MP 模型,首次提出了学习的概念。
2.罗森布拉特给出感知机一个简单直观的学习方案:给定一个有输入输出实例的训练集,感知机「学习」一个函数:对每个例子,若感知机的输出值比实例低太多,则增加它的权重,否则若比实例高太多,则减少它的权重,感知器是整个神经网络的基础,神经元通过响应函数确定输出,神经元之间通过权值进行传递信息,权重的确定根据误差来进行调节,这就是学习的过程。
二、单层感知器:线性分类
1、单层感知器:通过计算权重和输入乘积的和 f(x)=sign(∑(w*x)),根据和的正负来判断分类。
2、该感知器的分类逻辑:
(1)计算各输入变量加权后的和∑。
(2)根据和∑是否大于0得到分类结果,大于0为1,小于0则为-1。
3、对于任一个训练样本x,其输入特征为(xi1,xi2)。(i表示第i个样本)
4、求和:sum=x1*w1+x2*w2+b
(1)当x1*w1+x2*w2+b>0时,为正类
(2)当x1*w1+x2*w2+b<=0时,为负类
即 x1*w1+x2*w2+b=0为正负类的分界超平面
二维空间即为一条直线,直线上的点为正类,直线下的点为负类
将直线方程 x1*w1+x2*w2+b=0 整理成习惯的公式:f(x1)=-(w1/w1*x1)-b
如图:
三、单层感知器的学习算法
采用的是离散感知器算法:
离散感知器:
具体步骤:
1.初始化权值,赋予较小的非零随机数。如果输入样本线性可分,无论初始值如何取,都会稳定收敛。
2.输入样本{X,Y},其中,i=1,2,...,k, 共 k 条n+1个分量的输入,输出为 k 条 m 个分量的向量:,i=1,2,...,k,
3.计算各输出节点的实际输出:
4.按照实际输出值和期望值之间的差更新权重:
, η为学习速率
5.返回第2步,处理下一组输入样本
6.循环上述过程,直到感知器对所有样本的实际输出和期望输出一致