机器学习入门知识

机器学习入门知识

标签: 机器学习 入门 概念 吴恩达


1. 机器学习适用的场景

  • 数据挖掘
  • 无法手工编程的场景(例如控制直升机自动飞行的程序)
  • 尝试理解人类学习和人脑的工作

2. 学习方法分类

  • 监督学习:训练集中的数据,对于每个数据实例,都已知答案,算法就是依据这些来做出预测。
  • 无监督学习:算法从数据中寻找规律,典型的例子为聚类。

3. 回归问题与分类问题

  • 回归问题:预测一个连续的输出(例如预测房价)。
  • 分类问题:预测一个离散的输出。

4. 假设函数

  \(h_\theta(x)\)将输入数据映射到对该数据的预测值。

5. 代价函数

\[J(\theta)=\frac{1}{2m}\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})^2 \]

  一般求解的目标是使得代价函数的值最小,常用的方法为梯度下降。

6. 梯度下降

  迭代更新参数\(\theta_j\)的方法如下:

\[\theta_j := \theta_j - \alpha\frac{\partial}{\partial \theta_j} h_\theta(x) \]

  其中,\(:=\) 是赋值符号,\(\alpha\)被称为学习效率,注意如果\alpha的取值太大,则会造成迭代的过程震荡甚至不收敛;反之,如果\alpha的值过小,则会使得收敛很慢。

  • 梯度下降在迭代过程中可以自动调整修改参数的速率。注意偏导项,当偏导数值较小(一般更有可能接近局部最优点)的时候,每次\theta_j的增量也较小,而当偏导比较大的时候,也会大幅度的修改,即其是自适应的过程,人为要干预的,是选择适当的\(\alpha\)值。

  • 梯度下降必须同时更新每个参数,虽然不同时也可能产生不错的效果,但那样做就不再是梯度下降算法了。

    示例:
    正确写法:
      \(temp_0 := \theta_0 - \alpha\frac{\partial}{\partial \theta_0} h_\theta(x)\)
      \(temp_1 := \theta_1 - \alpha\frac{\partial}{\partial \theta_1} h_\theta(x)\)
      \(\theta_0 := temp_0\)
      \(\theta_1 := temp_1\)

    错误写法:
      \(\theta_0 := \theta_0 - \alpha\frac{\partial}{\partial \theta_0} h_\theta(x)\)
      \(\theta_1 := \theta_1 - \alpha\frac{\partial}{\partial \theta_1} h_\theta(x)\)
    因为在对\(\theta_1\)进行更新时,使用的是已经更新过的\(\theta_0\)的值,所以不是同时的。

posted @ 2016-07-22 12:26  beisong  阅读(266)  评论(0编辑  收藏  举报