【人工智能:现代方法】第19章:样例学习

  • 智能体学习(learning):一个智能体通过对世界进行观测来提高它的性能
  • 机器学习(machine learning):智能体是一台计算机 —— 一台计算机观测到一些数据,基于这些数据构建一个模型(model),并将这个模型作为关于世界的一个假设(hypothesis)以及用于求解问题的软件的一部分

为什么希望一台机器进行学习?

  • 程序的设计者无法预见未来所有可能发生的情形
  • 有时候设计者并不知道如何设计一个程序来求解目标问题——大多数人都能辨认自己家人的面孔,但是他们实现这一点利用的是潜意识

1 学习的形式

  • 归纳(induction):从一组特定的观测结果得出一个普遍的规则—— 归纳的结论可能是不正确【只要前提是正确的,演绎(deduction)的结论就保证是正确的】
  • 分类(classification):输出是一个有限集合中的某个值时
  • 回归(regression):输出是一个数值

根据输入有3种类型的反馈(feedback),学习可分为3类:

  • 监督学习(supervised learning):智能体观测到输入-输出对,并学习从输入到输出的一个函数映射 —— 输出称之为标签(label)
  • 无监督学习(unsupervised learning):智能体从没有任何显式反馈输入中学习模式;最常见的无监督学习任务是聚类(clustering)
  • 强化学习(reinforcement learning)中:智能体从一系列的强化——奖励与惩罚——中进行学习,智能体判断之前采取的哪个动作该为这一结果负责,并且改变它的动作以在未来得到更多的奖励

2 监督学习

监督学习的任务

  • 给定一个训练集(training set)含有N个“输入-输出”对样例: ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x N , y N ) (x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_N,y_N) (x1,y1),(x2,y2),(x3,y3),...,(xN,yN)
  • 每一对数据都由一个未知的函数 y = f ( x ) y=f(x) y=f(x)生成
  • 目标:寻找一个函数 h h h近似真实的函数 f f f

  • 函数 h h h :关于世界的假设(hypothesis),取自一个包含所有可能的函数 假设空间(hypothesis space) H \mathcal{H} H【其他说法,模型-模型类,函数-函数类
  • 输出 y i y_i yi:真实数据(ground truth)

如何选择一个假设空间

  • 关于数据生成过程的先验知识【如果有的话】
  • 采用探索性数据分析(exploratory data analysis):通过统计检验和可视化方法——直方图、散点图、箱形图——来探索数据以获得对数据的一些理解,以及洞察哪些假设空间可能是合适的
  • 直接尝试多种不同的假设空间,然后评估哪个假设空间的效果最好

如何从假设空间中选择一个好的假设

  • 寻找一个一致性假设(consistent hypothesis):假设 h h h ,对训练集中的任意一个 x i x_i xi,都有 h ( x i ) = y i h(x_i) = yi h(xi)=yi
  • 如果输出是连续值,不能期望模型输出与真实数据精确匹配,而是寻找一个最佳拟合函数(best-fit function),使得每一个 h ( x i ) h(x_i) h(xi) y i y_i yi非常接近
  • 衡量一个假设的标准不是看它在训练集上的表现,而是取决于它如何处理尚未观测到的输入:使用一个测试集(test set)—— 如果 h h h 准确地预测了测试集的输出,称 h h h 具有很好的泛化(generalize)能力

如何分析假设空间:

  • 偏差(bias):(不严格地)在不同的训练集上,假设所预测的值偏离期望值的平均趋势
    • 常常是由假设空间所施加的约束造成的,如假设空间是线性函数时会导致较大的偏差,分段线性函数具有较小的偏差
    • 欠拟合(underfitting):一个假设不能找到数据中的模式
  • 方差(variance):由训练数据波动而导致假设的变化量
    • 过拟合(overfitting):一个函数过于关注它用来训练的特定训练数据集,进而导致它在没有见过的数据上表现较差
  • 偏差-方差权衡(bias-variance tradeoff):在更复杂、低偏差的能较好拟合训练集的假设与更简单、低方差的可能泛化得更好的假设中做出选择
  • 奥卡姆剃刀原则(Ockham’s razor):如无必要,勿增实体

