PRML笔记 第一章 Introduction

模式识别关注在数据中自动发现信息并采取行动,例如数据分类。

例子:手写识别。使用规则等方法将导致复杂的规则和例外情况。使用机器学习方法,利用训练集自动调整参数。目标模式是已知的数字0-9,成为目标向量t。模式识别的推广能力是一个中心目标!

预处理:又称为特征提取。输入数据大多数需要预处理,是模式识别更加容易!同时,预处理可以提高效率,但应该注意信息丢失,准确度下降。

分类:

  有目标向量:监督学习(离散与连续:分类与回归)。

  无目标向量:无监督学习:聚类,密度估计,数据可视化等

  reinfocement learning:强化学习:找到合适的行为,并给出评价。信用分配问题:每个行为对最终结果(评价)的影响

             细节本书不讨论。

1.1 例子:多项式曲线拟合

sin函数加上高斯分布噪声生成训练数据,在不知道模型的情况下预测新的输入的输出值。

有限训练集加上噪声使得问题本质上困难。概率模型提供了噪声不确定性的量化,决策论利用概率量化和决策规则做出预测。

多项式模型虽然是输入x的非线性函数,但是是参数w的线性函数,称为线性模型。将在第3,4章讨论。

调整w,使误差函数最小化,得到拟合函数结果。

误差函数是衡量模型输出与实际输出的偏差,常使用误差平方和。误差函数的选择有概率意义。

误差函数相对于w是二次函数,所以导数是一次的,最优化问题有唯一解(另导数=0,等价于解一个线性方程组)

选择最高项次数M称为模型选择问题,M可以代表模型复杂度,不合适的M会导致欠拟合和过拟合。

sin的展开式是无穷次的,但是M太大,test error反而激增。观察w发现高次项w非常大,原因是参数越来越向着随机噪声调和(数据集太小)!

有些启发式的方法提出数据量应该为参数量的几倍,但第三章说明参数量不是模型复杂度衡量的必要因素。

贝叶斯方法可以自动调整有效的参数个数。

使用正规化技术可以解决过拟合问题。对过大的参数进行惩罚!二次正规化项又成为“岭回归”,在神经网络的上下文又称为“权值衰减”。

正规化参数的选择也可以通过实验的方式衡量训练误差和验证误差来选择。

时间: 2024-11-08 18:31:39

PRML笔记 第一章 Introduction的相关文章

《Hadoop权威指南》笔记 第一章&第二章

? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用MapReduce ? ? ? ? ? ? ? ? import java.io.IOException; // 是hadoop针对流处理优化的类型 import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; // 会继承这个基类 import org.apache

iOS 读书笔记 第一章

1.确定某个实例或类方法是否可用. 1)使用NSObject的类方法instancesRespondToSelector:来确定是否在该类的一个实例中存在一个特定的选择器. NSArray *array = @[@"1",@"2"]; if ([NSArray instancesRespondToSelector:@selector(sortUsingComparator:)]) { //do something use sortUsingComparator: }

编程之美笔记--第一章游戏之乐--1.2中国象棋将帅问题

后来一版作者又将最后一句改为:”要求在代码中只能使用一个字节存储变量“. 我的解法: package android.zlb.java; /** * * @author zhanglibin * */ public class TestXiangqi { public static void main(String[] args) { for(int i = 11; i < 100; i++) { if(i / 10 % 3 == 1 && (i % 10 == 1 || i % 1

深入理解 C 指针阅读笔记 -- 第一章

上周末,我在图书馆看到了这本很薄的书 -- <深入理解 C 指针>       这本书中写的内容,个人感觉适合一个初学者,内容不是很难.我也读了下,对每一章都做了笔记,笔记都是用代码的形式贴出来. Chapter1.h #ifndef __CHAPTER_1_ #define __CHAPTER_1_ /*<深入理解C指针>学习笔记 -- 第一章*/ /*一个数如果是无符号的,那么尽量去选用 size_t 类型*/ /*使用 size_t 类型的时候一定要用对了输出格式*/ voi

《Hadoop权威指南》笔记 第一章&第二章 MapReduce初探

? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用MapReduce ? ? ? ? ? ? ? ? import java.io.IOException; // 是hadoop针对流处理优化的类型 import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; // 会继承这个基类 import org.apache

《Linux Shell脚本攻略》 笔记 第一章:Shell起步基础

<Linux Shell脚本攻略> 笔记 第一章:Shell起步基础 1.变量:在bash中,每一个变量的值都是字符串.无论你给变量赋值时,有没有使用引号,值都会以字符串的形式存储. 2.var=value; //赋值操作 var = value: //相等操作 3.获取字符串的长度 [[email protected] ~]$ var=yang [[email protected] ~]$ length=${#var} [[email protected] ~]$ echo $length

Camel In Action 阅读笔记 第一章 认识Camel 1.1 Camel 介绍

1.1 Camel 介绍 Camel 是一个为了您的项目集成变得高效有趣的集成框架,Camel 项目在2007年初开始的,相对来说它还比较年轻,但它已然是一个非常成熟的开源项目,它所使用的是Apache 2开源License, 其背后的社区非常强大. Camel主要目的就是简化集成,当您用心读完本书以后,您会很感谢Camel并把它做为您的一个必需技能. Apache Camel这个项目之所以命名为Camel的主要原因是因为简单好记,有一个小道说法是项目创建者之一在吸了一个叫"骆驼"牌的

《Java并发变成实践》读书笔记---第一章 简介

<Java并发编程实战>深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册.书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险.构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁.原子变量.非阻塞算法以及

《深入理解Java虚拟机》读书笔记---第一章 走进Java

一.为什么要读此书 <深入理解Java虚拟机>这本书读了很多次,每次读都会有不一样的感受.首先说一下为什么要读这本书,如果把Java比喻成乾坤大挪移,那了解虚拟机的工作原理就是练习九阳神功,java语言是招式,对虚拟机的认识是内功心法,只有内功心法强大,所使的招式才强大,这就是为什么阳顶天只能把乾坤大挪移练到第四层,而张无忌能练到第七层.由于java虚拟机的强大,把很多功能都隐藏了,例如内容管理,垃圾回收机制等,使得很多java程序猿对这一块的知识所有缺失,编码的时候也是似懂非懂的,以至于遇到