(八)神经网络之感知机

一. 什么是感知机

1. 理解感知机

感知机(Perceptron)算法是一种很好的二分类算法,它前提要求样本是线性可分的模型。感知机的原理很简单,假如样本中有2个类别,感知机尝试找到一条直线(空间中就是超平面),将样本划分成2类。如果找不到这样的直线(超平面)呢?那就说明样本线性不可分,不可以使用感知机分类。

(八)神经网络之感知机_第1张图片

2. 感知机与神经网络

感知机是一种最简单的前馈神经网络,它仅有2层神经元,包括1个输入层和一个输出层。

(八)神经网络之感知机_第2张图片

既然感知机是前馈网络,那它的学习过程也是遵循向前传播算法的。神经元将输入和偏执单元线性组合,然后代入激活函数,最后得到输出结果。
这里感知机的激活函数选取的是 阈值函数,所以感知机的输出神经元也称为阈值神经元(M-P神经元):

3. 感知机与逻辑回归

1.相同点:

  • 都是解决二分类问题
  • 都是将线性模型代入一个函数中。(线性逻辑回归是代入线性模型)

2.不同点:

  • 激活函数不同,逻辑回归是sigmoid,感知机是阈值函数
  • 感知机产生的结果是类别(0/1),逻辑回归得到的是某个类别的概率
  • 感知机只能处理线性可分问题,逻辑回归可以处理非线性问题(代入非线性模型)

二. 感知机学习过程

1.代价函数

上面我们已经基本了解了感知机的概念与使用前提。那么感知机是如何找到最优解的呢?按照机器学习的惯例,我们要开始构造代价函数了。我们可以考虑让误分类的点到超平面的距离来表示代价函数,若所有误分类的点到超平面距离最小,则代价最小。
我们假设输入的线性组合是

那么某点Xi到超平面的距离就是
如果样本标记是y,那么利用y去掉绝对值(因为结果只能是0/1)
因为我们只想知道L最小时的参数,而并不是要求最小距离和,所以我们可以忽略分母,得到代价函数

得到代价函数后,我们可以使用梯度下降法,不断更新θ,直到L收敛。
对L求导

这里需要注意一下,因为此处是针对误分集的样本做代价函数,而并不是所有的样本,所以不可以采用批量梯度下降(BSD),感知机一般采用随机梯度下降法,即只选用一个误分集中的样本更新参数。
(八)神经网络之感知机_第3张图片

2. 总结一下感知机
  1. 选定一组合适的权值θ

  2. 将样本带入感知机,观察是否有误分点,如果没有结束算法,如果有进入第3步

  3. 利用误分点更新所有参数


    (八)神经网络之感知机_第4张图片
  4. 转入第2步,直到没有误分点。

你可能感兴趣的:((八)神经网络之感知机)