林轩田机器学习基石3:机器学习类型划分(Types of Learning)

2024-08-21 07:48

本文主要是介绍林轩田机器学习基石3:机器学习类型划分(Types of Learning),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注公众号-AI圈终身学习。
公众号首页回复“机器学习”查看所有系列文章。


上节主要介绍了:

  • 二元分类(Yes/No)问题
  • 线性可分数据的感知器演算法(PLA)
  • 针对线性不可分数据改进的贪心算法Pocket Algorithm。

本节笔记Lecture 3包含内容如下:

  • 机器学习类型划分(Types of Learning)
    • 根据不同的输出空间Y(Learning with Different Output Space Y)
    • 根据不同的数据标签 y n y_n yn(Learning with Different Data Label y n y_n yn
    • 根据不同的协议(Learning with Different Protocol f ⇒ ( x n , y n ) f ⇒ (x_n, y_n) f(xn,yn))
    • 根据不同的输入(Learning with Different Input Space X)

一、根据不同的输出空间Y(Learning with Different Output Space Y)

这一节是概念性知识,很简单。不同的输出空间Y对应不一样的问题。目前我们只学了二分类问题,比如:是否批准信用卡,是否垃圾邮件,是否生病,广告是否赚钱,答案是否正确。这里的输出空间Y取值只有+1和-1两种情况。如果有:

  • 识别数字0到9,则输出空间有10种,这叫多分类问题(Multiclass Classification)
  • 预测病人需要多少天康复,则输出空间有无限种,这叫回归问题(Regression)

归纳一下,如果我们输出空间对应有:

  • 两种,叫二分类问题(Binary Classification)
  • 多种,叫多分类问题(Multiclass Classification)
  • 无限种,叫回归问题(Regression)

二、根据不同的数据标签 y n y_n yn(Learning with Different Data Label y n y_n yn

这一节也是概念性知识,很简单。不同的数据标签 y n y_n yn对应不一样的学习方式。本节主要概念性讲:

  • 监督学习(Supervised)
  • 非监督学习(Unsupervised)
  • 半监督学习(Semi-supervised)
  • 强化学习(Reinforcement Learning)

目前我们学习的数据 x n 与 标 签 y n x_n与标签y_n xnyn一一对应,这种叫监督学习(supervised);

如果数据没有标签,则叫非监督学习(unsupervised),一般的应用场景都是聚类问题;

半监督学习(semi-supervised)数据有部分标签,一般也是聚类场景,相比于非监督学习,类别种类更确定;

强化学习是一种自然的学习方式,比如训练一条狗,叫它“ x n = x_n= xn=sit down”,如果它做了 y n = s i t y_n=sit yn=sit就喂他饼干奖励它,否则就惩罚它。

其他的有比如广告系统、或者围棋等应用场景。通常用于学习顺序的’隐含’信息。

本节小总结如下:

三、根据不同的协议(Learning with Different Protocol f ⇒ ( x n , y n ) f ⇒ (x_n, y_n) f(xn,yn))

根据不同的协议可以把机器学习划分成三种:

  • 批学习(Batch Learning)
  • 在线学习(Online Learning)
  • 主动学习(Active Learning)

批学习(Batch Learning)是比较常见的方式,直接喂给模型一批数学,让它直接学习。

在线学习(Online Learning)是通过一条条的数据慢慢学习。如果我们要提升垃圾邮件系统性能,则他们的流程如下:

PLA和强化学习可以轻松的使用在线学习协议,因为他们都是通过一条一条的数据不断的从假设集中选择更好的假设。

而主动学习(Active Learning)是去主动问问题,即通过某种策略(strategy)选择一条自己不确定数据,询问这条数据的标签。

本节总结就是根据协议可以把机器学习分成三种:Batch、Online、Acitve。他们可以类比成:填鸭式教育、举例教育、主动问问题。目前最重要的协议是Batch Learning。

思考一下这个问题:
一个摄影师有10W张图片,标记了1000张,现在对剩下的图片分类。对于算法认为确定的图片系统直接输出它的类别,如果不确定的询问人类,这是什么协议?

四、根据不同的输入(Learning with Different Input Space X)

在机器学习领域,输入特征一般分成三种类别:

  • 具体的特征(concrete)
  • 原始的特征(raw)
  • 抽象的特征(abstract)

非常容易理解。

具体的特征(concrete)有复杂的物理意义,相对而言机器学习比较容易学习这类数据,比如银行客户的信息:

原始的特征(raw)如图像的原始像素,通常需要人为的转化成具体的特征,再喂给模型,比如识别手写数字的图像输入:

抽象的特征(abstract)比如数据里面每条数据的ID,通常没有物理含义,我们需要进行特征转换/提取/构造

本节总结:

思考一下这个问题:

假设构建一个在线图片广告系统,推送与用户最相关的图片,我们能用哪些输入特征?

五、总结

本节主要讨论了机器学习的类型划分,比较轻松简单的一节:

文中思考题答案

这篇关于林轩田机器学习基石3:机器学习类型划分(Types of Learning)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092556

相关文章

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python如何查看数据的类型

《Python如何查看数据的类型》:本文主要介绍Python如何查看数据的类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python查看数据的类型1. 使用 type()2. 使用 isinstance()3. 检查对象的 __class__ 属性4.

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操