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

机器学习算法回顾

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

给机器指定明确的任务

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

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

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

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

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

小结一下
  • 第一步,给定function寻找的范围

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

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

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

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

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

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

前沿研究和算法介绍

Explainable AI

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

Adversarial Attack

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

Network Compression

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

Anomaly Detection

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

Transfer Learning (即Domain Adversarial Learning)

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

Meta Learning

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

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

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

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

Life-long Learning

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

本文为公众号“Sakura的知识库”博文,欢迎关注~

机器学习前沿算法介绍相关推荐

  1. python机器学习 | SVM算法介绍及实现

    本篇博客具体学习参考: 1 [机器学习]支持向量机SVM及实例应用 2 [ML]支持向量机(SVM)从入门到放弃再到掌握 这两篇文章讲得特别清楚,数学推导(第一篇)也能看明白,强烈推荐学习~~ 本篇博 ...

  2. 机器学习算法-k-means聚类算法介绍

    聚类算法介绍: 在"无监督学习"(unsupervised learning)中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的 ...

  3. 机器学习(九) K-Means(K-均值)聚类算法介绍

    K-Means(K-均值)聚类算法介绍 监督学习和无监督学习 无监督学习和监督学习是机器学习最基本的两种类型.在理解聚类算法前必须了解这两类两种类型直接的差别 监督学习(supervised lear ...

  4. 简单易懂的机器学习算法介绍

    决策树 - - -决策树的基本原理 决策树(Decision Tree)是⼀种分⽽治之的决策过程.⼀个困难的预测问题,通过树的分⽀节点,被划分成两个或多个较为简单的⼦集,从结构上划分为不同的⼦问题.将 ...

  5. [机器学习] Boosting算法4 --- LightGBM介绍与分布式

    [机器学习] Boosting算法1 --- AdaBoost [机器学习] Boosting算法2 --- GBDT [机器学习] Boosting算法3 --- XGBoost [机器学习] Bo ...

  6. 人工智能基础:机器学习常见的算法介绍

    目录 监督学习 1.1 分类 1.2 回归 无监督学习 2.1 聚类 2.2 降维 3.半监督学习 4.迁移学习 5.强化学习(ReinforcementLearning, RL) 今天给大家聊聊机器 ...

  7. 15分钟带你入门sklearn与机器学习——分类算法篇

    作者 | 何从庆 本文转载自AI算法之心(ID:AIHeartForYou) [导读]众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机 ...

  8. 机器学习前沿:Michael Jordan与鬲融、金驰、马腾宇等青年才俊的对话

    与6位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 北京智源大会倒计时:3天 2020年6月21-24日,第二届北京智源大会(官网:http ...

  9. 深度学习前沿算法思想

    转自: 深度学习前沿算法思想 导读 第一版: 深度学习前沿算法思想 深度学习实践:使用Tensorflow实现快速风格迁移 行为识别:让机器学会"察言观色"第一步 第二版: 谷歌首 ...

最新文章

  1. win7系统下载 ghost win7 Sp1 64位纯净3月版
  2. kafka可靠数据传递
  3. 斗地主AI算法——第十三章の主动出牌(2)
  4. centos6.5 python2.6.6升级到python2.7.15
  5. 实用的工具 —— 百度云、everything(全局搜索)、Everest(硬件检测)、TechPowerUp GPU-Z
  6. Redis(九)-Redis的常用数据类型之Hash表
  7. Nginx配置规则详解,配置解释
  8. 空间三点确定圆心坐标及半径
  9. 计算机共享网络的账号密码怎么设置密码,怎样才能给win10共享设置密码的操作方法...
  10. outlook2007 有一个程序正试图以您的名义自动发送电子邮件
  11. Cause: dx.jar is missing
  12. matlab中switch函数的使用
  13. 学习笔记整理——vim,vim文件编码,vim配置文件
  14. 【C语言网】C语言基础题集训练详解(一)
  15. 带领域变异的多模态优化差分进化算法(DE/NCDE/NSDE/)
  16. illustrator内描边
  17. 有苦有乐的算法 --- 用栈和递归的方式实现二叉树的前序遍历、中序遍历、后序遍历
  18. java launcher在哪_JAVA Launcher简析
  19. 前端js身份证号码和手机号码格式验证
  20. GrapeCity Documents for Word[GcWord]

热门文章

  1. 《软件供应商手册:SBOM的生成和提供》解读
  2. python制作微信个人二维码_如何用Python制作微信好友个性签名词云图
  3. [UFUN函数] UG二次开发,设置渲染样式,例如带边着色、静态线框等
  4. 如何在html中设置密码,如何给浏览器设置密码
  5. js也能写3D游戏?
  6. 著名中医专家樊正伦(zt)
  7. 2019年的经典案例
  8. Hadoop-3.1.3部署
  9. 2021年CFA二三级考试报名入口正式开放!附考试时间
  10. element-ui利用jsx语法自定义table表头