🦖
Wii
  • 原码补码反码
  • Archive
    • Job
      • Learn
      • 算法
      • Company
        • HundunDaxue
      • Company
      • 基础
        • 原码补码反码
      • 项目经验
      • require
    • Hobbies
      • Physics
        • 上帝粒子
        • 概述
        • 时间
      • Movie
        • MovieList
      • Psychology
        • Psychology
        • Chenli
          • ChenliLivingRoom
      • Philosophy
        • Philosophy
        • Conceptions
        • 导言
      • Travel
        • City
          • 昆明
          • 沈阳
        • articles-check-list
      • Sports
        • Swimming
        • Skiing
      • Earth
        • Ocean
          • Biology
      • Read
        • BookList
        • 道德经
        • BookToRead
      • Music
        • sort
      • PickUp
        • SoldiersSortie
    • Care
      • Illness
        • cold
        • 腹泻
        • acne
        • EmotionalControl
        • 咽炎
        • Anemia
      • Foods
        • 破壁机
          • 食谱
      • I
      • WishList
      • WithL
        • MF
          • LY
    • Wfw
      • QA
    • Mac
      • Brew
        • 软件安装目录
      • Usage
        • RunScriptAsRootOnBoot
        • Mac-Config
      • 制作启动U盘
      • Software
        • IntelliJIDEALicenseServer
          • run-license-server
    • PlantUML
      • plantuml
    • Windows
      • Windows常用命令
      • PowerShell
        • powershell 命令
      • Cmder
      • MTP服务驱动无法安装
    • English
      • 英语阅读2016-07-29
      • 英语阅读2016-08-11
    • Tools
      • Plantuml
        • Setup
      • Eclipse
        • Eclipse
        • Eclipse常见问题
      • CommonHotkey
      • Jetbrain
        • JetbrainIDEs
      • VSCode
      • SublimeText
        • 格式化代码
    • I
      • WHATIAM
    • Device
      • Netgear
        • Astrill
      • RPi
        • Hardware
    • AwesomeSoftware
    • RESTful
    • Course
      • 自然辩证法
        • 我国在生态文明建设中存在的困境及解决对策
        • 工程师应该具有的基本道德素养
        • 科学文化与人文文化的关系
      • 英语写作
        • Description
      • 分布式系统
        • 分布式系统概论
      • 英语口语
        • 辩论赛
    • CloudLib
      • 推荐0.1
    • Project
      • README
        • emq
          • Emq架构
        • 启动
        • Hikvision
          • TimeSetting
    • Efficient
    • Neu
      • IpCamera
        • live
        • ffmpeg
    • Matlab
      • Matlab 2016b 破解
    • SchoolWork
      • 学术道德与学术规范
    • git-push
  • Coding
    • Design Pattern
      • 设计模式笔记_四_工厂模式
      • 设计模式笔记_六_命令模式
      • 设计模式笔记_三_装饰者模式
      • 设计模式入门
      • 设计模式笔记_八_模板方法模式
      • 设计模式笔记_一_策略模式
      • 设计模式笔记_五_单件模式
      • 设计模式笔记_七_适配器模式与外观模式
      • 设计模式笔记_二_观察者模式
      • 设计模式笔记_十_状态模式
      • 设计模式笔记_九_迭代器与组合模式
    • C++
      • Notes
        • Practice
          • Logger
        • Thread
          • PosixThreadPrograming
          • ThreadNote
        • Features
          • FuturePromise
          • Lambda
        • STL
          • STLPractice
          • 迭代器
          • UnorderedMapSet
          • Containor
          • STL
          • Vector
        • CMake
          • Startup
          • CMakeExample
          • CMake
          • CMakeUsage
          • CMakeKnowledge
        • Mutex
        • Gdb
          • Gdb
        • LanguageNotes
          • Pointer
          • String
          • Functions
          • 友元
          • IO
          • OOP
          • Exceptions
          • Basic
          • 初始化
          • Random
          • 模板函数
        • Glog
          • glog
        • Thrift
          • Thrift
        • Valgrind
          • valgrind
        • 动态库 & 静态库
        • BookNotes
          • AboutC++
        • LRvalues
      • map
      • protobuf
      • Build
      • Seastar
        • Notes
          • std::move
          • Introduce
          • Install
            • BuildAndInstall
          • Steps
          • cmd
      • Tricks
      • Map
      • CommonOperation
      • FreqAlgorithm
    • Tools
      • Git
        • GitExamples
        • GitUsage
        • GitKnowledge
        • GitIgnoreExample
        • DeleteBigFileFromHistory
      • Vim
        • VimTips
        • 安装
        • Vim-Usage
        • Plugins
        • Vim-Config
      • SVN
        • svn服务器搭建
        • svn
    • Scala
      • Notes
        • Scala-模式匹配
        • Scala: 隐式
        • Scala-符号语法
        • Scala-函数
        • Scala面向对象编程
        • Scala 函数式编程
        • Scala:zipWithIndex
        • Future
        • Scala-语法
        • Scala-基础
      • DateTime
      • 规范
    • Python
      • Notes
        • BookNotes
          • 生成器
          • 垃圾回收机制
          • 数据结构
          • 数据类型
          • RegularExpression
          • 迭代器
          • NetworkProgramming
          • 函数式编程
          • 上下文管理器
          • PythonDataModel
          • 运算符
          • 魔术方法
          • 面向对象
          • 装饰器
          • 模块
          • MultithreadProgramming
          • 异常
          • 函数
        • Modules
          • stack
          • Datetime
          • shutil:文件操作
          • logging
          • urllib
          • Re
          • 容器数据类型
          • TypeError
          • str
          • queue
          • urllib-and-requests
          • Exception
          • path
          • os
        • Others
          • PythonSerialization
          • Python函数的docstring
          • PIL
          • type-cast
          • operations
          • Python-类
          • 组及命名组匹配
          • Package
          • jieba分词
          • logging模块
          • Python
          • print
        • Examples
          • 文件读取写入
          • 命名
          • 递归更改文件为windows合法名称
          • 定制命令行运行方式
          • Python处理Excel文件(xlsx文件格式)
          • 读取ini配置文件
          • tor代理
          • 添加父目录到Path
        • CommonTips
        • CodingStandards
          • python注释
          • PEP-8
      • Django
        • DjangoDocs
          • making queries
          • 设置media路径
          • models
          • manage.py使用
          • template
          • view
          • forms
          • setting.py 文件配置说明
          • nginx-deploy
          • 使用pymysql
          • 自定义tags和filters
          • admin-interface
        • DjangoRestFramework
          • Customer Permissions
          • Serializers
          • FileField绝对路径问题
          • DjangoRestFrameworkNotes
          • ViewSet
        • DjangoNotes
          • Model对象转化为Dict
          • QuerySet
      • Scrapy
        • Scrapy
        • Spider
        • Scrapy安装出错
        • Selector
        • Scrapy模拟登陆
      • Job
        • 字典
      • Pandas
        • pandas
        • PandasExamples
      • VirtualEnv
        • virtualenv
      • Numpy
        • NumpyUsage
        • numpy
      • Matplotlib
        • MatplotlibNotes
        • MatplotlibUsage
      • Database
        • 获取表字段
      • Pip
        • 更改源
      • Scipy
        • scipy
    • Web
      • 插件
        • bootstrap-table
          • bootstrap-table
        • bootstrap
          • 模态框
        • requirejs
          • requirejs
        • toastr
          • toastor
      • Koa
        • Notes
          • KoaNotes
      • SCSS
        • 常用标签
        • Watch
      • Vue
        • Notes
          • 路由
          • 参考
          • 组件
          • Plugins
          • Vuex
          • StartUp
      • 样式
      • CSS
        • CSS
      • 排版
      • Notes
        • 跨域访问
      • Hexo
        • HexoUsage
      • Nodejs
        • Koa
          • jest
          • ParamValidate
        • 仓库镜像
      • Express
        • Express
        • Jade
          • Jade
      • Canvas
        • Canvas
    • Basic
      • Data Structure
        • Heap
          • Heap
        • Tree
          • Tree
        • Benchmark
          • map
      • Boolean
      • MultithreadProgramming
      • Software Engineering
        • UML
          • UML
      • OOP
      • 介绍
    • Antlr
      • Example
      • Grammar
      • Antlr
    • Java
      • Library
        • MyBatis
          • generator
            • mybatis配置详解
          • mybatis-获取自增ID
          • mybatis
          • problems
        • log4j
          • Usage
      • Maven
        • MavenUsage
        • Maven
        • MavenProject
        • 项目RUL路径问题
        • MavenPom
        • Settings
        • PomCommon
        • PomExample
      • Notes
        • Features
          • Reflect
          • Java函数式编程
          • toMap
          • Closeable & AutoCloseable & Flushable
          • Annotations
        • Common
        • ThinkingInJava
          • 控制执行流程
          • 接口
          • 复用类
          • 内部类
          • 操作符
          • 访问权限控制
          • 一切都是对象
          • 多态
          • 初始化与清理
          • 对象导论
        • SwordToOffer
        • Network
        • Thread
          • ThreadPool
        • Basic Library
        • Collections
          • List Interface
        • CommandLine
        • Project Common
        • JavaLang
      • JVM
        • Monitor
          • Jmap
          • mat
          • Jstat
          • Monitor
        • Notes
          • JVM
        • GC
          • GC
          • Shenandoah
            • Shenandoah
        • JVM
    • Algorithm
      • Code
        • LeetCode
          • Python
            • 0000-0050
              • 0005
              • 0030
        • SwordToOffer
          • SwordToOffer
      • AlgorithmSummary
      • Classics
        • string
          • KMP
        • Other
          • FullPermutation
        • 链表
        • Sort
          • Sort
      • Other
        • README
      • Notes
        • Math
          • 两点计算直线方程
    • Go
      • Notes
        • Go Project Layout
        • Install
        • Startup
      • Basic
        • Startup
        • Types
    • JavaScript
      • MasonryLayouts
      • jquery
      • Notes
        • Promise
      • js
    • Android
      • SDK
        • 打开SDK Manager
    • C#
      • WebBrowser
      • c#图片
      • 跨线程访问控件
    • Knowledge
      • 函数式编程
      • 设计框架
    • Rules
      • Rules
    • React
      • ReactNative
        • React Native Navigation
        • 打包Apk
        • ReactNative
      • React
        • README
    • RegExp
      • 正则表达式
    • WeChatApp
      • 登陆
    • Node
      • Notes
        • StartUp
  • Computer Science
    • ICS Security
      • 工控网络
      • 工业控制系统
      • HoneyPot
        • 蜜罐软件
          • Honeyd
      • 工业以太网
      • CNVD
        • 环境及依赖
      • 现有蜜罐系统及工具
      • 工控系统安全措施
      • 蜜网
      • 蜜罐
      • 工控安全相关概念
    • Data Analysis
      • Data Mining
        • Notes
          • Data_Preprocessing
          • 数据预处理
          • 认识数据
          • Mining_Modeling
          • 数据探索
          • Python_Data_Mining_Functions
          • Python数据分析平台搭建
          • Reference_Books
          • 数据分析与挖掘基础
        • Jupyter
          • show
            • mean
      • Hadoop
        • Hadoop权威指南:数据完整性
        • Hadoop权威指南: I/O操作序 - 列化
        • Hadoop权威指南-从Hadoop URL读取数据
        • Hadoop权威指南:FSDataInputStream对象
        • HDFS常用命令
        • Hadoop权威指南:HDFS-数据流
        • Hadoop权威指南:通过distcp并行复制
        • Hadoop权威指南:压缩
        • Hadoop权威指南:HDFS-Hadoop存档
        • 解决使用Idea/Eclipse编写Hadoop程序包依赖问题
        • HDFS
        • Hadoop-命令
        • 简单javaHadoop应用程序从打包到提交运行
        • Hadoop权威指南:HDFS-写入数据
        • Hadoop权威指南:HDFS-目录,查询文件系统,删除文件
        • HadoopInputFormat-OutputFormart
        • Hadoop-HDFS命令行接口
        • Hadoop权威指南-MapReduce应用开发
        • Linux下使用javac编译Hadoop程序
        • Hadoop权威指南:通过FileSystem API读取数据
        • Hadoop专有数据类型
      • Spark
        • Spark计算模型
        • Spark-入门二
        • 安装Hadoop及Spark(Ubuntu 16.04)
        • Spark:核心概念简介
        • Spark:控制日志输入
        • Spark - RDD编程
        • Spark工作机制
        • Spark-一个独立应用
        • Spark
        • Spark:使用Spark Shell的两个示例
    • Linux
      • Notes
        • BuildInCommand
          • ls
          • ip
          • ftp
          • 目录栈操作
          • scp
          • expect
            • expect示例
            • expect手册
            • expect笔记
          • ps
          • vsftpd
          • wget
          • 压缩程序
            • zip_unzip
            • tar
            • p7zip
          • 部署web服务
          • avidemux
          • cat
          • Awk
          • find
          • pssh使用
          • grep
          • sed
          • 路径
          • 通用命令
          • 安装JDK
          • 进程管理
          • network
          • rsync
          • cron
          • 示例
          • 用户管理
          • supervisor
        • Common
        • TestFileProcess
          • 替换文件内容
        • Commonds
        • Permissions
      • Ubuntu
        • Ubuntu 服务器配置部署
        • Ubuntu笔记
        • Ubuntu网络配置
        • Ubuntu 16.04 几个国内源
      • Script
        • ShellProgramming
        • ShellExamples
        • ShellCommands
      • CentOS
        • Centos笔记
        • 源
        • CentOS-Network-Config
        • CentOS-Security
      • Squid
        • BuildByDocker
        • Squid
      • Problem
        • 常见错误
      • Linux
        • Linux-c-cpp
        • Linux
        • Linux-NetworkProgramming
      • Codes
        • cron-test-01
      • Software
        • Shortcut key
        • Anaconda
      • Make
        • tricks
      • Deepin
        • 安装docker
      • SRE
        • CommonCommand
    • Cloud Computing
      • OpenStack
        • Fuel离线安装OpenStack
        • 验证网络
        • OpenStackNotes
    • Network
      • TCP/IP
      • 套接字
      • OSI模型
    • Data mining
      • StartUp
    • Machine Learning
      • Notes
        • 决策树学习-周志华
        • 神经网络-周志华
        • 概念学习和一般到特殊序
        • MachineLearningProblems
        • Math
          • 概率论与数理统计
          • 数学概念
          • KKT条件
          • 最优化问题
          • 优化算法
          • 最小二乘
        • 模型评估与选择
        • 引言
        • 过拟合处理
        • StatisticalLearningMethod
          • 统计学习方法概论
          • 感知机
        • 评估假设
        • Code
          • FeatureEngineering
            • Iris
        • 概念
        • SVM
        • FeatureEngineering
        • 神经网络
        • 决策树学习
        • MachineLearningKnowledge
        • 线性模型
        • 术语概念
        • 拉格朗日乘子法
      • route
      • Jupyter
        • JupyterUsage
      • Anaconda
        • AnacondaUsage
      • Coursera
        • Week01
      • ScikitLearn
        • FitTransform
        • Preprocessing
      • Octave
        • Octave
    • Search
      • Lucene
        • Api
        • Concepts
    • Virtualization Tech
      • Docker
        • dockerNetwork
        • Ubuntu
        • DockerUsage
        • Mac OS
    • Database
      • MySQL
        • Mysql Cluster
        • mysql-cluster
        • mysql
      • 部署phpmyadmin
      • SQL
      • SQL
        • SQLStatement
    • Concepts
      • Other
      • Mohout
      • LDA
    • Distributed System
      • Concepts
        • TODO
        • TODO
    • Recommend System
      • DataPipline
        • DataBus
        • 系统
    • OS
      • OS-Code
      • Notes
        • Introduce
        • ProcessManagement
        • Kernel
    • Deep Learning
      • Code
        • README
      • Notes
        • Conceptions
        • 神经网络
        • LeNet5
        • CNN
      • Tensorflow
        • Notes
          • Tensorflow
          • tensorflow开始
        • Anaconda
    • Media
      • FFmpeg
        • LiveStream
          • run
    • Spider
      • Selenium
        • Selenium
    • IoT
      • emq
        • Authentication
    • Big Data
      • Hadoop
        • MR 作业
  • Architecture
    • Storage
      • Mongodb
        • Mongodb
        • Failed to unlink socket file
      • Pegasus
        • Pegasus
        • ShellTools
      • Rocksdb
        • RocksJava
        • RocksDB
        • 本地缓存
      • Redis
        • Install
        • RedisUsage
      • 基本要素
      • HBase
        • HBase
    • MQ
      • Kafka
        • VersionCompare
        • Deploy
        • cppkafka
        • CommandLineTools
        • OffsetManage
        • Attentions
        • Notes
        • QA
    • Framework
      • Java
        • Dubbo
          • Annotation
          • 简介
        • Spring
          • SpringTest
          • 常见错误
          • TransactionRollback
          • FileUpload
          • SpringMVCNote
          • IoC
          • Start
          • Notes
            • Config
          • Spring
          • springmvc
          • Modules
        • Rose
          • Get request body
        • Netty
          • Netty
        • SpringBoot
          • SpringBoot
      • Esper
        • Documents
          • Keyed Segmented Context
          • 01 - Getting Started
          • 02 - Event Representations
          • 03 - Processing Modal
      • Swagger
        • Swagger
    • RPC
      • Thrift
        • Notes
          • Set fields
          • ThriftTyps
        • BuildFromSource
        • ThriftUsage
        • Install
      • ProtocolBuffer
        • 减少内存拷贝
        • UsageExample
        • Arena
        • ProtocolBuffer
    • Distribution
      • CAP
    • Streaming
      • Spark
        • Init
      • MapReduce
      • Spark
    • Nginx
      • Nginx knowledge
      • nginx-configurtion
      • 403
      • nginx解析php文件时502
    • Governance
      • Consul
      • Zookeeper
        • Zookeeper
      • MicroServiceArchitecture
      • 依赖
    • Conceptions
      • CloudNative
    • Kibana
      • Query
    • Performance Optimizaition
      • Notes
        • Conceptions
        • CPUAffinity
  • Math
    • Probability Theory
      • 一些概率分布
    • Statistics
      • 统计量与估计量
    • Other
      • 排列组合
  • Tools
    • Markdown
      • syntax
    • Jetbrains
      • Jetbrains
    • Zsh
      • Install
  • TODO
