什么是机器学习

关于机器学习,有以下两种不同的定义。

机器学习是研究如何使电脑具备学习能力,而不用显式编程告诉它该怎么做。

the field of study that gives computers the ability to learn without being explicitly programmed.​

机器学习能够使电脑程序从以往的经验(E)中学习并改善自己,从而在处理新的任务(T)时提升它的性能(P)。

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

这里针对第二种定义举个例子:下围棋

E:程序模拟人类下很多盘棋所积累的经验

T:下围棋这个任务

P:程序赢得下次比赛的几率

模型表示

假定我们现有一大批数据,包含房屋的面积和对应面积的房价信息,如果我们能得到房屋面积与房屋价格间的关系,那么,给定一个房屋时,我们只要知道其面积,就能大致推测出其价格了。

以这个问题为例,可以建立一个回归模型,首先明确几个常用的数学符号:

  • 输入变量:\(x^{(i)}\),也叫做输入特征,如这个例子中的面积

  • 输出变量:\(y^{(i)}\),也叫做目标变量,如例子中的我们需要预测的房价

  • 训练样本:\((x^{(i)},y^{(i)})\)是输入变量和输出变量称为一组训练样本

  • 训练集(Training set):\(i=1,...,m\),这么多组训练样本构成训练集

  • 假设(hypothesis):也称预测函数,比如例子中可以建立这样一个线性函数:
    \[
    h_θ(x)=θ_0+θ_1x_1
    \]


我们的目标是找到满足这样一个线性函数来拟合训练集中的数据,那么,给定一个房屋时,我们只要知道其面积,就能大致推测出其价格了。这个过程可以用下图来表示:


代价函数

有了模型,我们还需要评估模型的准确性。于是代价函数就被引进,它也叫做平方误差函数
\[
J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2
\]
可以看出,代价函数是采取预测值和真实值差值的平方和取均值的方式来评估数据的拟合程度的,代价函数的值越小,表示模型对于数据的拟合程度越高。

梯度下降

有了模型和评价模型的方式,现在我们要确定模型中的参数\(\theta_0\)和\(\theta_1\),以找到最好的模型。

以\(\theta_0\)为\(x\)轴,\(\theta_1\)为\(y\)轴,代价函数\(J(\theta)\)为\(z\)轴,建立三维坐标系,可以得到如下图所示的图像:


如果把这个图像看作是一座山的话,我们有一个起点\((\theta_0,\theta_1,J(\theta_0,\theta_1))\),现在要从这个点找到一条最快的路径到达山脚下,数学上来说,梯度是最陡峭的方向,所以我们要始终沿着梯度的方向走。

学习率

方向已经确定,但是往这个方向前进的距离是多少呢?这个距离由学习率\(\alpha\)来确定。有了方向和步距,那么\(\theta_0、\theta_1\)的变化规律如下:


那么怎么样确定学习率\(\alpha\)(步距)呢?

如果步距过大,可能接近收敛的时候会越过收敛点,甚至最终无法收敛。

如果步距过小,收敛所花的时间会很久。

所以我们要调节\(\alpha\)的大小,使收敛时间在一个合理的范围里。

在每一次迭代过程中,需要改变\(\alpha\)的大小吗?如果不需要的话,接近收敛时,会不会因为步距偏大而越过收敛点?

在迭代过程中不需要改变\(\alpha\)的大小,因为接近收敛点时,梯度(斜率)会变小,等价于步距在自动变小,所以没有必要减小\(\alpha\)。


最后,为什么代价函数的表达式中为什么取均值的除数是\(2m\)而不是\(m\)?

我们来看一看参数每一次的迭代过程都发生了什么?
\[
\begin{equation}
θ_0:=θ_0-a\frac{∂}{∂θ_0}J(θ_0,θ_1)
\end{equation}
\]
对上式化简,


因此,


所以取2m的原因其实是为了求导数时化简方便,可以和平方项的2约掉。

