从感知机开始的神经网络学习(感知机-->神经网络 -->BP神经网络 --> 卷积神经网络)

感知机+激活函数+好几层 = 神经网络
神经网络+反向更新 = BP神经网络
BP神经网络+特征提取部分 + 分类器= 卷积神经网络

感知机

目的

将线性可分的数据集分为两类。

设数据集标签值 y i = + − 1 y_{i}=+-1 yi=+1 ,最终求出一个超平面 S : w x + b = 0 S:wx+b=0 S:wx+b=0 满足 y i ( w x i + b ) > 0 y_{i}(wx_{i}+b)>0 yi(wxi+b)>0

原理

  • 定义损失函数:误分类点到超平面的距离和

    使用距离和的目的:使损失函数为 ( w , b ) (w,b) (w,b) 的连续可导函数—> 便于使用梯度下降法

    损失函数进化:
    1 ∥ w ∥ ∑ i 误 分 类 ∣ w ∙ x i + b ∣ \frac{1}{\left \| w \right \| } \sum_{i误分类} |w\bullet x_{i}+b| w1iwxi+b
    对于误分类的点,由于 − y i ( w ∙ x i + b ) > 0 -y_{i}(w\bull x_{i}+b)>0 yi(wxi+b)>0 ,故可以去掉绝对值表示为
    1 ∥ w ∥ ∑ i 误 分 类 y i ( w x i + b ) \frac{1}{\left \| w \right \| } \sum_{i误分类} y_{i}(wx_{i}+b) w1iyi(wxi+b)
    由于 ∥ w ∥ \left \| w \right \| w 的值并不影响 y i ( w x i + b ) y_{i}(wx_{i}+b) yi(wxi+b) 正负的判断,故最后的损失函数为:
    L ( w , b ) = − ∑ i 误 分 类 y i ( w x i + b ) L(w,b) = -\sum_{i误分类} y_{i}(wx_{i}+b) L(w,b)=iyi(wxi+b)

  • 设置一个初始值,由梯度下降法逐步逼近解

    梯度下降法

    • 利用梯度找到函数下降最快的方向,单维中梯度即为斜率,多维中梯度为偏导数组合成的一个向量,感知机模型有两维 : w , b w,b w,b

    • 下降值由学习率/步长 η \eta η 决定,即
      w ⟸ w + η y i x i b ⟸ b + η y i w\Longleftarrow w+ \eta y_{i}x_{i}\\ b\Longleftarrow b+ \eta y_{i} ww+ηyixibb+ηyi
      学习率过高,容易错过最低点,学习率过低,算法效率降低

    • 对于某个超平面,可能有多个误分类点,每次随机选择一个误分类点使其梯度下降

两种形式

原始

算法流程:

(1) 选取初值 w 0 , b 0 w_{0},b_{0} w0,b0

(2) 如果没有误分类点 y i ( w ∙ x i + b ) ≤ 0 y_{i}(w\bull x_{i}+b) \le 0 yi(wxi+b)0,结束算法,否则随机选择一个误分类点,令
w ⟸ w + η y i x i b ⟸ b + η y i w\Longleftarrow w+ \eta y_{i}x_{i}\\ b\Longleftarrow b+ \eta y_{i} ww+ηyixibb+ηyi
算法缺点:寻找误分类点的时候要做多次内积,不适用于维度过高的数据

对偶

为了避免原始算法中计算内积的现象,对 w , b w,b w,b 的表达式做进一步修改。

由原始算法可得,最终 w w w x i y i x_{i}y_{i} xiyi 的线性组合, b b b y i y_{i} yi 的线性组合,令 n i n_{i} ni 表示第 i i i数据作为误分类点更新模型的次数, a i = n i η a_{i} = n_{i}\eta ai=niη ,则 w , b w,b w,b
w = ∑ i = 1 N a i y i x i b = ∑ i = 1 N a i y i w = \sum_{i=1}^{N} a_{i}y_{i}x_{i}\\ b = \sum_{i=1}^{N} a_{i}y_{i} w=i=1Naiyixib=i=1Naiyi

算法流程:

(0)预先计算内积矩阵
G = [ x i ∙ x j ] N × N G =[x_{i}\bull x_{j} ]_{N×N} G=[xixj]N×N

(1) 选取初值 w 0 , b 0 w_{0},b_{0} w0,b0

(2) 如果没有误分类点 y i ( ∑ j = 1 N a j y j x j ∙ x i + b ) ≤ 0 y_{i}(\sum_{j=1}^{N}a_{j}y_{j}x_{j} \bull x_{i}+b)\le 0 yi(j=1Najyjxjxi+b)0,结束算法,否则随机选择一个误分类点,令
a i ⟸ a i + η b ⟸ b + η y i a_{i}\Longleftarrow a_{i}+ \eta\\b\Longleftarrow b+ \eta y_{i} aiai+ηbb+ηyi
算法缺点:寻找误分类点时需要遍历样本集计算 w w w,不适用于样本集过大的数据

感知机到神经网络

神经网络基本单元:

https://images2018.cnblogs.com/blog/918077/201807/918077-20180721170503746-1240148319.png

神经网络(由多个基本单元组成):

在这里插入图片描述

神经网络的反向更新(BP)

基于梯度下降法进行更新

在这里插入图片描述

输出为 y j ^ = f ( β j − θ j ) \hat{y_{j}}= f(\beta_{j}-\theta_{j}) yj^=f(βjθj)

损失函数一般设置为:( 1 2 \frac{1}{2} 21是为了后面求导的便利)
E k = 1 2 ∑ j = 1 l ( y j k ^ − y j k ) 2 E_{k} = \frac{1}{2}\sum_{j=1}^{l}(\hat{y_{j}^{k}} - y^{k}_{j})^{2} Ek=21j=1l(yjk^yjk)2
反向更新中需要更新的参数为:各层之间的权值和阈值,更新公式为:
v = v + Δ v Δ v = − η ∂ E ∂ v v = v + \Delta v \\\Delta v = -\eta \frac{\partial E}{\partial v} v=v+ΔvΔv=ηvE

卷积神经网络CNN

CNN结构:特征提取+分类识别

在这里插入图片描述

卷积:提取特征

激活函数:使得网络具有非线性特征

池化:进一步提取特征,同时缩小矩阵大小

全连接层:普通神经网络,进行分类

卷积层

特征提取,可以有多个卷积核,提取多个特征

  1. 填充padding,我们卷积的时候,为了可以更好的识别边缘,一般都会在输入矩阵在周围加上若干圈的0再进行卷积,加多少圈则P为多少。
  2. 步幅,即在卷积过程中每次移动的像素距离大小。
    在这里插入图片描述

池化层

主要有取最大值和取平均值两种

在这里插入图片描述

常用分类器:softmax

将多分类结果以概率形式表现,概率需要满足:非负,相加为一

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值