深度学习(二)BP求解过程和梯度下降
一、原理
重点:明白偏导数含义,是该函数在该点的切线,就是变化率,一定要理解变化率。
1)什么是梯度
梯度本意是一个向量(矢量),当某一函数在某点处沿着该方向的方向导数取得该点处的最大值,即函数在该点处沿方向变化最快,变化率最大(为该梯度的模)。
2)代价函数有哪些
0-1损失函数(0-1 loss function):
L(Y,f(X))={1,0,Y≠f(X)Y=f(X)
平方损失函数(quadratic loss function)
L(Y,f(X))=(Y−f(X))2
绝对损失函数(absolute loss function)
L(Y,f(X))=|Y−f(X)|
对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likelihood loss function)
L(Y,P(Y|X))=−logP(Y|X)
3)为什么需要代价函数(损失函数)
a: 学自动化的时候,我们要求系统是收敛的,稳定的。对于模型,输入x,产生的输出y,希望能最接近期望的Y,如果y不能等于Y时,我们希望知道模型离期望的Y有多远,所以我们需要定义一个cost function以衡量模型的好坏。既然是付出代价,我们希望付出的代价最小,因为输入的x是逐步添加的,我们不可能一步到位,那么选择下降最快的方向,尽快达到最低,使得系统稳定。这就是我们需要梯度的原因。(更新权值即为更新这个函数的斜率(切线的斜率,该函数的变化快慢),在这个代价函数中,这个是以权值为参数的函数,我们要做的就是找到最小误差时,权值为多少)
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;