由 GitBook 提供支持
在本页
  • 简介
  • 概念学习
  • 概念学习任务
  • 术语定义
  • 归纳学习假设
  • 作为搜索的概念学习
  • 假设的一般到特殊序
  • FIND-S: 寻找极大特殊假设
  • 变型空间和候选消除算法
  • 表示
  • 列表后消除算法
  • 变型空间的更简洁表示
  • 候选消除学习算法
  • 关于变型空间和候选消除的说明
  • 下一步需要什么样的训练样例
  • 归纳偏置
  • 一个有偏的假设空间
  • 无偏的学习器
  • 无偏学习的无用性

这有帮助吗?

  1. Computer Science
  2. Machine Learning
  3. Notes

概念学习和一般到特殊序

从特殊的训练样例中归纳一般函数是机器学习的中心问题。

概念学习: 给定某一类别的若干正例和反例,从中获得该类别的一般定义。概念学习也可以看作是一个搜索问题的过程,它在预定义的假设空间中搜索假设,使其与训练样例有最佳的拟合度。

多数情形下,为了高效的搜索,可以利用假设空间中一种自然形成的结构 —— 一般到特殊偏序结构。

简介

许多机器学习问题涉及到从特殊训练样例中得到一般概念。每个概念可被看作一个对象或事件集合,它是从更大的集合中选取的子集,或者是在这个较大集合中定义的布尔函数。

