一起啃PRML - 1 Introduction 绪论
一起啃PRML - 1 Introduction
@copyright 转载请注明出处 http://www.cnblogs.com/chxer/

这一部分主要是介绍一下Pattern Recognition 和 Machine Learning。
上来就是 Recognising handwritten digits, MNIST。。。在一本书的Introduction里看见MNIST真是伤心的一件事。
每一个图片28*28 pixel,按照老方法放到vector里,784.
那么 Pattern Recognition 要你做的就是给这样一个 vector 然后输出 one-hot vector 或者直接是数字。

机器学习的过程就可以理解为f(x) , @para x is a new digit image input @return a vector represent the answer, 作者也提到 the answer vector encoded in the same way as the target vector.
@define Generalisation(好吧我比较习惯用s)
“The ability to categorize correctly new examples that differ from those used for training is known as generalization ”
PS.training phase has the same meaning to learning phase.
The precise form of the function f(x) is defined during the training phase.
然后我们的 data 分为 training data & test data. 不过呢最后应用应该还是用三段式,就是 training data & testing data & validation data to improve the period of training.
当然这里应该说set比较好,代表的是训练集,验证集,测试集。
@define
Training Set: this data set is used to adjust the weights on the neural network.
Validation Set: this data set is used to minimise overfitting. You're not adjusting the weights of the network with this data set, you're just verifying that any increase in accuracy over the training data set actually yields an increase in accuracy over a data set that has not been shown to the network before, or at least the network hasn't trained on it (i.e. validation data set). If the accuracy over the training data set increases, but the accuracy over then validation data set stays the same or decreases, then you're overfitting your neural network and you should stop training.
Testing Set: this data set is used only for testing the final solution in order to confirm the actual predictive power of the network.
至于比例大概似乎是随性的吧。不过网上也有人说是 70% should be train cases, 10% will be test cases and the rest 20% should be validation cases. 挺好的。
For most practical applications, the original input variables are typically pre-processed to transform them into some new space of variables where. 就是我们说的 scaled. 这样可以方便我们以后的pattern recognition 去 distinguish them.
@define feature extraction <=> pre-processing stage.
无论是 training set or other set. 预处理(信息提取)的step一定要一致。
作者举了一个例子,比如在real-time face recognition 上,可能如果resolution 比较高,就会导致处理起来超级慢(就像视频渲染似的),所以一个非常好的feature extraction (pre-processing stage)是非常非常necessary的。。。让我们可以 fast compute.
然后作者还提到 the average value of the image intensity over a rectangular subregion can be evaluated extremely efficiently .说这么多废话都还是在强调 feature extraction (pre-processing stage)的重要性,你看我都打了这么多遍的这个专有名词了可见还是很重要的。这种矩形分区的方法在后面还会提到。@author Viola and Jones, 2004
那么矩形分区 rectangular subregion 的好处也就是 control the dimensionality. 不过,在我们pre-processing 的时候要特别小心不要discard 那些有用的information. 否则我们整个模型的accuracy就会非常非常的suffer.
然后下面是一些pattern recognition 问题的分类
@define supervised learning problem : the training data comprises examples of the input vectors along with their corresponding target vectors .这就是监督学习任务,给了问题和答案。与之相对的还有非监督式学习任务。
@define classification : the digit recognition example, in which the aim is to assign each input vector to one of a finite number of discrete categories. 分类问题,把输入的vector 分到有限数量的离散类里面去的问题。
@define regression : the desired output consists of one or more continuous variables. 回归问题,通常是在多个变量干扰的情况下找到合理确定的解。比如给定一个学生的贪玩程度,寒假剩余天数,作业剩余量来推算这个学生的寒假作业有没有写完这样的问题。
@define unsupervised learning problem : the training data consists of a set of input vectors x without any corresponding target value, and you should discover groups of similar examples within the data, where it is called clustering, or to determine the distribution of data within the input space, known as density estimation, or to project the data from a high-dimensional space down to two or three dimensions for the purpose of visualisation.
与监督式学习问题相对应的非监督式学习问题的定义真是又臭又长跟这个长句子一样也真是有一拼。还有几个概念需要明确的:
@define cluster : 扎堆呗,说的高雅一点就是“簇”一下
@define density estimation : 我们姑且叫它密度估计吧。这个density estimation 很有意思的,具体的meaning 还请Wikipedia : https://en.wikipedia.org/wiki/Density_estimation
懒癌看这里:density estimation is the construction of an estimate, based on observed data, of an unobservable underlying probability density function. The unobservable density function is thought of as the density according to which a large population is distributed; the data are usually thought of as a random sample from that population.