b: 假如你现在有一个凸目标函数J(x)如下图,你想要求它的最小值。
假如你是在左边那个点上面(画出了切线和函数相交的那个点),你要往最小值的那个地方跑,你肯定不能够往上面跑对吧。要是你高中学过物理的话,你就会知道,你必须完全把速度用到切线的方向上面你才能够最快的到最小值。为什么呢?因为要是你的速度在其他的方向,最后算是你往下的速度只是你一开始速度的一个分量。那么肯定就没有那么大的速度往最小值走了对吧。
我们又知道,在一个点的切线方向就是导数的方向。你从上面的图来看的话,在最小值点处的导数是0,然后最小值左边的导数都小于0,最小值右边的导数都大于0.(这里别问我为什么)。
对于左边那个点的横坐标,是应该加上该点导数的值还是应该减去该点导数的值才能够往最小值的横坐标移动呢?如果x值要往右边移动,需要加上一个正的数,又因为这里的导数是小于0的,那么就需要减去导数值。最终对于左边这个点来说是要减去导数的值才能够向最小值移动。
对于右边那个点,想去最小值那么x需要往左边移动,因为该点的导数是大于0的,那么往左边移动需要减去导数的值。那么还是需要减去导数的值。
个人总结:
在我们确定了输入了以后,这个代价函数就是以权值为参数的一个函数,我们要做的就是去寻找最小的误差点,求最小就是要去找权值点,因为这是一个以权值为参数的函数,求导,导数的含义就是变化率,当我们求出导数的值为正数时,则说明这是这是一个上升的点,上升说明了这个函数的误差率在变大,我们要往其反方向走(我们以增大的方向为正方向),怎么走,这个时候就要去找方向了,找哪个方向更快的下降,答案是切线的方向(如有不懂的地方,可以百度).当导数为负数时,则相反!
所以存在这样的式子:
这个方向是个矢量,表示朝哪个方向走,而n(导数前面那个符号)表示步长,表示我朝这个方向走多长(步长由我们用户自定义)。
二求解过程
发现是不是都是关于E对w的求导。符号第一点的要求。
定义变量&4和&8
观察上图,我们发现权重wji仅能通过影响节点j的输入值影响网络的其它部分(前面只能影响后面),设netj是节点j的加权输入。
即
2)隐藏层权值训练
深度学习(二)BP求解过程和梯度下降的更多相关文章
- 深度学习面试题03:改进版梯度下降法Adagrad、RMSprop、Momentum、Adam
目录 Adagrad法 RMSprop法 Momentum法 Adam法 参考资料 发展历史 标准梯度下降法的缺陷 如果学习率选的不恰当会出现以上情况 因此有一些自动调学习率的方法.一般来说,随着迭代 ...
- 【深度学习】BP反向传播算法Python简单实现
转载:火烫火烫的 个人觉得BP反向传播是深度学习的一个基础,所以很有必要把反向传播算法好好学一下 得益于一步一步弄懂反向传播的例子这篇文章,给出一个例子来说明反向传播 不过是英文的,如果你感觉不好阅读 ...
- 深度学习之BP算法
1.介绍 人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是在现代生物学研究人脑组织所取得成果的基础上提出来的.人工神经网络是大脑生物结构的数学建模,有 ...
- go微服务框架go-micro深度学习 rpc方法调用过程详解
摘要: 上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取serv ...
- 深度学习二、CNN(卷积神经网络)概念及理论
一.卷积神经网络(CNN) 1.常见的CNN结构有:LeNet-5.AlexNet.ZFNet.VGGNet.ResNet等.目前效率最高的是ResNet. 2.主要的层次: 数据输入层:Input ...
- go微服务框架go-micro深度学习(五) stream 调用过程详解
上一篇写了一下rpc调用过程的实现方式,简单来说就是服务端把实现了接口的结构体对象进行反射,抽取方法,签名,保存,客户端调用的时候go-micro封请求数据,服务端接收到请求时,找到需要调用调 ...
- go微服务框架go-micro深度学习(二) 入门例子
上一篇帖子简单介绍了go-micro的整体框架结构,这一篇主要写go-micro使用方式的例子,中间会穿插一些go-micro的源码,和调用流程图,帮大家更好的理解go-micro的底层.更详细更具体 ...
- 吴恩达深度学习:2.9逻辑回归梯度下降法(Logistic Regression Gradient descent)
1.回顾logistic回归,下式中a是逻辑回归的输出,y是样本的真值标签值 . (1)现在写出该样本的偏导数流程图.假设这个样本只有两个特征x1和x2, 为了计算z,我们需要输入参数w1.w2和b还 ...
- 深度学习基础(CNN详解以及训练过程1)
深度学习是一个框架,包含多个重要算法: Convolutional Neural Networks(CNN)卷积神经网络 AutoEncoder自动编码器 Sparse Coding稀疏编码 Rest ...
随机推荐
- 深海划水队项目----七天冲刺之day3
上完选修后的站立式会议: 工作进度 昨天已完成的工作: 推进开发进度,进一步理清开发思路. 今天计划完成的工作: 生成游戏块的类,其中包括7种不同的游戏块,每个游戏块又可以通过旋转得到另外一种形态. ...
- [label][转载][web-design-psychology]网页设计心理
原文出处: http://mux.alimama.com/posts/1301 Tip1:信息不要同时全部展示,阶段性地向用户展示当前场景里必要的信息 设计师经常犯的错误:同时将大量信息展示给用户.不 ...
- 软件项目第一个Sprint评分
第一组 跑男 跑男组他们设计的是极速蜗牛小游戏,他们的界面背景图片做的挺漂亮,现在为止也实现了大部分功能, 但是我没有太听懂他们的游戏规则. 因为蜗牛出发后,每次碰到屏幕边缘后都会有确定的反弹结果,也 ...
- Oracle EBS学习网站列表
Oracle官方文档库http://tahiti.oracle.com/http://www.oracle.com/technetwork/documentation/index.html#apps其 ...
- 原创:MVC 5 实例教程(MvcMovieStore 新概念版:mvc5.0,EF6.01) - 3、创建项目
说明:MvcMovieStore项目已经发布上线,想了解最新版本功能请登录 MVC 影视(MvcMovie.cn) 进行查阅.如需转载,请注明出处:http://www.cnblogs.com/Dod ...
- mysql5.7 column cannot be null
背景 独立测试环境安装了数据库,但安装的版本是mysql 5.7的版本,而研发用的是mysql5.6的版本,在执行某个数据库操作的提示,提示column “xxxx”cannot be null 问题 ...
- HtmlHelper扩展之mvchtmlstring
后台: using System;using System.Web;using System.Web.Mvc; namespace EwayFramework.Utils.Token{ public ...
- python网络编程--进程(方法和通信),锁, 队列,生产者消费者模型
1.进程 正在进行的一个过程或者说一个任务.负责执行任务的是cpu 进程(Process: 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在 ...
- “全栈2019”Java第一百零七章:匿名内部类与构造方法注意事项
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 小A的旅行(绿豆蛙的归宿)【期望DP】
Description 给出一个有向无环的连通图,起点为1,终点为N,每条边都有一个长度.小A从起点出发,走向终点.到达每一个顶点时,如果有K条离开该点的道路,小A可以选择任意一条道路离开该点,并且走 ...