什么是机器学习

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

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

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. django CBV模式下如何去掉csrf验证

    方式一:from django.views.decorators.csrf import csrf_exemptfrom django.utils.decorators import method_d ...

  2. c++——类和对象初探

    2.1 基本概念 1)类.对象.成员变量.成员函数 2)面向对象三大概念 封装.继承.多态 3)编程实践 类的定义和对象的定义,对象的使用 求圆形的面积 定义Teacher类,打印Teacher的信息 ...

  3. java 输出流 outputstream

    一:输入和输出概念 输入流(inputstream):对于java程序来说,从程序写入文件叫做输出. 输出流(outputstream):对于java程序来说,从文件读取数据,到java程序叫做输入. ...

  4. [图解tensorflow源码] Session::Run() 分布式版本

  5. Spring3学习笔记--spring概述

    Spring 是什么? Spring 是一个开源的轻量级 Java SE( Java 标准版本)/Java EE( Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发.在传统应用程序 ...

  6. c语言输出控制符

    c语言格式输出 %d 10进制 %f 浮点型输出 %lf 长浮点型输出 %c 字符输出 %s 字符串输出 %o 八进制输出 %x 十六进制输出 %p 16进制,一般输出地址 %e 科学计数法输出 %m ...

  7. springboot-web进阶(二)——AOP统一处理请求

    一.AOP使用示例 AOP的概述在spring篇已经存在,这里不再赘述 1.准备 引入依赖 <dependency> <groupId>org.springframework. ...

  8. Advanced Find and Replace(文件内容搜索替换工具)v7.8.1简体中文破解版

    Advanced Find and Replace是一款文件内容搜索工具,同时也是文件内容批量替换工具.支持通配符和正则表达式,方便快捷强大! 显示中文的方法:第二个菜单-Language-选 下载地 ...

  9. hashMap put的返回值测试

    @Testpublic void findOne() throws Exception { HashMap<Integer,Integer> hashMap = new HashMap&l ...

  10. 18-[JavaScript]-函数,Object对象,定时器,正则表达式

    1.函数创建 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...