这个图是血浆葡萄糖浓度和糖尿病的density estimation,更好的解释概率问题。可以visualisation.
那么话说回来,非监督式学习问题 unsupervised learning problem 说白了就是在不知道明确的分类下给定数据,实现对数据的分类以及统计整理的任务。(怎么越说越像数据挖掘了)
那么现在我们有了这么多问题,用什么手段来解决呢?
千呼万唤始出来,1998年Sutton 和 Barto 的reinforcement learning 出炉了。
@define reinforcement learning : finding suitable actions to take in a given situation in order to maximise a reward. 就是“强化学习”。
如果对这个词没什么感觉的话,强化学习大概是这样的:DeepMind的学习打简单游戏的AI就是最基本的强化学习。我们看到那个类似于弹球似的游戏就是一个例子。。。AI一开始什么都don’t know,只能通过简单的按键然后去试着理解这个游戏。慢慢的,当板子第一次接到球的时候,分数获得了提高,这时候我们的NN(Neural Networks)就获得了奖励,“哎呀!我这么这么这么按键,竟然就有分了!”于是它开始激励自己的NN参数,当然,如果分数降低了,它也会惩罚自己,修改NN参数。这样,在长时间的游戏中,AI慢慢就知道要接球,慢慢就知道了反射,慢慢就知道了怎么拿高分,然后它就是一个超级厉害的player了。。。


然而,强化学习对PacMan似乎就并没有很好的效果了,因为这种迷宫似的东西几乎怎么都能加分,但是AI唯一能意识到的就是遇到怪物就跑,然后无脑乱转。。。
欢迎去访问Google DeepMind! 超棒的科技公司!http://deepmind.com/
期待他们的AlphaGo早日打败人类。。。
关于reinforcement 要注意的:
A general feature of reinforcement learning is the trade-off between exploration, in which the system tries out new kinds of actions to see how effective they are, and exploitation, in which the system makes use of actions that are known to yield a high reward. Too strong a focus on either exploration or exploitation will yield poor results.跟很多的智能算法都很像(比如爬山算法?模拟退火?遗传算法?)就是一个度的掌握以及你往前step的方式。
另外一个reinforcement的好例子就是模拟 图像了,比如我们给定一个正弦函数,让AI去预测它的轨迹(without任何的提示,AI可能永远都不会知道正弦函数的周期性)。

