排版仍然是如此的粗糙,
有空再来排吧
正文
gradient descent梯度下降
optimization最优化
![](https://img-blog.csdnimg.cn/20210118170049462.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210118170049413.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
这边讲的是梯度下降法的计算和逐点移动过程
逐点移动过程:任选一个初始点,在这个点处计算梯度,这个点减去学习率乘以梯度值,就是下个点,如此迭代
parameter参数,系数
visualize可视化
![](https://img-blog.csdnimg.cn/20210118170049538.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
学习率,也就是最优化里面讲的步长,对于loss函数而言很重要
建议实际训练的时候要把最后这个图画出来,观察一下步长对model的loss函数的影响,通过观察曲线来及时调节步长
![](https://img-blog.csdnimg.cn/20210118170049597.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
刚开始的时候步长应该大一点,当快靠近最优点的时候步长应该减小
比如上式就是一个不错的按照当前步数t减小步长的一个公式
当越靠近最优点,步长会越小,而且减小的幅度会逐渐下降
对于不同的参数应该给不同的步长
root mean square均方根
![](https://img-blog.csdnimg.cn/20210118170049489.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210118170048428.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
这里讲了均方根的计算,可以看到,每次update的参数都与学习率有关,也都与梯度自身有关
![](https://img-blog.csdnimg.cn/20210118170048420.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
可以看到,这里的表达式抵消掉了根号下t+1这部分,最后分子只与学习率有关,而分母只与梯度的平方和有关
![](https://img-blog.csdnimg.cn/2021011817004997.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
这个式子看分母的话说明,梯度越大,更新幅度越小,看分子的话说明,梯度越大,参数更新幅度越大,看起来似乎是互相矛盾的。
![](https://img-blog.csdnimg.cn/20210118170049388.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/2021011817004998.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
这里是想解释上面那个看似矛盾的项。按照我的理解就是刻画出了当前的梯度值相对于之前梯度值水平的变化剧烈程度,也可以认为是防止梯度爆炸或者消失对学习率造成不合常理的影响而采取的手段。
![](https://img-blog.csdnimg.cn/20210118170048468.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210118170050188.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
论学好最优化的 重要性。这就是讲的牛顿迭代法。同时考虑了这一点的导数值和二阶导数值,才能真正反映这一点距离最优点的距离。
![](https://img-blog.csdnimg.cn/20210118170049364.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
这里是用一次微分来近似表征二次微分的大小
![](https://img-blog.csdnimg.cn/20210118170049258.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
stochastic gradient descent随机梯度下降法
这里只用了一个example处的梯度就更新了参数值
![](https://img-blog.csdnimg.cn/20210118170050146.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
随机梯度下降法
天下武功无坚不摧,唯快不破
当梯度下降法汇总了20个example的数据往最合理的方向迈了一步时,随机梯度下降法已经迈了20步了。
![](https://img-blog.csdnimg.cn/20210118170049249.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
如果model函数中同时考虑了两个参数x1,x2,其中x2的范围比x1要大。那么要缩小x2的范围,使得x1,x2的range一样。
希望不同的特征值他们的范围是一样的。标准化,去量纲。
特征缩放,通过求对数或者指数等使数据分布范围近似
![](https://img-blog.csdnimg.cn/20210118170049545.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
沿着w1方向等高线疏松,沿着w2方向等高线密集
没有scaling之前,搜索方向是曲折前进
scaling之后,搜索方向是直线指向最优点的
standard deviation标准偏差
![](https://img-blog.csdnimg.cn/20210118170049547.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
feature scaling特征缩放的方法
![](https://img-blog.csdnimg.cn/20210118170048379.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
问题的意思:我们每一次更新呢参数的时候,得到的新参数一定会使得loss变小吗?
答:
这个是不对的,因为在机器学习中更新参数的时候,loss函数有时候是会增大的
![](https://img-blog.csdnimg.cn/20210118170049777.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
给定一个初始点,画一个它的邻域,在它的这个邻域中找到一个loss最小的点作为第二个迭代点,在这个迭代点周围再确定一个邻域,继续新邻域中的loss最小点。最终能迭代到最优点。
现在的问题是如何很快的在邻域中找到loss最小的那个点?
![](https://img-blog.csdnimg.cn/20210118170047848.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210118170049464.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210118170047833.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
这边讲的是一元泰勒展开以及多元泰勒展开
![](https://img-blog.csdnimg.cn/20210118170049673.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
如果红圈(与学习率、步长成正比)很小,那么x与x0距离很近,可以省略高次项,那么loss函数就可以很简单了,在这么简单的loss函数的基础上求loss最小值
![](https://img-blog.csdnimg.cn/20210118170049232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210118170049715.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
讲了半天又回到了梯度下降法
不过上面成立的条件是学习率足够小
![](https://img-blog.csdnimg.cn/20210118170049744.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvbmdrZWd1bw==,size_16,color_FFFFFF,t_70)
梯度下降法可能会陷入局部最优解