Machine Learning Foundations | Cheney Shen

Technology blog

Archives

Machine Learning Foundations 16: Three Learning Principles


    总结: Occam’s Razer: 简单是好的 Sampling Bias: 小心抽样的偏差 Data Snooping: 小心不要偷看资料         上一节: 很重要的工具 validation,留下一定的验证资料来模拟测试程序,来衡量和选择比较好的训练模型。     这一节: 三个做机器学习时候的精囊妙计。         第一个: occam’s razor (occam 的剃刀)     今天你要对你的资料作解释的话,越简单越好。(爱因斯坦说的?) 不要对一个东西做过多的处理。(William of occam)     我们不要对资料过分解释。         举例: 两张图,左边的比较简单,比较好。     问题是: 什么样叫做简单的解释? 为什么简单的比较好?      …

Read More

Machine Learning Foundations 15: Validation


    总结:Validation(验证) 从要选择一个好的模型来做切入:如果用 Ein 做选择是很危险的,但是你没有办法用 Etest 来做选择,我们用 Validation来做选择,我们做了相应的理论证明。 再讲 leave one out cross validation:假设validation最小达到1,然后做很多次取平均结果,理论上结果会比较好,但是这要花很大的计算上的时间。 实际上 leave one out vross validation没有那么可行,常用的是 v-fond cross validation,就是切5/10份就可以。         Validation (验证)     上一次讲到避免 overfitting 的一种方式叫做 regularization:在 Ein 上面加上 regularizer 项变成 E_aug,对此做 minimize 的动作,这样可以有效的限制 model complexity。     面临的问题的是:整个过程当中有很多的选择要做,这里 validation 就是用来帮助你作出合理的选择。         即使你要做…

Read More

Machine Learning Foundations 14: Regularization


    这里讲的内容: Regularizer hypothesis set 就是在原来 H 的基础上加上条件,这样以后可以把要解的问题转换成 augmented error 的问题,就是把 W 的平方加进去,这代表了我们会降低 effective 的 Dvc,最后我们说到 regularizer 是一个非常 general 的工具,我们可以设计使用 符合目标函数特性的,能说服自己的,又容易优化求解的 来使用。         回顾: ML里面最大的问题就是overfitting,当有太多的power,存在两种noise,数据量又不够多的时候,overfitting很有可能发生。     今天讲的 regularization 可以看作是处理 overfitting 的一种方法,我们首先讲数学推倒,然后延伸到各种不同的变化情况。         右图是我们上次举例的一种典型的overfitting的情况:资料量不多有noise,用了一个高次方多项式来fit,红色线 Ein 很低,但是 Ein 和 Eout(蓝线,目标)差别很大。     我们今天要做的就是从这么不好的情况 变成 左图所示的情况:规则化的fit     我们要怎么做呢? 就是从高次多项式走回到低次多项式的fit。…

Read More

Machine Learning Foundations 13: Hazard of Overfitting


    内容 Ocerfitting 的概念: Ein 变低, Eout 变高 Overfitting 很危险很容易发生,原因是:两种noise,数据不够,目标太复杂 怎么解决 Overfitting:data cleaning/hinting/pruning, 等等,下面的课程继续介绍         上一次我们讲到原来我们的model是线性的,如果我们把linear model配上non-linear的transform,那就产生的非线性的model来扩展我们的学习,代价是付出额外的model的complexity。     今天我们从 complexity 出发,说到这额外的 model complexity 会造成机器学习里面一个很大的困难叫做 overfitting。我们首先将这个困难是如何产生的,然后说要怎么样解决它。         我们先从一个例子出发:     有五个资料点,X是随机产生的,Y则是X代入某个二次函数,再加上一些noise产生。     如果我们假设我们用一四次的多项式来做回归分析,配合五个点,那就是有唯一解,也就是 Ein = 0,就是右边的红色的线,但是你会发现和蓝色的目标函数差距很大,也就是 Eout 很大。     这个叫做:Bad Generation 已有资料做得很好,未知资料结果就不好。 当 Dvc 很大的时候,就会发生这样子 Ein…

