吴恩达机器学习第一周

机器学习问题主要可以分为:监督学习(supervised) 和 非监督学习(unsupervised)

监督学习:

回归问题: 预测连续值输出

分类问题:预测离散值输出

数据集给出正确答案(有标签,有y值)

非监督学习:

聚类算法, 数据集无明确答案(没有标签,没有y值),由算法自动分成簇类。

 

假设函数(hypothesis):

用来拟合数据集的函数,像线性回归中的直线方程。

通过选择参数 Θ ,使得对于训练集(x,y), 让h(x)尽可能能接近于y值。

即h(x)就是预测值,算法对x所做的预测。

 

以单变量线性回归为例(其实就是初高中数学中的线性回归问题):

预测房价:

训练集:一个特征值x,代表房子的面积,一个y值,代表房价。

先假设用一条直线拟合,h(x) = θ0 + θ1x

可以给训练集再人为加上一个特征量x0,其值恒为1,主要用来匹配θ0,同时也使得h(x)可以采用矩阵乘法的方式来计算。

要使得h(x)接近于y,定义一个代价函数(cost),其形式为  J =    \frac{1}{2m}\sum_{i=1}^{m}\left ( h\left ( x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2}

这里的x(i),y(i)(i都在上标位置)代表训练集中第i个样本,加平方可使得误差能更加小,同时保证为正数;除以m意为取平均;再除以2主要是为了后面求导时,与平方项求导的2抵消,对整体而言没什么影响。

h(x)要最接近y,也就是代价函数J要最小(接近0),所以整个算法的目标就是求出minimum(J)。

 

要求出J的最小值,最简单最基本的方法就是不断逼近它,而不断逼近的思想也是导数的思想。可以用“梯度下降法”来求。

梯度下降(Gradient Descent)

梯度,高数中的一个概念,某个点的梯度,是指函数在该点的方向导数沿该方向取得最大值,即函数在该点沿该方向(梯度的方向)变化最快。

对于单变量而言,可以简单理解成该点的导数,也就是该点切线的斜率,很明显,如果这个点时时刻刻地沿着它的切线方向移动,即它会不断地在函数曲线上走,最终走到一个导数为0的点(极值点),然后停在那里。

 

所以这种思路,可以用来求解J的最小值问题。求出来的实际上可能只是局部最优解,不一定是全局最优,J最好是一个凸函数(凸函数定义不统一,理解成大概一个“碗状”的样子)。

即不断改变θ值,来逐步收敛J值。

J(θ)对\theta _{j}的求导,为 \left ( h\left ( x \right ) - y \right )x_{j} ,其中,当j为0时,也就是xj是为1的,也就是上文提到的 “人为给它加上一个特征量x0,其值恒为1,用来匹配θ0。”

 

因此,对于每个θ ,都去减掉它的梯度, 即有:

\Theta _{0} = \Theta _{0} - \alpha \frac{1}{m}\sum_{i=1}^{m}\left ( \left ( h\left ( x^{i} \right) - y \right )x_{0}^{i} \right )   ,   其实也就是:     \Theta _{0} = \Theta _{0} - \alpha \frac{1}{m}\sum_{i=1}^{m}\left ( h\left ( x^{i} \right ) - y^{i}\right )

\Theta _{1} = \Theta _{1} - \alpha \frac{1}{m}\sum_{i=1}^{m}\left ( \left ( h\left ( x^{i} \right) - y \right )x_{1}^{i} \right )

α是学习速率,如果太大,会导致下降地过快,可能会错过最低点;而太小,又会导致收敛的速度太慢。

不断地迭代一定步数,就可以得到一个J最小值。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值