Andrew Ng机器学习coursrea课程学习笔记(第1周)

很久之前就对机器学习很感兴趣,经过各种探索,慢慢开始入门,其中coursera课程上的Andrew Ng是一门相当棒的入门课程。

之前就学过这个课程,不幸的是因为某些原因,学到一半就没继续下去,所以,现在重启课程学习,并把所学到的东西做出笔记。供同样学习这门课程的学习者参考,同时,欢迎共同交流。

coursera官网链接:http://www.coursera.org/

注意:coursera网站在国内可能网速太差,可以考虑科学上网方式。同时针对手机有coursera app,可以在软件平台下载。

目录

一、简介(Introduction)

1. 机器学习应用

机器学习主要在人工智能(AI)领域应用广泛,另一方面,也作为计算机一个新的能力而开发。举例如下:

  • 数据挖掘(Database mining)
    • 不同领域的大数据等
  • 不可直接编程应用(Applications can’t program by hand.)
    • 手写识别,自然语言处理(NLP),计算机视觉等。
  • 定制化程序应用(Self-customizing programs)
    • 产品自动推荐等
  • Understanding human learning
    • real AI等

2. 机器学习定义

没有统一的定义,提供两种不同角度的定义:

  • 不直接通过算法编程的学习,使计算机具有某种功能的领域(Field of study that gives computers the ability to learn without being explicitly programmed.)
  • 一个计算机程序,通过以方法P,多次执行任务T,从而从中得到经验E。与此同时,根据以往的经验E,以方法P,优化任务T的执行.(A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.)

3. 机器学习算法的分类

机器学习可分为两大类:

  • 监督学习(Supervised learning):数据都有正确的标签(x->y,既有输入x,又有输出y,且输出为正确的。)
  • 非监督学习(Unsupervised learning):数据没有标签(x,只有输入数据)
    同时,除此之外,还有强化学习(Reinforcement learning), 推荐系统(Recommender systems)。

例:

回归问题(Regression),分类问题(Classification)属于监督学习,聚类问题(cluster)属于非监督学习。

二、 一元线性回归(Linear Regression with One Variable)

1. 模型(model)

Andrew Ng机器学习coursrea课程学习笔记(第1周)

以上为一个房价预测模型的例子,房子面积x与价格y的关系。
- 面积x:输入变量(特征量)
- 价格y:输出变量(目标量)
- 数据集:收集的数据,在上图以点的形式存在。(x,y)表示一个数据样本,(x(i),y(i))表示第i个样本

通过大量的数据,我们将可以从中学习到规律,从而给任意面积x,都可以比较满意的预测一个价格y。

以下给出一个通用模型:
Andrew Ng机器学习coursrea课程学习笔记(第1周)

  1. xy存在映射关系,可以认为y=f(x) , 但f为未知的。
  2. 通过学习算法和数据集,得到一个h(Hypothesis),使得h f
  3. 从而对于任意x(面积),通过y=h(x)来预测y(房价)。尽管h(x)不等于f(x),但h(x)仍然是一个不错的结果

2. 代价函数(Cost function)

在上一个例子中,由图可以知道,数据多分布在一条直线周围,故可以设

Hypothesis:

hθ(x)=θ0+θ1x
θ(θ0,θ1)为参数,θ与h一一对应,即h有无数个,但有些h预测结果好,即hf,但有些h很差,我们要找出那个最好的h,则需要一个评判标准,这就产生了代价函数。

类似于最小二乘法,采用如下定义代价函数J(θ)

Cost function:

J(θ)=12mi=1m(hθ((x(i))y(i))2

我们的目标是减小代价函数:

Goal:

min  J(θ)

很明显,代价函数越小,所构造模型的误差就越小,预测值更加接近实际值。通过min J(θ)得到一个h,则h f

3. 梯度下降算法(Gradient descent algorithm)

为了min J(θ),需要根据数据集,采用相应的算法,找到θ使得min J(θ),其中,梯度下降算法是一种应用较为广泛的算法。

  • 算法流程:

    1. 选择初值θ(θ0,θ1)
    2. 改变θ(θ0,θ1),使得J(θ)减小
    3. 重复步骤2,直到J(θ)到达最小值,或接近最小值。
  • 具体算法设计:

    repeat until convergence{

    θj:=θjαθjJ(θ)(forj=0andj=1)

    } (其中,在这里J(θ)表示为J(θ0,θ1))

    注意:算法中θ的更新
    Andrew Ng机器学习coursrea课程学习笔记(第1周)

    θ应该同时更新,不能依次计算更新。左边正确,右边错误

  • 该例子具体算法实现:
    计算代价函数偏导数,代入可以得到如下式子
    Andrew Ng机器学习coursrea课程学习笔记(第1周)

  • 具体原理参考微积分内容

三、线性代数(Linear Algebra)

参考课程:mooc上的 线性代数与空间解析几何




全文参考 :coursera机器学习课程(Andrew Ng讲授)相关视频及讲义

相关文章: