监督学习(supervised learning)

假设我们有一个数据集(dataset),给出居住面积和房价的关系如下:

我们以居住面积为横坐标,房价为纵坐标,组成数据点,如(2104, 400),并把这些数据点描到坐标系中,如下:

由这些数据,我们怎么才能预测(predict)其他房价呢?其中房价作为居住面积的函数。

为了方便描述,我们用x(i)表示输入变量(即居住面积),也叫做输入特征(features);同时,用y(i)表示输出(即房价),也叫做目标(target)变量。有序对   (x(i), y(i))叫做一个训练样本点(training example);我们用来学习(learn)的数据集,包含m个样本点,也叫做训练集(training set),表示为{(x(i), y(i)); i=1,...,m}。其中上标(i)表示样本点在训练集中的索引,跟指数没关系。另外,我们用X表示输入变量的取值空间,Y表示输出的取值空间,在本文中,X=Y=R。

我们的目的就是学习出一个函数h: X->Y,使得h(x)能够很好的预测y,即|h(x)-y|越小越好。由于历史原因,函数h也叫做假设(hypothesis)。整个流程形象化描述下:

当我们想要预测的目标变量是连续的(continuous),这种学习问题被称之为回归(regression);而离散(discrete)时,则叫做分类(classification)。

线性回归(linear regression)

为了让上面的问题更加一般化,假设我们除了居住面积和房价,还知道房间个数,如下:

这样,x就是2维空间R2中的向量。x1(i)表示训练集中第i个房子的居住面积,而x2(i)就是它的房间个数。

学习之前,我们需要先决定函数h的表达式。最原始的想法就是,用x的线性函数来拟合(approximate)y。如下:

其中,θ是参数,也叫权值(weight)。在不会引起误解的情况下,我们通常把hθ(x)中的下标θ去掉,简单表示为h(x)。进一步地,我们令x0=1(即截距),使得:

上式中,我们把θ和x都看做向量,这里其实是行向量,θT是θ的转置(即对应的列向量)。这里之所以要转成列向量,是因为要把两个向量的数量积看做是两个矩阵相乘。

有了函数表达式,接下来就是要利用训练集把参数θ学习出来。为此,我们定义代价函数(cost function)如下:

为什么这样定义代价函数呢?如果以前看过最小二乘法(least-squres),就会很熟悉上式。

LMS(Least Mean Square,最小均方)算法

我们需要找出使得代价J(θ)最小的θ。为此,我们估算一个θ的初始值,并不断改变它使得J(θ)更小,直到J(θ)不能再小。具体做法是利用梯度下降(gradient descent)算法,给θ赋一个初始值,然后按照如下表达式不断更新:

上式更新对θ向量的每个分量θj(j=0,...,n)是同时进行的,其中α叫做学习率(learning rate)。 接下来,我们需要解出右边的偏导(partial derivative),不失一般性地,先假设训练集中只有一个样本(x, y),这样,我们就可以忽略J(θ)中的累加运算,得到如下计算过程,这里需要熟悉导数运算法则,另外,求导的关键在于,对谁求导,谁就是变量,其他都是常量:

把计算后的偏导代回原式,就可以得到如下更新规则(即LMS更新规则),也叫Widrow-Hoff学习规则:

从上式更新规则可以看出,θj的更新增量α(y(i)-hθ(x(i)))xj(i)跟y(i)-hθ(x(i))成正比。通俗来讲就是,当预测值hθ(x(i))接近真实值y(i),即误差(error)越小时,参数θj需要做出的更新越小,反之同理。上述更新规则是通过一个样本计算出来的,推广到m个样本呢?有两种方法,第一种就是把之前的累加运算补回来(因为和的导数等于导数的和),如下:

批量梯度下降(batch gradient descent)。

标准方程(normal equations)

矩阵微分(matrix derivatives)

分类和逻辑回归

接下来,我们看看二元分类(binary classification)问题,即预测值y=0或1。0也叫负类(negative class),1则叫正类(positive class)。二元分类中用到的原理同样适用于多元分类。另外,样本(x(i), y(i))中的y(i)也叫做类标(label)。

sigmoid函数

广义线性模型(generalized linear models)

softmax回归

参数拟合(parameter fitting),对数似然(log-likelihood)