接下来需要考虑的问题是,给定一样例集合以及每个样例是否属于某一个概念的标注,怎么自动推断出该概念的一般定义。这一问题被称为 概念学习,或称从样例中逼近布尔值函数。

概念学习

概念学习 是指从有关某个布尔函数的输入输出训练样例中推断出该布尔函数。

概念学习任务

一般来说,任何概念学习任务能被描述为:实例的集合、实例集合上的目标函数、候选假设的集合以及训练样例的集合。

术语定义

概念定义在一个实例(instance)集合之上,这个集合表示为 XXX 。

待学习的概念或函数称为目标概念(target concept),记作 ccc 。一般来说,ccc 可以是定义在实例集 XXX 上的任意布尔函数,即 c:X→0,1c: X \rightarrow {0, 1}c:X→0,1 。

学习目标概念时,必须提供一套训练样例(training examples),每个样例为 XXX 中的一个实例 xxx 以及它的目标概念 c(x)c(x)c(x) 。对于 c(x)=1c(x) = 1c(x)=1 的实例被称为正例(positive example),或称为目标概念的成员。对于 c(x)=0c(x)=0c(x)=0 的实例为反例(negative example),或称为非目标概念成员。经常可以用序偶 <x,c(x)><x, c(x)><x,c(x)> 来描述训练样例,表示其包含了实例 xxx 和目标概念 c(x)c(x)c(x) 。符号 DDD 用来表示训练样例的集合。