表达能力与复杂性的权衡

  • 表达性语言使简单的假设能够与数据相匹配
  • 限制语言的表达能力则意味着任何一致性假设都必定是复杂的

3 决策树学习

决策树(decision tree):将属性值向量映射到单个输出值(即“决策”)的函数

  • 决策树通过执行一系列测试来实现其决策:从根节点出发,沿着适当的分支,直到到达叶节点为止
  • 树中的每个内部节点对应于一个输入属性的测试,该节点的分支用该属性的所有可能值进行标记,叶节点指定了函数要返回的值
    在这里插入图片描述

3.1 决策树的表达能力

  • 命题逻辑中的任何函数都可以表示为决策树

一棵布尔型的决策树的逻辑语句:

  • O u t p u t ⇔ ( P a t h 1 ∨ P a t h 2 ∨ … ) Output \Leftrightarrow (Path_1 \vee Path_2 \vee …) OutputPath1Path2

  • P a t h i Path_i Pathi:根节点到true叶节点的路径上的属性-值测试形式 A m = v x ∧ A n = v y ∧ … ) A_m = v_x \wedge A_n = v_y \wedge …) Am=vxAn=vy的合取

  • 所有的决策树将空间分割为矩形,即与坐标轴平行的方框

  • 不存在一种表示方式使得任何函数都能被有效地表示

最重要的属性:对一个样例的分类结果能产生最大影响的属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程之三大特性及JMM内存模型

目录 原子性 如何保证原子性 可见性 如何保证可见性 有序性 如何保证有序性 Java内存模型(JMM内存模型) Java内存模型的一些关键概念: 主内存与工作内存交互协议 Java内存模型通过以下手段来确保多线程程序的正确性: 锁机制 volatile volat…

1-数组-有效的数独

这是数组的第一题,从现在开始开启数组篇章。力扣链接。 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的…

Fpga开发笔记(二):高云FPGA发开发软件Gowin和高云fpga基本开发过程

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135620590 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

【Redis配置】Linux下的Redis安装配置

压缩包方式的Redis下载与安装 进入官网 Redis官网:https://redis.io/download/ 往下翻可以找到其他版本的Redis,或者访问https://download.redis.io/releases/查找自己所需Redis版本。 下载自己所需版本 此处我选择下载的是6.2.14版本 上传到Linux…

墙地砖外形检测的技术方案-图像分割

基础原理 由于对碗口进行缺口检测,因此只需要碗口的边界信息。得到陶瓷碗区域填充后的图像,对图像进行边缘检测。这是属于图像分割中的内容,在图像的边缘中,可以利用导数算子对数字图像求差分,将边缘提取出来。 案例…

Vue:将以往的JQ页面,重构成Vue组件页面(组件化编码大致流程)

一、实现静态组件 组件要按照功能点拆分,命名不要与HTML元素冲突。 1、根据UI提供的原型图,进行结构设计,结构设计的粒度以是否方便给组件起名字为依据。并梳理好对应组件的层级依赖关系。 2、设计好结构后,开始写对应的组件&am…

pl/sql程序块的使用

-- Created on 2024-01-15 by ADMINISTRATOR declare -- Local variables hererecord_tablename varchar2(100);---test_record表名record_StartNo integer(19);---test_record开始编号temp_No integer(19);maxnbbh integer(19);nCnt integer : 20;fi…

家用小型洗衣机哪款性价比高?好用的内衣洗衣机推荐

现在大多数的上班族,面临的都是早九晚六的工作,而且工作完下班回家还是面对各种各样的家务,特别是清洗需要换洗的洗衣,属实是有点辛苦了。可能很多人为了方便,每次洗衣服的都是把一堆衣服直接丢进洗衣机,直…

EVE-NG的环境导入IOL组件

