笔记,人工智能,梯度下降法
基本原理
有一个神经元网络,它有1个输入节点,1个输出节点,中间有多个“隐藏层”,每个隐藏层又有多个节点,层与层之间采用“全连接”。这个神经元网络可以称为函数F,它是以后要干活的那个函数。因为只有1个输入、1个输出,所以它的图像可以画在X-Y坐标系中。它是一个高阶非线性函数,函数图像很复杂、不规则。
在X-Y坐标系中画几个点,叫“训练样本”,经过训练,生成一条曲线,接近这几个点。采用梯度下降法进行训练,梯度的概念参考斜率,一元函数的梯度就是斜率,梯度是斜率向高维空间的扩展。
先给出一系列随机的F的参数,计算此时的F和理想情况的“距离”,这个距离就是损失函数L。如果F有1万个参数,则L就是有1万个输入、1个输出的函数。对L运行梯度下降法,求得最小值时,对应的那1万个参数带回F,即得到可以干活的F。
梯度下降法,L过于复杂,假设它是1个输入、1个输出的函数,它的图像可以在F-L平面上画出。输入是F的参数,输出是“距离”L。如上文所述,从随机的F开始,计算L(F)在此处的梯度(斜率),沿着梯度下降的方向移动一小段,对应新的F和更小的L(F)。重复多次,直到L(F)不再变小,即得到一个“局部最小值”。再给出一个随机的F,去别的地方碰碰运气,也许能得到更小的局部最小值。
使用梯度下降法不能保证得到全局最小值。但实践表明,只要多试几次,局部最小值也是不错的。更何况面对复杂函数,人们没有更好的方法。
运算量估计
设F有n个参数,估计运行F一次,需要n次运算。
设有m个训练样本,则求L一次要运行F函数m次,运算量约为m×n。
L是一个n维函数,求一次梯度需要运行L函数n+1次,运算量为m×n×(n+1)次。
进行p轮训练,总的运算量是p×m×n×(n+1)次。
n一般很大,所以n+1和n差不多,运算量约是pmn2。深度学习的“深”指的是F的层数多,对应n很大。容易误解为训练很多次,即p很大。
对于手写数字识别的例子,这是个入门级的,也许它的n=13000,m=100,p=50,需要的运算量为8451亿次。家用电脑的运算能力在百亿次,需要几十秒。对于更复杂的人工智能应用,就只能借助超算来完成了。
笔记,人工智能,梯度下降法相关推荐
- 吴恩达神经网络和深度学习-学习笔记-11-Momentum梯度下降法
Momentum的原理 这个算法肯定要好于没有Momentum的梯度下降算法(This will almost always work better than the straightforword ...
- 吴恩达神经网络和深度学习-学习笔记-9-mini-batch梯度下降法
mini-batch梯度下降法 mini-batch梯度下降法的介绍 但是当m是一个很大的数(比如500W),在对整个训练集执行梯度下降算法的时候,我们必须处理整个数据集,才能进行下一步梯度下降算法. ...
- 人工智能必备数学知识· 学习笔记 ·001【线性回归,最小二乘法梯度下降法】
注:笔记 来自课程 人工智能必备数学知识 Tips①:只是记录从这个课程学到的东西,不是推广.没有安利 Tips②:本笔记主要目的是为了方便自己遗忘查阅,或过于冗长.或有所缺省.或杂乱无章,见谅 Ti ...
- 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...
- 最优化学习笔记(三)——梯度下降法
本来这周计划写下逻辑回归的学习笔记,但是其中用到了最优化对数似然函数,因此决定先复习下梯度方法和拟牛顿法.本节先从纯数学的角度总结下梯度下降法. 一.柯西-施瓦茨不等式 对于 Rn\mathbb {R ...
- 机器学习笔记(10)——逻辑回归算法优化之随机梯度下降法
在上一篇文章<机器学习笔记(9)--深入理解逻辑回归算法及其Python实现>中,详细学习了逻辑回归算法的分类原理和使用梯度下降法来最小化损失函数的数学推导过程,从而拟合出分类函数的参数θ ...
- 人工智能与机器学习-梯度下降法
人工智能与机器学习-梯度下降法 一.梯度下降法概述 梯度下降法(Gradient descent)是一个一阶最优化算法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近 ...
- 人工智能-损失函数-优化算法:梯度下降法的背后原理【一阶泰勒展开】
一.梯度下降法 梯度下降算法的思想,它将按如下操作达到最低点: 明确自己现在所处的位置. 找到相对于该位置而言下降最快的方向. 沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低. ...
- 吴恩达《机器学习》笔记(一)【线性回归梯度下降法】
通过在网易云课堂学习吴恩达先生的<机器学习>课程,为了巩固自己的学习且方便读者们共同交流学习,特此做此学习笔记,希望与大家共勉. 吴恩达<机器学习>课程链接:https://s ...
最新文章
- VS2005创建CLR自定义触发器
- Ext fucionchart插件
- python变量运算符_Python(三) 变量与运算符
- JS中点语法和方括号语法访问属性的区别
- CCNA Cisco 端口配置(上)
- Spring MVC 中 HandlerInterceptorAdapter的使用--转载
- android activity使用,android,NativeActivity使用
- C++类和new、delete操作符和堆和栈内存的分配
- ECSHOP 订单状态 记录
- redis远程连接不上_redis连接认证及bind的注意事项
- MySQL------报错Access denied for user ‘root‘@‘localhost‘ (using password:NO)解决方法
- 考虑空气阻力的抛射体的matlab,考虑空气阻力的抛射体运动mtlab仿真
- 《网上订餐系统》开发全程回忆
- 【项目总结】汽车之家
- Deepin系统安装摄像头驱动
- Tegra TX1 build tensorflow r1.1
- 【笔记】c++ - 正则表达式: GNU Regex Library、PCRE, PCRE++、Boost.Regex
- java 创建新的图片,底色自己设定
- 45-js操作DOM和bom操作
- c#将字符串转换为数组_C#中怎样把一个字符串转换成字符形数组?