Machine Learning(Stanford)| 斯坦福大学机(吴恩达)器学习笔记【汇总】

from:https://blog.csdn.net/m399498400/article/details/52556168

 

定义本课程常用符号

训练数据:机器用来学习的数据
测试数据:用来考察机器学习效果的数据,相当于考试。

m = 训练样本的数量(训练集的个数)
x = 输入的特征(例如房屋面积)
y = 输出结果(例如房屋售价)

(x(i),y(i)) = 表示训练集中第i个训练样本

一.Cost Function(代价函数)

一,什么是代价函数 
我在网上找了很长时间代价函数的定义,但是准确定义并没有,我理解的代价函数就是用于找到最优解的目的函数,这也是代价函数的作用。

二,代价函数作用原理 
对于回归问题,我们需要求出代价函数来求解最优解,常用的是平方误差代价函数。

比如,对于下面的假设函数: 
这里写图片描述

里面有θ0和θ1两个参数,参数的改变将会导致假设函数的变化,比如: 
这里写图片描述

现实的例子中,数据会以很多点的形式给我们,我们想要解决回归问题,就需要将这些点拟合成一条直线,找到最优的θ0和θ1来使这条直线更能代表所有数据。 
这里写图片描述

而如何找到最优解呢,这就需要使用代价函数来求解了,以平方误差代价函数为例。 
从最简单的单一参数来看,假设函数为: 
这里写图片描述

平方误差代价函数的主要思想就是将实际数据给出的值(x(i),y(i))与我们拟合出的线的对应值做差,这样就能求出我们拟合出的直线与实际的差距了。

这里写图片描述

为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。这样,就产生了代价函数: 

【平均数:  (n表示这组数据个数,x1、x2、x3……xn表示这组数据具体数值)

方差公式: 

拟合出的线的对应值—实际数据给出的值(x(i),y(i))】
这里写图片描述

而最优解即为代价函数的最小值,根据以上公式多次计算可得到 
代价函数的图像: 
这里写图片描述

可以看到该代价函数的确有最小值,这里恰好是横坐标为1的时候。

如果更多参数的话,就会更为复杂,两个参数的时候就已经是三维图像了: 
这里写图片描述

高度即为代价函数的值,可以看到它仍然有着最小值的,而到达更多的参数的时候就无法像这样可视化了,但是原理都是相似的。 
因此,对于回归问题,我们就可以归结为得到代价函数的最小值: 
这里写图片描述

 

二.Multivariate Linear regression(多元线性回归)

现在起将开始介绍一种新的更为有效的线性回归形式。这种形式适用于多个变量或者多特征量的情况。

在之前学习过的线性回归中,都是只有一个单一的特征量--房屋面积 x,如图1-1所示,

图1-1

我们希望用房屋面积这个特征量来预测房子的价格。但是想象一下如果我们不仅有房屋面积作为预测房屋价格的特征量,我们还知道卧室的数量,楼层的数量以及房子的使用年限,如图1-2所示,

图1-2

这样就给了我们更多可以用来预测房屋价格的信息了。接着我们先简单介绍一下符号记法,一开始的时候就提到过我要用x1,x2,x3,x4来表示种情况下的四个特征量,然后仍然用 y来表示我们所想要预测的输出变量 。除此之外,我们来看看更多的表示方式,如图1-3

[第i个训练样本;第i个训练样本中第j个参数值]

                                                                     图1-3

 

首先介绍的是特征数量n,这里用小写n来表示特征量的数目。因此在这个例子中,我们的n等于4(之前我们是用的“m”来表示样本的数量,现在开始我们用n来表示特征量的数目)。

接着介绍的是第i个训练样本的输入特征值x(i)(这里一定要看清是上标,不要搞混了)。举个具体的例子来说x(2)就是表示第二个训练样本的特征向量,如图1-4中用红色框圈起来的位置,

                                                                          图1-4

红色框圈起来的这四个数字对应了我用来预测第二个房屋价格的四个特征量,因此在这种记法中,这个上标2就是训练集的一个索引,而不是x的2次方,这个2就对应着你所看到的表格中的第二行,即我的第二个训练样本,同时也是一个四维向量。事实上更普遍

地来说这是n维的向量。

最后介绍的是第i个训练样本的第j个特征量,用来表示。举个具体的例子来说:

,即对应着图1-4中第二个训练样本的第三个数。

 

 

我们最初使用的假设函数只有一个唯一的特征量,如图1-5黑色字体,

                                                                                         图1-5

但现在我们有了多个特征量,我们就不能再使用这种简单的表示方式了。取而代之的我们将把线性回归的假设改成图1-5中蓝色字体那样。如果我们有n个特征量,那么我们要将所有的n个特征量相加,而不仅仅是四个特征量,如图1-6所示。

                                                                            图1-6

接下来,要做的是简化这个等式的表示方式,为了表示方便我要将x0的(看清楚这里是下标)值设为1。具体而言,这意味着对于第i个样本,都有一个等于1。一开始的时候有n个特征量,由于另外定义了额外的第0个特征向量,并且它的取值总是1,所以我现在的特征向量x是一个从0开始标记的n+1维的向量。同时,我也把我的参数θ也都看做一个n+1维的向量。如图1-7所示

                                                                   图1-7

正是向量的引入,这里我们的假设函数可以换一种更加高效的方式来写,如图1-8,

图1-8

这里我把假设函数等式写成 θ转置乘以X,这其实就是向量内积。这就为我们提供了一个表示假设函数更加便利的形式,即用参数向量θ以及特征向量X的内积。这样的表示习惯就让我们可以以这种紧凑的形式写出假设。 

 

以上就是多特征量情况下的假设形式,另一个名字就是多元线性回归。

 

二.Gradient Descent for Multiple Variables(多元线性回归的梯度下降)

在之前我们谈到的线性回归的假设形式,是一种有多特征或者是多变量的形式。在这部分我们将会谈到如何找到满足这一假设的参数θ,尤其是如何使用梯度下降法来解决多特征的线性回归问题。

现假设有多元线性回归,并约定x0=1,该模型的参数是从θ0到θn,如图2-1所示,

图2-1

这里不要认为这是n+1个单独的参数,我们要把这n+1个θ参数想象成一个n+1维的向量θ。

 

我们一开始的代价函数如图2-2黑色字体所示,

图2-2

但同样地我们不要把函数J想成是一个关于n+1个自变量的函数,而是看成带有一个n+1维向量的函数。

-----------------------------------------------------------------------------

关于图2-2的这个公式要深入理解下,见图2-3的练习

图2-3

一开始选了2和4,提交后得知应该选择1和2。分析如下:

选项1.其实这里的x(i)拆开后是,然后和θ的转置相乘,结果与是一样的。

 

选项2.将括号里的拆开后就是,可见选项2也是对的。

 

选项3.从1开始错误,我们规定了要从0开始。

 

选项4.,因为我们的y不像x有x0,x1,x2等等,y是没有下标只有上标的,所以选项4错误。

 

-----------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------

https://www.cnblogs.com/ooon/p/4947688.html

1 问题的引出

对于上篇中讲到的线性回归,先化一个为一个特征θ1,θ0为偏置项,最后列出的误差函数如下图所示:

手动求解

目标是优化J(θ1),得到其最小化,下图中的×为y(i),下面给出TrainSet,{(1,1),(2,2),(3,3)}通过手动寻找来找到最优解,由图可见当θ1取1时,与y(i)完全重合,J(θ1) = 0

下面是θ1的取值与对应的J(θ1)变化情况

由此可见,最优解即为0,现在来看通过梯度下降法来自动找到最优解,对于上述待优化问题,下图给出其三维图像,可见要找到最优解,就要不断向下探索,使得J(θ)最小即可。

2 梯度下降的几何形式

下图为梯度下降的目的,找到J(θ)的最小值。

其实,J(θ)的真正图形是类似下面这样的,因为其是一个凸函数,只有一个全局最优解,所以不必担心像上图一样找到局部最优解

直到了要找到图形中的最小值之后,下面介绍自动求解最小值的办法,这就是梯度下降法

对参数向量θ中的每个分量θj,迭代减去速率因子a* (dJ(θ)/dθj)即可,后边一项为J(θ)关于θj的偏导数

3 梯度下降的原理

导数的概念

由公式可见,对点x0的导数反映了函数在点x0处的瞬时变化速率,或者叫在点x0处的斜度。推广到多维函数中,就有了梯度的概念,梯度是一个向量组合,反映了多维图形中变化速率最快的方向。

下图展示了对单个特征θ1的直观图形,起始时导数为正,θ1减小后并以新的θ1为基点重新求导,一直迭代就会找到最小的θ1,若导数为负时,θ1的就会不断增到,直到找到使损失函数最小的值。

 

 

有一点需要注意的是步长a的大小,如果a太小,则会迭代很多次才找到最优解,若a太大,可能跳过最优,从而找不到最优解。

另外,在不断迭代的过程中,梯度值会不断变小,所以θ1的变化速度也会越来越慢,所以不需要使速率a的值越来越小

下图就是寻找过程

