第一篇:斯坦福大学公开课 :机器学习课程note1翻译
CS229 Lecture notes
Andrew Ng 监督式学习
让我们开始先讨论几个关于监督式学习的问题。假设我们有一组数据集是波特兰,俄勒冈州的47所房子的面积以及对应的价格
我们可以在坐标图中画出这些数据:
给出这些数据,怎么样我们才能用一个关于房子面积的函数预测出其他波特兰的房子的价格。
为了将来使用的方便,我们使用x表示“输入变量”(在这个例子中就是房子的面积),也叫做“输入特征”,y表示“输出变量”也叫做“目标变量”就是我们要预测的那个变量(这个例子中就是价格)。一对(x,y)叫做一组训练样本,并且我们用来学习的---一列训练样本{(x,y);i=1,„,m}--叫做一个训练集。注意:这个上标“(i)”在这个符号iiiiii表示法中就是训练集中的索引项,并不是表示次幂的概念。我们会使用χ表示输入变量的定义域,使用表示输出变量的值域。在这个例子中χ=Y=R
为了更正式的描述我们这个预测问题,我们的目标是给出一个训练集,去学习产生一个函数h:X→ Y 因此h(x)是一个好的预测对于近似的y。由于历史性的原因,这个函数h被叫做“假设”。预测过程的顺序图示如下:
当我们预测的目标变量是连续的,就像在我们例子中的房子的价格,我们叫这一类的学习问题为“回归问题”,当我们预测的目标变量仅仅只能取到一部分的离散的值(就像如果给出一个居住面积,让你去预测这个是房子还是公寓,等等),我们叫这一类的问题是“分类问题”
PART I Linear Reression 为了使我们的房子问题更加有趣,我们假设我们知道每个房子中有几间卧室:
在这里,x是一个二维的向量属于R。例如,x1i就是训练集中第i个房子的居住面积,i是训练集中第i个房子的卧室数量。(通常情况下,当设计一个学习问题的时候,这些输x22入变量是由你决定去选择哪些,因此如果你是在Portland收集房子的数据,你可能会决定包含其他的特征,比如房子是否带有壁炉,这个洗澡间的数量等等。我们以后可能会涉及到更多变量的问题,现在我们先按照给定的变量的讲解。)
为了完成监督是学习,我们必须决定怎么样去描述我们的函数/假设 h 在计算机中。有一个最初的选择,我们把y近似的看成是x的一个线性函数:hx01x12x2 在这里,θ(i)是参数(也叫做权重)是y关于x的线性函数之间的参数。当y与x之间没有其他影响因素的时候我们将会舍弃下标θ,通常写为h(x)。为了简化我们的标注,我们习惯上令x0=1(这个是截距),因此可以写成
右边的θ和x都是向量并且这里n是输入的变量的个数(不是计算x0的个数)。
现在给定一个训练集,我们怎么选择、学习、计算权重θ?一个合理的方法类似与让hx尽可能的接近于y,至少对于我们所训练的数据都是适合的。使这个近似形式化,我们定义一个测量函数去记录对于每一个θ,h(x(i))有多接近于y(i)。我们定义一个代价函数
如果你以前了解过线性回归,你会认出这个和最小二乘法比较近似。不管你以前是否看过他,让我们继续,并且我们最终会证明这个知识众多的算法大家庭中的一个特例而已。LMS algorithm(Least Mean Square 最小均方差算法)我们想去选择一个θ使得J(θ)取的最小值。为了这样做,我们用一个寻找算法给θ赋一个初值(随机的),然后不断的重复改变θ的大小以便是J(θ)更小,直到我们找到一个θ是的J(θ)达到我们期望的最小值。特别的,我们考虑“梯度下降算法”,用下面这个公式寻找θ。
(这个更新过程同时的对所有的j=0…n执行)α表示“学习速率”。这是一个自然算法,反复的对J在减小的方向上迈出一大步直到最小。
为了执行这个算法,我们需要做的工作就是计算出等号右边的偏导数。首先我们计算出一组(x,y)样本的偏导数,这是我们可以先忽略掉对J的求和。(运用求导定律很容易就能求出导数)
对于单一的训练样本,这里给出了更新的规则:
这个规则就叫做LMS更新规则(LMS是least mean squares的缩写)也被叫做Widrow-Hoff(就是Widrow和Hoff这两位大仙发明的这个算法。参考链接:http://baike.baidu.com/link?url=bmZNDF9xV8GMtSE_rk9eV_9UbE9wGrnAdYqyf876U3Lf4IKfkRZVCoACvxF2dm1zmRDu1UUYzW9nQs-8oPWhu_)学习规则。这个算法有几个自然的和直观的特性。例如,更新的量级正比于误差项
(y(i)− h_(x(i)));因此,当我们遇到一组训练样本的预测值非常接近他的真实值的时候,我们会发现在更新过程中权重项基本不变;相反的这个权重项会有一个大的变化当我们的预测值hθ(x(i))有大的误差的时候(例如预测值和真实值y(i)差别非常大的时候)
我们推断出了当有一个训练样本是的LMS算法。我们有两种方法可以让这个算法去适应多于一个训练样本的例子。第一种是用下面这种算法替换:
可以很容易的证明上述的更新规则算法的运算量仅仅是
J()(对J的初始化定义)。j因此这是一个简单的梯度下降算法对于原始成本函数J。这个方法注重每一个训练样本在训练过程中的每一步,所以也被叫做“批量梯度下降”。注意,梯度下降算法容易受到局部最小值的影响,这个优化问题我们对于线性回归算法只有一个目标就是找到最合适的,因此梯度下降算法总是收敛于全局最小值。(将设学习率α不是很大)实际上,J是一个凸函数。这里我们有一个梯度下降算法的例子,是使这个二次函数取得最小值。
B
这些椭圆表示了这个二次函数的等高线。这个紫色的线条表示的是取得最小值的轨迹,T初始化(48,30)。这个X标识出来在图中在梯度下降算法计算出的每个θ值,并且用实线连接起来。
当我们运行批量梯度算法去计算θ在我们以前的数据集去估计房子的价格使用房子的价格和房子面积的函数,我们得到0=71.27,1=0.1345.如果我们把 h(x)当作x(面积)的函数,使用训练样本中的数据,我们能得到下面这张图:
如果卧室数量也被当作一组输入变量,我们得到0=89.60,1=0.1392,2=-8.738.上面这些结果都是我们使用批量梯度算法得到的。对于批量梯度算法算法可以有其他的选择使他更好的预测。考虑一下下面这个算法:
在这个算法中,我们重复的使用梯度下降算法在训练样本中,并且每一次我们遇到一个训练样本,我们更新这个权重仅仅根据每一次对训练样本训练的梯度误差。这种算法叫做“随机梯度下降法”(也叫做增量梯度下降法。)然而批量梯度下降法必须要扫描全部的训练集在进行每一步之前----一个多余的操作如果m特别大的话----随即梯度下降算法可以随时开始,并且可以继续进行下一步在他跟踪的样本上。一般情况下,随即梯度下降算法会比批量梯度算法更快的使的θ“接近”最小值。(注意虽然根本不可能收敛到最小值,并且这个权重θ会一直震荡在使的J(θ)取得最小值的θ的附近;但是实际上大多数在最小值附近的值已经可以取了,已经可以近似的使函数取得最小值了)。更多的原因,特别是当这个训练集很大的时候,随即梯度下降算法通常是优先选择相对于批量梯度算法。The normal equations 梯度下降法给出了一种方法最小化J。让我们讨论另一种方法最小化J,这个算法明确的求解最小化并且不依赖于迭代算法。使用这种方法,我们通过计算J的导数来最小化J并且使他们等于0。为了不在运算过程中写过多的代数和大量的矩阵,这里对使用的计算矩阵的符号做一些介绍。
2.1 Matrix derivatives、定义一个函数,从m*n的矩阵到实数的映射,(f:Rm*nR)定义f关于矩阵A的导数:
因此梯度Af(A)本身就是
A112f一个m*n维的矩阵,对于(i,j)的元素就是。举个例子,假设A=AijA212*2维的矩阵,并且函数f:R2*2A12是一个A22R 已给定为:f(A)32A115A12A21A22 2这里Aij表示矩阵
A中(i,j)维的元素。我们得到:
这里介绍一下迹算子记作“tr”。对于一个n*n维的矩阵A,A的迹就是矩阵主对角线上元素 的和trAAi1nii。如果a是一个实数(例如a是一个1*1维的矩阵),tra=a。(如果你以前么有见到过这个运算符号,你可以矩阵A的迹看作tr(A)或者对矩阵A求他的迹。)
迹运算同样适用于两个矩阵A和B因此AB如果都是方阵,我们可以得到 tr(AB)=tr(BA)。下面是这个公式的一些推论,我们有如下:
下面对于迹的操作的一些公式也很同意证明。这里A和B都是方阵,并且a是一个实数
我们下面给出一些矩阵导数的迹推论并不进行证明(本节中不会用到)。等式(4)仅仅适用于非奇异方阵A,|A|表示A的行列式。
为了使我们的矩阵符号更具体,让我们现在详细解释第一类方程的意义。假设我们有一些固定的矩阵B∈Rn*m.我们可以定义一个函数f:Rn*mn*m→R根据F(a)= tr(AB)。注意,这个定义是有意义的,因为如果AR确实是从Rn*m,然后AB是一个方阵,我们可以将其应用到它,因此f到R的映射。我们可以运用我们的定义矩阵导数找到Af(A),m*n矩阵。
T方程(1)在上述情况下,该矩阵的输入(i,j)的值可以由B给出或者等价于Bji。方程的证明(1-3)是相当简单的,留下作为给读者的练习。方程(4)可以使用伴随矩阵和矩阵的逆来推导。2.2 Least squares revisited
随着矩阵导数,我们开始继续在封闭的模型中寻找θ使的J(θ)取得最小值,开始先把J重新写入向量矩阵中。
给定一个训练集,定义m*n维的矩阵X(实际上是m*(n+1)维的,如果算上偏置项)在矩阵中包含给定的训练集的输入值在
同时,定义y为一个一维的列向量,值为所有的目标值
现在,从我们可以很容易证明:
运用定理
可以得到
最后,为了最小化J,我们寻找J(θ)关于θ的导数。结合式子(2)和(3),我们发现
因此有:
AT,BBTXXT
在第三步中,我们使用了实数的迹就是实数本身这个定理;第四步我们使用了在第五步中我们对式5使用AT,BBTXXT和C=I和公式1.为了最tr(A)tr(AT),小化J,我们使他的导数等于0可以得到如下等式:
因此,使的J(θ)最小的θ的值就可以有下式得到: Probabilistic interpretation
当得到一个回归问题时,什么时候使用线性回归,什么时候选择最小二乘算法去计算价值函数J?本节中,我们会给出一系列的假设来描述什么情况下使用最小二乘算法最合适。
假设我们的目标变量和输入变量的关系是:
xix
i表示误差项(就像我们预测房价例子中有很多其他因素比如地理位置,房屋年龄等这些我们考虑外的对房价有影响的因素我们没有计算进去),或者随机噪声。我们进一步假定i是分散的IID(independently and identically distributed)根据高斯分布(也叫正态分布)均值为0方差为2。我们可以写出这个i的定义iN(0,2)。也就是说i的概率密度是给定的
这表明:
说明yi的分布是由xi和θ控制的。注意,我们不能单独以θ为的条件,因为θ不是一个随机值。我们也能把这个式子写成另外一种形式:
给定X(设定好的矩阵包含所有的输入变量xi)和θ,如何求的yi的分布呢?这个可能的值就是。这个值代表y(或者X)的一个关于θ的函数。当我们明确
的理解这个函数之后,我们给他起一个名字叫做似然函数:
注意由于这个偏差项i的独立性(同样的y和xi之间)这个式子也可以写成
i
现在给定这个概率模型关于y和xi,怎么去选择最合理的方法去最好的求解我们想
i要得到的参数θ?这个极大似然函数使的我们能尽可能的取得最好的θ。我们应该选择θ使的L(θ)最大。
最大化L(θ),我们可以最大化任意的单调递增函数L(θ)。特别的,求他的派生物(这里表示的是对数)的最大值回事比较简单的方法
:
因此,最大化相当于最小化
我们认出了这个J(θ)就是我们的最小二乘法函数。
小结:在前面的概率模型计算中,使用最小二乘算法去寻找θ使得极大似然函数取得最大值。这个是一种比较合理的方法使用最小二乘法算法求解问题。(注意虽然这个方法是合理的和比较好的但是一定还有更加合适的方法去使用这个方法)
注意,在我们前面的讨论中,我们最终的选择θ并没有使用到偏差项,而且也是因为即使偏差项我们不知道,计算的结果仍然是一样的。这个结论我们会在后续讨论指数族和广义线性模型的时候用到。Locally weighted linear regression(局部加权线性回归)
考虑这个问题从x属于R预测 y。这个最左边的模型显示出这个预测得到的结果函数。我们看到这个数据并没有全部落到这个线上,所以说这个预测结果并不是很。
相反的,如果我们给这个函数加上一个额外的变量x2,预测函数则为,然后我们得到一个比刚才那个更适给定数据的预测函数(中间这幅图)。看起来好像我们加上去的变量越多这个模型越好。然而,加上太多的模型也是危险的对于我们的预测来说:右边这个模型是一个使用了五个自变量的预测模型。我们可以看到这个模型完美的适和我们给定的数据,我们不能期待这个是一个好的预测模型对于使用房子的面积去预测房子的价格。在没有正式定义这些模型之前,我们可以看到左边这个模型是低拟合度的例子-----给定训练集中的数据离我们给出的预测函数相差太多----右边这个模型是过拟合度的例子。(本节课的后面,我们会给出这些定义的概念,并且给更加详细的定义去判断一个预测模型是好还是坏)
正如前面讨论的和在上面例子中展示的,特征变量的选择直接决定了一个学习模型的好坏。(当我们讨论模型选择时候,我们会看到模型会自动选择特征变量。)在这部分,我们来讨论一下局部加权线性回归算法(LWR)假设有足够的训练数据,特征变量未鉴定。这个方法是聪明的,你会得到机会去发现这个算法的一些优异之处在你的作业中。
在经典线性回归算法中,我们在一个点x做出预测我们将会:
1、寻找使
2、输出Tx
相反的在局部加权线性回归算法中我们会这样做:
最小化的θ
1、寻找使T2、输出x
最小的θ
在这里是一些非负的权值。更直接的如果是一个非常大的特殊值关于i的,之后
更小。如果
很小,之在选择θ的过程中,我们会尽最大努力去使后计算过程中的误差项可以直接被忽略在寻找的过程中。
一个公平的标准选着权值的公式是:
i注意那些我们将要预测x并且对特别点x有依赖的权值。特别的是如果|xx|很小,这个
i权值就会接近1;并且如果|xx|很大,这个权值就会很小。因此,θ被选来作为更高的“权重”去减小误差使的取得最合适的值在x偏差较大的点上。(注意,而权重公式外观类似于高斯分布的密度,形成W是不直接跟高斯有任何联系,和特别是W不是随机变量,正态分布或其他参数τ控制。)如何快速的训练样本的重量脱落的x距离从查询点X;τ叫做带宽参数,而且也是你会在你的家庭作业见到的东西。
局部加权线性回归是我们看到的非参数化算法的第一个例子。(未加权)线性回归算法,我们前面看到的是一个众所周知的参数学习算法,因为它有一个固定的,有限数量的参数(θ),这是适合这个数据的。一旦我们适应θ并且储存了他,我们不再需要保持训练数据进行未来预测。相反,使用局部加权线性回归预测,我们需要整个训练集。术语“非参数化”(粗略)指的是,我们需要保持的东西的量,以表示的假设小时增长线性的训练集的大小。
Part II Classification and logistic Regression(分类和线性回归)
现在让我们来分析分类问题。这就和回归问题一样,除了我们现在要预测的值y仅仅是一些小的离散的值之外。现在开始,我们将会把目光放在二元分类问题上,也就是y只能去两个值 0 和 1。(我们在这说的简单的形式可以推广到更加复杂的形式)。例如,如果我们想要建立一个垃圾邮件分类系统,x是邮件的特征,y是1代表是垃圾邮件,是0则代表不是。0也叫做否定类,1也叫做肯定类,一些情况下也用“+、-”来表示。给定x,y也被叫做训练集的标签。Logistic regression 我们可以解决分类问题不论y是否是离散值,并且用以前的线性回归算法去试着预测我们给定x的y值。然而,非常容易证明这个方法是不足的。更直观的是,他对于h(x)没有什么意义当值大于1或者小于0的时候当我们界定y{0,1}。
为了解决这个问题,我们改变这个假设函数h(x)。我们选择
逻辑函数,下面是他的函数图像
注意g(z)趋近1当z趋近于,并且g(z)趋近于0当z趋近于-。另外g(z)和h(x)的值域都是[0,1]。我们约定x01,因此
从现在开始,我们都假定g是已知的。其他函数如果是0—1之间的连续函数也是可以使用的,但是有两个原因我们将会看到(当我们讨论GLMs是,还有讨论生成学习算法的时候)选择他做回归函数是最合适的。在开始下一节千,这里有一个重要的推论关于sigmoid函数的导数:
因此,给定这个逻辑回归模型,怎么去找一个适合的θ?接下来我们将会使用最小二乘法和极大似然估计相结合来求出。将会结合概率和极大似然函数来球权重参数。
我们假设:
注意这个也可以简单的写为 假定给定的m个样本之间都是相互独立的,我们可以得到如下极大似然函数:
像以前一样很容易对这个似然函数的对数求最大值:
怎么样去最大化这个似然函数呢?像在线性回归里面所做的一样,我们可以使用梯度上升法。写成向量的形式,更新式子是
(注意这个公式中的正负号还有我们是要求的是最大值而不是最小值)。首先在一个训练样本(x,y)上使用这个公式,并且对他的对数求导:
我们使用公式
。求出来的就是随即梯度更新规则:
如果我们拿这个和LMS更新规则比较,我们会发现这两个是完全一样的;但是这是不一样的算法得到的,因为h(xi)现在是有非线性的函数Txi定义的。尽管如此,我们还是很好奇为什么不一样的算法和不一样的学习方法会得到同样的结果。这是偶然吗?或者有更深层次的原因在里面,我们将会解答这个问题在GLM模型中。6 Digression: The perceptron learning algorithm(感知学习算法)
我们现在额外的增加一个算法由于一些历史爱好,我们将会回归到整体之后讨论学习理论的时候。试着想一下改变这个逻辑回归模型去要求他去预测一个值是0或1或者其他。为了达到目的自然而然的从新定义g为一个阀值函数
如果我们使用
在前面作为我们的预测函数,其他都不变我们更新规则如:我们叫新的算法为感知学习算法。
在19世纪60年代,这个“感知”被认为是一个粗陋的模型对于人脑中工作的单个神经元。考虑到这个算法比较简单并且作为一个开始对于我们下节理论讨论做一个开头来讲一下。注意虽然这个感知学习算法看起来和我们其他的学习算法一样,实际上他是一个不同于逻辑回归和最小二乘回归类型的算法,特别的是,他很难赋予感知算法概率的应用,或者使用最大似然估计算法去求解。Another algorithm for maximizing ℓ(θ)回到逻辑回归算法g(z)使用sigmoid函数,我们接下来讲解一种不一样的算法来最小化l()开始之前,我们先看一下牛顿的方法去寻找一个函数的零点。特别的,假设我们有一系列的函数f:R—>R,并且我们想找到一个值使的f(θ)=0。这里θ输入R是一个实数。牛顿的方法如下:。这个方法我们可以这样理解,选定一个值做自变量的垂线过函数上这点做函数的切线与函数轴交与一点,再过这点做垂线,再过这点做函数的切下知道找到切线斜率为零的点。下面是一副图表示牛顿法的过程
在左边这张图中我们看到函数f画了一条直线在y=0处。我们希望找到的θ使得f(θ)=0;这个θ的值大约是1.3。假设我们初始化这个算法定义θ=4.5.牛顿的方法是通过函数上这点做f的切线,并且评估这条线的值是否为0.这给我们下一个猜想的对于θ,大约是2.8.最右边的图指出了这个最后一次迭代的结果,这时候更新的θ大约是1.8.一阵迭代之后我们能很快的接近θ=1.3.牛顿的方法给出了一种使f(θ)=0的方法。我们怎么把这个应用到我们求解l函数中?这个函数的最大值相当于去求他的一阶导数等于0的点。因此令f(θ)=l`(θ),我们能使用相同的算法去是L最大,我们得到这个更新规则:
(需要考虑的问题:如果我们想要求一个函数的最小值而不是最大值这个算法应该如何改进?)
最后,在我们的逻辑回归设定中,θ是一个向量,因此我们需要推广牛顿法到向量级别。这个推广的方法是把牛顿法应用到多维中(也叫做牛顿—拉普森方法)
这里()是()对θ的偏导数,H是一个n*n的矩阵(实际上是n+1*n+1维的,我们带上截距项)叫做Hessian,是由下面的式子给定:
牛顿法更加快速的收敛到最小值比着梯度下降法,并且需要更少的迭代次数接近最小值。一次牛顿迭代会花费更大的代价比着梯度下降算法,当他要求找到和反相一个海森矩阵的时候,但是如果n不是很大的时候,牛顿算法通常是更快的。当牛顿算法应用到求逻辑回归极大似然函数的最大值的时候,这个求解方法也被叫做Fisher scoring。
Part III Generalized Linear Models(广义线性模型)
至今为止,我们已经看来一个回归分析的例子和一个分类分析的例子。在两个例子中都有一些近似的函数,2回归分析的例子中我们有yx;N(,),在分类的例子中有yx;Bernoulli()
本节我们将会展示出这些都是广义线性模型中的一部分。我们也会推到一些其他的适用于回归和分类问题中的广义线性模型。The exponential family 为了引出GLMS,我们先说一下指数分布。我们定义一个分布是指数分布如果他可以被写为如下形式:
叫做特性参数(也叫做典型参数);T(y)是充分统计量(通常情况下T(y)=y),a()是对数划分函数。分量ea()作用是归一化参数,确保p(y;η)的和是大于1的。
T一个复杂的选择,a和b定义一个分布族关于参数η;当我们改变η的值时,我们会得到不同的分布在这个分布族里面。
现在看到的Bernoulli和Gaussian分布都是指数分布的一个例子。Bernoulli分布均值为υ写为Bernoulli(υ),指定一个分布y∈{0,1},写成p(y=1;υ)=Φ;p(y=0;υ)=1-υ
h(x)
当我们改变υ的值,我们得到不同均值的Bernoulli分布。现在我们证明这一类的Bernoulli分布,在例子中选择T,a和b所以式子(6)是Bernoulli分布。我们把Bernoulli分布写为:
因此,特性参数由log1给出。有意思的是,当我们使用η表示υ的时候我们会得到υ=1/(1+e^(-η))。这个看起来是不是和sigmoid函数很像。这将会再次被提到当我们把逻辑回归分析看作GLM时。为了完成Bernoulli分布是指数分布的一种的猜想,我们进一步有:
这表明选择适当的T,a和b的时候,Bernoulli分布可以被写成式(6)的形式。我们进一步来讨论Gaussian分布。回想一下,当我们推导线性回归时,的值对我们最终选择的θ和
2h(x)没有任何影响。因此我们可以选择任意值作为2而不去改变他的值。为了简化式子我们定义=1.我们可以得到: 2
因此我们看到高斯分布也在指数分布族里面,当
有许多其他分布指数的家人:多项分布(我们稍后将看到),在泊松分布(造型计数数据;也看到问题集);伽玛和指数(造型连续、非负随机变量,如时间间隔),β和狄利克雷(对概率分布),和许多更多。在下一节中,我们将描述构建模型的一般“食谱”,y(x和θ)来自这些发行版。Constructing GLMs 假设您想要构建一个模型来估计客户来到你的商店的数量y(或您的网站上的页面浏览量数量)在任何给定时刻,基于某些特性x等商店促销,最近的广告、天气、读写等。我们知道,泊松分布通常提供了一个好的模型数量的游客。知道了这一点,我们怎么能想出一个模型问题?幸运的是,泊松是一个指数族分布,所以我们可以应用一个广义线性模型(GLM)。我们将在本节中,我们将描述一个方法构建全球语言监测模型,诸如此类的问题。
更为普遍的是,考虑这样一个分类或回归问题,我们想要预测一些随机变量的值y作为x的函数。获得一个漠视这个问题,我们将进行以下三个假设条件分布的y x和关于我们的模型:
1、y | x;θ∼ExponentialFamily(η)。即。鉴于x和θ,y的分布遵循一些指数族分布,参数η。
2、鉴于x,我们的目标是预测T的预期值x(y)。在我们的大多数示例中,我们将T(y)= y,所以这意味着我们想预测h(x)的输出由我们学习假说h满足h(x)= E[y | x]。(注意,这个假设是选择满足h(x)逻辑回归和线性回归。例如,在逻辑回归,我们有h(x)= p(y = 1 | x;θ)= 0·p(y = 0 | x;θ)+ 1·p(y = 1 | x;θ)= E[y | x;θ]。)
3、η的自然参数和输入x相关线性:η=θT x。(或者,如果η量值,那么ηi =θTi x)。第三的这些假设似乎是最合理的,而且它可能是更好的认为是一种“设计选择”在我们的配方设计的漠视,而不是作为一个假设本身。这三个假设/设计的选择将使我们能够获得一个非常优雅的classof学习算法,即全球语言监测机构,有很多可取的属性,如易于学习。此外,生成的模型往往是非常有效的模拟不同类型的分布在y;例如,我们不久将表明,逻辑回归和普通最小二乘法都可以派生的漠视。9.1 Ordinary Least Squares 表明普通最小二乘法是一种特殊的GLM的家庭模型,考虑设置目标变量y(也称为响应变量在GLM术语)是连续的,而且我们模型x y给定的条件分布为高斯N(μ,σ2)。(在这里,μ可能取决于x)。所以,我们让ExponentialFamily(η)分布是高斯分布。正如我们之前看到的,配方的高斯指数族分布,我们有μ=η。所以,我们有 上面的第一个假设2,平等;第二个平等的合集y | x;θ∼N(μ,σ2),所以其预期值等于μ;第三个平等从假设1(和我们先前推导表明,μ=η配方的高斯指数族分布),和最后一个平等遵循从假设3。
9.2 Logistic Regression 我们现在考虑逻辑回归。我们感兴趣的是二进制分类,因此y∈{ 0,1 }。鉴于y binary-valued,因此自然选择的伯努利家族分布模型的条件分布x y。在我们制定的伯努利分布指数族分布,我们有υ= 1 /(1 + e−)。此外,请注意,如果x,y |θ∼伯努利(υ),然后E x y |,θ=υ。similarderivation后,作为一个普通的最小二乘法,我们得到:
所以,这给了我们假设函数形式的h(x)= 1 /(1 + e−T x)。如果你以前想知道我们想出了物流功能的形式1 /(1 + e−z),这给了一个答案:一旦我们假设x y条件是伯努利,它产生的后果的漠视和指数族分布的定义。引入更多的术语中,该函数g给分配的平均作为自然参数的函数(g(η)= E(T(y);η))被称为规范响应函数。其逆,g−1,称为规范化链接功能。因此,规范响应函数为高斯家庭只是识别功能,和规范化是伯努利响应函数 9.3 Softmax Regression 让我们看看一个GLM的例子。考虑一个分类问题的反应变量y可以承担任何一个k值,因此y∈{ 1 2,。、k}。例如,而不是电子邮件分类到两类垃圾邮件或非垃圾邮件,将是一个二元分类问题,我们可能需要分类成三个类,如垃圾邮件、个人邮件,与工作相关的邮件。响应变量仍然是离散的,但现在能超过两个值。我们将因此分布式根据多项分布模型。
允许派生的GLM造型这种类型的多项数据。这样做,我们将首先表达了多项指数族分布。参数化一个多项式在k可能的结果,可以使用υ1 k参数,。,υk指定每个结果的概率。然而,这些参数将是多余的,或者更正式,他们不会独立(因为知道任何k−1υi独特的决定 最后一个,因为他们必须满足Pkiυi = 1 = 1)。所以,我们将参数化多项式只有k−1参数,υ1,。,υk−1,υi = p(y =我;υ)和p(y = k;υ)= 1−Pk−1 i = 1υi。记数的便利,我们还将让υk = 1−Pk−1 i = 1υi,但我们应该记住,这不是一个参数,而且它完全υ1规定,。,υk−1。
表达多项指数族分布,我们将定义T(y)∈R^k−1如下: 与我们之前的例子,在这里我们没有T(y)= y;此外,T(y)现在是一个k−1维向量,而不是一个实数。我们将编写(T(y))我表示的第i个元素的向量T(y)。我们介绍一个非常有用的符号。一个指标函数1 {·}就值1如果它的参数是正确的,和0(1 {真正} = 1,1 {假} = 0)。例如,1 { 2 = 3 } = 0和1 { 3 =5−2 } = 1。所以,我们还可以写T之间的关系(y)和y(T(y)){ y =我} i = 1。(继续阅读之前,请确保你明白为什么这是真的!)进一步,我们有E[(T(y))我]= P(y =我)=υi。
现在,我们可以证明这个多项式指数家族的一员,有如下:
至此我们制定的多项指数族分布。
链接函数给出了for i= 1,„,k)
为了方便起见,我们也定义ηk=log(υk /υk)= 0 =。逆函数并获得响应函数的联系,因此,我们有
这意味着υk = 1 / Pki = 1 ei,可代替回方程(7)给响应函数 这个函数映射η的υ的叫做将softmax功能。
完成我们的模型,我们使用假设3,鉴于ηi的早些时候,x的线性相关。所以,ηi =θTi x(因为我= 1,。θ1,k−1),。,θk−1∈Rn + 1是我们的模型的参数。记数的方便,我们还可以定义θk = 0,以便ηk =θT k x = 0,鉴于之前。因此,我们的模型假设的条件分布ygiven x等于
这个模型,这也适用于分类问题y∈{ 1,„k },叫做softmax回归。这是一个逻辑回归的概括。
我们的假设将输出
换句话说,我们的假设将输出概率估计p(y =我| x;θ),为每一个值的我= 1,。k。(尽管h(x)如上定义只是k−1维,显然p(y = x k |;θ)可以获得1−Pk−1 i = 1υi)。最后,让我们讨论参数拟合。类似于我们最初派生的普通最小二乘法和逻辑回归,如果我们有一个训练集m的例子{(x(i),y(i));i= 1,„,m },愿学习的参数θi这个模型中,我们将首先写下log-likelihood
获得第二行以上,我们定义用于p(y | x;θ)给出了方程(8)。我们现在可以获得的最大似然估计的参数通过最大化ℓ(θ)θ,使用梯度上升或牛顿法等方法。
第二篇:斯坦福大学机器学习梯度算法总结
斯坦福大学机器学习梯度下降算法学习心得和相关概念介绍。
1基础概念和记号
线性代数对于线性方程组可以提供一种简便的表达和操作方式,例如对于如下的方程组:
4x1-5x2=13
-2x1+3x2=-9
可以简单的表示成下面的方式:
X也是一个矩阵,为(x1,x2)T,当然你可以看成一个列向量。
1.1基本记号
用A ∈表示一个矩阵A,有m行,n列,并且每一个矩阵元素都是实数。用x ∈ , 表示一个n维向量.通常是一个列向量.如果要表示一个行向量的话,通常是以列向量的转置(后面加T)来表示。
1.2向量的内积和外积
根据课内的定义,如果形式如xT y,或者yT x,则表示为内积,结果为一个实数,表示的是:,如果形式为xyT,则表示的为外积:。
1.3矩阵-向量的乘法
给定一个矩阵A ∈ Rm×n,以及一个向量x ∈ Rn,他们乘积为一个向量y = Ax ∈ Rm。也即如下的表示:
如果A为行表示的矩阵(即表示为),则y的表示为:
相对的,如果A为列表示的矩阵,则y的表示为:
即:y看成A的列的线性组合,每一列都乘以一个系数并相加,系数由x得到。
同理,yT=xT*A表示为:
yT是A的行的线性组合,每一行都乘以一个系数并相加,系数由x得到。
1.4矩阵-矩阵的乘法
同样有两种表示方式:
第一种:A表示为行,B表示为列
第二种,A表示为列,B表示为行:
本质上是一样的,只是表示方式不同罢了。
1.5矩阵的梯度运算(这是老师自定义的)
定义函数f,是从m x n矩阵到实数的一个映射,那么对于f在A上的梯度的定义如下:
这里我的理解是,f(A)=关于A中的元素的表达式,是一个实数,然后所谓的对于A的梯度即是和A同样规模的矩阵,矩阵中的每一个元素就是f(A)针对原来的元素的求导。
1.6其他概念
因为篇幅原因,所以不在这里继续赘述,其他需要的概念还有单位矩阵、对角线矩阵、矩阵转置、对称矩阵(AT=A)、反对称矩阵(A=-AT)、矩阵的迹、向量的模、线性无关、矩阵的秩、满秩矩阵、矩阵的逆(当且仅当矩阵满秩时可逆)、正交矩阵、矩阵的列空间(值域)、行列式、特征向量与特征值……
2用到的公式
在课程中用到了许多公式,罗列一下。嗯,部分公式的证明很简单,部分难的证明我也不会,也懒得去细想了,毕竟感觉上数学对于我来说更像是工具吧。
转置相关:
•(AT)T = A
•(AB)T = BT AT
•(A + B)T = AT + BT 迹相关: • For A ∈ Rn×n, trA = trAT.• For A, B ∈ Rn×n, tr(A + B)=trA + trB.• For A ∈ Rn×n, t ∈ R, tr(tA)= t trA.• For A, B such that AB issquare, trAB = trBA.• For A, B, C such that ABC issquare, trABC = trBCA = trCAB。当乘法变多时也一样,就是每次从末尾取一个矩阵放到前面去,这样的矩阵乘法所得矩阵的迹是一致的。秩相关
• For A ∈ Rm×n,rank(A)≤ min(m, n).If rank(A)= min(m, n), 则A称为满秩
• For A ∈ Rm×n,rank(A)= rank(AT).• For A ∈ Rm×n, B ∈ Rn×p,rank(AB)≤ min(rank(A), rank(B)).• For A, B ∈ Rm×n,rank(A + B)≤ rank(A)+rank(B).逆相关:
•(A−1)−1 = A
• If Ax = b, 左右都乘以A−1 得到 x = A−1b.•(AB)−1 = B−1A−1
•(A−1)T =(AT)−1.F通常表示为A−T.行列式相关:
• For A ∈ Rn×n, |A| = |AT |.• For A, B ∈ Rn×n, |AB| = |A||B|.• For A ∈ Rn×n, |A| = 0,表示矩阵A是奇异矩阵,不可逆矩阵
• For A ∈ Rn×n and A 可逆, |A|−1 = 1/|A|.梯度相关: • ∇x(f(x)+ g(x))= ∇xf(x)+ ∇xg(x).• For t ∈ R, ∇x(t f(x))= t∇xf(x).• ∇xbT x = b
• ∇xxT Ax = 2Ax(if A 对称)
• ∇2xxT Ax = 2A(if A 对称)
• ∇A|A| =(adj(A))T = |A|A−T.adj=adjoint
3梯度下降算法和正规方程组实例应用
例子用的是上节课的房价的例子,有一组数据,有房子面积和房子价格,输入格式举例:
老师定义的变量如下:
m:训练样本的数目
x:输入的变量(输入的特征,在这个例子中为房子面积,后来又加了一个房子的卧室数目)
y :输出变量(目标变量,这个例子中就是房价)
(x,y):表示的是一个样本
:表示的第i个样本,表示为。
3.1监督学习概念
所谓的监督学习即为告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案。监督指的是在训练样本答案的监督下,h即为监督学习函数。
此例中我们假设输出目标变量是输入变量的线性组合,也就是说,我们的假设是存下如下的h(x):
Theta表示是特征前面的参数(也称作特征权重)。也就是经过h(x)之后得到的就是预测的结果了。
如果假设x0=1,那么原来的h(x)就可以简单的表示为如下形式:,其中n为特征数目,我们为了表达简便,把theta和x都写成向量的形式。下面就是如何求出θ(向量)使得h(x)尽可能接近实际结果的,至少在训练集内接近训练集中的正确答案。
我们定义一个花费函数(costfunction),针对每一组θ,计算出h(x)与实际值的差值。定义如下:
这也是用的最小二乘法的思想,但是之所以乘以1/2是为了简化后面的计算。针对训练集中的每一组数据。剩下的问题就是求得minJ(θ)时的θ取值,因为J(θ)是随着θ变化而变化,所以我们要求得minJ(θ)时的θ就是我们想要的θ(这个min也叫做最小花费函数),怎么样求出这组theta呢?采用的方法就是梯度下降算法和正规方程组。我们首先来看梯度下降算法。
3.2梯度下降算法
梯度下降算法是一种搜索算法,基本思想可以这样理解:我们从山上的某一点出发,找一个最陡的坡走一步(也就是找梯度方向),到达一个点之后,再找最陡的坡,再走一步,直到我们不断的这么走,走到最“低”点(最小花费函数收敛点)。
如上图所示,x,y表示的是theta0和theta1,z方向表示的是花费函数,很明显出发点不同,最后到达的收敛点可能不一样。当然如果是碗状的,那么收敛点就应该是一样的。
算法的theta更新表示如下:
对每一个theta(j),都先求J(θ)对theta(j)的偏导(梯度方向),然后减少α,然后将现在的theta(j)带入,求得新的theta(j)进行更新。其中α为步长,你可以理解为我们下山时走的步子的大小。步子太小了,收敛速度慢,步子太大了,可能会在收敛点附近来回摆动导致无法到达最低点。P.S.这个符号根据老师所说理解为程序中的赋值符号(=号),如果是=号,则理解为值是相等的(编程里面的==号)。下面我们先理解下,假设现在训练集只有一组数据求关于theta(j)的偏导:
带入
可以得到关于一组数据的theta(j)的表达式,不妨,这组数据就是第i组,则表示为:
然后我们将这个更新theta(j)的方法扩充到m个训练样本中,就可以得到下面的式子:
P.S.最外面的那个xj(i)的理解为:第i组数据中的第j个特征(feature)值。
3.2.1批量梯度下降算法(batch gxxxxdxxxx algorithm)
重复执行上面的这个更新步骤,直到收敛,就可以得到这组θ的值了。就是这个过程:。
这个算法就是批量梯度下降算法,为什么叫批量梯度下降?因为注意到上式中每更新一个θj都需要计算所有的样本取值,所以当样本数目非常大的时候(例如上万条甚至数十万条的时候),这样的更新非常慢,找θ也非常慢,所以就有了另外一种改进的梯度下降算法。
3.2.2随机梯度下降算法/增量梯度下降算法
做一个小小的改进,用一个样本做一个theta的更新,比如用样本1做theta(1)的更新,用样本2做theta(2)的更新,以此类推。这种方法的好处是速度上肯定比批量梯度下降算法快,而且样本数据越多,体现应该就越明显。劣势是得到的收敛点的值和批量梯度算法比起来也许不是最优的值。
3.2.3梯度下降算法总结
不管是批量梯度算法还是随机梯度下降算法,他们的共同点有以下:
1.时间复杂度都是O(mn)(m为样本数目,n为特征值/影响因子数目)
2.都有梯度下降性质:接近收敛时,每次“步子”(指实际减去的数,而不是前面定义的α,α是手动设置参数,人为改变才会变)会越来越小。其原因是每次减去α乘以梯度,但是随着收敛的进行,梯度会越来越小,所以减去的值会。
3.判定收敛的方法都是如下两种:
1)两次迭代值改变量极小极小
2)J(θ)的值改变量极小极小
3.3正规方程组
写在前面:这种方法是另一种方法了,和梯度下降算法就没啥联系了!!!
首先回顾下前面定义的矩阵梯度运算:
例如:
则:
定义一个矩阵,称作设计矩阵,表示的是所有的样本的输入:
因为前面得到的结论:
(θT*x(i)和x(i)的转置*θ结果是一样),可以得到
可以写成如下的形式:
又因为对于任意向量,所以可以得到:
运用下面介绍的一系列性质:
(5)是由(2)和(3)得到的,进行下面的推导
中间加tr不变的原因是因为是一个实数(看成1x1矩阵)加迹等于他本身。
将上式设为0,得到正规方程组
求解得到
第三篇:英语美文翻译(A note to my mom)
A love note to my mom
When i was a little girl,i wound often accompany you as you modeled for fashion
photographers.It was years later that I finally understood what role modeling play in your life.Little did i know you were saving every penny you earned to go to law school.I cannot thank you enough for what you told me one autumn afternoon when i was nine.After finishing my homework, i wandered into the dining where you were buried under piles of law books.I was puzzled.Why were you doing what i do---memorizing textbooks and studying for tests?When you said you were in law school, i was more puzzled.I did not know mom can be lawyers ,too.You smiled and said „In life ,you can do anything you want to do.”
As young as i was,that statement kept in my ears.I watched as you faced the challenges of completing your studies,starting company with dad,while still being a model and a mom of five kids.I was exhausted just watching you i action.With your words of wisdom in my young mind,I suddenly felt unlimited freedom to dream.My whole world opened up.I set out to live my life filled with hope,i seeing endless possibilities for personal and professional achievements.Your words became my motto.I constantly found myself in the unique position of being either the first or one of the few women in my field.I gained strength every time i said “Yes,i will try.”
Encouraged by your words,i have forged ahead with my life‟s journey,less afraid to mistakes,and eagerly meeting each challenge.You did it,now i am doing it.Sorry,got to run.So much to do,so many dreams to live.翻译:
给妈妈的一封感谢信
那是,我还是一个小女孩,时常陪着作为时尚模特的你。然而,几年后,我才明白模特在你生活中的地位。我丝毫不知这几年你储存你挣的每一分钱去上法律课。
我十分感谢你在我九岁那年秋天的一个下午我的话。我还记得那时我完成了家庭作业,闲逛到客厅,发现你正埋头在一堆法律书中。我很疑惑,为什么你做着和我一样的事----背书和准备考试。当你告诉我你正在准备上法律课,我更加疑惑了。我不知道妈妈也能当律师。你微笑着告诉我:“生活中,你可以做任何你想做的事。”
这句话一直萦绕在我的耳边。我发现你要面对完成学业的挑战,要与爸爸一起开公司,而且还是时尚模特和五个孩子的妈妈。我看着你忙碌都感觉累了。随着你智慧的话语在我幼小的心灵里生根发芽,我在追寻梦想的路上感到无限的自由。我的整个世界都豁然开朗。我的生活开始变得充满希望。我看到更多的个人和职业成就的可能性。
你的话成了我的座右铭。我不断追求自己的第一或者一个领域里少有的独特地位。每次说“好,我要试一下”总能给我力量。
受你话语的启发,我在我的人生旅途上毅然前行,很少害怕犯错,而且也更愿意接受每一次挑战。你曾经做到了,我现在正在做。信只能到此为止,抱歉,我又得继续奔跑。有如此多是要做,有很多梦想要去实现。
第四篇:机器学习报告
机器学习总结报告
刘皓冰
大部分人错误地以为机器学习是计算机像人一样去学习。事实上,计算机是死的,怎么可能像人类一样“学习”呢,机器学习依靠的是数学,更确切地说是靠统计。
如果我们让计算机工作,是给它一串指令,然后计算机会遵照这个指令一步步执行下去,有因有果,非常明确。但这种方式在机器学习中是行不通的。机器学习是不会接受你输入的指令的,它接受的是你输入的数据。也就是说,机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法。这听起来非常不可思议,但结果上却是非常可行的。“统计”思想将在你学习“机器学习”相关理念时无时无刻不伴随,相关而不是因果的概念将是支撑机器学习能够工作的核心概念。
依据数据所做的判断跟机器学习的思想根本上是一致的。机器学习方法是计算机利用已有的数据(输入),得出了某种模型,并利用此模型预测未来(输出)的一种方法。从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成。训练过程中使用的数据成为“训练数据”(training data),其中每个样本称为一个“训练样本”(training sample),训练样本组成的集合称为“训练集“(training set)。学得模型对应了关于数据的某种潜在的规律,因此亦称”假设“(hypothesis);这种潜在规律自身,则称为”真相“或”真实“(ground-truth),学习过程就是为了找出或逼近真相。模型有时也被称为”学习器“(learner),可看作学习算法在给定数据和参数空间上的实例化。
若欲预测的是离散值则此类学习任务被称为“分类”;若欲预测的是连续值则此类学习任务称为“回归”;对只涉及两个类别的“二分类”任务,通常称其中一个类为“正类”,另一个类为“反类”;涉及多个类别时,则称为“多分类”任务。
模型是否准确依赖与数据。如果我的数据越多,我的模型就越能够考虑到越多的情况,由此对于新情况的预测效果可能就越好。这是机器学习界“数据为王”思想的一个体现。一般来说(不是绝对),数据越多,最后机器学习生成的模型预测的效果越好。
机器学习里面有非常多的经典算法,每种算法都能形成一个模型。下面在简要介绍一下机器学习中的经典代表方法。重点介绍的是这些方法内涵的思想。
1、回归算法 在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。
线性回归一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。计算机科学界专门有一个学科叫“数值计算”,专门用来提升计算机进行各类计算时的准确性和效率问题。例如,著名的“梯度下降”以及“牛顿法”就是数值计算中的经典算法,也非常适合来处理求解函数极值的问题。梯度下降法是解决回归模型中最简单且有效的方法之一。
逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如预测一所房子大约可以买多少钱。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断肿瘤是恶性还是良性等等。实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的概率(Sigmoid函数的图像一般来说并不直观,你只需要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着我们根据这个概率可以做预测,例如概率大于0.5,肿瘤就是恶性的等等。
2、神经网络
神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。
神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。
下图是一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神经网络”。
图神经网络的逻辑架构
在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。
进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM)算法取代了神经网络的地位。
3、SVM(支持向量机)
支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。
支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。
但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。
上述机器学习算法均为监督学习算法。监督学习,就是人们常说的分类回归,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出。在人对事物的认识中,我们从孩子开始就被大人们教授这是猫啊、那是狗啊、那是桌子啊,等等。我们所见到的景物就是输入数据,而大人们对这些景物的判断结果(是房子还是鸟啊)就是相应的输出。当我们见识多了以后,脑子里就慢慢地得到了一些泛化的模型,这就是训练得到的那个(或者那些)函数,从而不需要大人在旁边指点的时候,我们也能分辨的出来哪些是猫,哪些是狗。无监督学习则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)。无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。
那么,什么时候应该采用监督学习,什么时候应该采用非监督学习呢?一种非常简单的回答就是从定义入手,如果我们在分类的过程中有训练样本,则可以考虑用监督学习的方法;如果没有训练样本,则不可能用监督学习的方法。但是事实上,我们在针对一个现实问题进行解答的过程中,即使我们没有现成的训练样本,我们也能够凭借自己的双眼,从待分类的数据中人工标注一些样本,并把他们作为训练样本,这样的话就可以把条件改善,用监督学习的方法来做。然而对于不同的场景,正负样本的分布如果会存在偏移(可能是大的偏移,也可能偏移比较小),这样的话用监督学习的效果可能就不如用非监督学习了。
今天,在计算机科学的诸多分支学科领域中,都能找到机器学习技术的身影,尤其是在计算机视觉、语音识别、模式识别、自然语言处理等“计算机应用技术”领域,机器学习已成为最重要的技术进步源泉之一。此外,机器学习还为许多交叉学科提供了重要的技术支撑比如说“生物信息学”。
可以说“计算机视觉=图像处理+机器学习“。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域是应用前景非常火热的,同时也是研究的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。
如果说“计算机视觉=图像处理+机器学习“,那么”语音识别=语音处理+机器学习“。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果语音助手siri、微软小娜等。
“自然语言处理=文本处理+机器学习“。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有的”。如何利用机器学习技术进行自然语言的的深度理解,一直是工业和学术界关注的焦点。
谈到对数据进行分析利用,很多人会想到“数据挖掘”(data mining)。数据挖掘领域在二十世纪九十年代形成,它受到很多学科领域的影响,其中数据库、机器学习、统计学无疑影响最大。数据挖掘是从海量数据中发掘知识,这就必然涉及对“海量数据”的管理和分析。大体来说,“数据挖掘=机器学习+数据库“——数据库领域的研究为数据挖掘提供数据管理技术,而机器学习和统计学的研究为数据挖掘提供数据分析技术。由于统计学往往醉心于理论的优美而忽视实际的效用,因此,统计学界提供的很多技术通常都要在机器学习界进一步研究,变成有效的机器学习算法之后才能再进入数据挖掘领域。从这个意义上说,统计学主要是通过机器学习来对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。从数据分析的角度来看,绝大多数数据挖掘技术都来自机器学习领域,但机器学习研究往往并不把海量数据作为处理对象,因此,数据挖掘要对算法进行改造,使得算法性能和空间占用达到实用的地步。同时,数据挖掘还有自身独特的内容,即关联分析。
通过上面的介绍,可以看出机器学习是多么的重要,应用是多么的广泛。现随着大数据(big data)概念的兴起,机器学习大量的应用都与大数据高度耦合,几乎可以认为大数据是机器学习应用的最佳场景。例如经典的Google利用大数据预测了H1N1在美国某小镇的爆发、百度预测2014年世界杯结果从淘汰赛到决赛全部正确。这实在太神奇了,那么究竟是什么原因导致大数据具有这些魔力的呢?简单来说,就是机器学习技术。正是基于机器学习技术的应用,数据才能发挥其魔力。
大数据的核心是利用数据的价值,机器学习是利用数据价值的关键技术,对于大数据而言,机器学习是不可或缺的。相反,对于机器学习而言,越多的数据会越可能提升模型的精确性,同时,复杂的机器学习算法的计算时间也迫切需要分布式计算与内存计算这样的关键技术。因此,机器学习的兴盛也离不开大数据的帮助。大数据与机器学习两者是互相促进,相依相存的关系。
机器学习与大数据紧密联系。但是,必须清醒的认识到,大数据并不等同于机器学习,同理,机器学习也不等同于大数据。大数据中包含有分布式计算、内存数据库、多维分析等等多种技术。单从分析方法来看,大数据也包含以下四种分析方法:
1.大数据,小分析:即数据仓库领域的OLAP分析思路,也就是多维分析思想。2.大数据,大分析:这个代表的就是数据挖掘与机器学习分析法。3.流式分析:这个主要指的是事件驱动架构。4.查询分析:经典代表是NoSQL数据库。
也就是说,机器学习仅仅是大数据分析中的一种而已。尽管机器学习的一些结果具有很大的魔力,在某种场合下是大数据价值最好的说明。但这并不代表机器学习是大数据下的唯一的分析方法。
第五篇:机器学习的例子
身边的机器学习
相信身边很多人都曾经被漫长的红绿灯等待时间所困扰。不管是对于行人还是开车的司机,要么就是等红灯的时间太长以至于大家开始失去耐心,选择直接横穿马路;要么就是绿灯切换的时间太短,如果不一路小跑着过马路的话就会被迫面对湍急的车流,将自己置于危险之中。而事实上,设定灯的切换时长这项工作如果交给懂得分析数据、高效建模的计算机来完成效果可能会更好。
在许多欧美国家都在进行类似的实验,收效显著:通过建设一个监督学习的算法,将车流量、人流量设定为要被监测的目标数据,并以密度或是车、人的数量、来源等数据用这些直观的形式统计起来。经过汇总之后,一方面对可以车流量、人流量的高峰时间进行统计;另一方面可以总结归纳出现这些高峰的地点以及流量来源。有了这些数据,计算机就可以迅速建立起一个相应的模型来执行对拥堵行车的疏导,提升道路运输的效率。
在一次观测中研究人员发现,在马路上大量的大型堵塞事件中,有很大一部分都只是车流靠前位置的一名新手的一次无心的刹车。即使每次刹车带给下一辆车的司机的反应时间都只有1~2秒,但在漫长的车队中不断累积最终就会形成天文数学。如果可以通过机器学习的方式对上下班高峰期车流量的规律进行总结并加以利用,在市政管理上改变红绿灯切换的时间长度来对马路上的汽车进行分流,从而避免大量的汽车拥堵在路口处,就可以缓解这一问题。
在日常生活中,行人横穿马路酿成惨剧的案例已经屡见不鲜。很多人都会因为人行道的红绿灯等待时间过长而选择直接横穿马路,给自己和他人带来危险。既然马路上的红绿灯调整可以交给计算机,人行道红绿灯切换时间的调整计算机同样可以胜任。如果有关部门可以将机器学习技术引入公共交通管理系统,通过更加智能的方式对时长进行调整,在车辆没那么多的时候或者是类似步行街的人流量巨大的场所,结合马路上的车辆通行情况对人行道上红绿灯的切换时间进行动态的调整来缩短人们等候的时间,相信可以大大减少这类事件发生的几率。
调整红绿灯切换时间只是一件小事,不过这也从侧面证明了机器学习可以被运用的范围之广阔以及相关行业的蓬勃发展势头。机器学习还有很多可以应用的场景,需要我们不断发掘、利用。