🦖
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 提供支持
在本页
  • 统计学习
  • 监督学习
  • 基本概念
  • 问题的形式化
  • 统计学习三要素
  • 模型
  • 策略
  • 算法
  • 模型评估与模型选择
  • 正则化与交叉验证
  • 正则化
  • 交叉验证
  • 泛化能力
  • 生成模型与判别模型
  • 生成模型
  • 判别模型
  • 对比
  • 监督学习几类问题
  • 分类问题
  • 标注问题
  • 回归问题

这有帮助吗?

  1. Computer Science
  2. Machine Learning
  3. Notes
  4. StatisticalLearningMethod

统计学习方法概论

统计学习

如果一个系统能够通过执行某个过程改进它的性能,这就是学习。

统计学习的对象

  • 统计学习的对象是数据。

  • 它从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到对数据的分析和预测中去。

  • 统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习的前提。

  • 可以用随机变量描述数据中的特征,用概率分布描述数据的统计规律。

统计学习的目的

  • 统计学习的总目标是考虑学习什么样的模型和如何学习模型,以使模型能对数据进行准确的预测与分析。

  • 对数据的预测与分析是通过构建概率统计模型实现的。

统计学习的方法

  • 统计学习的方法是基于数据构建统计模型,从而对数据进行预测与分析。

  • 统计学习包括

    • 监督学习

    • 非监督学习

    • 半监督学习

    • 强化学习

  • 统计学习方法的步骤

    • 得到一个有限的训练数据集合(假设数据是独立同分布产生的)

    • 确定包含所有可能的模型的假设空间,即学习模型的集合

    • 确定模型选择的准则,即学习的策略

    • 实现求解最优模型的算法,即学习的算法

    • 通过学习方法选择最优模型

    • 利用学习的最优模型对新数据进行预测或分析

监督学习

  • 监督学习(supervised learning)的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。

基本概念

输入空间

所有输入可能的集合。

输出空间

所有输出可能的集合。

特征空间

每个具体的输入是一个实例(instance),通常由特征向量(feature vector)表示。这时,所有特征向量存在的空间称为特征空间(feature space)。

特征空间的每一维对应一个特征。

联合概率分布

  • 监督学习假设输入与输出的随机变量 $X$ 和 $Y$ 遵循联合概率分布 $P(X,Y)$。

  • $P(X,Y)$ 表示分布函数,或分布密度函数。

  • 训练数据与测试数据被看作是依联合概率分布 $P(X,Y)$ 独立同分布产生的。

假设空间

  • 监督学习的目的在于学习一个由输入到输出的映射。

  • 模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间(hypothesis space)。

  • 假设空间的确定意味着学习范围的确定。

  • 监督学习的模型可以是

    • 条件概率分布 $P(Y|X)$

    • 决策函数 $y = f(x)$

  • 对具体的输入进行相应的输出预测时,写作 $P(y|x) 或 y = f(x)$。

问题的形式化

监督学习利用训练数据集学习一个模型,再用模型对测试样本集进行预测(prediction)。

监督学习分为学习和预测两个过程,分别由学习系统和预测系统完成。

学习系统

  • 利用给定的训练数据集

  • 通过学习(或训练)得到一个模型

  • 该模型表示为条件概率分布 $\hat{P}(Y|X)$ 或决策函数 $Y = \hat{f}(X)$,描述的是输入和输出随机变量之间的映射关系

预测系统

  • 对于测试样本集中的输入 $x{N+1}$,由模型 $y{N+1} = \operatorname*{arg max}\limits{y{N+1}} \hat{P}(y{N+1}|x{N+1}) \hspace{1em}或\hspace{1em} y{N+1} = \hat{f}(x{N+1}) $

统计学习三要素

统计学习方法由模型、策略、算法构成。

模型

统计学习首要考虑的问题是学习什么样的模型

假设空间

  • 假设空间 $\mathcal{F}$ 可以定义为决策函数或条件概率分布的集合

  • F={f∣Y=f(X)}决策函数或F={P∣P(Y∣X)}条件概率分布\mathcal{F} = \{f|Y=f(X)\} \hspace{2em} 决策函数 \\ 或 \\ \mathcal{F} = \{P|P(Y|X)\} \hspace{2em} 条件概率分布F={f∣Y=f(X)}决策函数或F={P∣P(Y∣X)}条件概率分布
    • 其中,$X、Y$ 是定义在输入空间 $\mathcal{X}$ 和输出空间 $\mathcal{Y}$ 上的变量,这是 $\mathcal{F}$ 通常是由一个参数向量决定的函数族

    F={f∣Y=fθ(X),θ∈Rn}或F={P∣Pθ(Y∣X),θ∈Rn}\mathcal{F} = \{ f|Y = f_\theta (X), \theta \in \R^{n} \} \hspace{2em} \\ 或 \\ \mathcal{F} = \{ P|P_\theta (Y|X), \theta \in \R^n \}F={f∣Y=fθ​(X),θ∈Rn}或F={P∣Pθ​(Y∣X),θ∈Rn}
    • 参数向量 $\theta$ 取值于 $n$ 维欧氏空间 $\R^n$,称为参数空间 (parameter space)

