基础的神经网络与反向传播

算法原理

概述:
算法通过构建多层网络解决单层感知机的非线性可分无法分割问题,通过梯度下降法更新网络中的各个权值向量,使得全局的损失函数极小化,从而实现对任意复杂的函数的拟合,这在分类问题中表现为它能将任意复杂的数据划分开,在回归问题中表现为它能拟合任意复杂的回归函数
其中梯度下降的核心是误差反向传播算法,这个算法大大减少了梯度下降法的计算量,是多层神经网络得以复苏的功臣,它使得当前层的梯度项能往后一层传播,从而快速求得后一层的梯度

问题1:神经网络是如何解决非线性可分无法分割问题的?
pla模型可以看做是神经网络的一个神经元,我们知道,pla能对数据空间划分一个超平面,简单的实现分类任务。但是pla这种只会切一刀的模型无法解决异或问题。
而神经网路可以通过增加一个2节点的隐藏层,就相当于是放置了两个pla,这两个pla互相独立,各自能在数据空间划分一个超平面,对于异或问题,它们将二维空间划分为3到4个平面(图2的A、B、C、D四个平面),然后隐藏层到输出层再对这些平面做一次分割将其分成两类(图3的橙色与蓝色),从而解决了非线性可分的异或问题

问题2:如何理解神经网络强大的拟合能力?
说真的,我觉得神经网络比决策树抽象太多了,不容易理解,下面只是我的一些肤浅的认识
对于分类问题,用空间切割的思想进行理解,通过上述异或问题的例子我们看到,通过增加节点数,神经网络能将输入数据的空间划分成任意多的子空间,从而能对任意复杂的数据划分开,例如下图1可以经过划分将不同标签划分开(图2)

对于回归问题,用数据空间变换的思想进行理解

  • 权值向量对输入数据的空间的不同维度执行了放大缩小的操作
  • 其偏置值对数据空间进行了平移
  • 求和函数与不同层的节点数差异对空间进行了降维与升维
  • 非线性激活函数对空间进行扭曲
    通过这些操作的不同组合,就能将变换后的数据拟合标签值y,因为这些操作的组合就能任意变换数据空间,也就能拟合任意复杂的函数了

问题3:反向传播算法如何进行?
考虑下图所示的一个简单的神经网络,其中的权值向量等符号也在图中定义,这里先不考虑偏置
神经网络示例
现在计算该模型在 ( x k , y k ) (x_k,y_k) (xk,yk) 这个训练样本上的损失 E k E_k Ek以及对应上图蓝色线和红色线的反向传播更新的梯度 ∆ w i ∆w_i wi ∆ v i h ∆v_ih vih
我们定义对这个样本的损失是模型预测值 y k ^ \hat{y_k} yk^与原来的 y k y_k yk的均方误差,因此很明显这个误差就是我们在这个样本上想要极小化的损失函数
E k = ( y k − y k ^ ) 2 E_k=(y_k-\hat{y_k} )^2 Ek=(ykyk^)2

重复一下,我们想要更新的是两个权值(w和h),因此根据梯度下降法我们需要求这两个权值对上述的损失函数的梯度,然后根据求得的梯度对权值本身进行更新

  • 损失函数对w_j求偏导,需要运用到链式求导的定律
    ∂ E k ∂ w j = ∂ E k ∂ y k ^ ∗ ∂ y k ^ ∂ β ∗ ∂ β ∂ w j = 2 ∗ ( y k − y k ^ ) ∗ b j \frac{∂E_k}{∂w_j}=\frac{∂E_k}{∂\hat{y_k}}*\frac{∂\hat{y_k}}{∂β}*\frac{∂β}{∂w_j} =2*(y_k-\hat{y_k})*b_j wj

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值