机器学习课程 笔记

在AlphaGO血虐人类 和 最强大脑小度精彩表现的刺激下, 后知后觉的对人工智能产生了浓厚的兴趣。

看了一些相关的介绍和论文, 感觉还是要从基础学起。 

出于对大名鼎鼎的Andrew老师的膜拜,开始学习他讲的机器学习课程。 

根据自己的理解和老师的讲义整理一些笔记,方便自己巩固和学习。

文中会有很多不准确或不通顺的理解, 后期会慢慢整理通顺,也希望大神来拍砖指点。

视频地址:https://class.coursera.org/ml/class/index

讲义地址:http://cs229.stanford.edu/materials.html


机器学习包括很多内容,如监督学习,非监督学习,强化学习等等。

关于这些名词的概念 可以网络搜索一下,看看知乎,很容易理解。

本文主要集中对课程内容进行总结,从监督学习开始。


监督学习(Supervised learning)

首先,抛出一个简单的问题。 

我们手上有一些数据, 是房屋的面积和价格, 下图左侧是数据表,右侧是散点图(横轴是面积,纵轴是价格)。


根据上面的数据, 我们如何预测该地区其他房屋的价格呢?


我们希望通过房屋面积 推算出 房屋价格, 这里明确一些概念:

房屋的面积即为输入 特征(Input)

想要估算的房屋价格 即为 输出的目标(target)

现有的每一组(面积,价格)数据,是训练样本(training example)

我们现有的所有面积,价格数据,是训练集(training set)


这样,可以将前面的由房屋面积推算价格的问题,“升级”为:

通过学习训练集, 找到一个函数h,能够很好的根据特征x 估计出目标y。如下图:


下面再给出两个定义:

如果目标变量y是连续变化的,如上文中提到的房价,这类问题称为回归问题(regression problem);

如果目标变量y仅有几个可选的值(如:根据房屋信息判断房屋是别墅还是公寓,则y只有两个值,别墅或公寓),则称之为分类问题(classification problem)。


线性回归(Linear Regression)

为了让问题更有趣,将上文抛出的房价问题搞的复杂一点, 加入卧室数量,如下图:


这时输入变量有两个,面积x1 和 卧室数量x2。

我们先选择一个关于x的线性方程来描述这个问题,如下:


再引入一个 x0=1, 这样h就可以表示成:


这里参数和x均可看成是向量(以后提到的话,都不是一个值,而是一组参数哦!),

n是特征数量(没算x0),刚刚提到的面积和卧室数量共两个特征,所以n=2。


此时,根据样本集找到合适的参数,就能够得到我们想要的函数h了(不要问我得到h后能干什么哦~~)。

这里还要引入一个代价函数(cost function) 的概念。

引入代价函数是为了找到合适的参数, 代价函数是一个关于的函数,

这个函数的值越小,说明h(x)与真实结果y约接近。对房价问题定义如下的代价函数:


我们的目标就是找到,使代价函数J值最小,从而得到想要的函数h。

下面会介绍一些寻找这样的的算法。


梯度下降(gradient descent)

梯度下降简单来说就是逐步寻找代价函数的最小值。 

具体方法是:首先对各个纬度的参数设定初始值,

然后逐步调整该值最终找到代价函数的局部最小值。调整公式如下:


对J求导如下:



因此调整公式可以写成


这是对于单个样本的公式,而一般来说实际情况一定是有多个样本。

对于多个样本我们有两种处理方式:批梯度下降和随机梯度下降。

批梯度下降(batch gradient descent)

批梯度下降是每次调整参数都结合所有样本进行运算, 公式如下:


其中学习率(learning rate),即每次调整的幅度,这个参数的选取对梯度下降也有很大影响,后续会讲到。

批梯度下降的好处是一定能找到局部最小值, 缺点是当样本数量巨大的时候,运算量大,导致收敛速度慢。


随机梯度下降(stochastic gradient descent)

随机梯度下降算法是每次使用一个样本进行运算,公式如下:


随机梯度下降好处是收敛迅速,但有可能会在局部最小值附近徘徊,无法找到最小值(但一般来说结果已经很接近最小值,是可以接受的)。


除了梯度下降, 还有一种无需循环遍历的寻找最小值的方法,叫正规方程(normal equations)。


正规方程(normal equations)

定义如下:


另外把所有样本均看成向量,可得:


综上可得(其中用到了一些线性代数的公式,就不证明了,参考讲义cs229-Notes1第11页):


这样,为了让J取得最小值,


整理得:


下面链接也能帮助理解normal equations:

https://zhuanlan.zhihu.com/p/22757336


下面手写了点便于理解的思路,字丑请忽略。








  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值