机器学习前沿算法介绍

上一篇推文介绍了机器学习领域比较常见的几种算法,除此之外,随着人工智能深度学习技术的飞速发展,也涌现了不少前沿研究和新的算法,本文会对上一篇推文进行简要回顾,并扩展介绍一些前沿算法

机器学习算法回顾

机器学习的本质就是寻找一个函数,它根据某种统计意义来预测现实中已发生或即将发生的现象,这个函数可以相当复杂,它也许具有上千万个参数,以至于根本没有人能够把这个函数的数学表达式给手写出来,但幸运的是,机器可以。

机器学习前沿算法介绍_第1张图片
给机器指定明确的任务

当然机器是很笨的,你要给机器指派任务,首先要做的就是明确自己要找什么样的函数,它要实现什么样的功能,它的输入是什么,它的输出是什么,怎样是评价机器做的好坏。传统意义上的机器学习大致分为以下三类:

  • 回归(Regression)——让机器输出一个数值,如预测PM2.5
  • 分类(Classification)——让机器根据不同的选项做选择题
    • 二元选择题(binary classification),如用RNN做文本语义的分析,判断文本表达的是正面or负面的情绪
    • 多元选择题(muti-class classification),如用CNN做图片的多元分类
  • 生成(Generation)——让机器去创造、创生(powerful)
    • 如用seq2seq做机器翻译
    • 如用GAN来生成一张二次元人物的图像
告诉机器训练的方式

已经有了大方向,那么下一步就是要具体地告诉机器你要给它什么样的训练方式,分为以下三种方式:

  • 监督学习(Supervised Learning):用数据标签明确地告诉机器你想要的、理想的、正确的输出是什么
  • 强化学习(Reinforcement Learning):不需要明确告诉机器正确的输出是什么,而只是在机器完成任务之后告诉它做的好还是不好,引导它自动往正确的方向学习
  • 无监督学习(Unsupervised Learning):给机器一堆没有标注的数据,看看机器到底能做到哪一步
告诉机器评价的标准

当机器知道要找什么样的函数之后,这个函数实际上就是一个含有很多未知参数的模型,你要决定怎么去算出这个模型的参数值。于是你就告诉机器自己的评价标准,也就是所谓的损失函数,如果机器做的不好,那就告诉它现在的参数不理想,要换一组参数接着尝试。我们平常所说的训练模型,实际上就是这样一个不断试错的过程,让机器在失败中成长。

机器学习前沿算法介绍_第2张图片
小结一下
  • 第一步,给定function寻找的范围

    • 比如线性函数、神经网络都属于指定函数的范围

      两个经典的网络架构就是RNN和CNN

  • 第二步,确定function寻找的方法

    • 主要的方法就是梯度下降法(gradient descent)以及它的延伸

      可以手写实现,也可以用现成的深度学习工具——tensorflow、pytorch来实现

  • 第三步,不断试错,找到最好的function

前沿研究和算法介绍

Explainable AI

AI其实是一个黑盒子,我们只知道丢给它什么样的输入,它会给我们什么样的输出。但机器为什么能做的这么好?它是像我们一样有条有理地分析还是全靠运气猜?举例来说,在对猫狗的图像识别例子里,可解释的AI(Explained AI)要做的就是让机器告诉我们为什么它觉得这张图片里的东西是猫或狗。 (use CNN)

机器学习前沿算法介绍_第3张图片
Adversarial Attack

现在的图像识别系统已经相当的完善,甚至可以在有诸多噪声的情况下也能成功识别,而对抗攻击(Adversarial Attack)要做的事情是专门针对机器设计噪声,刻意制造出那些对人眼影响不大,却能够对机器进行全面干扰使之崩溃的噪声图像。想象一下,基于神经网络的自动驾驶,把攻击者贴在墙上的一张纸识别成了真正的道路,会发生什么结果? (use CNN)

机器学习前沿算法介绍_第4张图片
Network Compression

你可能有一个识别准确率非常高的模型,但是它庞大到无法放到手机、平板里面给人使用,而网络压缩(Network Compression)要做的事情是压缩这个庞大无比的神经网络,使之能够成功部署在手机甚至更小的平台上。(use CNN)

Anomaly Detection

如果你训练了一个识别动物的系统,但是用户放了一张动漫人物的图片进来,该系统还是会把这张图片识别成某种动物,因此异常检测(Anomaly Detection)要做的事情是,让机器知道自己无法识别这张图片,也就是能不能让机器知道“我不知道”,这有点像一个哲学问题。

机器学习前沿算法介绍_第5张图片
Transfer Learning (即Domain Adversarial Learning)

在用于学习的过程中,训练数据和测试数据的分布往往是相同的,因此能够得到比较高的准确率,比如黑白的手写数字识别。但是在实际场景的应用中,用户给你的测试数据往往和你用来训练的资料很不一样,比如一张彩色背景分布的数字图,此时原先的系统的准确率就会大幅下降,而迁移学习(Transfer Learning)要做的事情是,在训练数据和测试数据很不一样的情况下,让机器也能学到东西。

机器学习前沿算法介绍_第6张图片
Meta Learning

元学习(Meta Learning)的思想就是让机器学习“该如何学习”,也就是Learn to learn,传统的机器学习方法是人所设计的,是我们赋予了机器学习的能力;而元学习并不是让机器直接从我们指定好的函数范围中去学习,而是让它自己有能力自己去设计一个函数的架构,然后再从这个范围内学习到最好的模型。我们期待用这种方式让机器自己寻找到那个最合适的模型,从而得到比人类指定模型的方法更为有效的结果。

  • 传统:人类指定模型->机器从这个模型中学习出最好的函数

  • 元学习:我们教会机器设计模型的能力->机器自己设计模型->机器从这个模型中学习出最好的函数

原因:人为指定的模型实际上效率并不高,我们常常见到机器在某些任务上的表现比较好,但要花费大量甚至远超于人类所需的时间和数据才使机器能达到和人类一样的能力。相当于我们指定的模型直接定义了这是一个天资不佳的机器,只能通过让它勤奋不懈的学习才能得到好的结果,由于人类的智慧有限,无法设计高效的模型才导致机器学习效率低下。因此元学习就期望让机器自己去定义自己的天赋,从而具备更高效的学习能力。

机器学习前沿算法介绍_第7张图片
Life-long Learning

一般的机器学习都是针对某一个任务设计的模型,因此它往往只能处理同一个类型的任务(偏科严重)。而终身学习(Life-long Learning)想要让机器能够具备终身不停地学习能力,让它不仅能够学会处理任务1,还能接着学会处理任务2、3…从而成为一个“全能型人才”。

机器学习前沿算法介绍_第8张图片

本文为公众号“Sakura的知识库”博文,欢迎关注~
机器学习前沿算法介绍_第9张图片

你可能感兴趣的:(机器学习,机器学习,神经网络,深度学习)