原文链接:

http://cs229.stanford.edu/notes/cs229-notes1.pdf

吴恩达机器学习CS229课程笔记学习的更多相关文章

  1. ML:吴恩达 机器学习 课程笔记(Week1~2)

    吴恩达(Andrew Ng)机器学习课程:课程主页 由于博客编辑器有些不顺手,所有的课程笔记将全部以手写照片形式上传.有机会将在之后上传课程中各个ML算法实现的Octave版本. Linear Reg ...

  2. [吴恩达机器学习笔记]12支持向量机5SVM参数细节

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.5 SVM参数细节 标记点选取 标记点(landma ...

  3. [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...

  4. [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...

  5. [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...

  6. [吴恩达机器学习笔记]11机器学习系统设计3-4/查全率/查准率/F1分数

    11. 机器学习系统的设计 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 11.3 偏斜类的误差度量 Error Metr ...

  7. 吴恩达机器学习笔记22-正则化逻辑回归模型(Regularized Logistic Regression)

    针对逻辑回归问题,我们在之前的课程已经学习过两种优化算法:我们首先学习了使用梯度下降法来优化代价函数

  8. Coursera 吴恩达 机器学习 学习笔记

    Week 1 机器学习笔记(一)基本概念与单变量线性回归 Week 2   机器学习笔记(二)多元线性回归 机器学习作业(一)线性回归——Matlab实现 机器学习作业(一)线性回归——Python( ...

  9. ML:吴恩达 机器学习 课程笔记(Week7~8)

    Support Vector Machines Unsupervised Learning Dimensionality Reduction

随机推荐

  1. 中国MOOC_面向对象程序设计——Java语言_第4章 继承与多态_第4周编程题_将MP3媒体类型存放进Database

    本周我们介绍了以继承方式实现的媒体资料库,在课程代码实现的基础上,请实现一个表达MP3的媒体类型,能和CD.DVD一样存放进这个Database.请提交这个MP3类的代码.如果你认为为了能存放MP3, ...

  2. JAVA的高并发基础认知 一

    一.多线程的基本知识 1.1进程与线程的介绍 程序运行时在内存中分配自己独立的运行空间,就是进程 线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间. 进程是负责整个程序的运行,而线程是 ...

  3. csharp: using HtmlAgilityPack and ScrapySharp reading Url find text

    https://github.com/exaphaser/ScrapySharp https://github.com/zzzprojects/html-agility-pack https://gi ...

  4. 笔记-返回到前一个页面时显示前一个页面中ajax获取的数据

    笔记第一部分:http://www.cnblogs.com/zczhangcui/p/6869219.html 在第一部分遇到的问题是,用ajax获取了一系列列表信息后,拼接好html后插入到了原有页 ...

  5. 【读书笔记】iOS-设计简单的Frenzic式益智游戏

    如果你决定用UIView动画或Core Animation,一定要编写一些测试用例,模拟游戏可能遇到的要求最高的动画,另外不要忘记播放声音.不要等到最后才增加声音,因为在iPhone上播放音乐和音效确 ...

  6. python之递归与二分法

    1. 递归 自己调用自己 递归的入口(参数) 和 出口(return) 树形结构的遍历 import os def func(lujing, n): lst = os.listdir(lujing) ...

  7. ionic3 细节注意

    一.图标和splash大小不一样 icon图标的大小尽量为1024*1024,并且不能为圆角. splash图片的大小尽量为2732*2732,ionic1的大小为2208*2208

  8. VUE axios 发送 Form Data 格式数据请求

    axios 默认是 Payload 格式数据请求,但有时候后端接收参数要求必须是 Form Data 格式的,所以我们就得进行转换.Payload 和 Form Data 的主要设置是根据请求头的 C ...

  9. MySQL 性能优化--优化数据库结构之优化数据类型

    MySQL性能优化--优化数据库结构之优化数据类型   By:授客  QQ:1033553122   优化数字数据(Numeric Data) l   对于唯一ID或其它可用字符串或数字表示的值,选择 ...

  10. flow-vue.js移动端效果

    得益于vue.js和element,以及vue-element-extends在线表格编辑.前后端分离的后端用golang+beego框架,服务器采用腾讯云. vue的自适应做的很好,只要将侧栏加一行 ...