一旦给定目标概念 ccc 的训练样例集,学习器面临的问题就是假设和设计 ccc 。使用符号 HHH 来表示所有可能假设(all possible hypotheses)的集合,这个集合才是为确定目标概念所考虑的范围。通常 HHH 依设计者所选择的假设表示而定。 HHH 中每个的假设 hhh 表示 XXX 上定义的布尔函数,即 h:X→0,1h: X \rightarrow{0,1}h:X→0,1 。机器学习的目标就是寻找一个假设 hhh ,使对于 XXX 中的所有 xxx ,h(x)=c(x)h(x)=c(x)h(x)=c(x) 。

归纳学习假设

机器学习的任务是在整个实例集合 XXX 上确定与目标概念 ccc 相同的假设 hhh 。

归纳学习算法最多只能保证输出的假设能与训练样例相拟合。如果没有更多信息,我们只能假设,对于未见实例最好的假设就是与训练数据最佳拟合的假设。这是归纳学习的一个基本假设。

归纳学习机假设: 任一假设如果在足够大的训练样例集中很好地逼近目标函数,它也能在未见实例中很好地逼近目标函数。

作为搜索的概念学习

概念学习可以看作是一个搜索的过程,范围是假设的表示所隐含定义的整个空间。搜索的目标是为了寻找能最好地拟合训练样例的假设。

