斯坦福大学公开课:监督学习应用,梯度下降

监督学习应用例子:以房屋大小和价格为例,本次采用47个样本。

m: training examples,训练样本集

x: "input",variables/features变量,x为输入变量,在本次例子中,表示房屋大小

y: "output", variable/"target" variable,y为输出变量,在本次例子中,表示房屋价格

(x,y): training examples 表示训练样本

监督学习的流程如下(以房子为例):

training set(训练集)

learning algorithm(学习算法)

new living area(新的房子大小)   →  h(假设与之相关的函数)→estimate price(根据h函数评估房子价格)

对于函数h(x)=hθ(x)=θ01x12x2

其中x1表示房子大小,x2表示卧室数量;

hθ(x)表示特征向量x预测的价格;

因此公式会转为为:

n表示特征向量的个数;

在本例中,特征向量只有2,一个是房子大小,另外一个是卧室数量,因此n为2,如下公式所示,

J(θ)表示的是真实值和预测值之间的差距。利用的原理是最小二乘法。

对于J(θ),我们要做的就是使J(θ)最小化,J(θ)越小,说明我们预测的结果越准确。

梯度下降法的原理是通过多次迭代,当J(θ)不再发生很大变化,说明已经收敛了。

随机梯度下降:当样本量很大时,比如几十亿的训练样本量。这个时候采用随机梯度下降法比较合适。可以有效节省时间。但是随机梯度下降法不会精确收敛到全局的最小值。也就是意味着,你在下降过程中,可能在全局最小值附近徘徊,有可能还会往高处走。但是你的参数总体趋向于全局最小值附近徘徊。

随机梯度下降法的公式:

repeat {

for J: 1 to m {

( for all i )

}

}

表示对参数向量的,所有第i个位置按公式的方式进行更新。这个方法的好处是,修改参数时,仅需要查看第一个训练样本,并且利用第一个训练样本进行更新,之后使用第二个训练样本执行下一次更新。这样调整参数就会快很多。因为你不需要在调整之前,遍历所有的数据。

时间: 2024-09-28 23:16:18

斯坦福大学公开课:监督学习应用,梯度下降的相关文章

斯坦福大学公开课:iOS 7应用开发 笔记

2015-07-06 第一讲   课务.iOS概述 -------------------------------------------------- 开始学习斯坦福大学公开课:iOS 7应用开发留下笔记

《斯坦福大学公开课:编程方法学》随笔

这是观看网易公开课 Mehran Sahami教授的<斯坦福大学公开课:编程方法学>后的随笔. 目前只看到第三次课,<Karel与Java>,我的收获有以下要点: 1.软件工程跟普通的写代码是不同的.软件应该考虑很多东西,比如:可移植性.便于升级维护等等,而不仅仅是写出代码实现功能那么简单. 2.代码是写给机器执行的,但更重要的是人要让人能看懂.(代码后期维护等等的工作量或者时间是写代码的10倍及更多,所以让代码更规范更易被人读懂很重要) 3.准确定义一个函数.一个类.一个包的功能

斯坦福大学公开课:iPad和iPhone应用开发(iOS5) 学习笔记 2

继续学习公开课 第二节课做了一个简单的计算器作为例子.大概Touch了如下知识点: 讲解了XCode4,我看了一下最新下载的是XCode8了. XCode创建工程, singleViewApplication还是有的,界面对比起XCode4来,更简洁些了,操作跟视频讲解里的差不多. 体会了下第一节课讲的MVC View的代码看不到这个感觉不太爽,特别是前面操作是将number的button拷贝到了 operation的 button,结构导致operation button也都连接到了digit

机器学习 斯坦福大学公开课(1)

机器学习定义 Machine Learning definition Arthur Samuel (1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed. 没有明确编程的情况下,使计算机有能力学习的研究领域. 四部分: 第一部分: Supervised Learning监督学习 第二部分: 学习理论 第四部分: Un

斯坦福大学公开课机器学习:Neural network-model representation(神经网络模型及神经单元的理解)

神经网络是在模仿大脑中的神经元或者神经网络时发明的.因此,要解释如何表示模型假设,我们先来看单个神经元在大脑中是什么样的.如下图,我们的大脑中充满了神经元,神经元是大脑中的细胞,其中有两点值得我们注意,一是神经元有细胞主体,二是神经元有一定数量的输入神经.这些输入神经叫做树突,可以把它们想象成输入电线,它们接收来自其他神经元的信息,神经元的输出神经叫做轴突,这些输出神经是用来给其他神经元传递信号或者传送信息的.简而言之,神经元是一个计算单元,它从输入神经接受一定数目的信息,并做一些计算,然后将结

斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)

绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制一条学习曲线,通常先绘制出训练集数据的平均误差平方和(Jtrain),或者交叉验证集数据的平均误差平方和(Jcv).将其绘制成一个关于参数m的函数.也就是一个关于训练集.样本总数的函数.m一般是一个常数,比如m等于100,表示100组训练样本.但我们要自己取一些m的值,也就是说对m的取值做一点限制,

[课堂笔记]斯坦福大学公开课:IOS 7应用开发 lecture7

1.One is CGFloat.It’s a floating point number.All floating point numbers that have to do with drawing on the screen or getting touch events or whatever are CGFloats.This might be a double.It might be just a regular floating point number.Not only usin

机器人学-笔记-斯坦福大学公开课-class 2

kinematics 1. manipulator is defined by a set of links connected trough joints. 2. joint type: 移动,转动 3. configuration parameters 4. constraints, freedom. 5. planning motions in configuraiton coordinates 6. degress of redundancy. 7. rotation matrix.

[课堂笔记]斯坦福大学公开课:IOS 7应用开发 lecture6

1.Abstract means that this class cannot be instantiated and used,it’s only useful as a superclass for other classes that are concrete. (04:00) 2.And I also like to document,even on my implementation any methods that basically are abstract.Any method