机器学习第二周学习笔记

新词

  • Polynomial Regression: 多项式回归
  • quadratic: 二次的,二次方程式
  • cubic: 立方体的;立方的
  • square root function: 平方根函数
  • normal equation
  • multivariable linear regression
  • Feature Scaling
  • Zero Mean: 零平均值
  • Standard Variation: 标准方差
  • Vectorization: 向量化

感悟

Feature Scaling: 我的理解是因为要把不同的因子放到同一个公式下面,那么这些因子(Feature)必须要在同一个尺度,要在the same page,很好理解。

Andrew Ng在好几个视频里面都说"to give some intuition" -- 给你一些直观感觉,我觉得这种角教法特别的好,不管背后的理论多么坚深,有了直观感觉之后会很帮助理解。

Normal Equation是另外一种寻找最佳参数的方法,它不像梯度下降(Gradient Descent)那样通过步步逼近的方法来找最优值,它是通过公式,直接得到答案。因此好处和坏处也很明显,因为不是所有的算法都有对应的公式能够一步求解,因此Normal Equation的适用范围比较小,而且当feature的个数超过一千之后,用机器来直接通过矩阵运算来求职就很慢了。而Gradient Descent是一种更通用的算法,因此它的适用范围更广,小小的缺点是当feature数小的时候可能没有Normal Equation快,但是当数据量大了,Feature数大了之后,它的优势就会显示出来了。 Normal Equation不用去做Feature Scaling,因为它是直接求方程的解嘛,当然不用,我个人觉得这不算什么优点。

数学知识对于机器学习确实很重要,否则拿到一份数据,看到数据分布之后,你都不知道你大概要用什么算法,是Linear Regression 还是Logistic Regression? 还是Classification?

Mean normalization是Feature Scaling的一种,它的目的是让Feature所有值的平均值为0。Learing Rate: 机器学习Debug过程当中一个很重要的事情就是找到合适的Learning Rate(阿尔法), 如果Learning Rate过小,那么收敛得就太慢,如果过大呢,可能不会收敛,或者出现交替收敛的现象。

Vectorization: 之前就经常听到一种优化手法叫向量化,之前只是记住了这么一个词,现在终于理解它是怎么优化的了,所谓向量化就是把一些重复的数学计算抽象成两个向量之间的计算,抽象的好处是向量之间的计算可以由软件库自动做一些优化,比如利用硬件的并行能力进行并行计算(这应该也是GPU现在在机器学习里面这么流行的原因)。抽象之后使得我们普通用户/开发不用去手动去写这些优化。

你可能感兴趣的:(机器学习第二周学习笔记)