对上图的explanation : Plot of a training data set of N = 10 points, shown as blue circles, each comprising an observation of the input variable x along with the corresponding target variable t. The green curve shows the function sin(2πx) used to gener- ate the data. Our goal is to pre- dict the value of t for some new value of x, without knowledge of the green curve.
当然了,这些看似无关的问题可能确实使用不同的方法,但是实际上这些方法彼此相通。This chapter also provides a self-contained introduction to three important tools that will be used throughout the book, namely probability theory, decision theory, and information theory. Although these might sound like daunting topics, they are in fact straightforward, and a clear understanding of them is essential if machine learning techniques are to be used to best effect in practical applications. 用于实际应用的机器学习才是最好的。
一起啃PRML - 1 Introduction 绪论的更多相关文章
- 一起啃PRML - 1.2.4 The Gaussian distribution 高斯分布 正态分布
一起啃PRML - 1.2.4 The Gaussian distribution 高斯分布 正态分布 @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ ...
- 一起啃PRML - 1.2.3 Bayesian probabilities 贝叶斯概率
一起啃PRML - 1.2.3 Bayesian probabilities 贝叶斯概率 @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 这一节简单讲 ...
- 一起啃PRML - 1.2.2 Expectations and covariances 期望和协方差
一起啃PRML - 1.2.2 Expectations and covariances 期望和协方差 @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ ...
- 一起啃PRML - 1.2.1 Probability densities 概率密度
一起啃PRML - 1.2.1 Probability densities @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 我们之前一直在讨论“谁取到 ...
- 一起啃PRML - 1.2 Probability Theory 概率论
一起啃PRML - 1.2 Probability Theory @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ A key concept in t ...
- 一起啃PRML - 1.1 Example: Polynomial Curve Fitting 多项式曲线拟合
一起啃PRML - 1.1 Example: Polynomial Curve Fitting @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 前言: ...
- 一起啃PRML - Preface 前言
一起啃PRML - 前言 Preface @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ PRML,Pattern Recognition and M ...
- R语言 一套内容 从入门 到放弃
[怪毛匠子整理] 1.下载 wget http://mirror.bjtu.edu.cn/cran/src/base/R-3/R-3.0.1.tar.gz 2.解压: tar -zxvf R-3.0. ...
- PRML Chapter 1. Introduction
PRML Chapter 1. Introduction 为了防止忘记,要把每章的重要内容都记下来,从第一章开始 2012@3@28 今天又回去稍微翻了一下第一章内容,发现第一次看的时候没有看透,每次 ...
随机推荐
- sqlmap
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sqlmap这么一个url的时候,它会: 1.判断可注入的参数 2.判断可以用那种SQL注 ...
- (转)Apache2 httpd.conf 配置详解 (二)
转之--http://jafy00.blog.51cto.com/2594646/508205 DocumentRoot "/usr/local/apache-2.2.6/htdocs&qu ...
- [Excel] CsvHelper---C#关于CSV文件的导入和导出以及转化 (转载)
点击下载 CsvHelper.rar 这个类是关于Csv文件的一些高级操作1.DataTable导出到CSV2.将Csv读入DataTable看下面代码吧 /// <summary> // ...
- C# 基础 知识点
类型 1.decimal为高精度浮点数,常用于货币计算,然后它不是基本类型,所以性能相对float和double要差. 2.@用于字符串前使转义字符 \ 无效,甚至能将回车当作换行符直接赋值给字符串 ...
- PHP过滤常用标签的正则表达式
$str=preg_replace("/\s+/", " ", $str); //过滤多余回车 $str=preg_replace("/<[ ] ...
- c、c++混编实现查询本地IP地址
一.思路 1.要想得到本地IP地址,可以通过本机名来查询,所以首先得得到本机名. 2.牵涉到IP地址,首先想到牵涉到网络协议,因此得加载套接字协议,所以先使用WSAStartup函数完成对Winsoc ...
- Photon开发实战(2)——开发框架、第一个Photon程序
Photon基础开发框架 Photon (v4)的基本框架.开发框架主要Photon和游戏逻辑(C#)两个部分,如下图最新的Photon v4支持的4种底层协议,游戏开发逻辑Photon目前主要划分为 ...
- PowerDesigner 的几个使用技巧
1. 生成sql脚本 Database→Generate Database 选择要输出的文件路径,即文件存储路径,并根据需要修改文件名,单击确定后便会生成sql脚本. 在Options选项卡里, ...
- 浏览器阻止window.open的解决方案
先分析一下浏览器为什么会阻止window.open吧:用户主动去触发事件的浏览器不会阻止,什么是用户主动触发的呢?就是当用户去点击的一瞬间就弹出这种浏览器是不会阻止的,如果是通过setTimeout定 ...
- phpexcel导入数据库 基于thinkphp3.2
public function studentImportExcel(){ if (!empty ( $_FILES)){ $upload = new \Think\Upload(); ...