在前面的学习中提到一个有关信用卡发放的例子,我们根据一些相关的数据来绝对是否对某一用户发放信用卡,那么得到的结果就是NO(-1)和YES(+1)。

这就是机器学习最基础的一种问题:二分类问题。即根据输入的数据进行判断,最后给出两个类型的结果,非此即彼。

二分类问题在我们的生活中是很普遍的存在,如信用卡的发放问题、垃圾邮件的过滤
、判断一个人是否生病及对于某一问题的答案是否正确等等。分类的模型有的是线性的,有的是非线性的,需要我们根据具体的应用场景进行合适的选择。

除了基本的二分类问题外,自然有多分类问题,如手写数字的识别、图像的多分类、邮件的归类等。不过多分类问题也可以转换为二分类问题处理,所以二分类问题是学习的基础。

在前面的分类问题中,输出都是离散的,此外还有一种情况就是输出是连续的,这类问题叫做回归问题(Regression),它的输出范围是整个实数空间,连续的。例如模型的训练、房屋价格的预测、股市走向的预测……最基本的回归模型是线性回归,此外还有很多种的回归模型。

除了分类和回归问题,在自然语言处理等领域中,还会遇到一种机器学习问题:结构化学习(Structured Learning)。结构化学习的输出空间包含了某种结构在里面,它的一些解法通常是从多分类问题延伸而来的,比较复杂。


如果我们拿到的训练样本 D D D既有输入特征 x x x,也有对应的标签 y n y_n yn​,那么将这种类型的学习称为有监督学习(Supervised Learning),它也是目前机器学习中使用最广泛、效果最好的一类。有监督学习可以是二元分类、多元分类或者是回归,最重要的是知道输出标签 y n y_n yn​。


与有监督学习相对立的另一种类型是无监督学习(Unsupervised learning)。无监督学习所处理的数据没有对应的标签,典型的无监督式学习如

  • 聚类(clustering)、对网页上新闻的自动分类;
  • 密度估计,比如交通路况分析;
  • 异常检测,比如用户网络流量监测。

通常情况下,无监督学习更复杂一些,而且无监督的问题很多都可以使用有监督学习的一些算法思想来实现。

介于监督式和非监督式学习之间的叫做半监督学习(Semisupervised Learning)。半监督式学习是说一部分数据有标签 y n y_n yn​,而另一部分数据没有标签。在实际应用中,半监督学习有时候是必须的,比如医药公司对某些药物进行检测,考虑到成本和实验人群限制等问题,只有一部分数据有输出标签。

此外还有一种很不同但是很贴近实际的学习模型:强化学习(Reinforcement Learning),之前很火的AlphaGO就是强化学习的应用实例,有兴趣的可以看看那两篇论文。强化学习中,我们给模型或系统一些输入,但它给不了我们希望的真实的输出 y y y。

根据模型的输出反馈,如果反馈结果良好,更接近真实输出,就给其正向激励,如果反馈结果不好,偏离真实输出,就给其反向激励。不断通过“反馈修正”这种形式,一步一步让模型学习的更好,这就是强化学习的核心所在。

强化学习可以类比成训练宠物的过程,比如我们要训练狗狗坐下,但是狗狗无法直接听懂我们的指令“sit down”。在训练过程中,我们给狗狗示意,如果它表现得好,我们就给他奖励,如果它做跟sit down完全无关的动作,我们就给它小小的惩罚。这样不断修正狗狗的动作,最终能让它按照我们的指令来行动。实际生活中,强化学习的例子也很多,比如根据用户点击、选择而不断改进的广告系统。有关强化学习的方向内容很多,值得我们在后面的学习中专门进行学习。


因此我们可以根据不同的数据标签将学习分为:有监督学习、无监督学习、半监督学习、强化学习等。

按照不同的协议,机器学习可以分为三种类型:

  • Batch Learning
  • Online
  • Active Learning

batch learning是一种常见的类型。batch learning获得的训练数据D是一批的,即一次性拿到整个D,对其进行学习建模,得到我们最终的机器学习模型。例如我们在对硬币进行分类时,我们一次拿到的一堆的硬币,对其进行分类。

online是一种在线学习模型,数据是实时更新的,数据一个个进来,同步更新我们的算法。比如在线邮件过滤系统,根据一封封邮件的内容,和用户的反馈来判断是否为垃圾邮件,同时及时更新当前算法。在线学习就是通过不断获得的数据持续的提升所做的假设的合理性,它是一个动态的过程。

