吴恩达机器学习--中文笔记--第一周


本文是在学习吴恩达老师机器学习课程的基础上结合老师的ppt文献然后加上自身理解编写出来的,有些地方可能有遗漏或错误,欢迎大家批评指正。希望我们一起学习,一起进步!

第一个星期

1.欢迎和介绍

1.1机器学习的定义和类型

一个计算机程序被称为从经验E中学习关于某类任务T和性能度量P的经验,如果它在T中的任务(用P度量)的性能随着经验E而提高。其中(把它看做闯关游戏):

  1. E是多次任务副本的经验
  2. T是过任务副本本身
  3. P是玩家过任务副本评级

一般来讲,机器学习分为无监督学习和监督学习,虽然现在也有所谓的半监督学习,但都是在这基础上实现的。

1.2监督学习

我感觉所谓监督学习就是在输入和输出之间找一个合适的映射关系,因为监督学习有明确的正确的输入对应的输出。
监督学习又可以分为回归问题分类问题

  1. 回归问题大都是基于连续数值的预测
    比如房价的预测,给出不同房子的面积和价格数据,通过机器学习回归拟合,发现面积和价格之间的大致关系。
  2. 分类问题大都是基于二值或多值的离散类别预测
    比如肿瘤类别的预测,给出肿瘤大小和肿瘤类别数据,通过机器学习分类,发现大小和类别之间的大致关系。

1.3无监督学习

我感觉所谓无监督学习就是一个种族划分找相同的过程,不需要数据经验,把有相同特征或特质的种群划分到一起。
无监督学习又可以分为聚类非聚类问题

  1. 聚类比如收集1000000个不同的基因,然后找到一种方法,将这些基因自动分组到不同变量(如寿命、地域、社会角色等)相似或相关的组中。
  2. 非聚类又称“鸡尾酒会算法”,允许你在混乱的环境中找到体系。(例如,在鸡尾酒会上,从一系列声音中辨认出个人的声音和音乐)。

2.模型和代价函数

2.1模型的表示

  1. 数据集
    x ( i ) x^{(i)} x(i)表示第i个输入,用 y i y^{i} yi表示第i个输出,那么 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i))就成为一个训练数据对象,我们将会有一组这样的训练集用来训练 h : X − > Y h:X->Y h:X>Y的映射关系。
  2. 模型
    一般我们都用 y = h ( x ) y=h(x) y=h(x)来表示

2.2代价函数

一般而言,我们定义代价函数如下:

J ( θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n ) = 1 2 m ∑ i = 1 m ( y ^ i − y i ) 2 = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(θ_{0},θ_{1},···,θ_{n})= \frac{1}{2m}\sum_{i=1}^{m}(\widehat{y}_{i}-y_{i})^{2}=\frac{1}{2m}\sum_{i=1}^{m}(h_{θ}(x_{i})-y_{i})^{2} J(θ0,θ1,,θn)=2m1i=1m(y iyi)2=2m1i=1m(hθ(xi)yi)2

式子本身的意义就是计算预测值和真实值之间的差距。我们现在的目的就是让 J ( θ 0 , θ 1 ) J(θ_{0},θ_{1}) J(θ0,θ1)变得更小。
下面来实战一下,先上图:在这里插入图片描述
这张图片是 θ 0 = 0 , θ 1 = 1 θ_{0}=0,θ_{1}=1 θ0=0θ1=1时的情况( h θ ( x ) = θ 1 x + θ 0 = x h_{θ}(x)=θ_{1}x+θ_{0}=x hθ(x)=θ1x+θ0=x),我们可以看出我们假设的直线恰好穿过了数据集的三个点,此时计算 J ( θ 1 = 1 ) = 1 2 ∗ 3 ∗ ( 0 + 0 + 0 ) = 0 J(θ_{1}=1)=\frac{1}{2*3}*(0+0+0)=0 J(θ1=1)=231(0+0+0)=0,也就是说,预测和真实一致,没有误差。
然后再来一张图:
在这里插入图片描述
同样的,这里 θ 0 = 0 , θ 1 = 0.5 , h θ ( x ) = 0.5 x θ_{0}=0,θ_{1}=0.5,h_{θ}(x)=0.5x θ0=0,θ1=0.5,hθ(x)=0.5x,这时,直线落在了散点的下方,也就有了预测值和真实值的误差。代价为
J ( θ 1 = 0.5 ) = 1 2 ∗ 3 ∗ ( ( 0.5 − 1 ) 2 + ( 1 − 2 ) 2 + ( 1.5 − 3 ) 2 ) = 7 12 ≈ 0.58 J(θ_{1}=0.5)=\frac{1}{2*3}*((0.5-1)^{2}+(1-2)^{2}+(1.5-3)^{2})=\frac{7}{12}≈0.58 J(θ1=0.5)=231((0.51)2+(12)2+(1.53)2)=1270.58

