http://neuralnetworksanddeeplearning.com

一,损失函数的两个假定:

1,成本函数可被写为C = 1 / N ΣxCx  ,  Cx  针对单个x 。

原因:BP算法先根据单个x计算Ç的梯度,再合并求均值计算整体X下Ç的梯度。

(BP 根据小批量计算Ç的梯度,估算整体Ç的梯度,加快学习速度)

2,我们对成本的第二个假设是它可以写成神经网络输出的函数:

C = C(aL)

原因:BP算法根据人计算最后一层的误差,再反向逐步计算下一层的误差。

二,误差的定义

δ j≡∂C∂zj

神经元的误差定义为Ç对zj的偏导数,采用启发式概念。

三,BP算法的4个公式

直观描述:

BP1:L层,C对zj的变化率= C 对aj 的变化率* aj 对zj 的变化率。

***误差越大,学习速度越快。当最后一层采用sigmod函数,aj = 1(饱和)或0(休眠)时,∂aj∂zj~0,学习很慢。

BP2:l层,C 对zj 的变化率= l + 1 层所有神经元:< C对z(:)的变化率·z(:) 对aj 的变化率> * aj 对zj 的变化率。

BP3:l层,C对b j的变化率= C对zj的变化率= 误差。

BP4:l层,C 对的变化率= C对zj的变化率* zj 对的变化率。

***误差越大,学习速度越快。当 的输入端的(l-1层ak)〜0(休眠),学习很慢。

四,交叉熵损失函数代替平方差损失函数的好处

只考虑一个神经元,当x = 1,y = 0时:

C =(y-a)^ 2

∂C∂w =(a-y)σ'(z)x =aσ'(z)

∂C∂b= (a-y)σ'(z)=aσ'(z)

假如训练开始误差很大,a = 1,因sigmod函数的特点,σ'(z)〜0,梯度很小,学习很慢。

****************

C = -1 / nΣ [ylna +(1-y)ln(1-a)]

∂C∂wj= 1 /nΣxj (σ(z)-y)

∂C∂b= 1 /nΣ (σ(z)-y)

Ç的梯度中不含sigmod函数的微分项,不会〜0,学习快。

五,softmax函数

对L层:a j = e ^ z j /Σe ^ z (:)

softmax层的输出是一组正数,总计为1 。换句话说,来自softmax层的输出可以被认为是概率分布。

softmax层输出概率分布的事实相当令人愉快。在许多问题中,可以将输出激活aj解释为网络对正确输出为j的概率的估计。例如,在MNIST分类问题中,我们可以将aj解释为“网络对数字正确分类为j的估计概率”。

相反,如果输出层是sigmod层,我们不能假设激活形成概率分布。

《neuralnetworks and deeplearning》学习笔记1-深入理解BP算法相关推荐

  1. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  2. ROS学习笔记五:理解ROS topics

    ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...

  3. ROS学习笔记四:理解ROS节点

    ROS学习笔记四:理解ROS节点 本节主要介绍ROS图形概念,讨论ROS命令行工具roscore.rosnode和rosrun. 要求 要求已经在Linux系统中安装一个学习用的ros软件包例子: s ...

  4. 深度学习笔记(9) 优化算法(一)

    深度学习笔记(9) 优化算法(一) 1. Mini-batch 梯度下降 2. 指数加权平均数 3. 动量梯度下降法 4. 均方根反向传播 1. Mini-batch 梯度下降 把训练样本放大巨大的矩 ...

  5. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...

    机器学习实战(Machine Learning in Action)学习笔记----06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习 作者:米仓山下 时 ...

  6. 深度学习笔记(10) 优化算法(二)

    深度学习笔记(10) 优化算法(二) 1. Adam 优化算法 2. 学习率衰减 3. 局部最优的问题 1. Adam 优化算法 Adam代表的是 Adaptive Moment Estimation ...

  7. 【C++ Primer 学习笔记】: 容器和算法之【泛型算法】

    本系列博客主要是在学习 C++ Primer 时的一些总结和笔记. [C++ Primer 学习笔记]: 容器和算法之[泛型算法] 本文地址:http://blog.csdn.net/shanglia ...

  8. 小猫爪:i.MX RT1050学习笔记15-FlexSPI-FLASH使用3-KEIL FLASH算法中的使用

    小猫爪:i.MX RT1050学习笔记15-FlexSPI-FLASH使用3-KEIL FLASH算法中的使用 1 前言 2 FLASH算法解析 2.1 初始化Init 2.2 写操作 END 1 前 ...

  9. AI学习笔记之——如何理解机器学习(Machine Learning)

    前面虽然介绍了概率和贝叶斯网络,但是还是没有正式介绍AI中最重要的算法--机器学习.如果说概率论是机器学习的基石,那么机器学习算法和理论就是支撑整个AI系统的支柱.现在比较火的深度学习神经网路等等其实 ...

最新文章

  1. 面试浅谈 c++ 的空间两级配置器
  2. Android PC投屏简单尝试—最终章2
  3. UVA1493 - Draw a Mess(并查集)
  4. javascript 对象比较是否属于同一类型对象。
  5. AIDE --Linux高级入侵检测
  6. Crashlytics功能集成
  7. linux vim打开乱码,linux下解决vim打开文件乱码现象
  8. Servlet ---- cookie session
  9. html自动播放视频不可用muted,html5_videoaudio的autoplay属性失效的解决方法
  10. python全栈薪资这么高,你知道大厂面试都问什么吗?
  11. 国美云运维自动化实践
  12. UART串口通信协议详解
  13. 【思考】windows补丁提权的疑问
  14. 如何防止黑客攻击,保证服务器安全
  15. 自定义ActionBar -- 更换返回键图标
  16. YUV转RGB(Android)
  17. 自制Arduino便携式超声波测距仪
  18. ImageView(仿QQ图片查看器)
  19. 网易数据治理工具产品实践
  20. Moviepy自动化视频处理:提取视频里的音乐(eg:MV音乐提取,抖音热门音乐提取)

热门文章

  1. 如何使用Caddy部署Vue项目
  2. 物联网大数据平台应具备的功能和特点
  3. CentOS上快速安装Oracle11g数据库
  4. linux的oracle修改实例名SID
  5. CCNA——网络初认识
  6. 通俗易懂设计模式解析——代理模式
  7. 不要再写这样的神级代码了!
  8. #Tomcat# 本地正常但是部署到服务器后,mysql插入中文乱码问题解决!
  9. centos7 安装Golang环境
  10. mysql开启profiling