当梯度下降到一定数值后,每次迭代的变化很小,这时可以设定一个阈值,只要变化小鱼该阈值,就停止迭代,而得到的结果也近似于最优解。

若损失函数的值不断变大,则有可能是步长速率a太大,导致算法不收敛,这时可适当调整a值

为了选择参数a,就需要不断测试,因为a太大太小都不太好。

 

 

如果想跳过的a与算法复杂的迭代,可以选择 Normal Equation。

4 随机梯度下降

对于样本数量额非常之多的情况,Batch Gradient Descent算法会非常耗时,因为每次迭代都要便利所有样本,可选用Stochastic Gradient Descent 算法,需要注意外层循环Loop,因为只遍历一次样本,不见得会收敛。

随机梯度算法就可以用作在线学习了,但是注意随机梯度的结果并非完全收敛,而是在收敛结果处波动的,可能由非线性可分的样本引起来的:

可以有如下解决办法:(来自MLIA)

1. 动态更改学习速率a的大小,可以增大或者减小

2. 随机选样本进行学习 

è¿éåå¾çæè¿°

-----------------------------------------------------------------------------------------------------------------------------

讲完代价函数,讲梯度下降,如图2-4所示,

图2-4

同理这里把函数J想成是带有一个n+1维向量的函数。当我们实现梯度下降法后,我们可以仔细观察一下它的偏导数项,图2-5是我们当特征个数n=1时梯度下降的情况。我们有两条针对参数θ0和θ1不同的更新规则

图2-5

图2-5的两个式子不同点在于对参数θ1我们有另一个更新规则,即在最后多了一项