Read More

Machine Learning Foundations 12: Nonlinear Transformation


    今天讲的是非线性的变换         上次讲到三个linear model都可以用在各式的classification问题上面,包括二元分类和多元分类的问题。但是这些model的重点是linear的,用线性的方式算一个分数,今天我们要把这个model衍生到non-linear的情况。         Linear hypotheses     如果今天是二元分类的话,视觉上就像切一条线,数学上表示就是 分数 = 权重 * X 这样带来的好处是 VC 维度是受到控制的,复杂度可控,Ein/Eout 不会差别太远。坏处是有些资料不可能用直线可以切分。     因此下面讲的就是如何去突破linear model的限制。         怎么做呢?     对于上面图示的资料来说 资料 D 不是线性可分的,就是不能用直线切分。但是如果我们采用圆圈来切分的话,看起来我是可以把ooxx分开来的。 比较方式是点到圆心的距离的平方,把它跟0.6比,这样一个hypotheses是可以区分这些资料的。     那么可以说上面的资料是圆圈圈可分,这样我们就可以重新设计怎么杨用圆圈圈来做PLA, regression等等。     但是这样太麻烦了吧,因此我们要来考虑怎么样系统化的设计这些演算法。         那我们首先来看看怎么用圆圈圈的方式来做到资料分类呢?…

Read More

Machine Learning Foundations 11: Linear Models for Classification


    我们要从之前学过的binary classification开始来看看我们学过的这些model怎样延伸出来处理更复杂的multi-classification的问题。     内容: 证明可以使用 linear/logistic regression 来求解 binary classification Logistic regression 的加速算法 stochastic gradient descent (SGD):做法就是使用随机梯度来替代真实梯度。 分多类的基本方法 One-Versus-All (OVA):二元就是 二元分类组 求解概率最大的。 分多类的第二种方法 One-Versus-One (OVO):两两配对形成二元分类组,结果当作是投票取最大的。     这一课丰富了 linear classification 下的算法,首先先讲 以前讲的三个 linear 分类方法 都可以来做 binary classificaiotn;再把 logistic regression 延伸到 SGD,然后你会发现其和 PLA 很有关系;最后讲了两种不一样的做 多类别分类的方法 OVO/OVA。             我们上一次讲了logistic…

Read More

Machine Learning Foundations 10: Logistic Regression


    内容: 问题模型 推导Ein 找到 w 使得 Ein 最小 通过梯度下降法计算得到最小的 W         上一次介绍的是 linear regerssion,使用平方错误可以很方便的算出来最好的情况在哪里。 今天我们来看一下 logistic regression 可以用在哪些地方。         我们先来看看 学习流程图: 这里的例子还是医院的系统,我们用机器学习来判断病人有没有心脏病。     左上角说我们拿到的资料是有noise的,我们可以用一个target distribution来描述这个问题,对于这里的这个二元分类问题,target distribution会是一个理想的目标分类函数,就是把目标的分布是大于还是小于1/2,直接得出预测结论。 在这里我们在意的是 classification error,就是二元分类结论对不对。         类似的问题:如果我们想要知道的是病人两三个月后心脏病发的几率是多少。 表示:我们有兴趣的是一个 0-1 的值,不再是二元分类的结论,而是分类结果的可能性值。     这就是我们今天想要探讨的问题 soft binary classification。      …

Read More

