神经网络基础-感知机

1. 人工神经元

如图1是大脑神经元(左)和人工神经元(右),人工神经元是大脑神经元抽象出来的数学模型,被称为M-P模型。

树突相当于人工神经元的输入(Inputs),细胞核是人工神经元的operation区域(包含由weights得到的sum求和、threshold非线性判断段处理),轴突末梢是人工神经元的输出(Output)。

图1 人类神经元与人工神经元

2. 人工神经网络

人工神经网络 是 大量神经元 以某种连接方式构成的机器学习模型。

人工神经网络的种类繁多

图2 人工神经网络的种类

3 感知机

感知机(Perceptron)是人工神经网络中最简单的一类,也称单层神经网络。

 图3 感知机原理

 感知机与M-P模型相似,二者包含Input和Output,感知机的计算过程相当于M-P模型的operatron部分,由一个线性变换<w,x>+b 和 一个非线性函数 \sigma () 组成。Perceptron模型改进之处在于,引入了输入和输出层的概念,也就是Input layer 和Output layer。

首先,线性变化部分,<w,x>表示 权重矩阵w 与 输入矩阵x 的乘法,b是偏置项。<w,x>+b可以理解为b的权重是1,x1*w1 + x2*w2 + ...... + xn*wn + 1*b,计算图表示为:

 图4 感知机线性变换的理解

然后,将线性变换的结果放入非线性函数 \sigma () ,这里称为激活函数。得到最终的output。

4 感知机的缺点 

x1*w1 + x2*w2 + ...... + xn*wn + 1*b 是线性变换。

为了容易可视化,以二维变量为例,x1和x2是输入变量,计算 sum=x1*w1 + x2*w2 + b ,根据\sigma ()非线性函数,如果sum>0,output=1,否则output=0。

实际上,以x1和x2为坐标,在二维平面画图,x1*w1 + x2*w2 + b是一条直线,x1*w1 + x2*w2 + b>0时,output=1;另一侧x1*w1 + x2*w2 + b<=0,output=0。

二位平面被一条直线分割,直线的两侧是分类预测的结果。

图5 感知机模型二分类原理 (引自《统计学习方法》)

那么,为什么不能解决异或问题呢?

首先明确分类结果由一条直线分割。

假设输入变量 x1 和 x2 的取值范围都是{ 0 ,1} ,0是假,1是真。

坐标轴为x1、x2,圈和三角形代表 由逻辑运算得到的 不同类型的真实值。

我们的目标是,用x1*w1 + x2*w2 + b这条直线,把不同类型的真实值分开。

逻辑变量的与非、异或问题可以表示

图 6 异或问题分类结果

可见,逻辑变量x1和x2与或问题可以用直线分类,分类结果是正确的。

但异或问题无法用一条直线将不同类型的真实值分类,如果用一条直线将两个三角形和两个圆圈分开,只会得到错误的预测结果,因此不能解决异或问题。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
比较老的资源了,但是还是很经典的一本书,是深度学习的基础。前言 第1章 人工神经网络概述 1.1 神经网络的基本概念 1.1.1 生物神经元的结构与功能特点 1.1.2 人工神经元模型 1.1.3 神经网络的结构及工作方式 1.1.4 神经网络的学习 1.2 神经网络的特点及其应用 1.2.1 神经网络的特点 1.2.2 神经网络的应用领域 练习题 第2章 实用神经网络模型与学习算法 2.1 MATLAB快速入门 2.1.1 MATLAB界面组成 2.1.2 MATLAB基本运算 2.1.3 MATLAB绘图函数 2.2 感知器神经网络模型与学习算法 2.2.1 单层感知器 2.2.2 单层感知器的学习算法 2.2.3 单层感知器的MATLAB实现 2.2.4 多层感知器 2.3 线性神经网络模型与学习算法 2.3.1 线性神经元网络模型 2.3.2 线性神经网络的学习算法 2.3.3 线性神经网络的MATLAB实现 2.4 BP神经网络模型与学习算法 2.4.1 BP神经网络模型 2.4.2 BP网络的标准学习算法 2.4.3 BP神经网络学习算法的MATLAB实现 2.5 径向基函数神经网络模型与学习算法 2.5.1 RBF神经网络模型 2.5.2 RBF网络的学习算法 2.5.3 RBF网络学习算法的MATLAB实现 2.6 自组织神经网络模型与学习算法 2.6.1 自组织特征映射神经网络结构 2.6.2 自组织特征映射网络的学习算法 2.6.3 自组织网络学习算法的MATLAB实现 2.7 学习向量量化(LVQ)神经网络模型与学习算法 2.7.1 LVQ神经网络结构 2.7.2 LVQ神经网络的学习算法 2.7.3 LVQ神经网络学习算法的MATLAB实现 2.8 Elman神经网络算法模型与学习算法 2.8.1 Elman神经网络结构 2.8.2 Elman神经网络学习算法 2.8.3 Elman神经网络学习算法的MATLAB实现 2.9 Hopfield神经网络模型与学习算法 2.9.1 离散Hopfield神经网络 2.9.2 连续Hopfield神经网络 2.9.3 Hopfield神经网络的MATLAB实现 2.10 Boltzmann神经网络模型与学习算法 2.10.1 Boltzmann机的网络结构 2.10.2 Boltzmann机学习算法 2.11 模糊神经网络 2.11.1 模糊神经网络主要形式 2.11.2 模糊神经网络模型 2.11.3 模糊神经网络学习方法 2.11.4 模糊逻辑MATLAB函数 练习题 第3章 神经网络优化方法 3.1 BP网络学习算法的改进 3.1.1 消除样本输入顺序影响的改进算法 3.1.2 附加动量的改进算法 3.1.3 采用自适应调整参数的改进算法 …… 第4章 nnToolKit神经网络工具包 第5章 MATLAB混合编程技术 第6章 混合编程案例 附录 2NDN神经网络建模仿真工具 参考文献

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值