数据挖掘——神经网络分类算法

感知机

感知机可以理解为一个神经元,给它输入一个信号x,就会输出一个信号y,用表达式可以表示为:
y = s i g n ( ∑ i w i j x i + t ) y = sign(\sum_iw_{ij}x_i + t) y=sign(iwijxi+t)
其中,sign叫做激活函数, w i j w_{ij} wij叫做输入权值,t为偏置项(类似神经元中的静息电位,用于调整神经元被激活的容易程度)

激活函数必须处处可导,一般都使用S形的函数,接下来介绍常用的sigmoid函数

Sigmoid 函数

s i g m o i d ( z ) = 1 1 + e − z sigmoid(z) = \frac{1}{1+e^{-z}} sigmoid(z)=1+ez1

sigmoid 有很多好处,例如:

  1. 它是非线性的
  2. 不同于二值化输出,sigmoid 可以输入 0 到 1 之间的任意值。对,跟你猜的一样,这可以用来表示概率值。
  3. 与 2 相关,sigmoid 的输出值在一个范围内,这意味着它不会输出无穷大的数。

但是,sigmoid 激活函数并不完美:

梯度消失。当输入值 z 趋近负无穷时,sigmoid 函数的输出几乎为 0 . 相反,当输入 z 趋近正无穷时,输出值几乎为 1 . 那么这意味着在这两个极端情况下,对应的梯度很小,甚至消失了。梯度消失在深度学习中是一个十分重要的问题,我们在深度网络中加了很多层这样的非线性激活函数,这样的话,即使第一层的参数有很大的变化,也不会对输出有太大的影响。换句话讲,就是网络不再学习了,通常训练模型的过程会变得越来越慢,尤其是使用梯度下降算法时。

sigmoid 的另一个弊端就是实际运用中指数运算开销太大。

为了让输出达到我们想要的值,我们通过调整权值来达到这一目的:

更新权值: w ( k + 1 ) = w ( k ) + λ ( y i − y i ( k ) ) x i w^{(k+1)}= w^{(k)}+λ(y_i-y_i^{(k)})x_i w(k+1)=w(k)+λ(yiyi(k))xi

如果 y i = y i ( k ) y_i=y_i^{(k)} yi=yi(k),权值w不变;

如果 y i = 1 y_i=1 yi=1(实际类), y i ( k ) = − 1 y_i^{(k)}=-1 yi(k)=1,预测误差为2;为了补偿这个误差,需要提高正输入链的权值,降低负输入链的;

如果 y i = − 1 y_i=-1 yi=1(实际类), y i ( k ) = 1 y_i^{(k)}=1 yi(k)=1,预测误差为-2;为了补偿这个误差,需要降低正输入链的权值,提高负输入链的;

F.Rosenblatt证明了对“线性可分”的问题,说明感知机通过有限次训练就能学会正确的行为

Marvin Minsky, Perceptrons证明了单层感知器无法执行“异或问题”,这里的异或问题是什么意思呢,如果是线性的数据,我们可以用一条直线将数据点分成两部分,但是如果数据相互交织,我们是没法做到这样的分类的。

将感知机和感知机连结起来就组成了多层感知机,这就比较类似神经网络了,两计算层感知器就能解决“异或”问题

多层神经网络比感知机模型复杂:输入层和输出层之间包含隐藏层

反向传播(BP)算法

后向传播算法基于链式法则,从输出层向输入层逐层反向计算梯度,从而高效更新网络参数

核心思想:是通过误差的反向传播,将输出层的误差分摊到每一层的神经元,进而调整权重和偏置,使损失函数最小化

在这里插入图片描述

损失函数(又称代价函数)就是量化衡量误差的工具,损失函数可以用很多种函数式来评估,比如均方误差: J ( w , b ) = 1 n ∑ 1 2 ( Y − Y h a t ) 2 J(w,b) = \frac{1}{n} \sum \frac{1}{2}(Y - Y^{hat})^2 J(w,b)=n121(YYhat)2

如果以水平坐标表示参数空间,权重和偏置,代价函数 J(w, b) 就是水平轴上面的抛物面。

为了最小化这一代价,我们需要走到这个抛物面底。那么问题来了,我们怎么知道沿哪个方向走昵?是参数变大的方向还是变小的方向?我们可以做一个随机搜索,但这显然耗时且开销过大。通过处理可学习的权重和偏置可以找到最佳方向。微积分告诉我们,在给定的点上,梯度方向就会指向函数值改变最快的方向。因此,我们可以沿着梯度的反方向更新权重,这样就可以最小化代价函数

初始值选择

  • 权值向量以及阀值的初始值应设定在一均匀分布的小范围内
  • 初始值不能为零,否则性能曲面会趋向于鞍点
  • 初始值不能太大,否则远离优化点,导致性能曲面平坦,学习率很慢

训练样本输入次序

输入次序不同,也会造成不一样的学习结果,因此,在每一次的学习循环中,输入向量输入网络的次序应使其不同

BP算法的学习过程的终止条件

  • 权值向量的梯度 < 给定阈值
  • 均方误差值 < 给定误差容限值
  • 达到我们认为的一个推广能力则予终止
  • 可以结合上述各种方式

BP算法的特点

  • 普适近似,精度较高
  • 噪声敏感
  • 训练非常耗时,但对目标分类较快

参考资料:《入门 | 从感知机到深度神经网络,带你入坑深度学习》https://baijiahao.baidu.com/s?id=1589633691348109038&wfr=spider&for=pc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值