必须注意到,当假设的表示形式选定后,那么也就隐含地为学习算法确定了所有假设的空间。这些假设是学习程序所能表示的,也是能够学习的。

区分,实例空间和假设空间。假设集合中又区分语法不同的假设和语义不同的假设,参考书P17。

假设的一般到特殊序

许多概念学习算法中,搜索假设空间的方法依赖于一种针对任意概念学习都很有效的结构:假设的一般到特殊序关系。利用假设空间的这种自然结构,可以在无限的假设空间中进行彻底搜索,而不需要明确地列举所有的假设。

概念

更一般,P18。直观上的“比…更一般”的精确定义:首先,对 XXX 中的任意实例 xxx 和 HHH 中的任意假设 hhh ,我们说当且仅当 h(x)=1h(x) = 1h(x)=1 时 xxx 满足 hhh 。

令 hjh_jhj​ 和 hkh_khk​ 为在 XXX 上定义的布尔函数。称 hj more_general_than_or_equal_to hkh_j\ more\_general\_than\_or\_equal\_to\ h_khj​ more_general_than_or_equal_to hk​ 记作 hj≥ghkh_j\geq_gh_khj​≥g​hk​,当且仅当

(∀ x∈X)[(hk(x)=1)→(hj(x)=1)](\forall\ x\in X)[(h_k(x)=1)\rightarrow(h_j(x)=1)](∀ x∈X)[(hk​(x)=1)→(hj​(x)=1)]

考虑一假设严格地比另一假设更一般的情形,我们说 hjh_jhj​ 严格地 more_general_thanhkmore\_general\_than h_kmore_general_thanhk​ (写作 hj>ghkh_j >_gh_khj​>g​hk​),当且仅当(hj≥ghk)⋀(hk≱ghj)(h_j\geq_gh_k)\bigwedge(h_k\ngeq_gh_j)(hj​≥g​hk​)⋀(hk​≱g​hj​) 。还可以定义逆向的关系“比…更特殊”为 hj more_specific_than hkh_j\ more\_specific\_than\ h_khj​ more_specific_than hk​ 当hk more_general_than hjh_k\ more\_general\_than\ h_jhk​ more_general_than hj​。

需要注意得失, ≥g\geq_g≥g​ 和 >g>_g>g​ 关系的定义独立于目标概念。它们只依赖于满足这两个假设的实例,而与根据目标概念进行的实例分类无关。用形式化的语言来说,≥g\geq_g≥g​ 关系定义了假设空间 HHH 上的一个偏序(即这个关系是自反、反对称和传递的)。

≥g\geq_g≥g​ 关系很重要,因为它在假设空间 HHH 上对任意概念学习问题提供了一种有效的结构。概念学习算法将利用这一偏序结构有效地搜索假设空间。

FIND-S: 寻找极大特殊假设