Machine Learning Foundations 9: Linear Regression


    内容: Linear regression 的原理和推导过程,就是求解Ein最小化的解。极其重要! Linear regression 的理论 Ein/Eout 平均错误是 2(d+1)/N 证明 linear regression 这个方法可以被用在classification 求解上面,只要其错误衡量是classification的上限         上一节我们讲了再前面花力气证明的二元的VC Bound可以扩展用在各种情况下,也包括这里面要讲的linear regression的情况。     我们来看看演算法上面我们要怎样去设计。         回过头来看银行发信用卡的例子。这里考虑的不是银行要不要给顾客发信用卡,而是要给用户发多少额度的信用卡。     可以继续用前面二元分类使用的learning流程,改动的地方在于学习公式变成了一个输出实数的公式,输出的是给顾客的信用额度数值。     regression问题的特征就是:输出空间是整个实数。         那么我们来考虑到底Hypothesis到底长什么样子输出的才会是实数。     比如例子:顾客资料分数的加权值 和 给用户的信用额度是需要接近的。 和原来perception的区别在于,原来perception算完分数后为了回答正负的问题,需要取正负号来获得最终的结果,而这里直接算完分数就是一个实数,而regression要得就是实数。         如图来表示 linear…

Read More

Machine Learning Foundations 8: Noise and Error


    如何在有noise的情况衡量错误。     内容: 再有杂讯的情况下,我们使用probabilistic函数来做描述(就是y由直接公式得到变成了几率分布)。 错误的衡量方式方式是和使用场景强相关的,我们考虑plausible/friendly的方式来挑选。 最后说 weighted classification 的理论。         到上一节,我们已经讲完了机器学习最重要的工具Dvc。 如果我们的H集合的Dvc是有限的,我们有足够多的资料,且Ein又很低,那么我们就大概学到了东西。     这里我们将说的是在原来Dvc推倒的时候设立了一些假设,我们怎么样放宽一些假设让Dvc可以应用到更广泛的机器学习问题中去。         以前讲到: 我们有一个 distribuction,由此得到 examples 的 x,未来做测试的时候我们采用的也是同样的 distribuction。 我们有一个 target function,这个target function会产生一堆的 examples 的 y。 我们需要通过这些带有 (x,y) 的资料,在一堆 h集合里面找出好的 h (Ein 很小,且 Ein 等于 Eout)     在这基础之上我们来考虑noise,会不会对之前的整个理论推到产生影响呢?      …

Read More

Machine Learning Foundations 7: The VC Dimension


    介绍Dvc是什么:最大的non break point。 从 perception 上来说就正好是 d+1。 从物理意义上来说就是有多少个自由度。 Dvc可以用来决定我们大概需要多少资料,让你不需要再去考虑H的细节,一个变量就决定了其性质。         上节课讲过的:我们可以确保我们的Ein(训练时的表现)和Eout(测试的时候的表现)一致,当我们的成长函数露出一线曙光且资料量足够大。     从这里触发我们可以引入 VC 维度的概念。         如果我们的成长函数在K处露出一线曙光,这个成长函数会被某个上限函数bound住,这个上限函数又会被某个多项式bound住,这个多项式的次方是K-1次方。     我们把上限函数的表格列出来,然后再把N的k-1次方列出来,我们来做比较。当N,K比较大的时候(这里N>2,K>3的时候),我们发现 N的K-1 次方就已经比我们的上限函数都大了,也就是说比我们的成长函数来得大。     因此我们就可以得到 我们的成长函数 会被 N的K-1次方 bound住。就化简了多项式。         上一节课证明的是:如果在我的H集合里面有任何一个h发生坏事情,这件事的几率很小很小,小的边界是:     这个结论的意义是,既然我们保证了大部分的时候都不会有坏的事情发生,也就是说我们的演算法被bound的情况下做的选择,这时候做出的选择g,这个g的Ein,Eout离得很远的几率也很小很小。     然后我们将上面的成长函数里面的 m 也可以替换成 N的K-1次方,如上面的式子的结论。这个替换的要求是N,k够大,原来的推倒的条件是N够大,这里更加严格要求k也要够大。     结论:所以下面两个条件让我们可以做机器学习:…

Read More
Page 1 of 212
  • Categories

  • Tags