【Day 9】梯度下降法(Gradient Descent) --- Tip 2, 3

Tip 2:随机梯度下降法(Stochastic Gradient Descent)

  • 提升训练速度

随机梯度下降法跟原本的Gradient Descent的差别在,它是每次随机取样一个 https://chart.googleapis.com/chart?cht=tx&chl=x%5En 出来去计算它的Loss,并更新参数,而Gradient Descent是去计算所有资料的Loss才去更新参数。

Tip 3 :特徵缩放(Feature Scaling)

假设我们Regression的function要输入两个feature https://chart.googleapis.com/chart?cht=tx&chl=x_1%2C%20x_2,那如果 https://chart.googleapis.com/chart?cht=tx&chl=x_1%2C%20x_2 分布的范围不一样就建议把它们缩放(scaling)。

举例来说如果 $https://chart.googleapis.com/chart?cht=tx&chl=x_1$ 的数值都是比较小的,https://chart.googleapis.com/chart?cht=tx&chl=x_2 的值都是比较大的,那假设我们把 https://chart.googleapis.com/chart?cht=tx&chl=w_1%2C%20w_2 的值都增加一个固定的值,https://chart.googleapis.com/chart?cht=tx&chl=w_1 对於 https://chart.googleapis.com/chart?cht=tx&chl=y 的影响会比较小,而 https://chart.googleapis.com/chart?cht=tx&chl=w_2 对於 https://chart.googleapis.com/chart?cht=tx&chl=y 的影响会比较大。
如果 https://chart.googleapis.com/chart?cht=tx&chl=x_1%2C%20x_2 的范围是接近的,那它们对於Loss的影响力就会变得差不多,画出来就会变成正圆形,这样不管从什麽地方都可以很容易地到达最低点,因此就可以更容易、更有效地去更新参数。

常见做法

假设有 https://chart.googleapis.com/chart?cht=tx&chl=R 笔范本,每一笔范本里都有一组feature。我们要做的就是去计算每一个dimension https://chart.googleapis.com/chart?cht=tx&chl=i 的平均值 https://chart.googleapis.com/chart?cht=tx&chl=m_i 以及标准差 https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma_i,然後再将第 https://chart.googleapis.com/chart?cht=tx&chl=r 个范本的第 https://chart.googleapis.com/chart?cht=tx&chl=i 个component代入公是去做计算并更新,最後会发现所有dimension的平均值会是 0,而变异数会是 1。


参考资料

李宏毅老师 - ML Lecture 3-1


<<:  Day 07 : Squares of a Sorted Array

>>:  [Day 8] -『 GO语言学习笔记』- 列举(enums) & 变数作用范围(Scope)

工具制作:xml处理工具

本来是想要实现config工具的,然而比较好用的配置文件的格式是xml,於是就先做一个xml的工具;...

[Day15]C# 鸡础观念- 多笔资料的好朋友~List

我们曾经认识过阵列(array), 今天来介绍他的兄弟List吧 List< T > T...

第一次当社群讲者

本文分享我第一次投稿社群研讨会担任讲者的故事。 进入正题 如前几天提到的,我在 2019 年就参加过...

【Day06】Dataflow Level

算术运算子 运算子 说明 + 加法 - 减法 * 乘法 ** 次方 / 除法 % 取余数 在这里的 ...

JAVA - Windows 10 建立 Maven 专案并执行

JAVA - Windows 10 建立 Maven 专案并执行 参考资料 参考资料: (二)mav...