X(i)。(http://blog.csdn.net/m399498400/article/details/52528722图1-2中讲解了这一项的推导过程)。

----------------------------推导过程------------------结合复合函数的求导(对什么参数求导,其他的参数就当做常数)--------

-----------------------------------------------------------------------------------------------------------------------------

以上是特征数量只有1个的情况下的梯度下降法的实现。当特征数量大于等于1个的时候,我们的梯度下降更新规则,变成了如图2-6的形式。

图2-6

其实图2-5和图2-6这两种新旧算法实际上是一回事儿。考虑这样一个情况,假设我们有3个特征数量,我们就会有对θ1、θ2、θ3的三条更新规则。如图2-7所示,

图2-7

仔细观察θ0的更新规则,就会发现这跟之前图2-5中n=1的情况是相同的。它们之所以是等价的是因为在我们的标记约定里有=1。

如果再仔细观察θ1的更新规则,会发现这里的这一项是和图2-5对参数θ1的更新项是等价的。在图2-7中我们只是用了新的符号来表示我们的第一个特征。其实当n=1的时候,是一样的。因为图2-7的新算法应用更普遍,更广泛,所以以后不管是单特征变量还是多特征变量我们都用图2-7的算法来做梯度下降。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模板匹配算法

from:https://blog.csdn.net/zhi_neng_zhi_fu/article/details/51029864 模板匹配(Template Matching)算法 模板匹配(Template Matching)是图像识别中最具代表性的方法之一。它从待识别图像中提取若干特征向量与模板对应的特征向量进行比较…

立体匹配十大概念综述---立体匹配算法介绍

from:https://blog.csdn.net/wintergeng/article/details/51049596 一、概念 立体匹配算法主要是通过建立一个能量代价函数,通过此能量代价函数最小化来估计像素点视差值。立体匹配算法的实质就是一个最优化求解问题,通过建立合理的能量函数…

zjnu1730 PIRAMIDA(字符串,模拟)

Description Sample Input 6 JANJETINA 5 1 J 1 A 6 N 6 I 5 E Sample Output 1 0 2 1 1题意:给你一个长度小于等于10^6的字符串,然后每次让它循环铺盖,构成层数为n的塔,让你求得第i层塔中某个字符的个数。 思路:首先要…

ICP算法理解

from:https://blog.csdn.net/linear_luo/article/details/52576082 1 经典ICP ICP的目的很简单,就是求解两堆点云之间的变换关系。怎么做呢?思路很自然,既然不知道R和t(针对刚体运动),那我们就假设为未知量呗&#xf…

图像处理的灰度化和二值化

from:http://blog.sina.com.cn/s/blog_13c6397540102wqtt.html 在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色&#x…

获取子元素

1、纯css 获取子元素 #test1>div {background-color:red;}#test1 div {font-size:14px;}#test1>div:first-child {color:#ccc;} <div id"test1"><div>性别</div><div>男</div></div> 因1示例中为#test1下的子元素 #test1…

44.Android之Shape设置虚线、圆角和渐变学习

Shape在Android中设定各种形状&#xff0c;今天记录下&#xff0c;由于比较简单直接贴代码。 Shape子属性简单说明一下:   gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle是指从哪个角度开始变.solid -- 填充。stroke -- 描边。corners -- 圆角…

几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny

from&#xff1a;https://blog.csdn.net/gdut2015go/article/details/46779251 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括&#xff1a;深度上的…

django 初试

/*************************************************************************************** django 初试* 说明&#xff1a;* 昨天打搭了dgango的服务器&#xff0c;今天学一下怎么来输出一个hello world出来。* * …

浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别

from&#xff1a;https://www.jianshu.com/p/67f909f3d0ce 在图像处理的过程中&#xff0c;一般情况下都进行图像增强&#xff0c;图像增强主要包括“空域增强”和“频域增强”&#xff0c; 空域增强包括平滑滤波和锐化滤波。 平滑滤波&#xff0c;就是将图像模糊处理&#x…

Java 开发环境部署

1.下载Java开发环境工具包JDK&#xff0c;下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载后&#xff0c;双击jdk应用程序&#xff0c;根据提示完成安装&#xff0c;安装过程中可以自定义安装目录等信息&#xff0c;这里我选择…

枚举enum、NS_ENUM 、NS_OPTIONS

2019独角兽企业重金招聘Python工程师标准>>> enum 了解位移枚举之前&#xff0c;我们先回顾一下C语言位运算符。 1 << : 左移,比如1<<n,表示1往左移n位&#xff0c;即数值大小2的n次方; 例如 : 0b0001 << 1 变为了 0b0010 2 >> : 右…

数字图像处理-频率域滤波原理

from&#xff1a;https://blog.csdn.net/forrest02/article/details/55510711?locationNum15&fps1 写在前面的话 作者是一名在读的硕士研究僧&#xff0c;方向是图像处理。由于图像处理是一门相对复杂的学科&#xff0c;作者在课堂上学到的东西只是非常浅显的内容&#…

深入浅出的讲解傅里叶变换(真正的通俗易懂)

原文出处&#xff1a; 韩昊 1 2 3 4 5 6 7 8 9 10 作 者&#xff1a;韩 昊 知 乎&#xff1a;Heinrich 微 博&#xff1a;花生油工人 知乎专栏&#xff1a;与时间无关的故事 谨以此文献给大连海事大学的吴楠老师&#xff0c;柳晓鸣老师&#xff0c;王新年老师以及张晶泊老…

IIS(1)

转载&#xff1a;http://blog.csdn.net/ce123 IIS音频总线学习&#xff08;一&#xff09;数字音频技术 一、声音的基本概念 声音是通过一定介质传播的连续的波。 图1 声波重要指标&#xff1a; 振幅&#xff1a;音量的大小周期&#xff1a;重复出现的时间间隔频率&#xff1a;…

手机屏幕适配原理及实现

为什么80%的码农都做不了架构师&#xff1f;>>> 手机屏幕是用户与 App 最直接的交互点 不同的分辨率下用户对我们的 App 具有明显的感观差异&#xff0c;主流分辨率的更新迭代却又完全独立于 App 进行。这让我们想要使 App 在绝大多数主流手机上都保持感观、体验的…

【数字图像处理】傅里叶变换在图像处理中的应用

from&#xff1a;https://www.cnblogs.com/tenderwx/p/5245859.html 1.理解二维傅里叶变换的定义 1.1二维傅里叶变换 二维Fourier变换: 逆变换&#xff1a; 1.2二维离散傅里叶变换 一个图像尺寸为MN的 函数的离散傅里叶变换由以下等式给出&#xff1a; 其中 和。其中变量u和…

求二叉树中两个节点的最远距离

问题定义如果我们把二叉树看成一个图&#xff0c;父子节点之间的连线看成是双向的&#xff0c;我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节…

Source Insight 4.0 最简单的破解安装

from&#xff1a;https://blog.csdn.net/biubiuibiu/article/details/78044232 三步完成Source Insight 4.0 破解安装 下载地址有更新&#xff0c;之前有朋友因潜在的版权问题封禁没下到&#xff0c;现在更新后可正常使用了。 文末有完全清除上次安装残留的方法&#xff0c;…

XML——XML介绍和基本语法

from&#xff1a;https://blog.csdn.net/gavin_john/article/details/51511180 1.XML历史 gml(1969)->sgml(1985)->html(1993)->xml(1998) 1969 gml(通用标记语言)&#xff0c;主要目的是要在不同的机器之间进行通信的数据规范1985 sgml(标准通用标记语言)1993 htm…