策略

有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优的模型。统计学习的目标在于从假设空间中选取最优模型。

  • 首先引入损失函数与风险函数的概念。

    • 损失函数度量模型的一次预测的好坏

    • 风险函数度量平均意义下模型预测的好坏

  • 损失函数

    • 常用损失函数

      • 0-1损失函数

      L(Y,f(X))={1,Y≠f(X)0,Y=f(X)L(Y,f(X)) = \begin{equation} \left\{ \begin{aligned} 1,\hspace{1em} Y \neq f(X) \\ 0, \hspace{1em} Y = f(X)\\ \end{aligned} \right. \end{equation}L(Y,f(X))={1,Y=f(X)0,Y=f(X)​​​
      • 平方损失函数

    • L(Y,f(X))=(Y−f(X))2L(Y,f(X)) = (Y - f(X))^2L(Y,f(X))=(Y−f(X))2
      • 绝对损失函数

    • L(Y,f(X))=∣Y−f(X)∣L(Y,f(X)) = |Y - f(X)|L(Y,f(X))=∣Y−f(X)∣
      • 对数损失函数或对数似然损失函数

      L(Y,P(Y∣X))=−log⁡P(Y∣X)L(Y,P(Y|X)) = - \log P(Y|X)L(Y,P(Y∣X))=−logP(Y∣X)
  • 期望损失或风险函数

Rexp⁡(f)=Ep[L(Y,f(X)]=∫X×YL(y,f(x))P(x,y)dxdyR_{\exp}(f) = E_p[L(Y,f(X)] = \int_{\mathcal{X}\times\mathcal{Y}} L(y,f(x))P(x,y) \mathrm{d}x\mathrm{d}yRexp​(f)=Ep​[L(Y,f(X)]=∫X×Y​L(y,f(x))P(x,y)dxdy
  • 经验损失或经验风险

Remq⁡(f)=1N∑i=1NL(yi,f(xi))R_{\operatorname*{emq}}(f) = \frac{1}{N} \sum\limits_{i=1}^{N} L(y_i,f(x_i))Remq​(f)=N1​i=1∑N​L(yi​,f(xi​))
  • 期望风险是模型关于联合分布的期望损失,经验风险是模型关于训练样本集的平均损失。期望风险不能直接计算,常用经验风险估计期望风险。

  • 经验风险最小化

    • 经验风险最小化策略认为,经验风险最小的模型是最优的模型

      min⁡f∈F1N∑i=1NL(yi,f(xi))\min\limits_{f\in\mathcal{F}} \frac{1}{N} \sum\limits_{i=1}^{N} L(y_i,f(x_i))f∈Fmin​N1​i=1∑N​L(yi​,f(xi​))
    • 当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计

    • 当样本容量很小时,经验风险最小化学习的效果未必很好,会产生 过拟合 现象

  • 结构风险最小化

    • 结构风险最小化是为了防止过拟合提出的策略

    • 结构风险最小化等价于正则化

    • 结构风险在经验风险上加上表示模型复杂度的正则化项或惩罚项

      Rsrm⁡(f)=1N∑i=1NL(yi,f(xi))+λJ(f)R_{\operatorname*{srm}}(f) = \frac{1}{N} \sum\limits_{i=1}^{N} L(y_i, f(x_i)) + \lambda J(f)Rsrm​(f)=N1​i=1∑N​L(yi​,f(xi​))+λJ(f)
    • 结构风险最小化策略认为,结构风险最小的模型是最优的模型

  • 结合经验风险最小化和结构风险最小化,监督学习就变成了经验风险或结构风险函数的最优化问题

    min⁡f∈F1N∑i=1NL(yi,f(xi))+λJ(f)\min\limits_{f\in\mathcal{F}} \frac{1}{N}\sum\limits_{i=1}^{N} L(y_i, f(x_i)) + \lambda J(f)f∈Fmin​N1​i=1∑N​L(yi​,f(xi​))+λJ(f)

算法

  • 最后需要考虑的是用什么样的计算方法求解最优模型。这时,统计学习问题归结为最优化问题。

  • 最优化问题有显式的解析解时,相对简单。但通常解析解不存在,就需要用数值计算的方法求解。

  • 如何找到全局最优解,并使求解过程非常高效,就成了一个重要问题。

模型评估与模型选择

  • 训练误差和测试误差是学习方法评估的标准

  • 测试误差反映了学习方法对未知的测试数据集的预测能力

  • 通常将学习方法对未知数据的预测能力称为泛化能力

正则化与交叉验证

  • 正则化和交叉验证是两种常用的模型选择方法

正则化

  • 正则化一般具有如下形式

    min⁡f∈F1N∑i=1NL(yi,f(xi))+λJ(f)\min\limits_{f\in\mathcal{F}} \frac{1}{N}\sum\limits_{i=1}^{N} L(y_i, f(x_i)) + \lambda J(f)f∈Fmin​N1​i=1∑N​L(yi​,f(xi​))+λJ(f)
  • 正则化的作用是选择经验风险与模型复杂度同时较小的模型

  • 正则化符合 奥卡姆剃刀 原理

  • 从贝叶斯估计的角度看,正则化项对应于模型的先验概率,可以假设

    • 复杂度模型有较小的先验概率

    • 简单的模型具有较大的先验概率

交叉验证

  • 交叉验证的基本思想是 重复地使用数据

  • 常用交叉验证方法

    • 简单交叉验证

    • S折交叉验证

    • 留一交叉验证

泛化能力

学习方法的泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。

  • 通常通过测试误差来评价学习方法的泛化能力。

  • 如果学到的模型 $\hat{f}$,那么用这个模型对未知数据预测的误差即为泛化误差(generalization error)。

    • 泛化误差反映了学习方法的泛化能力。

    • 事实上,泛化误差就是所学习到的模型的期望风险

生成模型与判别模型

监督学习的任务是学习一个模型,这个模型的一般形式为决策函数 $Y=f(X)$ 或条件概率分布 $P(Y|X)$。

监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach)。所学到的模型分别称为生成模型(generative model)和判别模型(discriminative model)。

生成模型

生成方法由数据学习的联合概率分布 $P(X|Y)​$ ,然后求出条件概率分布 $P(Y|X)​$ 作为预测的模型,即生成模型:

P(Y∣X)=P(X,Y)P(X)P(Y|X) = \frac{P(X,Y)}{P(X)}P(Y∣X)=P(X)P(X,Y)​

这样的方法之所以称为生成方法,是因为模型表示了给定输入 $X$ 产生输出 $Y$ 的生成关系。典型的生成模型有:

  • 朴素贝叶斯法

  • 隐马尔可夫模型

判别模型

判别方法由数据直接学习决策函数 $f(X)$ 或者条件概率分布 $P(Y|X)$ 作为预测的模型,即判别模型。

判别方法关心的是对给定的输入 $X$,应该预测什么样的输出 $Y$。典型的判别模型包括:

  • $k$ 近邻法

  • 感知机

  • 决策树

  • 逻辑斯蒂回归模型

  • 最大熵模型

  • 支持向量机

  • 提升方法

  • 条件随机场

对比

生成方法和判别方法各有优缺点,适合于不同条件下的学习问题。

生成方法的特点

  • 生成方法可以还原出联合概率分布 $P(X,Y)$,而判别方法则不能

  • 生成方法的学习收敛速度更快,即当样本容量增加的时候,学习的模型可以更快地收敛于真实模型

  • 当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用

判别方法的特点

  • 判别方法直接学习的是条件概率 $P(Y|X)$ 或决策函数 $f(X)$ ,直接面对预测,往往学习的准确率更高

  • 由于直接学习 $P(Y|X)$ 或 $f(X)$ ,可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题

监督学习几类问题

分类问题

  • 当输出变量 $Y$ 取有限个离散值时,预测问题便成为分类问题

  • 监督学习从数据中学习一个分类模型或分类决策函数,称为分类器(classifier),分类器对新的输入进行输出的预测(prediction),这个过程称为分类(classification)

  • 可能的输出称为类(class)

  • 评价分类器性能的指标一般是分类准确率(accuracy),其定义是:对于给定的数据集,分类器正确分类的样本数与样本数之比。也就是损失函数是 0-1 损失时测试数据集上的准确率

  • 对于二分类问题,常用的评价指标是精确率(precision)与召回率(recall)

  • 许多统计学习方法可以用于分类,包括

    • $k$ 近邻法

    • 感知机

    • 朴素贝叶斯法

    • 决策树

    • 决策列表

    • 逻辑斯蒂回归模型

    • 支持向量机

    • 提升方法

    • 贝叶斯网络

    • 神经网络

    • Winnow

标注问题

  • 可以认为标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测问题的简单形式

  • 标注问题的输入是一个观测序列,输出是一个标记序列或状态序列

  • 标注问题的目标是学习一个模型,使它能够对观测序列给出标记序列作为预测

  • 评价标注模型的指标与评价分类模型的指标一样,常用的有标注准确率、精确率和召回率

  • 标记常用的统计方法有

    • 隐马尔可夫模型

    • 条件随机场

  • 标注问题在信息提取、自然语言处理等领域被广泛应用

回归问题

  • 回归用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化

  • 回归模型正是表示从输入变量到输出变量之间的映射函数

  • 回归问题等价于函数拟合:选择一条函数曲线使其很好地拟合已知数据,且很好地预测未知数据

  • 回归问题按照输入变量的个数,分为一元回归和多元回归

  • 按照输入变量和输出变量之间的关系,分为线性回归和非线性回归

  • 回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法求解

上一页StatisticalLearningMethod下一页感知机

最后更新于4年前

这有帮助吗?