深度学习笔记--个人

y=h(b+w1X1+w2X2)   h,w...统称为参数----训练集计算loss函数,然后梯度下降求得

感知机的激活函数为阶跃函数)

激活函数(连接感知机和神经网络的桥梁):

    回归问题------->恒等函数

    分类问题------->softmax函数

 为了发挥叠加层的优势,神经网络的激活函数必须为非线性函数,如果是线性函数的话,一层就能搞定

 

常用的激活函数

1、sigmoid函数

 

2、relu函数

 

3、softmax函数

 

4、恒等函数

输出层前的神经元传来的数值原封不动传出

 

输出层的激活函数,由求解问题的性质决定。

一般,回归问题可用恒等函数

二元分类问题可用sigmoid函数

多元分类问题可用softmax函数

 

batch处理的意义:

打包式的输入数据,当数据传送成为瓶颈时,批处理可以减轻数据总线的负荷

 

 

loss function一般有两种:

1、均方误差 square error

 

2、交叉熵误差cross entropy

 

mini batch 

如果要求所有数据的损失函数的总和,会耗费大量时间,因此,从全部训练数据中选出一部分(称为mini-batch),作为全部数据的“近似”,然后对每个mini-batch进行学习

根据mini batch训练集更新也成随机梯度下降SGD

 

学习算法的实现:

步骤1(mini batch)

从训练数据中随机选出一部分数据,这部分数据称为mini batch

步骤2(计算梯度)

 

步骤3(更新参数)

将权重参数沿着梯度方向进行微小更新

步骤4(重复)

重复步骤1,2,3

 

误差反向传播

 计算损失函数比较浪费时间,误差反向传播可以高效计算权重参数

反向传播的目的:在gradient descent的时候,由于参数通常有很多,所以计算loss函数对各个参数求偏导时工作量比较大,用误差反向传播方法会更加高效计算。

  首先 需要了解 求导的链式法则

backpropagation要求出所有单条loss c的总和对各个参数Wx 的偏导数

根据链式法则,C对W的偏导为C对Z求偏导,再与Z对W求偏导相乘(Z是中间某层在激活函数前的input)

 

 

forward pass很容易求

难的是backward pass

在这里,a是激活函数对z的output 。由于牵涉到C的运算还是很复杂,假设我们知道画问号的那两项,接着往下进行

整理一下,剩下的问题就只有计算那两项了

 

情况1 :z'是output layer的Input,则C对z'的偏导就为:output layer激活函数的导数Xloss function 对该z'对应output layer输出的导数,其中C对y的偏导根据不同loss function的种类而异

 

情况2:z'不是output layer的input--------------------->解决:把z'后续直到output layer的中间结点用前面的方法反向计算出C对z'的偏导数

反向传播的backward pass实质是建立一个反向的神经网络,从右向左,activation function就是正向activation function的导数

 

总结一下 反向传播的流程

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值