整理自Andrew Ng 的 machine learnig 课程 week1.

目录:

  • 什么是机器学习
  • 监督学习
  • 非监督学习
  • 一元线性回归
    • 模型表示
    • 损失函数
    • 梯度下降算法

1、什么是机器学习

Arthur Samuel不是一个playing checker的高手,但是他编了一个程序,每天和这个程序playing checker,后来这个程序最后变得特别厉害,可以赢很多很厉害的人了。所以Arthur Samuel就给机器学习下了一个比较old,不太正式的定义:

” the field of study that gives the computer the ability to learn without being explicitly programmed “

现代比较正式的一个定义是:

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

也就是说:计算机程序从 ” 做一系列任务T得来的经验E ” 和 “ 测度这个任务做的好不好的表现测度 P “ 中去学习,学习的目标就是,通过这些经验E ,这些任务T做的更好了,做的好不好的评价标准就是P;

以上面Arthur Samuel playing checker的例子来说:

E:Arthur Samuel和程序很多次play checker的经验;

T:playing checker

P:程序在下一次比赛中赢的概率

机器学习问题一般可以分为 ” 监督学习 “ 和 ” 非监督学习 “两类。

2、监督学习

"given data set and already know what our correct output should look like"

对于输入和输出之间的关系我们已经差不多可以有一个思路了

 ” 回归 “ 和 ” 分类 “

回归:结果是连续的,map input to some continuous function (如:预测房价)

分类:结果是离散的,map input to some discrete function (如:预测房价是否大于某个值)

3、非监督学习

” approach problems with little or no ideal what our result should look like “

对于输入和输出之间的关系,我们没有一个概念

” 聚类 “ 和 ” 非聚类 “

聚类:对1000,000中不同的基因聚类,group related to lifespan, height.......

非聚类:鸡尾酒宴会算法,find structure in chaotic environment (比如,在鸡尾酒宴会中各种混杂的声音中识别出某个人的声音或者背景音乐)

4、一元线性回归

模型表示

$x^{(i)}$:输入变量

$y^{(i)}$:输出变量

$(x^{(i)}, y^{(i)})$:一个训练数据

$(x^{(i)}, y^{(i)}); i=1...m$:训练数据集

$X=Y=R$:输入空间和输出空间,这里是一样的

$h_\theta(x)=\theta_0+\theta_1x$

比如以下:

对于监督学习问题:给定训练数据集(x,y),学习一个$h(x):X\rightarrowY$,对于h(x)是y的一个好的预测

损失函数

用于衡量h(x)的accuracy,是h(x)和y的average difference

$J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i))^2$

这个函数被称为平方损失函数(square error function / mean square error), 在回归问题中常用于表示损失函数,非回归问题中也会用,比较常用

这里$sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i))^2$ 是损失平方和,$\frac12$是为了以后求导方便加上去的

我们的目标就是找到一个使得损失函数最小的$\theta_0和\theta_1$:

损失函数 visual 1

以下为了展示损失函数,为了方便,让$\theta_0=0$

当$\theta_1=1$时,$J(\theta_1)=0$,在右图绿色叉叉的位置;

当$\theta_1=0.5$时,$J(\theta_1)=~$,大概在右图蓝色叉叉的位置;

当$\theta_1=0$时,$J(\theta_1)=2.~$,大概在右图上y轴的黑色叉叉那里;

基于以上三个点,我们知道$J(\theta_1)$大概就是上右图的样子,当$\theta_1=1$时$J(\theta_1)$最小,左边递减,右边递增;

损失函数 visual 2

对于以上简单的损失函数,我们还可以在二维图上画出来,也比较好理解,但是当维度(变量)大了之后,这种图就不好画了,比如二维:

此时常用等高线图来表示损失函数:

对于以上的训练数据,当$\theta_0=0, \theta_1=360$时,$J(\theta_0, \theta_1)$位于等高线图中红色叉叉的位置;

当$\theta_0, \theta_1$如下左图时,$J(\theta_0, \theta_1)$位于等高线图中绿色叉叉的位置;

当$\theta_0, \theta_1$如下左图时,$J(\theta_0, \theta_1)$位于等高线图中蓝色叉叉的位置,也就是接近最优解的地方,等高线的近似中间位置;

梯度下降算法

那么如何找到最优解呢?梯度下降算法就是一个方法,见以往博客:Gradient Descent