IOL或IOS On Linux,也称为IOU或IOS On Unix。IOL是一个模拟器,一般仅思科使用。IOL指为i386架构编译的Linux版本。IOU指为Sparc架构编译的Unix(Solaris)版本。由于IOL是内部IOS版本,因此IOL只能由Cisco授权客户使用。需…

UniApp+Vue智慧工地信息化管理云平台源码(支持多工地使用)

智慧工地建设的意义 1、提高工程效率 智慧工地可以通过数字化手段,将工地的各个方面进行数字化存储和管理,从而实现的实时监测和共享。这可以大大提高工程的效率,减少工程中的人工干预,并且可以为后续的工程维护和升级提供便利。…

c++中的以及链表的基础使用

c中的& 通俗的立减即为对一个变量起别名。(是和指针有区别的) 以下为两个示例程序: 通过&代替了以往对地址的传递。从而实现了对a和b的交换。 p为a的别名,对p操作即为对a操作。故最后输出a的值为10. 链表的基础应用 链…

Windows11搭建Python环境(2)- Anaconda虚拟环境中安装Git

在搭建MetaGPT运行环境过程中,使用了Anaconda虚拟环境,在运行MetaGPT时出现错误: 可以看到是没有找到git指令。 在Windows上安装Git,可以直接去官网下载.exe文件,然后安装即可。 但是上面安装完成后,是无…

三方接口对接常见数据处理方式汇总

文章目录 数据请求格式application/json接收发送 multipart/form-data接收发送 application/x-www-form-urlencoded接收发送 text/xml接收发送 Request请求中各个数据载体获取方法HeaderParameterInputStreamAttribute 二次封装HttpServletRequest参考 验签与加密 日常开发中&a…

【Python_PySide6学习笔记(三十一)】基于PySide6实现自定义串口设备连接界面类:可实现串口连接断开、定时发送等功能

基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能 基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能前言一、界面布局二、串口相关功能实现三、完整代码四、调用方法五、实现效果基于PySide6实现自定义串口设备连接…

快慢指针-Floyd判圈算法

对于环形链表是否存在环的做法,普通算法可以通过额外Hash数组来存储链表元素,直到Hash数组中出现重复元素。时间复杂度O(n),空间复杂度O(n) Floyd判圈算法通过利用快慢指针的移动来实现,时间复杂度O(n)&am…

【备战蓝桥杯】今天给大家整点解压的~

【备战蓝桥杯】今天给大家整点解压的~ 蓝桥杯备赛 | 洛谷做题打卡day8 文章目录 【备战蓝桥杯】今天给大家整点解压的~ 蓝桥杯备赛 | 洛谷做题打卡day8[NOIP2017 普及组] 成绩题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提…

【C语言编程之旅 1】刷题篇-初识c语言

文章目录 第一题答案及解析 第二题答案及解析 第三题答案及解析 第四题答案及解析 第五题答案及解析 第六题答案及解析 第一题 答案及解析 C语言中内置类型包括: char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精…

ArcGIS Pro 拓扑编辑和常见一些拓扑错误处理

7.4 拓扑编辑 拓扑编辑也叫共享编辑,多个数据修改时,一块修改,如使用数据:chp7\拓扑检查.gdb,数据集DS下JZX、JZD和DK,加载地图框中,在“地图”选项卡下选择“地图拓扑”或“ds_Topology(地理数据库)”&…

Oracle-java下载、开源/商业许可证(收费、免费说明)、版本发布日志

Oracle-java下载、开源/商业许可证(收费、免费说明)、版本发布日志 下载开源/商业许可证(收费、免费说明)java8版本发布日志以上是一般情况,具体的以官网发布信息为准 下载 下载地址:https://www.oracle.c…

google cloud storage批量文件下载

背景: 一些google cloud storage文件的下载是需要付费的,一些是不需要的,不需要的直接点击下方的下载按钮即可,但是常常存在大量的文件下载,挨个下载有点费时间而且占内存,所以我尝试了批量下载到HPC&…