目录

一、BP原理及求导

二、softmax及求导

一、BP

1、为什么沿梯度方向是上升最快方向

    根据泰勒公式对f(x)在x0处展开,得到f(x) ~ f(x0) + f'(x0)(x-x0), 故得到f(x) - f(x0) ~ f'(x0)(x-x0), 所以从x0出发,变化最快,即使f(x)-f(x0)最大,也就f'(x0)(x-x0),由于f'(x0)与(x-x0)均为向量(现在x0取的是一个数,如果放在多维坐标那么x0就是一个多维向量),由余弦定理f'(x0) 与(x-x0)方向相同时,点积最大,故梯度方向是上升最快方向。

2、什么是BP

梯度反向传播(back propagation)过程就是: 由前馈神经网络得到损失函数,然后根据损失函数后向地更新每一层的权重,目的就是让损失函数变小

3、BP的优势

  • 与从前往后进行求导相比,BP能够避开了路径被重复访问,它对于每一个路径只访问一次就能求顶点对所有下层节点的偏导值。
  • 能够自适应、自主学习。这是BP算法的根本以及其优势所在,BP算法根据预设的参数更新规则,不断地调整神经网络中的参数,以达到最符合期望的输出。

4、BP的不足

  • BP是基于梯度下降算法实现的,所以容易陷入局部最小而不是全局最小
  • 由于BP神经网络中的参数众多,每次都需要更新数量较多的阈值和权值,故会导致收敛速度过慢

二、softmax函数及求导

1、softmax函数

在Logistic regression二分类问题中,我们可以使用sigmoid函数将输入映射到区间中,从而得到属于某个类别的概率。将这个问题进行泛化,推广到多分类问题中,我们可以使用softmax函数,对输出的值归一化为概率值。

这里假设在进入softmax函数之前,已经有模型输出值,其中是要预测的类别数,模型可以是全连接网络的输出,其输出个数为,即输出为

所以对每个样本,它属于类别的概率为:

通过上式可以保证 ,即属于各个类别的概率和为1。

2、求导

对softmax函数进行求导,即求 


项的输出对第项输入的偏导。
代入softmax函数表达式,可以得到:

所以,当时:

时:

LOSS 求导

对一个样本来说,真实类标签分布与模型预测的类标签分布可以用交叉熵来表示:

最终,对所有的样本,我们有以下loss function:

其中是样本属于类别的概率,是模型对样本预测为属于类别的概率。

对单个样本来说,loss function对输入的导数为:

上面对求导结果已经算出:

时:

时:

所以,将求导结果代入上式

参考博客:

1、https://zhuanlan.zhihu.com/p/27223959

【机器学习】BP & softmax求导的更多相关文章

  1. Deep Learning基础--Softmax求导过程

    一.softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类! 假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个 ...

  2. softmax求导、cross-entropy求导及label smoothing

    softmax求导 softmax层的输出为 其中,表示第L层第j个神经元的输入,表示第L层第j个神经元的输出,e表示自然常数. 现在求对的导数, 如果j=i,   1 如果ji, 2 cross-e ...

  3. 【机器学习基础】对 softmax 和 cross-entropy 求导

    目录 符号定义 对 softmax 求导 对 cross-entropy 求导 对 softmax 和 cross-entropy 一起求导 References 在论文中看到对 softmax 和 ...

  4. 前馈网络求导概论(一)·Softmax篇

    Softmax是啥? Hopfield网络的能量观点 1982年的Hopfiled网络首次将统计物理学的能量观点引入到神经网络中, 将神经网络的全局最小值求解,近似认为是求解热力学系统的能量最低点(最 ...

  5. softmax交叉熵损失函数求导

    来源:https://www.jianshu.com/p/c02a1fbffad6 简单易懂的softmax交叉熵损失函数求导 来写一个softmax求导的推导过程,不仅可以给自己理清思路,还可以造福 ...

  6. 关于 RNN 循环神经网络的反向传播求导

    关于 RNN 循环神经网络的反向传播求导 本文是对 RNN 循环神经网络中的每一个神经元进行反向传播求导的数学推导过程,下面还使用 PyTorch 对导数公式进行编程求证. RNN 神经网络架构 一个 ...

  7. cnn softmax regression bp求导

    内容来自ufldl,代码参考自tornadomeet的cnnCost.m 1.Forward Propagation convolvedFeatures = cnnConvolve(filterDim ...

  8. softmax分类器+cross entropy损失函数的求导

    softmax是logisitic regression在多酚类问题上的推广,\(W=[w_1,w_2,...,w_c]\)为各个类的权重因子,\(b\)为各类的门槛值.不要想象成超平面,否则很难理解 ...

  9. softmax 损失函数求导过程

    前言:softmax中的求导包含矩阵与向量的求导关系,记录的目的是为了回顾. 下图为利用softmax对样本进行k分类的问题,其损失函数的表达式为结构风险,第二项是模型结构的正则化项. 首先,每个qu ...

随机推荐

  1. MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析

      关于如何理解MySQL执行计划中Extra列的Using where.Using Index.Using index condition,Using index,Using where这四者的区别 ...

  2. Unity重置Animator到初始状态和重复播放同一个Animation

    遇到问题 特效同事给的Animation更改了物体的很多属性,如Active,Alpha, Scale,Position等等,物体本身需要重复利用,因此使用对象池技术不直接销毁而是隐藏等需要时再显示, ...

  3. Python面试笔记四

    数据库 1.将name字段添加索引 create index index_emp_name on student(name); 2.查询女生中数学成绩最高的分数 select max(score) f ...

  4. 对java中的equals()方法的总结

    Java的基础学习总结--equals方法 一,等于方法介绍 1.1.通过下面的例子掌握等于的用法 1 package cn.galc.test; 2 3 public class TestEqual ...

  5. java源码equals和hashCode

    equals public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject ...

  6. hashlib模块

    老师博客:http://www.cnblogs.com/Eva-J/articles/7228075.html#_label12 摘要算法 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个 ...

  7. HBase 是列式存储数据库吗

    在介绍 HBase 是不是列式存储数据库之前,我们先来了解一下什么是行式数据库和列式数据库. 行式数据库和列式数据库 在维基百科里面,对行式数据库和列式数据库的定义为:列式数据库是以列相关存储架构进行 ...

  8. 主成分分析 —PCA

    一.定义 主成分分析(principal components analysis)是一种无监督的降维算法,一般在应用其他算法前使用,广泛应用于数据预处理中.其在保证损失少量信息的前提下,把多个指标转化 ...

  9. TensorRT&Sample&Python[uff_custom_plugin]

    本文是基于TensorRT 5.0.2基础上,关于其内部的uff_custom_plugin例子的分析和介绍. 本例子展示如何使用cpp基于tensorrt python绑定和UFF解析器进行编写pl ...

  10. React-代码规范

    1.方法绑定this,统一写在consrtructor()里. constructor(props){ ... this.handleInputChange=this.handleInputChang ...