machine learning 之 导论 一元线性回归的更多相关文章

  1. 【Machine Learning】单参数线性回归 Linear Regression with one variable

        最近开始看斯坦福的公开课<Machine Learning>,对其中单参数的Linear Regression(未涉及Gradient Descent)做个总结吧. [设想]    ...

  2. Machine Learning 学习笔记 (1) —— 线性回归与逻辑回归

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 梯度下降法 (Gradien ...

  3. 机器学习---用python实现最小二乘线性回归算法并用随机梯度下降法求解 (Machine Learning Least Squares Linear Regression Application SGD)

    在<机器学习---线性回归(Machine Learning Linear Regression)>一文中,我们主要介绍了最小二乘线性回归算法以及简单地介绍了梯度下降法.现在,让我们来实践 ...

  4. Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)

    本笔记为Coursera在线课程<Machine Learning>中的单变量线性回归章节的笔记. 2.1 模型表示 参考视频: 2 - 1 - Model Representation ...

  5. machine learning 之 多元线性回归

    整理自Andrew Ng的machine learning课程 week2. 目录: 多元线性回归 Multivariates linear regression /MLR Gradient desc ...

  6. 机器学习---最小二乘线性回归模型的5个基本假设(Machine Learning Least Squares Linear Regression Assumptions)

    在之前的文章<机器学习---线性回归(Machine Learning Linear Regression)>中说到,使用最小二乘回归模型需要满足一些假设条件.但是这些假设条件却往往是人们 ...

  7. Machine Learning 算法可视化实现1 - 线性回归

    一.原理和概念 1.回归 回归最简单的定义是,给出一个点集D,用一个函数去拟合这个点集.而且使得点集与拟合函数间的误差最小,假设这个函数曲线是一条直线,那就被称为线性回归:假设曲线是一条二次曲线,就被 ...

  8. 《Machine Learning in Action》—— 浅谈线性回归的那些事

    <Machine Learning in Action>-- 浅谈线性回归的那些事 手撕机器学习算法系列文章已经肝了不少,自我感觉质量都挺不错的.目前已经更新了支持向量机SVM.决策树.K ...

  9. 机器学习---线性回归(Machine Learning Linear Regression)

    线性回归是机器学习中最基础的模型,掌握了线性回归模型,有利于以后更容易地理解其它复杂的模型. 线性回归看似简单,但是其中包含了线性代数,微积分,概率等诸多方面的知识.让我们先从最简单的形式开始. 一元 ...

随机推荐

  1. 8Manage:“消费升级”缘何剑指企业一体化管理变革?

    [导读]提到消费升级,大家都会想起美学.个性化.品质等标签,近年来经济发展所伴随的消费需求转型在逐渐凸显,开始从粗狂型到精细化,如:关注产品性价比.服务个性化等内容.企业在消费升级下应该如何应对呢?8 ...

  2. win7上Android环境搭建以及调试

    工欲善其事必先利其器,好记性不如烂笔头.要学习一门新的语言,首先必须得先搭环境,否则没法实践.如果之前按照网上的提示,搭建过环境,而且环境比较复杂的话,我相信隔很长一段时间后,就会忘记,到真正用的时候 ...

  3. tcpdump抓包工具的使用

    个人原创,转载请注明,否则依法追究法律责任 2018-02-28  16:01:26 tcpdump 倾倒网络传输数据,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 1 不接任何参数 ...

  4. js 显示数字不断增加

    一个小小的函数,很容易看懂,就不过多解释了,只为下次用时直接用就ok了... function countUp(count) { var div_by = 100, speed = Math.roun ...

  5. V5.7_UTF8_SP1、SP2---任意前台用户登录(cookie伪造)

    漏洞触发点在include/memberlogin.class.php中的MemberLogin类中的登录校验函数 可以看到M_ID参数是由GetNum(GetCookie("DedeUse ...

  6. Redis登录密码设置

    1. 更改Redis.conf配置 # requirepass foobared 去掉注释,foobared改为 自己的password , 我测试的时候用的是默认的 foobared 2.启动red ...

  7. ASP.NET Core 2.0 : 八.图说管道

    本文通过一张GIF动图来继续聊一下ASP.NET Core的请求处理管道,从管道的配置.构建以及请求处理流程等方面做一下详细的研究.(ASP.NET Core系列目录) 一.概述 上文说到,请求是经过 ...

  8. 手把手 git建立仓库,远程推拉及常用git命令和部分Linux命令集锦

    方法一:直接在GitHub上建立一个项目,然后git clone (git address name): 此时已经建立好了一个git仓库: cd 文件夹 > 添加文件进去 >git add ...

  9. 设计模式 --> (17)状态模式

    状态模式 允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类.它有两种使用情况: (1)一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为. (2)一个操作中 ...

  10. nodejs利用superagent爬取数据的简单例子

    爬取世界银行统计数据 安装:npm install superagent /** * Created by zh on 16-9-7. */ var request = require('supera ...