上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypothesis个数有限,那么机器学习一般就是可行的.本节课将讨论机器学习的核心问题,严格证明为什么机器可以学习.从上节课最后的问题出发,即当hypothesis的个数是无限多的时候,机器学习的可行性是否仍然成立? 一.Recap and Preview 我们先来看一下基于统计学的机器学习流程图: 该流程图中,训练样本D和最终测试h的样本都是来自同一个数据…
(转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can Machine Learn? How Can Machine Learn Better? 每个部分由四节课组成,总共有16节课.那么,从这篇开始,我们将连续对这门课做课程笔记,共16篇,希望能对正在看这们课的童鞋有所帮助.下面开始第一节课的笔记:The Learning Problem. 一.What…
上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使用Pocket Algorithm来处理.本节课将主要介绍一下机器学习有哪些种类,并进行归纳. 一.Learning with Different Output Space Y(根据输入空间变化划分) 银行根据用户个人情况判断是否给他发信用卡的例子,这是一个典型的二元分类(binary classification)问题.也就是说输出只有两个,一般y=…
机器学习分为四步: When Can Machine Learn? Why Can Machine Learn? How Can Machine Learn? How Can Machine Learn Better? 一.What is Machine Learning Q:什么是“学习”? A:学习就是人类通过观察.积累经验,掌握某项技能或能力.就好像我们从小学习识别字母.认识汉字,就是学习的过程. 机器学习(Machine Learning),顾名思义,就是让机器(计算机)也能向人类一样,…
上节课介绍了机器学习可以分为不同的类型.其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题.本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决. 一.Learning is Impossible 首先,考虑这样一个例子,如下图所示,有3个label为-1的九宫格和3个label为+1的九宫格.根据这6个样本,提取相应label下的特征,预测右边九宫格是属于-1还是+1?结果是,如果依据对称性,我们会把它归为+1:如果依据九宫格左上角是否是黑色,我们会把它…
机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f.本节课将继续深入探讨机器学习问题,介绍感知机Perceptron模型,并推导课程的第一个机器学习算法:Perceptron Learning Algorithm(PLA). 一.Perceptron Hypothesis Set 某银行要根据用户的年龄.性别.年收入等情况来判断是否给该用户发信用卡.现在有训练样本D,即之前用户的信息和是否发了…
首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么Ein跟Eout的表现会比较接近 3. 如果算法A选的g足够好(Ein很小),则可能从数据中学到了东西 ================================================== 现在正式引出VC Dimension的概念:啥叫VC Dimension: VC Dimensi…
这里提出Logistic Regression的角度是Soft Binary Classification.输出限定在0~1之间,用于表示可能发生positive的概率. 具体的做法是在Linear Regression的基础上,再加一层Logistic Function,限定住输出的取值. 完成了hypothesis的部分,下面就是如何写出Ein的表达式了. 这里自己先回想了一下Linear Regression的情况,为啥能得到analytic close solution呢? 因为Line…
这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超平面) 下面进入核心环节:Linear Regression的优化目标是minimize Ein(W) 为了表达简便,首先需要把这种带Σ符号的转换成matrix form,如下: 1~2:多个项的平方和可以转换成向量的平方 2~3:把每个列向量x都横过来,组成一个新的X矩阵 最后转换成了最终的min…
紧接上一讲的Break Point of H.有一个非常intuition的结论,如果break point在k取到了,那么k+1, k+2,... 都是break point. 那么除此之外,我们还能获得那些讯息? 这里举了一些例子,核心就是说下面的事情 简言之,如果H有Break Point k,那么当N大于k的时候,mH(N)会大大地缩减(对于binary classification来说是pow(2, N) ). 按照这个思路,自然就想知道,既然mH(N)会大大缩减,能缩减到啥程度?(如…
接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够接近(在训练集上的表现能否迁移到测试集上) (1)如果假设集合数量小(M小),可知union bound后,Ein与Eout是接近的:但由于可选择的假设集合少,Ein(g)效果可能不佳: (2)如果假设集合数量大(M大),有可能Ein(g)会获得更多的选择,测试集上效果更好:但由于M数量过大,训练集…
这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: 如果样本数量足够大,那么在训练集上获得的学习效果是可以平移到测试集上的.即如下, 这里保证的仅仅是“训练集的效果平移到测试集”,平移的仅仅是效果,没说效果好坏:如果训练效果是垃圾的,那么测试效果也基本是垃圾的. 如果假设空间是有限的,那么结果又如何呢?如下, 如果假设空间是有限的,根据公式推导:当…
直接跳过第一讲.从第二讲Perceptron开始,记录这一讲中几个印象深的点: 1. 之前自己的直觉一直对这种图理解的不好,老按照x.y去理解. a) 这种图的每个坐标代表的是features:features的值是有物理意义的. b) 而圈圈和叉叉是为了标注不同的样本(正样本 负样本),即label:为了后续的很多简便表示,这里正样本取+1,负样本取-1 2. Perceptron Learning策略的几何意义:表示临界线(面)的法向量旋转方向 由于label设为了+1和-1,可以直接用w+…
这一节主要讲如何通过数据来合理的验证模型好不好. 首先,否定了Ein来选模型和Etest来选模型. (1)模型越复杂,Ein肯定越好:但是Eout就不一定了(见上一节的overfitting等) (2)Etest是偷窥训练集,也没有效果 下面,集中讨论已有的数据集切分成train data和test data,怎么切分,怎么验证最合理. Model Selection的流程如下: (1)切分数据,选一个Eval最小的 (2)再用全量数据去训练选出来的那个model 流程搞清楚了,接下来就要看怎么…
正则化的提出,是因为要解决overfitting的问题. 以Linear Regression为例:低次多项式拟合的效果可能会好于高次多项式拟合的效果. 这里回顾上上节nonlinear transform的课件: 上面的内容说的是,多项式拟合这种的假设空间,是nested hypothesis:因此,能否想到用step back的方法(即,加一些constraints的方法把模型给退化回去呢?) 事实上,是可以通过加入constraint使得模型退化回去的:但是,再优化的过程中涉及到了“判断每…
首先明确了什么是Overfitting 随后,用开车的例子给出了Overfitting的出现原因 出现原因有三个: (1)dvc太高,模型过于复杂(开车开太快) (2)data中噪声太大(路面太颠簸) (3)数据量N太小(知道的路线太少) 这里(1)是前提,模型太复杂: (1)模型越复杂,就会捕获train data中越多的点(这当中当然包括更多的噪声点) (2)数据量N太小,根据VC Dimension理论,Eout会增大 这里的noise包括两类: 1. stochoastic noise:…
首先回顾了几个Linear Model的共性:都是算出来一个score,然后做某种变化处理. 既然Linear Model有各种好处(训练时间,公式简单),那如何把Linear Regression给应用到Classification的问题上呢?到底能不能迁移呢? 总结了如下的集中Linear Model的error functions的表达式: 这里都提炼出来了ys这一项,y表示需要更正的方向{+1,-1},s表示需要更正的幅度(score) 三种error function可以这么理解: (…
http://beader.me/mlnotebook/section2/noise-and-error.html 上面这个日志总结的已经很好了.这一章的内容,在后面具体的算法中cost function体会更好一些.没必要过于纠结.…
最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by…
总体思路: 各种类型的机器学习分类 按照输出空间类型分Y 按照数据标记类型分yn 按照不同目标函数类型分f 按照不同的输入空间类型分X 按照输出空间类型Y,可以分为二元分类,多元分类,回归分析以及结构化学习等,这个好理解,离散的是分类,连续的是回归,到是结构化的学习接触的相对较少,以后有空可以关注下. 按照数据标记分可以分为: 监督: 非监督: 半监督: 增强学习: 下面这张ppt很好的总结了这点: 这是围绕标记yn的类型进行分类的, 监督和非监督很好理解,半监督和增强其实应用更加普遍,数据的标…
 这节的主题感觉和training,testing关系不是很大,其根本线索在于铺垫并求解一个问题:    为什么算法PLA可以正确的work?因为前面的知识告诉我们,只有当假设的个数有限的时候,我们才能比较确认我们得到坏的数据集的概率比较低,也就是说算法得出的假设和最佳假设在全局表现相同(错误率相等),可是PLA的假设是平面上的直线,不是无数个么?为什么可以正常泛化?   为解释这个问题,有了这节以及下面几节的课程  可以看到这个问题其实很重要,因为这是我们理解机器为啥能学习的关键一步,因为很多…
在NNet这个系列中讲了Matrix Factorization感觉上怪怪的,但是听完第一小节课程就明白了. 林首先介绍了机器学习里面比较困难的一种问题:categorical features 这种问题的特征就是一些ID编号这类的,不是numerical的. 如果要处理这种情况,需要encoding from categorical to numerical 最常用的一种encoding方法就是binary vector encoding(也是实习工作中用过的路子),将binary vecto…
这节课主要讲述了RBF这类的神经网络+Kmeans聚类算法,以及二者的结合使用. 首先回归的了Gaussian SVM这个模型: 其中的Gaussian kernel又叫做Radial Basis Function kernel 1)radial:表示输入点与center点的距离 2)basis function:表示‘combined’ 从这个角度来看,Gaussian Kernel SVM可以看成许多小的radial hypotheses的线性组合(前面的系数就是SV的alphan和yn)…
这节课的题目是Deep learning,个人以为说的跟Deep learning比较浅,跟autoencoder和PCA这块内容比较紧密. 林介绍了deep learning近年来受到了很大的关注:deep NNet概念很早就有,只是受限于硬件的计算能力和参数学习方法. 近年来深度学习长足进步的原因有两个: 1)pre-training技术获得了发展 2)regularization的技术获得了发展 接下来,林开始介绍autoencoder的motivation. 每过一个隐层,可以看做是做了…
最近求职真慌,一方面要看机器学习,一方面还刷代码.还是静下心继续看看课程,因为觉得实在讲的太好了.能求啥样搬砖工作就随缘吧. 这节课的核心就在如何把kernel trick到logistic regression上. 首先把松弛变量的表达形式修改一下,把constrained的形式改成unconstrained的形式. 改成这种'unconstrained' form of soft-margin SVM之后,突然发现很像L2 regularization 如果用regularized mode…
首先从单层神经网络开始介绍 最简单的单层神经网络可以看成是多个Perception的线性组合,这种简单的组合可以达到一些复杂的boundary. 比如,最简单的逻辑运算AND  OR NOT都可以由多个perception构成的单层神经网络模拟. 但是,单层感知器神经网络能力再强也是有限的,有些逻辑也无法完成.比如,XOR异或运算. 这个时候,就很自然地引出了多层神经网络. 通过这个例子,可以看到多层的神经网络的表达能力要比单层的要强. 上面给出了看待神经网络的一种方式: 1)从原始输入开始一直…
GBDT之前实习的时候就听说应用很广,现在终于有机会系统的了解一下. 首先对比上节课讲的Random Forest模型,引出AdaBoost-DTree(D) AdaBoost-DTree可以类比AdaBoost-Stump模型,就可以直观理解了 1)每轮都给调整sample的权重 2)获得gt(D,ut) 3)计算gt的投票力度alphat 最后返回一系列gt的线性组合. weighted error这个比较难搞,有没有不用动原来的模型,通过输入数据上做文章就可以达到同样的目的呢? 回想bag…
总体来说,林对于random forest的讲解主要是算法概况上的:某种程度上说,更注重insights. 林分别列举了Bagging和Decision Tree的各自特点: Random Forest就是这二者的结合体. 1)便于并行化 2)保留了C&RT的优势 3)通过bagging的方法削弱了fully-grown tree的缺点 这里提到一个insights:如果各个分类器的diversity越大,aggregation之后的效果可能就越好. 因此,Random Forest不仅样本是b…
首先用一个形象的例子来说明AdaBoost的过程: 1. 每次产生一个弱的分类器,把本轮错的样本增加权重丢入下一轮 2. 下一轮对上一轮分错的样本再加重学习,获得另一个弱分类器 经过T轮之后,学得了T个弱分类器,再将这T个弱分类器组合在一起,形成了一个强分类器. 由于每一轮样本的权重都在变化,因此分类器学习的目标函数也产生了变化: 无论是SVM还是Logistic Regression都可以用这种方式学习,给每个样本增加不同的权重. 接下来问题就变成了,如何调整样本的权重?目的是什么? 林介绍了…
Hard-Margin的约束太强了:要求必须把所有点都分开.这样就可能带来overfiiting,把noise也当成正确的样本点了. Hard-Margin有些“学习洁癖”,如何克服这种学习洁癖呢? 沿用pocket算法的思想,修改一下优化目标函数的形式,补上一个错分点的惩罚项CΣ.... (1)C越大,对错误的容忍度就越小,margin越小 (2)C越小,对错误容忍度就越高,margin越大 因此引入的参数C是在large margin和noise tolerance之间做了一个权衡. 但是上…