【Coursera-ML-Notes】线性回归(上)的更多相关文章

  1. Coursera ML笔记 - 神经网络(Representation)

    前言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自Standford Andrew N ...

  2. (转载)[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation

    [机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation http://blog.csdn.net/walilk/articl ...

  3. [机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等.主要学习资料来自Standford Andrew N ...

  4. 如何应用ML的建议-上

    本博资料来自andrew ng的13年的ML视频中10_X._Advice_for_Applying_Machine_Learning. 遇到问题-部分(一) 错误统计-部分(二) 正确的选取数据集- ...

  5. 批量下载Coursera及其他场景上的文件

    以下方法同样适用于其他场景的批量下载. 最近在学习Coursera退出的深度学习课程,我希望把课程提供的作业下载下来以备以后复习,但是课程有很多文件,比如说脸部识别一课中的参数就多达226个csv文件 ...

  6. ml的线性回归应用(python语言)

    线性回归的模型是:y=theta0*x+theta1   其中theta0,theta1是我们希望得到的系数和截距. 下面是代码实例: 1. 用自定义数据来看看格式: # -*- coding:utf ...

  7. ML:多变量线性回归(Linear Regression with Multiple Variables)

    引入额外标记 xj(i) 第i个训练样本的第j个特征 x(i) 第i个训练样本对应的列向量(column vector) m 训练样本的数量 n 样本特征的数量 假设函数(hypothesis fun ...

  8. Coursera连接不上(视频无法播放),修改hosts文件

    视频问题 如果Coursera网站连接不上,或者视频加载不出来.可以通过如下方式进行配置:   一.找到hosts文件 Windows 系统, hosts文件位于: [C:\Windows\Syste ...

  9. 贝叶斯线性回归(Bayesian Linear Regression)

    贝叶斯线性回归(Bayesian Linear Regression) 2016年06月21日 09:50:40 Duanxx 阅读数 54254更多 分类专栏: 监督学习   版权声明:本文为博主原 ...

  10. 机器学习之单变量线性回归(Linear Regression with One Variable)

    1. 模型表达(Model Representation) 我们的第一个学习算法是线性回归算法,让我们通过一个例子来开始.这个例子用来预测住房价格,我们使用一个数据集,该数据集包含俄勒冈州波特兰市的住 ...

随机推荐

  1. docker 不同版本 添加--insecure-registry

    docker  17.0.3 vim /lib/systemd/system/docker.service 然后重启 systemctl  daemon-reload , systemctl rest ...

  2. 十五项指标衡量DevOps是否成功

    DevOps在你的组织内部运行的如何?如果你需要一些帮助来度量它的运行情况,我们已经准备了一个用于跟踪的关键DevOps指标的列表,这些度量可以帮助了解你的团队是如何随着时间的推移而运行的. 在团队内 ...

  3. leetcode 39. Combination Sum 、40. Combination Sum II 、216. Combination Sum III

    39. Combination Sum 依旧与subsets问题相似,每次选择这个数是否参加到求和中 因为是可以重复的,所以每次递归还是在i上,如果不能重复,就可以变成i+1 class Soluti ...

  4. Rserve详解,R语言客户端RSclient【转】

    R语言服务器程序 Rserve详解 http://blog.fens.me/r-rserve-server/ Rserve的R语言客户端RSclient https://blog.csdn.net/u ...

  5. UCOSii和Linux的区别和联系

    UCOSii和Linux的区别和联系 想通过UCOSii来理解Linux的系统架构,故参考一些资料,简单整理了一下UCOSii和Linux的区别和联系,以此来更好的学习Linux. 其具体对比如下: ...

  6. [Phonegap+Sencha Touch] 移动开发29 安卓navigator.camera.getPicture得到图片的真实路径

    原文地址:http://blog.csdn.net/lovelyelfpop/article/details/38313021 phonegap的拍照插件选择图库中的图片.代码例如以下: naviga ...

  7. 内部元素一一相应的集合的算法优化,从list到hashmap

    说是算法优化,基本上是在吹牛,仅仅只是算是记录下,我写代码时候的思路.毕竟还是小菜鸟. 我要开一个party,与会者都是情侣,可是情侣并非一起过来的,而是有先有后,可是每位与会者来的时候都拿着一束鲜花 ...

  8. python二进制处理详述(转)

    python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的. import struct a=12.34 # ...

  9. 【HNOI2014】画框

    题面 题解 这又是一种套路啊233 将\(\sum a_i\)和\(\sum b_i\)分别看做\(x\)和\(y\),投射到平面直角坐标系中,于是就是找\(xy\)最小的点 于是可以先找出\(x\) ...

  10. spark-submit python 程序,"/home/.python-eggs" permission denied 问题解决

    问题描述,spark-submit 用 yarn 模式提交一个python 脚本运行程序,运行到需要分布式的部分,即map/mapPartition等等RDD的时候,或者actor RDD的时候,报错 ...