精华内容
下载资源
问答
  • 机器学习结构的梳理

    2019-09-30 20:39:11
    2012年以来,数据的爆发式增长为深度学习算法在语音和视觉识别上实现突破,令人工智能产业落地和商业化发展成为可能,人工智能市场前景巨大。 通常将人工智能分为弱人工智能和强人工智能,前者让机器具备观察和感知...

    2012年以来,数据的爆发式增长为深度学习算法在语音和视觉识别上实现突破,令人工智能产业落地和商业化发展成为可能,人工智能市场前景巨大。
    通常将人工智能分为弱人工智能和强人工智能,前者让机器具备观察和感知的能力,可以做到一定程度的理解和推理,而强人工智能让机器获得自适应能力,解决一些之前没有遇到过的问题。但是目前的科研工作都集中在弱人工智能这部分

    弱人工智能有希望取得突破,是如何实现的,“智能”又从何而来呢?这主要归功于一种实现人工智能的方法——机器学习

    机器学习是一种实现人工智能的方法。机器学习最基本的做法是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
    深度学习是一种实现机器学习的技术。深度学习本来并不是一种独立的学习方法,其本身也会用到有监督和无监督的学习方法来训练深度神经网络。

    下面用一幅图来梳理一下机器学习
    在这里插入图片描述
    最基础的是线性回归和神经网络,线性回归只能描述非常简单的映射关系,稍微复杂一点关系的描述就要加上非线性回归。如果把这些非线性的映射关系叠加起来就是一个神经网络。

    神经网络输入的信息是一维的信息,输入是一维,不同的网络之间进行的是一个简单的代数运算,经过非线性激励形成新的学习层和下一层进行信息的交互。

    CNN基本的代数运算用卷积和来代替,卷积核是二维的处理算子,神经网络到CNN(卷积神经网络)是空间上的扩展。CNN中卷积本质上就是利用共享的参数过滤器,通过计算中心像素点以及相邻像素点的加权和来构成feature map实现空间上的提取,当加权系数就是卷积核的权重系数。CNN的两大核心思想:网络局部连接、卷积核参数共享。

    神经网络到RNN(循环神网络)是一个时间上的扩展,神经网络处理一维信息时,但是这些信息是有时间联系的,比如人的语音。神经网络处理这些关系的时候,把在某一刻的输出作为下一刻的输入,处理的是前一刻和这一刻的信息,通过时域递归方式,就可以找到之前信息和之后信息的关系,同时还能学习信息到最后判断映射关系。但是在信息的传递的过程中,每一次获取前一时刻的信息或出现信息的衰减。为了避免信息的逐层衰减,引入了LSTM(长短期记忆网络),长短记忆都可以学习。根据输入信息判断一些信息是需要提前记住的,在下一刻处理的时候判断前面记住的信息是否要释放。

    线性回归,神经网络,卷积神经网络、循环神经网络,长短期记忆网络是整个深度学习的基础。在这个基础之上,我们可以辐射出很多方向。CNN是应用于图片分类,图片经过神经网络进行提取特征,再经过传统神经网络进行处理,最后进行判断。但是在现实生活中,收集到的图片并不是特别理想,比如有云、草、树等。那我们在处理图片的时候就要做目标分类和目标检测。

    再转到LSTM,它善于处理一维信息。现在在语言的提取和生成方面发挥着巨大的作用,用于语言生成。

    CNN和LSTM的结合,CNN善于图片的理解,LSTM善于语句的生成和时域信息的处理,可以用于视频的分类。

    随着社会的发展辐射出了很多的应用,比如增强学习和对抗网络。增强学习是模仿人类学习的模型,不停地学习反馈,慢慢的学会决策的能力。另一个是对抗网络,是生成网络和判别网络的结合,有利于生成很多数据,相当于是一个无监督学习。

    介绍到这里,相信大家对机器学习的结构已经有一些了解,接下来就来了解一下神经网络的实现过程吧
    神经网络的实现过程分为四个部分
    1、准备数据集
    2、搭建NN结构,从输入到输出,先搭建计算图,再用会话执行
    3、大量特征数据喂给NN,迭代优化NN参数
    4、使用训练好的模型预测和分类

    搭建神经网络一般按照八股
    搭建神经网络的八股:准备、前向传播、反向传播、迭代
    前向传播定义输入、参数和输出
    反向传播定义损失函数、返乡传播方法,在会话中完成迭代

    展开全文
  • 为什么我们要学习机器学习?它能帮我们找到工作吗? 机器学习好像很高大上很复杂,应该怎么着手去学呢?

    互联网的浪潮席卷全球,它功成名遂,高处不胜寒,一览众山小。然而时代的弄潮儿不会止步于此,他们还要站在新的浪潮之巅,去征服更大的世界。

    一、前言:为何要学习机器学习

    我不知道下一个风口到底是什么,但我相信人工智能、虚拟现实、区块链,至少有一种将重塑我们的未来。

    经过数十年的发展,机器学习被认为是人工智能中最成熟、应用最广泛、成果最令人振奋的一环。人们对人工智能的遐想通常是拥有独立思维的人型机器,这从各个层面上来看都任重而道远。但机器学习带来的好处已经十分实在——语音/图像识别、人脸识别、智能推送(虽然很烦),以及日趋成熟的自动驾驶。

    也许大家对铺天盖地的人工智能培训广告感到厌倦,对广告上诱人的高价薪酬半信半疑,但只要你用心学习一段机器学习,你就会发现它的魅力所在。互联网时代积累下来浩瀚的原始数据,我们需要一种强有力的工具去挖掘它们的价值,这种工具,或许正是打开新世界大门的钥匙。每一个技术人都不希望自己被淘汰,也许机器学习的知识不能帮你找到工作,但却是一张入场券。

    据我所知,目前 AI 行业的门槛仍然较高,短期甚至有供过于求的情况。但互联网行业的发展也同样经历过这个时期。等到它真正爆发的时候再去入坑,其实已经晚了。二十年前一个学历普通的年轻人决定进入 IT 行业,只需要稍微培训一下甚至是自学一段时间就能进大厂,而且可能已经成为了行业大牛,但在今天想复制同样的成功却十分困难。为什么股市里那么多韭菜?牛市一窝蜂进去,熊市一窝蜂出来,止跌不止盈,高买低卖。也许道理我们都懂,但这是人性的弱点,我体会过,很难克服,所以,成功的永远只是少数人。

    如果你只是为了找工作,想花费一两个月时间(甚至还坚持不了)去学机器学习,那还是放弃吧。如果我是公司老板,这个行业我不会冒险,直接从高学历应届毕业生里找人成本才是最低的。

    如果你想真正掌握这门技术,Welcome to Westworld!

    二、知识结构分析

    下图是根据《机器学习实战》一书制作的思维导图,我们可以利用它来分析一下机器学习的知识结构。
    在这里插入图片描述
    图中,用红色星星标注的是前期需要重点学习的内容,也是比较通用的部分。绿色的饼状图代表我对特点知识的理解程度。

    我想,这个结构比我们接触过的大部分学科都要简单。所以没有必要因为高大上的名字就产生畏难情绪。甚至可以再进一步将其简化为 “回归”“分类” 两大部分。也许将来还会有 “极简机器学习手册” 之类的书籍诞生吧,谁知道呢。

    书中按顺时针顺序组织章节内容,我觉得是 OK 的。

    当然,机器学习还有其它的分支,比如大名鼎鼎的深度学习。但有了基础的 “思维” 之后,其它的部分其实可以看做是一种 “工具”,可以自然而然地掌握。

    1 机器学习基础部分

    机器学习需要什么先导知识呢?

    本科正常毕业水平的线性代数概率论,和一点点计算机知识即可。

    忘了的知识可以复习,真遇到不懂的上网查查就好了。至于编程,由于有 Python 这样的语言在,只需要花费很少的时间(一周以内),就能从 0 开始读懂程序。如果你有任何一门语言的基础,那么根本不用单独花时间学 Python,遇到看不懂的语法直接搜索就完了。

    关于线代和概率论,无论有没有基础,都推荐看一遍 「3Blue1Brown 的视频」,相信你会对这两门学科产生更深刻的认识,amazing!

    2 分类

    分类分为监督分类和非监督分类,又各自有不同的方法。

    监督分类,如图所示,大致就是 KNN、决策树、贝叶斯、逻辑回归、SVM,其中 SVM 相对复杂点,其它的很容易理解。

    非监督分类,主要就是聚类和密度估计。

    3 回归

    回归即定量的分析或预测。包括线性回归(简单线性回归和多元线性回归)和树回归。这部分的模型也很好理解。

    关于回归和分类的区别,举个例子:

    预测明天下不下雨,属于分类问题;
    预测明天的降雨量,属于回归问题。

    4 研究方向

    其一,是寻找新的分类与回归问题的算法。

    其二,是如何改进已有的算法,提高他们的准确度与运算效率。

    其三,是研究如何把机器学习与实际应用更好地结合。

    对于不打算走算法路线的同学们,只要不断跟进新的成果,并尝试去应用它们就足够了,把机器学习当做一个强有力的工具即可。

    三、学习路径与资料分享

    1 学习路径

    其实刚才的结构分析中已经体现出来了。我的学习路径是这样的:

    机器学习是什么 -> 线性回归 -> 逻辑回归 -> SVM -> 线代 -> KNN -> 贝叶斯 -> 决策树 …

    各个算法的学习顺序无所谓,一个一个攻克即可。先把基础的学下来,并动手写代码实践,再尝试去改进它。

    数学基础不用担心!!!

    编程不用担心!!!

    找不到对象完全不用担心!!!

    2 学习资料

    最后给大家推荐一些学习资料。

    [1] GitHub - Avik-Jain/100-Days-Of-ML-Code,一个小哥分享的学习笔记与实践代码,时间比较充裕的学生党可以按照他每日的进度学习。

    [2] 网盘 - 一些参考书籍与视频教程,提取密码:dnxs。是大佬分享给我的,内容很多,大家各取所需。

    [3] MIT 的线代教程 ,需要补线代知识的同学可以刷一遍。这是比较正儿八经的数学课程。

    [4] 斯坦福的机器学习教程,吴恩达老师是我们共同的老师。

    [5] 一些培训机构的在线课程,比较适合没有大把时间学习的上班族,有人替你规划学习路线、督促你学习,目前来看价格还是不便宜的,大家自己做取舍吧。

    [6] 「CSDN - Evan 的博客」,一个和你一起成长进步的热爱学习的新时代优秀青年,最大的优点是为人谦虚,低调。并没有太多才华,就是长得比较帅。关注我,让你体验超越我的感觉,重拾学习的自信与快乐。

    声明

    上述资源来自互联网,如有侵犯版权请联系我,我会在第一时间处理。

    资料仅作为个人学习使用,切勿用在商业用途,请于下载后24小时之内删除,否则由此引发的法律纠纷及连带责任本人概不承担。

    声明

    上述资源来自互联网,如有侵犯版权请联系我,我会在第一时间处理。

    资料仅作为个人学习使用,切勿用在商业用途,请于下载后24小时之内删除,否则由此引发的法律纠纷及连带责任本人概不承担。

    展开全文
  • 引言 关于支持向量可以参考机器学习入门——支持向量机和李宏毅机器学习——...关于结构化学习的知识建议先阅读下李宏毅机器学习——结构化学习(二)。 本文主要介绍结构化支持向量机的理论知识。 文章目录引言 ...

    引言

    关于支持向量可以参考机器学习入门——支持向量机李宏毅机器学习——支持向量机

    关于结构化学习的知识建议先阅读下李宏毅机器学习——结构化学习(二)


    本文主要介绍结构化支持向量机的理论知识。

    李宏毅机器学习——结构化学习(二)中我们说,我们要找到合适的框把目标给框出来。今天我们假设无法找到一个这样的框,但是能找到一个近似的,这个问题要怎么解呢。
    在这里插入图片描述

    下文会介绍这个问题的解法。

    先看下本文的结构。

    在这里插入图片描述

    可分的情况

    我们已经在李宏毅机器学习——结构化学习(二)中讨论了可分(Separable case)的情况。

    在这里我们引入了margin。

    在这里插入图片描述
    现在有两份数据,一个用圈圈表示,另一个用星星表示。红色的代表是正确的结果。

    所谓可分的意思是存在一个向量w^\hat w,如果我们把所有的点都对w^\hat w做内积,会发现我们能让红点(正确的点)内积结果比同份数据蓝色点内积结果都大一个值,记为δ\delta

    在这里插入图片描述

    比如红色圈圈比所有蓝色圈圈的内积值都大一个δ\delta,红色星星也一样。
    如果用数学描述就是这样:
    在这里插入图片描述
    如果是可分的话,我们就可以用下面的算法来找到我们要的参数ww
    在这里插入图片描述

    接下来证明下我们能找到这个向量ww
    先看下结论,在可分的情况下,我们最多只要更新(R/δ)2(R/\delta)^2次就能找到w^\hat w

    RR是最大ϕ(x,y)\phi(x,y)距离的最大值。在同份数据中,把所有的点都代入ϕ(x,y)\phi(x,y)可以得到一个距离,任何两点距离了最大的值就是RR

    所以这个算法需要迭代的次数与yy的空间是无关的,即无论yy有多少,只要RR确定,迭代次数就确定。

    证明如下:

    ww在每次发现错误点的时候就会更新。

    在这里插入图片描述

    ww的更新过程写出来,我们先看wkw^kwk1w^{k-1}的关系。

    我们知道,它们一定有这样的关系:
    在这里插入图片描述

    某个正确结果形成的ϕ(xn,y^n)\phi(x^n,\hat y^n)减去某个错误的y\overset{\sim}y形成的ϕ(xn,yn)\phi(x^n,\overset{\sim}y^n)

    我们考虑的是可分的情况,先假设存在一个w^\hat w使得

    在这里插入图片描述

    正确结果的ϕ\phiw^\hat w的内积比非正确结果的内积都要大一个δ\delta

    不失一般性,假设w^=1||\hat w||=1,假如我们找到了一个w^\hat w,它可以让我们的数据可分,那我们对这个w^\hat w做归一化,把它的长度变成1的话,它一样还是可以让我们的数据可分。

    我们看下w^\hat wwkw^k之间的关系,如果我们计算这两个向量的夹角,这个夹角记为ρk\rho_k,我们会发现当kk越来越大的时候,夹角越来越小。

    我们可以计算cosρkcos \rho_k(夹角越小,cos\cos值越大)

    在这里插入图片描述
    (0,π)(0,\pi)之间,当xx越来与小,cosxcos x的值越来越大。

    在这里插入图片描述

    接下来看下w^wk\hat w \cdot w^k的值。

    在这里插入图片描述
    我们把右边的括号展开会发现
    在这里插入图片描述
    红线标出的这项一定大于等于一个δ\delta。这是来自我们的定义,现在w^\hat w可以让我们的数据可分的,那不管找到一个怎样的yn\overset{\sim} y^n,它与w^\hat w的内积一定比y^n\hat y^nw^\hat w的内积还小一个δ\delta

    所以红线的两项相减得到的结果是大于等于一个δ\delta的。

    在这里插入图片描述

    所以我们可以说 w^wkw^wk1+δ\hat w \cdot w^k \geq \hat w \cdot w^{k-1} + \delta

    因为初始w0=0w^0=0

    w^w1w^w0+δ\hat w \cdot w^1 \geq \hat w \cdot w^0 + \delta
    所以 可以说 w^w1δ\hat w \cdot w^1 \geq \delta

    w^w2w^w1+δ\hat w \cdot w^2 \geq \hat w \cdot w^1 + \delta \cdots

    所以w^w22δ\hat w \cdot w^2 \geq 2 \delta

    同理 w^wkkδ\hat w \cdot w^k \geq k \delta

    也就是看cosρkcos \rho_k的分子的话,它是不断增加的。

    在这里插入图片描述

    接下来我们再算下分母的wk||w^k||,因为我们已经假定w^=1||\hat w||=1

    如果我们发现wk||w^k||没有很快的增加,而这两向量的内积又增加的话,我们就可以知道wkw^kw^\hat w是越来越接近的(随着kk的增加)。

    在这里插入图片描述

    还是用这个wkw^k的表达式

    wk1w^{k-1}当成一项,剩下的当成另一项,把平方展开得到:

    在这里插入图片描述
    展开完后,首先红线标出的式子是一个长度,它一定大于0:
    在这里插入图片描述
    那右边的这项应该是什么样的值呢
    在这里插入图片描述

    上面这项是小于0的,在预测错误的情况下,wk1w^{k-1}的方向和更新方向的夹角是大于90度的,所以小于0。

    在这里插入图片描述

    以上篇文章中更新ww的图为例,更新方向向量是绿色的,预测错误的ww是向上的那个,它们的夹角是大于90度的。

    在这里插入图片描述
    我们假设任何两个数据点的距离是小于RR的。

    所以

    wk2wk12+R2||w^k||^2 \leq ||w^{k-1}||^2 + R^2

    于是我们可以得到wkw^k长度的上界。
    我们知道:
    在这里插入图片描述

    在这里插入图片描述

    以此类推

    在这里插入图片描述
    我们现在得到的结论是:
    在这里插入图片描述
    也就是说内积不断增加,而wkw^k的长度并没有增加的很快:
    在这里插入图片描述

    上式为什么是\geq呢,因为wk2||w^k||^2取最大值,作为分母的话,就是使得整个式子最小,而分子又是取的最小值,所以上式是\geq

    在这里插入图片描述

    随着kk不断增加,这个cos\cos的值可能会增加,我们知道coscos函数的值最大只能是11在这里插入图片描述

    它的上边界就是11。也就是:
    在这里插入图片描述

    证明完毕。

    从这个式子我们可以发现什么呢

    在这里插入图片描述

    如果δ\delta越大,那么这个式子的结果越小,也就是训练的越快。这很合理,如果红色的点与蓝色的点分得越开,我们训练的就越快。

    但是在实际情况中我们很难找到正确和错误的结果是可分的。常见的都是不可分的情况,接下来我们就一起看下这种情况。

    不可分的情况

    在不可分的情况中,还是会有一些权值ww比其他的要好。

    假设没有任何一个向量可以让正确答案和错误答案被分开。但是在这些向量里面,
    我们还是可以区分出好坏的。

    假设我们有一个向量ww^{'},它把正确答案排在第二。

    在这里插入图片描述

    有另外一个向量ww^{''},它把正确答案排在最后一名。

    在这里插入图片描述
    虽然这两个向量都无法让正确答案的分数高过错误的,但是显然ww^{'}是更好的。

    那我们如何用式子来描述这种情况呢

    我们可以定义一个损失CC来评估ww有多差,然后选择使得损失CC最小的ww

    CC的定义可以是全部的yy里面,可以让最大wϕ(xn,y)w \cdot \phi(x^n,y)的值,减去正确的y^\hat y所形成的值wϕ(xn,y^n)w \cdot \phi (x^n,\hat y^n)
    在这里插入图片描述
    从图上可以看出,就是第一名的值减去正确的结果的值,这是很直观的。
    在这里插入图片描述

    对每份数据都有一个CnC^n,累加起来就得到了CC

    我们来想下这个值有可能是负数吗,如果正确的红色框框排在第一名的话,那就变成自己减去自己,最小就是0了。

    接下来如何找到一个ww去使CC最小呢

    在这里插入图片描述

    其实我们用梯度下降就好了,虽然这个CnC^n里面含有maxmax。在maxout网络中我们已经看到过类似的解法:

    在这里插入图片描述
    虽然里面有个maxmax,还是可以计算对ww的梯度的。
    在这里插入图片描述

    ww不同的时候,选出来的yy是不一样的。
    可以把ww所形成的空间想象成如下:

    在这里插入图片描述

    这个空间其实是被maxmax切分成好几块的,比如yy ^ {'}形成的maxmax区域是下面涂蓝色的部分:

    在这里插入图片描述

    ww的值落在蓝色区域内,得到来的yyyy ^ {'}

    在每个区域里面的函数是可以容易的算出来的,比如在蓝色区域的式子就可以写成这样:
    在这里插入图片描述
    其他区域也是一样的:
    在这里插入图片描述
    在每个区域里面都是可以微分的。

    在这里插入图片描述

    接下来就可以用梯度下降法来找到使CC最小的ww
    在这里插入图片描述

    假设更新TT次,做随机梯度下降。

    在这里插入图片描述
    首先要知道落在哪个区域里面(上面应该是argmaxarg\, max,maxmax只是一个最大值,加上argarg才会返回一个yy),然后我们算出来是在yn\overset{\sim}y^n的区域里面。

    所以算梯度就简单了

    在这里插入图片描述

    然后我们就可以更新ww

    在这里插入图片描述

    如果把学习率η\eta设成11,那我们做的就是structured perceptron。
    就是下图这个算法:
    在这里插入图片描述

    考虑错误

    我们刚才的损失函数,对所有错的情况都是一视同仁的。

    在这里插入图片描述

    但事实上并非如此,因为输出有很多种可能,在这些可能情况里面,有一些和真实的输出是很接近的。

    在这里插入图片描述
    比如正确的是红框,但是你的系统框出的是第二名的那个,其实它也是框在了练功春日上面,也是可以接收的。但是其他的错误框框就无法接受了。

    所以不同的错误之间还是有差别的。我们应该把这件事情考虑进去。

    在这里插入图片描述
    比如说,框在樱花树上是很差的,不能接受的,但是第二名那个是可以接受的。我们希望框在樱花树上的分数很低,而第二名的分数要能和正确的结果分数接近。
    在这里插入图片描述
    如果你今天的权重能做到,使得结果能按照框框的好坏来排序,那么训练的结果是比较安全的。假如你的测试数据和训练数据有一些差距的话,虽然你得到的第一名不是正确的,但是至少能保证分数比较高的和正确的差距不是很大。

    那如果把这件事情考虑到损失函数中去呢

    在这里插入图片描述

    正确的框框是红色的,这里有两个错误的框框。当错误的框框和正确的框框很像时,我们希望第二名那个错误的框框分数与正确框框的分数差距是比较小的;而错误很离谱的第三名那个框框和正确的框框分数差距是较大的。

    现在的问题是如何衡量框框的好坏。其实这是与任务有关的,在不同的任务中你要想办法去定义它。

    我们用Δ(y^,y)\Delta(\hat y,y)表示正确的框框和其他框框之间的差距。
    至于这个Δ(y^,y)\Delta(\hat y,y)的式子需要你自己去定义,我们假设下面的讨论中定义如下:
    在这里插入图片描述
    A(y)A(y)代表yy这个框框的面积。如果某个框框和正确的框框相交的面积越大的话,并且它们面积的并集也不是很大,我们就可以得到一个比较小的差距。

    那有了Δ\Delta以后,我们需要修改损失函数。

    在这里插入图片描述

    现在评判的方法是用yy的分数wϕ(xn,y)w \cdot \phi(x^n,y)再加上Δ(y^n,y)\Delta(\hat y^n,y),然后再减去 正确结果的分数wϕ(xn,y^n)w \cdot \phi(x^n,\hat y ^n)

    我们会看看哪个yy,它不止是分数大,Δ\Delta也大,我们才会觉得它是真正的第一名。然后我们会拿这样的yy来减去y^\hat y的分数。

    可以想象成,如果今天有个yyΔ\Delta值很大,我就希望它和正确答案的分数差距越大越好。
    在这里插入图片描述
    反之如果今天有个框框,它和正确的框框其实很像的话,那就算它们的分数没有拉开也没关系。
    在这里插入图片描述

    那看下CnC^n在什么状况下会得到0,当正确的y^\hat y所得到的分数,不仅是比其他的yy还要到,而且都要大过一个损失函数所形成的Δ\Delta值的时候,那你的CnC^n会是最小的。

    在这里插入图片描述
    这个Δ\Delta所形成的差距就是margin。如果yy是一个很不好的框框,那么它和正确答案之间的margin就会很大;反之是个可以接受的框框,那么它和正确答案之间的margin就要比较小。

    我的理解是,这个Δ\Delta相当于是一个惩罚项,它惩罚那些Δ\Delta值很大的框。

    在这里插入图片描述

    现在加上了Δ\Delta的这是式子如何用梯度下降去优化它呢

    在这里插入图片描述
    现在找的是让wϕ(xn,y)w \cdot \phi(x^n,y)加上Δ\Delta最大,找出来的yy记作y\overline{y}

    梯度的计算也变了
    在这里插入图片描述
    在这里插入图片描述

    下面这个损失函数其实有另外一个观点来解释。

    在这里插入图片描述
    这个观点认为这个损失函数是训练数据上的误差的上界。

    当你在最小化这个损失函数的时候,你是在最小化训练数据误差的上界。

    最小化上界并不一定代表说误差会变小,但是是有可能会跟着变小的。

    在这里插入图片描述
    假设我们让上面这个内积最大的yy,当做我们系统的输出。

    在这里插入图片描述
    那我们希望最小化的是CC^{'},我们希望能找到一个ww,让y^\hat yy\overset{\sim} y之间的差距越小越好。

    但是最小化CC^{'}这件事情并没有那么容易,因为yy可以是任何的对象;Δ()\Delta()可以是任何的函数。如果Δ()\Delta()比那些不可微分的函数更复杂,比如是阶梯状的,那么梯度下降法就无能为力了。 可以想象是对ww做了一点改变,但是对Δ\Delta一点影响都没有。

    在这里插入图片描述
    不过还好有我们刚才可以用来做损失函数CC,它是CC^{'}的上界,我们希望通过最小化CC来达到最小化CC^{'}的效果。
    在这里插入图片描述

    接下来证明CnC^nΔ(y^n,yn\Delta(\hat y^n,\overset{\sim} y^{n}的上界。

    在这里插入图片描述
    首先看下面这项是大于等于0的。
    在这里插入图片描述

    因为yn\overset{\sim} y^{n}是可以让 wϕ(xn,y)w \cdot \phi(x^n,y)最大的yy

    所以不管减去什么,一定是大于等于0的。
    所以下式是成立的:
    在这里插入图片描述

    接下来换下右边这项括号里的内容:

    在这里插入图片描述
    然后我们说它是小于含max\max的那项的
    在这里插入图片描述
    本来是计算y\overset{\sim} yΔ\Delta加上y\overset{\sim} y的内积,现在变成了找一个yy,它使得Δ\Delta加上内积最大。

    既然这个yyΔ\Delta加上内积最大的那个yy,它一定大过y\overset{\sim} y
    在这里插入图片描述
    而包含max\max的这一项就是CnC^n

    在这里插入图片描述
    证明完毕。

    其实还有别的方法可以让
    在这里插入图片描述
    成立。

    刚才说的是这个:
    在这里插入图片描述

    还有下面这种方法:

    在这里插入图片描述

    正则项

    接下来再加上正则项。

    训练数据和测试数据可能有不同的分布,ww如果和0比较接近的话,就可以最小化这种不匹配的影响。

    在这里插入图片描述

    在原来的损失函数中加上12w2\frac{1}{2} ||w||^2。蓝色下划线这一项是要让错误的yy和正确的yy之间差一个margin。

    在这里插入图片描述
    前面绿色下划线这一项就是正则项,它希望ww接近0。这两项中间会有一个λ\lambda,来调整这两项的差距。

    在这里插入图片描述

    那右边新的这一项如何做优化呢

    在这里插入图片描述
    优化过程如上。

    接下来看看为什么今天讲的这个东西叫结构化支持向量机。

    结构化支持向量机

    在这里插入图片描述

    最后我们用的损失函数是这样的。我们可以稍微修改下这个式子。

    在这里插入图片描述
    首先把右边的负号项移到左边。

    在这里插入图片描述
    把上面那项改成对所有的yy,都有Cn+wϕ(xn,y^n)C^n+ w \cdot \phi(x^n,\hat y^n)大于等于

    在这里插入图片描述
    它们是一样的吗
    在这里插入图片描述
    我们今天要最小化CnC^n,那我们就说这一项在这里插入图片描述
    就等于maxmax就好了。如果这一项比maxmax大的话,就不是最小化的值。
    (这里其实没有看懂,李老师讲的SVM不好理解啊)。

    接下来把CnC^n移到右边

    在这里插入图片描述
    现在就变成这样
    在这里插入图片描述
    习惯上这里会把CnC^n换成εn\varepsilon^n
    在这里插入图片描述
    这个εn\varepsilon^n称为松弛变量(Slack variable)。

    在下面这个等式中,定好ww后,εn\varepsilon^n的值并没有直接决定,所以我们要改下描述。

    在这里插入图片描述

    现在要解的问题就变成了蓝框框出的问题:
    在这里插入图片描述
    y=y^ny=\hat y^n
    在这里插入图片描述
    得到εn0\varepsilon^n \geq 0

    所以可以重新描述下上面蓝框中的不等式。

    在这里插入图片描述

    如果听不懂的话,李老师说我们可以换个说法。

    在这里插入图片描述
    我们希望正确的框得到分数和错误的框得到分数中间差了个margin。如果它们的差越大,那么margin就要越大。

    反之如果它们的差越小,那么margin就应该越小。

    我们把红框和黄框的Δ\Delta当做它们之间应该有的差,如果它们越相近,那么margin就应该越小。

    所以我们可以列出一个限制条件,说我们今天要找到的ww应该满足以下条件。

    在这里插入图片描述
    因为我们有非常多个黄框,所以不等式也有非常多个。所有不等于y^\hat yyy都会有一个不等式。

    但是有一个问题是你可能找不到一个ww让上面的不等式都满足。

    所以我们把margin改的小一点,把margin都减去一个ε\varepsilon

    在这里插入图片描述
    为了把margin变小,这个ε\varepsilon要是大于等于0的。
    在这里插入图片描述
    因为margin变小了,也就说要找的ww的限制被放宽了。所以叫ε\varepsilon为松弛变量。

    当然限制不能放得太宽,可以想象说今天ε\varepsilon是无穷大,那么所有的margin都变成负值,那么随便找到一个ww都会让这些不等式被满足的话,这个就不是我们要的东西。

    我们希望放宽的幅度必须是最小的,也就是说我们希望ε\varepsilon的值能越小越好。

    在这里插入图片描述

    假设我们今天有两笔数据,x1x^1x2x^2。对x1x^1来说,我们希望正确的减掉错误的要大于它们之间的Δ\Delta减掉ε1\varepsilon^1。对所有的yy除了y^1\hat y^1以外,这些不等式都成立。

    在这里插入图片描述

    接下来有另外一笔数据x2x^2,我们希望正确的减掉错误的一样大于Δ\Delta减掉ε2\varepsilon^2

    在满足这些不等式的前提下,我们希望这些ε\varepsilon的和是最小的。

    这样得到的式子就和刚才推导出来的是一样:
    在这里插入图片描述

    这个东西和SVM的关系是什么呢,它和SVM的式子其实是大同小异的。它们都是二次规划问题。

    现在唯一的问题是限制条件太多了,接下来的问题是,在限制这么多的情况下应该要怎么办。且听下节分解。

    分割平面法

    现在的问题是,我们有一个参数空间,由wwε\varepsilon所形成。

    在这里插入图片描述

    参数空间上面的颜色代表需要最小化的CC值:

    在这里插入图片描述
    在这里插入图片描述
    在没有限制的情况下,青色星星这一点是最小值。但是我们有大量的限制条件。

    在这里插入图片描述
    这些限制告诉我们,在这个空间里面只有中间那个灰色区域是符合我们所有的限制的。

    在这里插入图片描述
    我们要在灰色区域中找最小值,我们得到的结果就是上图青色星星那一点。限制的问题是如何找出这个灰色区域。

    虽然这里的限制很多,但是大部分的限制都是冗余的。
    在这里插入图片描述
    比如说我们看这两条红色的限制,我们只要有这两条红色的限制,就能决定大部分灰色区域的形状。这样下面绿色的这条限制,其实是不会对结果有影响的。
    在这里插入图片描述
    所以我们可以优化下限制条件表达式,不需要穷举所有的yy了。我们只需要从有影响的限制条件集合中去取。
    在这里插入图片描述
    这个小部分的有影响的限制条件集叫工作集(working set),这里用AnA^n表示。

    如果有能找出这样的工作集的话,在优化的时候我们只要考虑AnA^n里面的yy

    现在的问题是如何找到这个工作集。我们通过迭代的方法来找,每次找到一个元素加到工作集里面。

    一开始为每个样本初始化一个空工作集,然后根据这个工作集去解下面的问题:
    在这里插入图片描述
    我们考虑工作集里面的yy,假设我们根据这个工作集解出一个ww后,我们再用这个ww去重新检查下,增加新的元素到工作集。此时工作集就不一样了。然后我们再用这个工作集去重新解上面的QP问题。

    这样又可以得到不一样的ww,又可以找到新的成员添加到工作集。就这样一直循环。

    我们用图示的方式来解释下这个过程是如何运作的。

    • 先假设初始化样本nn的工作集为An=nullA^n=null,表示它是空集合,也就是没有任何限制;
    • 假设我们在没有限制的情况下,得到的结果是蓝色的点。
      在这里插入图片描述
    • 找出这个蓝色的点后,我们需要看看有哪些限制是没有被满足的。比如下图这些红色的线都没有被满足
      在这里插入图片描述
    • 虽然有很多没有被满足的限制,但是我们只选择没有满足的最严重的那个。假设我们找到的是下图红线那个,并记这个限制为yy^{'}
      在这里插入图片描述
    • 我们就把这条限制加到工作集里面,现在工作集就有一个成员了。
    • 根据我们现在工作集唯一的成员,它告诉我们说,最小的值是下面蓝色星星
      在这里插入图片描述
    • 接下来我们以蓝色星星作为结果,看还有哪些限制没有被满足。此时还有很多,比如新的红线就没有被满足
      在这里插入图片描述
    • 再把这条没有被满足的限制(就是上图没有经过蓝色星星的那条红线)加到工作集中。我们就根据现有的两条限制,得到一个新的值:
      在这里插入图片描述
    • 接下来要继续检查还有哪些限制没有被满足,比如说下面这条新的线就没有被满足。
      在这里插入图片描述
    • 再把这条新线加到工作集中,现在工作集中有3条线了,我们就根据这3条线,得到一个新的最小值。
      在这里插入图片描述
    • 于是就找到我们要的解,就结束整个算法

    上面有个问题就是如何寻找没有满足的最严重的那个限制。
    在这里插入图片描述
    我们先来看下限制的表达式,当一个限制被违反(violate)的时候,给定w,εw^{'},\varepsilon^{'},就是说
    在这里插入图片描述
    但是不满足(违反)的限制可能有很多个,我们要定义一个违反的程度:

    在这里插入图片描述
    就是不等式右边这一项减去左边,它大的越多就越违反。
    我们还可以简化下这个式子,对所有的x,yx,y来说,ε\varepsilon^{'}是一个固定的值,它与yy没有关系,而wϕ(x,y^)w^{'} \cdot \phi(x,\hat y)也不影响我们计算。因此可以简化为:
    在这里插入图片描述
    最后违反程度最严重的yy就是可以让上式的值最大的yy
    在这里插入图片描述

    我们现在来看下这个分隔平面法的样子:
    在这里插入图片描述
    这里用y\overline{y}表示当前找出的违反程度最严重的限制。知道我们无法找出一个新的y\overline{y}放入工作集时,整个算法就结束了。

    用结构化SVM来做多分类和二分类

    多分类SVM

    假设有KK个类别,有KK个权重,它们组成一个权重向量。
    在这里插入图片描述
    F(x,y)F(x,y)就可以写成

    在这里插入图片描述
    这个xx就是我们要去分类的数据,用向量表示。
    如果我们用结构化SVM的是,一般F(x,y)F(x,y)是长这样的:
    在这里插入图片描述
    那和下面这个公式是同一个吗
    在这里插入图片描述
    其实它们是同一个。我们可以把ww用列向量的形式表示,ϕ(x,y)\phi(x,y)写成这样:
    在这里插入图片描述
    ϕ(x,y)\phi(x,y)x\overrightarrow {x}放的位置与yy的取值有关,假设这里y=8y=8,我们把x\overrightarrow {x}放到这个位置。
    在这里插入图片描述
    因此这两个式子是可以一样的。

    在这里插入图片描述
    那推断类别的时候怎么做呢,就是穷举所有可能的yy,看哪个的wyxw^y \cdot \overrightarrow {x}的取值最大。因为类别是有限的,所以这里的穷举很容易。

    解下来就做一下训练。此时的限制条件是有限的。所以也用不着分隔平面法。
    在这里插入图片描述
    那有多少个限制呢,假设有nn份训练数据,每份训练数据都有K1K-1个不正确的yy。因此整个限制的数量就是N(K1)N(K-1)

    根据上面ϕ\phi的形式,我们可以把ww乘进去:
    在这里插入图片描述
    得到上面两项,然后代入限制条件公式中:
    在这里插入图片描述
    那这里的Δ(y^n,y)\Delta(\hat y^n,y)是什么呢,这个其实可以自己定义。可以说如果我们预测的类别和真实类别不一样就是1,一样就是0。

    但是可以考虑另外一种问题,就是某种类型当成另一个类别是比较严重的,而当成其他某种类别是不严重的。

    比如说yy有狗、猫、公交车和小汽车。
    在这里插入图片描述
    然后我们就可以自己定义,本来类别是狗,我们预测的是猫,相差就不是很严重;而本来是狗,预测的是公交车,相差程度就很大。
    在这里插入图片描述

    这样在训练的时候,我们的模型就会尽量避免把狗识别成公交车。

    二分类SVM

    二分类其实就是多分类中的K=2K=2而已。
    在这里插入图片描述
    本来我们的限制是写成这样的,但是因为我们只有两个类别。我们就可以把正确答案是类别1,弄错成类别2与正确答案是类别2,弄错成类别1的Δ\Delta不一样。

    在这里插入图片描述
    我们这里假设只要弄错Δ=1\Delta=1。今天我们K=2K=2,你会发现只有两种情形:

    • 要么它属于类别1
      在这里插入图片描述
    • 要么它属于类别2
      在这里插入图片描述
      我们可以假设w1w2=ww^1 -w^2 =ww2w1=ww^2 - w^1 = -w,代入上面就可以得到。
      在这里插入图片描述

    参考

    1. 李宏毅机器学习
    展开全文
  • 机器学习的逻辑结构

    2017-11-14 09:43:18
    1、机器学习基础1.1什么是机器学习1.2为什么要用机器学习1.3使用机器学习的先决条件1.3.1计算能力1.3.2海量数据1.3.3算法1.4机器学习的应用场景1.5利用机器学习的步骤2、机器学习算法3、机器学习案例
    本文随着学习的积累会不断更新,逐渐形成一个索引。
    

    1、机器学习基础

    1.1什么是机器学习

    1.2为什么要用机器学习

    1.3使用机器学习的先决条件

    1.3.1计算能力

    1.3.2海量数据

    1.3.3算法

    1.4机器学习的应用场景

    1.5利用机器学习的步骤

    2、机器学习算法

    3、机器学习案例

    展开全文
  • 机器学习的知识结构

    2013-01-04 14:21:22
    机器学习是模拟人类学习活动过程来完成进行学习。本文通过分析机器学习系统在学习过程对知识的使用特点,提出将机器学习系统中知识库里的知识分为样本特征知识 ,操作性知识和推理性知识三个方面;并根据它们在学习...
  • 深度学习之结构机器学习策略课程地址:结构机器学习项目
  • 结构机器学习项目

    2019-01-08 00:08:46
    结构机器学习项目机器学习(ML)策略(1)Introduction to ML StrategySetting up your goalComparing to human-level performance机器学习(ML)策略(2)Error AnalysisMismatched training and dev/test setLearning ...
  • 机器学习目录结构

    2017-04-02 12:46:06
    前言:监督式学习 第一部分 线性回归 最小均方差算法(LMS algorithm) 正规方程组 2.1. 矩阵导数 2.2. 最小方差回顾 用概率论原理阐述最小均方差 局部权重线性回归 第二部分 分类和逻辑回归 逻辑回归 引申:感知机...
  • 李宏毅机器学习系列-结构化学习介绍结构化学习是什么统一框架物体检测的例子文章总结的例子网页搜索的例子换个概率的角度理解这个框架框架遇到的问题与DNN的联系总结 结构化学习是什么 简单来说,就是找一个函数,...
  • 各种数据结构和刷题笔记,是目前看懂最全的秋招算法笔记集合(深度学习机器学习数据结构等):labuladong的算法小抄,和小浩学算法,股票买卖问题,剑指OFFER,梯度爆炸与梯度消失等等等
  • 机器学习知识结构

    2016-09-03 10:41:43
    链接:http://lib.csdn.net/base/machinelearning/structure
  • 李宏毅机器学习系列-结构化学习之结构化支持向量机回顾统一框架统一框架的问题结构化学习的应用统一框架的问题解决方案前方高能线性可分的情况和结构化感知机训练次数的数学推导如何进行快速训练线性不可分情况定义...
  • 机器学习知识体系结构

    千次阅读 2016-10-13 21:12:00
    机器学习分为:   监督学习:样本数据有标签  无监督学习:所有样本数据都是一样的 监督学习包括:  回归:预测值是连续的  分类:预测值是离散的 无监督学习: 聚类
  • 课程来源:吴恩达 深度学习课程 《结构机器学习项目》 笔记整理:王小草 时间:2018年6月1日 为什么我们需要使用机器学习策略?因为机器学习策略可以帮助我们在正确的方向上优化模型。 本文主要分成4部分, ...
  • 机器学习策略2. 正交化 Orthogonalization3. 单一数字评估指标4. 满足和优化指标5. 训练/开发/测试集划分 参考: 吴恩达视频课 深度学习笔记 1. 机器学习策略 如何改善模型的性能 收集更多数据 训练集多样性(如,...
  • 结构机器学习项目 一、机器学习(ML)策略(1) 二、机器学习(ML)策略(2)
  • deeplearning.ai深度学习系列视频no3结构机器学习 - week1 机器学习策略(1) 课程笔记
  • deeplearning.ai深度学习系列视频no3结构机器学习 - week1 机器学习策略(1)的课程笔记
  • 程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结 作者:July--结构之法算法之道blog之博主。 时间:2010年10月-2018年5月,一直在不断更新中.. 出处:...
  • 机器学习模型结构

    千次阅读 2018-11-09 10:41:57
  • 本文主要介绍了什么是结构学习(Structured Learning),并简要介绍了下原理。最后对一些应用场景进行了一些说明。 结构学习 到目前为止,我们考虑的问题它的输入和输出都只是向量。 实际上我们面对的问题可能比...
  • 结构机器学习项目Quiz2

    千次阅读 2017-11-29 15:49:08
    结构机器学习项目Quiz2
  • 结构机器学习项目Quiz1
  • 1. Why ML Strategy为什么需要机器学习策略,机器学习策略指的是一些分析机器学习问题的方法。让我们从一个例子开始:假设训练的分类器准确率为90%,想要提高准确率应该怎么办呢?我们有很多选择可以尝试,但尝试...
  • pandas.xmind 《机器学习》XMind思维导图笔记.xmind 机器学习框架.xmind 神经网络发展过程.xmind
  • 跟把大象放进冰箱里一样,李宏毅老师将机器学习方法总结为三步,如下: 总结来说,就是如下三步: Define a set of function(Model) Goodness of function(Objective Function) Pick the best function...
  •  它是描述函数集或学习机器的复杂性或者说是学习能力(Capacity of the machine)的一个重要指标。vc维反应函数集的学习能力,VC维越高学习机器的复杂性越高(容量越大)。 结构风险最小化:  在保证分类精度...
  • 结构机器学习项目——视频、讲义、编程作业资源属于深度学习课程中的第三部分内容,主要讲述结构机器学习。其课程内容为机器学习(ML)的策略~

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,652
精华内容 5,460
关键字:

机器学习结构学习