林轩田机器学习基石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

相关文章

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 基本操

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

C# dynamic类型使用详解

《C#dynamic类型使用详解》C#中的dynamic类型允许在运行时确定对象的类型和成员,跳过编译时类型检查,适用于处理未知类型的对象或与动态语言互操作,dynamic支持动态成员解析、添加和删... 目录简介dynamic 的定义dynamic 的使用动态类型赋值访问成员动态方法调用dynamic 的