active learning是近些年来新出现的一种机器学习类型,即让机器具备主动问问题的能力,这种学习方法很像上课,例如手写数字识别,机器自己生成一个数字或者对它不确定的手写字主动提问。它的优势之一是在获取样本label比较困难的时候,可以节约时间和成本,只对一些重要的label提出需求。


下面我们来看一下输入 X X X有哪些类型:

  • 离散特征(concrete features):比如说硬币分类问题中硬币的尺寸、重量等;疾病诊断中的病人信息等具体特征。concrete features对机器学习来说最容易理解和使用

  • raw features:比如说手写数字识别中每个数字所在图片的 m × n m \times n m×n维像素值;比如语音信号的频谱等。raw features一般比较抽象,经常需要人或者机器来转换为其对应的concrete features,这个转换的过程就是Feature Transform

  • 抽象特征(abstract features):比如某购物网站做购买预测时,提供给参赛者的是抽象加密过的资料编号或者ID,这些特征 X X X完全是抽象的,没有实际的物理含义。所以对于机器学习来说是比较困难的,需要对特征进行更多的转换和提取


总结

林轩田机器学习基石课程个人笔记-第三讲相关推荐

  1. 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...

  2. 台湾大学林轩田机器学习基石课程学习 笔记资料汇总

    笔记: 红色石头的专栏(写得非常好) 课后练习: 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总 https://download.csdn. ...

  3. 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem

    红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...

  4. 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation

    红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...

  5. 台湾大学林轩田机器学习基石课程学习笔记14 -- Regularization

    红色石头的个人网站:redstonewill.com 上节课我们介绍了过拟合发生的原因:excessive power, stochastic/deterministic noise 和limited ...

  6. 台湾大学林轩田机器学习基石课程学习笔记12 -- Nonlinear Transformation

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classificati ...

  7. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...

  8. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测.本节课将介绍Logist ...

  9. 台湾大学林轩田机器学习基石课程学习笔记8 -- Noise and Error

    红色石头的个人网站:redstonewill.com 上一节课,我们主要介绍了VC Dimension的概念.如果Hypotheses set的VC Dimension是有限的,且有足够多N的资料,同 ...

最新文章

  1. 【转】微服务实践(五):微服务的事件驱动数据管理
  2. AspNetCoreApi 跨域处理(CORS )
  3. 数据库高级知识——查询截取分析(二)
  4. c语言自动取款机贴吧,求助 简单atm机的循环操作
  5. ef6 oracle 存储过程,具有多个结果集的存储过程-EF6 | Microsoft Docs
  6. linux 安装nvm ,管理多版本nodejs
  7. L3-028 森森旅游 (30 分)-PAT 团体程序设计天梯赛 GPLT
  8. CAsyncSocket使用总结
  9. 语音识别的准确率,永远达不到100%?
  10. 移动滚动条显示或隐藏元素事件
  11. 动物识别系统 c语言代码_C++程序员避不开虚函数的,就像C语言程序员避不开指针一样...
  12. 项目练习:在线抽奖系统
  13. C语言代码简化技巧(一)
  14. es6删除数组某一项_JavaScript:集合与数组,重要但你不知道的ES6数据类型
  15. 【安装cad后不小心卸了,再次重新安装时显示已安装。这个怎么破?】
  16. c++ const 转非const
  17. 查询server服务器版本信息,sqlserver多版本查看版本号
  18. 【转】区块链是真的无需信任吗
  19. “希希敬敬对”团队作业——敏捷冲刺4
  20. 最新TP开发宝宝起名/八字起名/周易取名网站源码

热门文章

  1. 今天教你怎么给照片添加滤镜
  2. js摇号程序_用JavaScript写的一个摇号程序(随机数)
  3. 计算机配件图片大全,笔记本电脑配件大全
  4. 函数指针(详细介绍)
  5. 东芝rc100装linux,东芝RC100的小伙伴们,快来检查下你的固件版本
  6. MySQL批量插入与更新
  7. 【CNN分类】基于贝叶斯优化卷积神经网络BO-CNN实现故障诊断附matlab代码
  8. maven的配置教程
  9. Rootkit与后门隐藏
  10. jstack 命令详解