如何使用 more_general_thanmore\_general\_thanmore_general_than 偏序来搜索与训练样例相一致的假设呢?一种办法是从 HHH 中最特殊假设开始,然后在该假设覆盖正例失败时将其一般化(当一假设能正确地划分一个正例时,称该假设覆盖该正例)。使用偏序实现的Find-S算法的精确描述如下:

  • 将 hhh 初始化为 HHH 中最特殊假设

  • 对每个正例 xxx

    • 对 hhh 的每个属性约束 aia_iai​

      • 如果 xxx 满足 aia_iai​ ,那么不做任何处理

      • 否则将 hhh 中 aia_iai​ 替换为 xxx 满足的下一个更一般约束

  • 输出假设 hhh

Find-S算法简单地忽略每一个反例。一般情况下,只要我们假定假设空间 HHH 确实包含真正的目标概念 ccc ,而且训练样例不包含错误,那么当前的假设 hhh 不需要因反例的出现而更改。原因在于当前假设 hhh 是 HHH 中与所观察到的正例相一致的最特殊的假设,由于假定目标概念 ccc 在 HHH 中,而且它一定是与所有正例一致的,那么 ccc 一定比 hhh 更一般,而且目标概念 ccc 不会覆盖一个反例,因此 hhh 也不会。因此,对反例,hhh 不需要作出任何更改。

Find-S 算法演示了一种利用 more_general_thanmore\_general\_thanmore_general_than 偏序来搜索假设空间的方法。这一搜索沿着偏序链,从较特殊的假设逐渐转移到较一般的假设。

在每一步,假设只在需要覆盖新的正例时被一般化。因此,每一步得到的假设都是在那一点上与训练样例一致的最特殊的假设。

Find-S算法的重要特点是:对以属性约束的合取式描述的假设空间,Find-S保证输出为 HHH 中与正例一致的最特殊的假设。只要正确的目标概念包含在 HHH 中,并且训练数据都是正确的,最终的假设也与所有反例一致。

变型空间和候选消除算法

概念学习的另一种途径即候选消除(CANDIDATE-ELIMINATION)算法。它们解决FIND-S中的若干不足之处。FIND-S输出的假设只是 HHH 中能够拟合训练样例的多个假设中的一个。而在候选消除算法中,输出的是与训练样例一致的所有假设的集合。令人惊讶的是,候选消除算法在描述这一集合时不需要明确列举其所有成员。这一归功于 moew_general_thanmoew\_general\_thanmoew_general_than 偏序结构。在这里需要维护一个一致假设集合的简洁表示,然后在遇到新的训练样例时逐步精化这一表示。

然而,候选消除算法和FIND-S算法的实际应用都受到限制,因为它们在训练数据含有噪声时性能较差。

表示

候选消除算法寻找与训练样例一致的所有假设。首先,当一个假设能正确分类一组样例时,我们称这个假设是与这些样例一致(consistent)的。

定义:一个假设 hhh 与训练样例集合 DDD 一致,当且仅当对 DDD 中每一个样例 <x,c(x)><x,c(x)><x,c(x)> 都有 h(x)=c(x)h(x)=c(x)h(x)=c(x) 。

Consistent(h,D)≡(∀<x,c(x)>∈D) h(x)=c(x)Consistent(h, D)\equiv(\forall<x,c(x)>\in D)\ h(x)=c(x)Consistent(h,D)≡(∀<x,c(x)>∈D) h(x)=c(x)

满足和一致:

  • 满足: 一个样例 xxx 在 h(x)=1h(x)=1h(x)=1 时称为满足假设 hhh,不论 xxx 是目标概念的正例还是反例

  • 一致: 一个样例是否与 hhh 一致则与目标概念有关,即是否 h(x)=c(x)h(x)=c(x)h(x)=c(x)

候选消除算法能够表示与训练样例一致的所有假设。在假设空间中的这一子集被称为关于假设空间 HHH 和训练样例 DDD 的变型空间,因为它包含了目标概念的所有合理的变型。

关于假设空间 HHH 和训练样例集 DDD 的变型空间,标记为 VSH,DVS_{H,D}VSH,D​ ,是 HHH 中与训练样例 DDD 一致的所有假设构成的子集。

VSH,D≡{h∈H∣Consistent(h,D)}VS_{H,D}\equiv \{h\in H|Consistent(h, D)\}VSH,D​≡{h∈H∣Consistent(h,D)}

列表后消除算法

表示变型空间的一种方法是列出其所有成员,这称为列表后消除(LIST-THEN-ELIMINATE)算法。

列表后消除算法

  • 变型空间 VersionSpace←VersionSpace \leftarrowVersionSpace← 包含 HHH 中所有假设的列表

  • 对每个训练样例 <x,c(x)><x, c(x)><x,c(x)>

    从变型空间中移除 h(x)≠c(x)h(x)\neq c(x)h(x)=c(x) 的假设 hhh

  • 输出 VersionSpaceVersionSpaceVersionSpace 中的假设列表

原则上,只要假设空间是有限的,就可使用列表后消除算法。

变型空间的更简洁表示

再次,变型空间被表示为它的极大一般的和极大特殊的成员。这些成员形成了一般和特殊边界的集合,这些边界在整个偏序结构中划分出变型空间。