这样,我们可以通过改变 θ 1 θ_{1} θ1多找几组 J ( θ 1 ) J(θ_{1}) J(θ1)的值,绘制出如下的 θ 1 θ_{1} θ1关于 J ( θ 1 ) J(θ_{1}) J(θ1)的图像。
在这里插入图片描述

通过这里这张图,我们可以明确我们的目标了,就是让 θ 1 θ_{1} θ1值向1进发,代价才会最小化。

2.3代价函数的可视化

代价函数的值是随 θ 0 , θ 1 θ_{0},θ_{1} θ0,θ1的值的变化而变化的,而 θ 0 , θ 1 θ_{0},θ_{1} θ0,θ1又控制着回归线的位置和形状,也就是说,代价函数和回归线之间依靠 θ 0 , θ 1 θ_{0},θ_{1} θ0,θ1而相互连接。一般而言,在只有 θ 0 , θ 1 θ_{0},θ_{1} θ0,θ1两个参数时, J ( θ 0 , θ 1 ) J(θ_{0},θ_{1}) J(θ0,θ1)是一个类似等高图一样的图像。

我们给出一些散点,作为代价可视化来使用,当 θ 0 = 800 , θ 1 = − 0.15 θ_{0}=800,θ_{1}=-0.15 θ0=800,θ1=0.15时, h θ ( x ) = − 0.15 x + 800 h_{θ}(x)=-0.15x+800 hθ(x)=0.15x+800,对应图像和代价函数标值图如下:
在这里插入图片描述
θ 0 = 360 , θ 1 = 0 θ_{0}=360,θ_{1}=0 θ0=360,θ1=0时, h θ ( x ) = 360 h_{θ}(x)=360 hθ(x)=360,对应图像和代价函数标值图如下:
在这里插入图片描述
θ 0 = 250 , θ 1 = 0.12 θ_{0}=250,θ_{1}=0.12 θ0=250,θ1=0.12时, h θ ( x ) = 0.12 x + 250 h_{θ}(x)=0.12x+250 hθ(x)=0.12x+250,对应图像和代价函数标值图如下:
在这里插入图片描述
通过这三张图片,我们可以看出,当拟合效果越好时,对应代价函数图像的值越靠近等高线中心。

3.参数学习

3.1梯度下降

  1. 为什么梯度下降?
    梯度下降就是为了去寻找代价函数 J ( θ ) J(θ) J(θ)的最小值,从而达到最优拟合效果。
  2. 梯度下降的方法。
    这里梯度下降的方法主要用偏微分的方法,假设我们的代价函数是 J ( θ 0 , θ 1 ) J(θ_{0},θ_{1}) J(θ0,θ1),我们只需要一直重复 θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) θ_{j}:=θ_{j}-α\frac{∂}{ ∂θ_{j}}J(θ_{0},θ_{1}) θj:=θjαθjJ(θ0,θ1)这个式子,直到代价函数 J ( θ 0 , θ 1 ) J(θ_{0},θ_{1}) J(θ0,θ1)满意为止。( α 是 步 长 , 也 被 称 为 学 习 率 α是步长,也被称为学习率 α)
  3. 梯度下降需要注意的一点。
    值得注意的是:在进行梯度下降时,要严格按照以下顺序:
    在这里插入图片描述
    就是说, θ 0 , θ 1 θ_{0},θ_{1} θ0,θ1要同时更新,它们在更新时所用的值都是上一轮的未更新的值。

3.2梯度下降的直观解释

接下来,我们来看看梯度下降具体是如何工作的,我们先假设只有一个参数 θ 1 θ_{1} θ1,当我们的 θ 1 θ_{1} θ1处于不同的起始点时,它的下降方向可能是不一样的,如下面两张图:
在这里插入图片描述
可以看出,当偏导数为正值时, θ 1 θ_{1} θ1是减小的,也就是向左移动。当偏导数为负值时, θ 1 θ_{1} θ1时增大的,也就是向右移动。