候选消除算法通过使用极大一般成员 GGG 和极大特殊成员 SSS 来表示变型空间,通过使用特殊偏序结构来生成 SSS 和 GGG 集合之间的所有假设,列举出变型空间中所有成员。

关于假设空间 HHH 和训练数据 DDD 的一般边界(general boundary) GGG ,是在 HHH 中与 DDD 相一致的极大一般成员的集合。

G≡{g∈H∣Consistent(g,D)⋀(¬∃g′∈H)[(g′>gg)⋀Consistent(g′,D)]}G\equiv \{g\in H | Consistent(g, D) \bigwedge (\neg \exists g^{'} \in H)[(g^{'} >_g g) \bigwedge Consistent(g^{'}, D)] \}G≡{g∈H∣Consistent(g,D)⋀(¬∃g′∈H)[(g′>g​g)⋀Consistent(g′,D)]}

关于假设空间 HHH 和训练数据 DDD 的特殊边界 (specific boundary) SSS ,是在 HHH 中与 DDD 相一致的极大特殊(maximally specific) 成员的集合。

S≡{s∈H∣Consistent(s,D)⋀(¬∃s′∈H)[(s>gs′)⋀Consistent(s′,D)]}S\equiv \{ s\in H | Consistent(s, D) \bigwedge (\neg \exists s^{'} \in H)[(s >_g s^{'}) \bigwedge Consistent(s^{'}, D)] \}S≡{s∈H∣Consistent(s,D)⋀(¬∃s′∈H)[(s>g​s′)⋀Consistent(s′,D)]}

变型空间的确切组成:GGG 中包含的假设,SSS 中包含的假设以及 GGG 和 SSS 之间偏序结构所规定的假设。

定理:变型空间表示定理 令 XXX 为一任意的实例集合, HHH 为XXX 上定义的布尔假设的集合。令 c:X→{0,1}c: X\rightarrow \{ 0, 1 \}c:X→{0,1} 为XXX上定义的任一目标概念,并令DDD为任一训练样例的集合{<x,c(x)>}\{<x,c(x)>\}{<x,c(x)>}。对所有的 XXX,HHH,ccc,DDD 以及良好定义的SSS和GGG:

VSH,D={h∈H∣(∃s∈S)(∃g∈G)(g⩾gh⩾gs)}VS_{H,D} = \{h \in H | (\exists s \in S)(\exists g \in G) (g \geqslant_g h \geqslant_g s) \}VSH,D​={h∈H∣(∃s∈S)(∃g∈G)(g⩾g​h⩾g​s)}

候选消除学习算法

候选消除算法计算出的变型空间,包含HHH中与训练样例的观察序列一致的所有假设。开始,变型空间被初始化为HHH中所有假设的集合。即将G边界集合初始化为HHH中最一般的假设:

G0←{<?,?,?,?,?,?>}G_0 \leftarrow \{<?,?,?,?,?,?>\}G0​←{<?,?,?,?,?,?>}

并将 SSS 边界集合初始化为最特殊(最不一般的假设):

S0←{∅,∅,∅,∅,∅,∅}S_0 \leftarrow \{ \varnothing , \varnothing ,\varnothing ,\varnothing ,\varnothing ,\varnothing \}S0​←{∅,∅,∅,∅,∅,∅}

这两个边界包含了整个假设空间。因为 HHH 中所有假设都比 S0S_0S0​ 更一般,且比 G0G_0G0​ 更特殊。算法在处理每个训练样例时,SSS 和 GGG 边界集合分别被一般化和特殊化,从变型空间中逐步消去与样例不一致的假设。在所有训练样例处理完后,得到的变型空间就包含了所有与样例一致的假设,而且只包含这样的假设。算法描述如下:

将 GGG 集合初始化为 HHH 中极大一般假设

将 SSS 集合初始化为 HHH 中极大特殊假设

对每个训练样例 ddd ,进行一下操作:

  • 如果 ddd 是一正例

    • 从 GGG 中移去所有与 ddd 不一致的假设

    • 对 SSS 中每个与 ddd 不一致的假设 sss

      • 从 SSS 中移去 sss

      • 把 sss 的所有的极小一般化式 hhh 加入到 SSS 中,其中 hhh 满足

        • hhh 与 ddd 一致,而且 GGG 的某个成员比 hhh 更一般

      • 从 SSS 中移去所有这样的假设:它比 SSS 中另一假设更一般

  • 如果 ddd 是一个反例

    • 从 SSS 中移去所有与 ddd 不一致的假设

    • 对 GGG 中每个与 ddd 不一致的假设 ggg

      • 从 GGG 中移除 ggg

      • 把 ggg 的所有的极小特殊化式 hhh 加入到 GGG 中,其中 hhh 满足

        • hhh 与 ddd 一致,而且 SSS 的某个成员比 hhh 更特殊

      • 从 GGG 中移去所有这样的假设:它比 GGG 中另一假设更特殊

正例使得变型空间的 SSS 边界逐渐一般化,而反例扮演的角色恰好相反,使得 GGG 边界逐渐特殊化。

关于变型空间和候选消除的说明

由候选消除算法得到的变型空间能够收敛到描述目标概念的假设的条件是:

  • 在训练样例中没有错误

  • HHH 中确实包含描述目标概念的正确假设

如果训练数据中包含错误,那么算法肯定会从变型空间中删除正确的目标概念。空的变型空间表示 HHH 中没有假设能够与样例一直。即便训练样例正确,也可能出现这种情况,这时说明,目标概念不能由假设表示方式所描述。

下一步需要什么样的训练样例

概念学习的最优查询策略,是产生实例以满足当前变型空间中大约半数的假设。这样,变型空间的大小可以在遇到每个新样例时减半,正确的目标概念就可在只用 log2∣VSlog_2 | VSlog2​∣VS 次试验后得到。

归纳偏置

一个有偏的假设空间

之前的假设空间表示方式,过于一般化。我们使学习器偏向于只考虑合取的假设,这里需要表示能力更强的假设空间。

无偏的学习器

为了保证目标概念在假设空间中,需要提供一个假设空间,它能表达所有的可教授概念。换言之,它能够表达实例集 XXX 的所有可能子集。一般我们把集合 XXX 的所有子集的集合称为 XXX 的幂集。

无偏学习的无用性

归纳推理的一个基本属性:学习器如果不对目标概念的形式做预先的假定,它从根本上无法对未见实例进行分类。

候选消除算法能够从训练样例中泛华,其唯一的原因就是它是有偏的,它隐含假定了目标概念可以由属性值得合取来表示。

由于归纳学习需要某种形式的预先假定,或称为归纳偏执(inductive bias),我们可以用归纳偏执来描述不同学习方法的特征。

现在来精确定地定义归纳偏执。这里要获取的关键思想在于,学习器在从训练样例中泛化并推断新实例的分类过程中所采用的策略。考虑一般情况下任意的学习算法 LLL 以及为任意目标概念 ccc 提供的任意训练样例 Dc={<x,c(x)>}D_c = \{<x, c(x)>\}Dc​={<x,c(x)>} 。训练过程结束后,LLL 需要对新的实例 xix_ixi​ 进行分类。令 L(xi,Dc)L(x_i, D_c)L(xi​,Dc​) 表示在对训练数据DcD_cDc​ 学习后 LLL 赋予 xix_ixi​ 的分类(正例或反例),我们可以如下描述 LLL 所进行的这一归纳推理过程:

(Dc⋀xi)≻L(xi,Dc)(D_c \bigwedge x_i) \succ L(x_i, D_c)(Dc​⋀xi​)≻L(xi​,Dc​)

这里的记号 y≻zy \succ zy≻z 表示 zzz 从 yyy 归纳推理得到。

由于 LLL 是一归纳学习算法,则一般情况下 L(xi,Dc)L(x_i, D_c)L(xi​,Dc​) 这一推论出的结果正确性无法证明;也就是说,分类 L(xi,Dc)L(x_i, D_c)L(xi​,Dc​) 并非从训练数据集 DcD_cDc​ 和新实例 xix_ixi​ 中演绎派生。问题是,需要在 Dc⋀xiD_c \bigwedge x_iDc​⋀xi​ 上附加怎样的前提,以使 L(xi,Dc)L(x_i, D_c)L(xi​,Dc​) 能演绎派生。我们定义 LLL 的归纳偏置为这些附加前提的集合。更精确地说,我们定义 LLL 的归纳偏置为前提集合 BBB ,使所有的新实例 xix_ixi​ 满足:

(B⋀Dc⋀xi)⊢L(xi,Dc)(B \bigwedge D_c \bigwedge x_i) \vdash L(x_i, D_c)(B⋀Dc​⋀xi​)⊢L(xi​,Dc​)

这里的记号 y⊢zy \vdash zy⊢z 表示 zzz 从 yyy 演绎派生(follow deductively,或 zzz 可以由 yyy 证明得出)。这样,我们定义学习器的归纳偏置为附加的前提集合 BBB ,通过 BBB 使归纳推理充分地由演绎推理来论证。

定义:考虑对于实例集合 XXX 的概念学习算法 LLL 。令 ccc 为 XXX 上定义的任一概念,并令 Dc={<x,c(x)>}D_c=\{ <x,c(x)> \}Dc​={<x,c(x)>} 为 ccc 的任意训练样例集合。令 L(xi,Dc)L(x_i, D_c)L(xi​,Dc​) 表示经过数据 DcD_cDc​ 的训练后 LLL 赋予实例 xix_ixi​ 的分类。LLL 的归纳偏置是最小断言集合 BBB ,它使任意目标概念 ccc 和相应的训练样例 DcD_cDc​ 满足:

(∀xi∈X)[(B⋀Dc⋀xi)⊢L(xi,Dc)](\forall x_i \in X) [(B \bigwedge D_c \bigwedge x_i) \vdash L(x_i, D_c)](∀xi​∈X)[(B⋀Dc​⋀xi​)⊢L(xi​,Dc​)]

候选消除算法的归纳偏置:目标概念 ccc 包含在给定的假设空间 HHH 中。

一种算法如果有偏性越强,那它的归纳能力越强,可以分类更多的未见实例。

上一页神经网络-周志华下一页MachineLearningProblems

最后更新于4年前

这有帮助吗?