另外一个问题就是步长(学习率) α α α的取值问题,当 α α α取值过大或过小时都会影响梯度下降的正常工作。如下图:
在这里插入图片描述
可以看出,当 α α α过大,在寻找最优的过程中会出现震荡现象。当 α α α过小,又会导致消耗大量的计算,时间过长。

另外,梯度下降还有一个特性,就是当接近最小值时,偏微分一般会越来越小,趋近于0,这会导致迭代速率的下降,所以,在梯度下降的过程中,我们一般没有必要减小 α α α
在这里插入图片描述

3.3在线性回归中进行梯度下降

note:convex function == bowl shaped function
在线性回归中,在汇集到最优结果之前,我们会一直重复这个过程(还是注意,它们是同步更新的):
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) \theta_0:=\theta_0-\alpha\frac{1}{m}\sum\limits_{i=1}^{m}(h_{\theta}(x_{i})-y_{i}) θ0:=θ0αm1i=1m(hθ(xi)yi)
θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( ( h θ ( x i ) − y i ) x i ) \theta_1:=\theta_1-\alpha\frac{1}{m}\sum\limits_{i=1}^{m}\left((h_{\theta}(x_{i})-y_{i})x_{i}\right) θ1:=θ1αm1i=1m((hθ(xi)yi)xi)
在公式中, m m m是训练集的数据量, x i , y i x_{i},y_{i} xi,yi是给定的训练集的具体值,它们是已知的。
具体的偏微分部分推导过程如下:

  1. ( θ 1 , . . . , θ j \theta_{1},...,\theta_{j} θ1,...,θj部分)
    ∂ ∂ θ j J ( θ ) = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2      = 2 ⋅ 1 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( h θ ( x ) − y )      = ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( ∑ i = 0 n θ i x i − y )      = ( h θ ( x ) − y ) x j \frac{∂}{∂\theta_{j}}J(\theta)=\frac{∂}{∂\theta_{j}}\frac{1}{2}(h_{\theta}(x)-y)^{2}\newline\quad\qquad\;\;=2·\frac{1}{2}(h_{\theta}(x)-y)·\frac{∂}{∂\theta_{j}}(h_{\theta}(x)-y)\newline\quad\qquad\;\;=(h_{\theta}(x)-y)·\frac{∂}{∂\theta_{j}}(\sum\limits_{i=0}^{n}\theta_{i}x_{i}-y)\newline\quad\qquad\;\;=(h_{\theta}(x)-y)x_{j} θjJ(θ)=θj21(hθ(x)y)2=221(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=0nθixiy)=(hθ(x)y)xj
  2. ( θ 0 \theta_{0} θ0部分)
    ∂ ∂ θ 0 J ( θ ) = ∂ ∂ θ 0 1 2 ( h θ ( x ) − y ) 2      = 2 ⋅ 1 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ 0 ( h θ ( x ) − y )      = ( h θ ( x ) − y ) ⋅ ∂ ∂ θ 0 ( ∑ i = 0 n θ i x i − y )      = ( h θ ( x ) − y ) ⋅ ( 1 − 0 )      = h θ ( x ) − y \frac{∂}{∂\theta_{0}}J(\theta)=\frac{∂}{∂\theta_{0}}\frac{1}{2}(h_{\theta}(x)-y)^{2}\newline\quad\qquad\;\;=2·\frac{1}{2}(h_{\theta}(x)-y)·\frac{∂}{∂\theta_{0}}(h_{\theta}(x)-y)\newline\quad\qquad\;\;=(h_{\theta}(x)-y)·\frac{∂}{∂\theta_{0}}(\sum\limits_{i=0}^{n}\theta_{i}x_{i}-y)\newline\quad\qquad\;\;=(h_{\theta}(x)-y)·(1-0)\newline\quad\qquad\;\;=h_{\theta}(x)-y θ0J(θ)=θ021(hθ(x)y)2=221(hθ(x)y)θ0(hθ(x)y)=(hθ(x)y)θ0(i=0nθixiy)=(hθ(x)y)(10)=hθ(x)y

这里,我们运用的是批梯度下降法,每一步的迭代都要用训练集中的每一组例子。
我们知道,在线性回归中只有全局最优,不存在所谓的局部最优,而且,代价函数所展示出的是一个convex(碗形,凸面的)的形状。我们可以用一张图来展示代价函数的优化行踪。
在这里插入图片描述

3.4线性代数复习

这是大学课堂知识,我就不做笔记了。忘记的同学可以看看MOOC。

参考文献

链接: Coursera Machine Learning.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值