机器学习之概率论与数理统计基础知识:随机变量和数字特征
机器学习之概率论与数理统计基础知识:随机变量和数字特征
本文是机器学习基础知识系列文章的第二篇,主要介绍概率论与数理统计中的核心概念,包括统计学、概率论、函数、随机变量、总和、连乘积和乘积等。这些概念是理解机器学习算法的基础,对于从事数据科学和人工智能领域的读者具有重要参考价值。
统计学(Statistic)
统计学是通过搜索、整理、分析数据等手段,以达到推断所测对象的本质,甚至预测对象未来的一门综合性科学。其中用到了大量的数学及其它学科的专业知识,它的使用范围几乎覆盖了社会科学和自然科学的各个领域。
概率论(Probability Theory)
概率论是研究随机性或不确定性等现象的数学分支,用来模拟实验在同一环境下会产生不同结果的情况。典型的随机实验有掷骰子、扔硬币、抽扑克牌以及轮盘游戏等。概率论的主题是研究随机变量和随机变量的概率分布。
概率论和统计学的关系:
概率论是统计学的基石。从科学史的角度看,它们一开始完全是独立发展的。统计学的发展经历了计数→统计→统计学的阶段。而概率论却是在数学家解答赌博中出现的大量问题后产生的。18世纪中后期,统计学由于吸收了概率论的观念与方法,才使统计的水平真正上升到了科学、成熟和完善的程度,而概率论,由于和统计学的结合,走出了纯数学的圈子,获得了广泛的应用。
函数(Function)
定义:有两个变量x、y,如果对于x在某一范围内的每一个确定的值,y都有唯一确定的值与它对应,那么就称y是x的函数。其中x是输入值,y是输出值。可以表示为:输入值x→函数(对应关系规则)→输出值y,即:f:X→Y。
按中文版的定义,会理解为函数就是变量y。而英文版函数指的是x和y之间的对应关系(A function is a relation between a set of inputs and a set of permissible outputs…)。记作:f(x) 中文读作:f(x)英文读作:f of x。
例1:有两组数字,X={1,2,3,4},Y={3,5,7,9},对于X中的每一个数字,Y中都有一个数字和它产生一对一的对应关系,这个对应关系就是“乘2加1”,也就是说,Y中的每个数字是X的数字乘2加1之后得到的,因此X与Y具有函数关系。
例2:下图是以颜色作为函数对应关系的。
函数可以用两个变量(x, y)来描述,符号表示为y=f(x),代表x和y之间存在某种数学运算关系,x经过某种运算之后可以得到y的值。例如y=x+1, y=x/2+3, y=x^2等。
y=x+1也可以记作f(x)=x+1,这是一种单变量表示法。为了表示特定的函数,f和x都可以用其它字母或单词来代替,例如P(A), sin(x), h(θ)等。
函数图形可以用2D曲线来表示,图中横轴代表x,纵轴代表f(x)。例如f(x)=x^2,图形为二次曲线:
前面介绍的函数只有一个输入值,如果有多个输入值,就称为多元函数。f(x,y)可以表示一个二元函数,二元函数可以用3D曲面来表示。例如f(x,y)=x^2+y^2,图形表示如下:
二元以上的函数很难用图形来表示,只能分解成2D或3D图形来逐层显示,因此研究多元函数一般都以二元函数为代表。
注意:编程中的函数概念和数学中的函数概念并不相同,编程函数除了可以表示数学函数的意义之外,还可以代表命令、过程、(类的)方法、事件、语句成组、封装等含义,输入参数可以是0个或多个,返回值(输出值)可有可无。
Function(函数)这个数学名词是莱布尼兹在1694年开始使用的,中文的“函数”一词由清朝数学家李善兰译出。
随机变量(Random Variable)
随机变量是概率论的基础概念,对随机变量的研究是概率论的核心内容。
日常生活中,由于不同条件下偶然因素的影响,会产生许多随机的、无法预先确定的数值,随机变量就是指这些随机出现的非确定值。例如某一时刻某停车场的车辆数量,某地区的粮食年产量,某人20岁时的身高、体重等,都是随机变量的实例。
定义:随机变量X是定义在样本空间Ω上的输出值为实数的函数,对于样本空间Ω上的每一个样本点e,都有一个数值X(e)与之对应。X可代表Ω中的每一个样本点。
记作:X 或 Y,Z (大写字母X,Y,Z表示随机变量,小写字母x,y,z表示随机变量的取值)
注意:由定义可以看出,随机变量实质上是一个函数。通过二元函数可以很容易看出这一点,例如同时掷两枚骰子,可以产生两个随机数i和j,而随机变量X可以是i,j之和,用函数表示为X(i,j)=i+j。
随机函数一词并不是指随机变量,而是指编程时为生成随机数而编写的命令,例如C、Matlab的rand()或Java的Math.random()等。计算机生成的随机数是伪随机数,是可以预测的,不过在实际应用中一般没什么大碍。
按随机变量的取值,可分为离散型和连续型两种类型:
离散型(Discrete):随机变量取值为有限个,数值可以一一列举出来,例如x为5、6、7这三个数之一。掷一枚骰子,其结果必然是1~6这六个数之一,不可能出现1.5或3.618之类的数字,因此是离散型。某地区某年人口的出生数、死亡数,某药治疗某病病人的有效数、无效数等都是离散型。离散型的图形可以用散点图来表示:
连续型(Continuous):随机数X的取值有无限种可能,例如x为0~1范围之间的任意一个数:0.01、0.512、0.999…。再例如某地区6岁儿童的身高、体重值,某种食物的酸碱度ph值等都是连续型。连续型的图形可以用连续的曲线来表示:
% Matlab代码示例
rand(1) % 产生一个随机数(连续)
% ans = 0.6324 也可能是0~1之间的其它任意值
10 + (50-10) * rand(1) % 产生一个10~50之间的随机数(连续)
% ans = 47.3597
rand(1, 3) % 产生1行3列随机数(连续)
% ans = 0.9649 0.1576 0.9706
randint(1, 2, [0,3]) % 产生1行2列随机数(离散),范围0~3,即{
0,1,2,3}中的一个
% ans = 2 0
总和(Sum)
也称总计、合计、累计、连加,求一组数字连加所得的总和。运算符:∑ 读法:希腊字母读音sigma(西格玛),一般读作sum(萨姆)。公式:
例1:求1+1等于几?
(惊讶,1+1居然也有这么高深的写法)
例2:求1、2、3、4这四个数字相加的总和。
% Matlab代码示例
sum([1 2 3 4])
% ans = 10
连乘积(Product)
求一组数字连乘所得的乘积。运算符:读法:是圆周率π(派)的大写,读作prod(普若德)或product。前面讲过的链式法则和一些概率连乘公式都能以运算符的形式来表示。公式:
例:求1、2、3、4这四个数字相乘所得的结果。
% Matlab代码示例
prod([1 2 3 4])
% ans = 24
【阶乘(Factorial)】
是指1×2×3×4……一直乘到所要求的数。运算符:! ,公式:
例:
3!= 1×2×3 = 6
5!= 1×2×3×4×5 = 120
注意:小数不能作阶乘,不过Gamma函数可以定义为小数版的阶乘。
% Matlab代码示例
factorial(5) % 5!
% ans = 120
vpa(*5!*) % 同factorial(5)
% ans = 120
乘积(Multiply)
也称元素乘积(Element-By-Element Multiplication),是指两组数字一一对应相乘。运算符:×、.* 或 *
公式:
注意:乘积要求两组数字的数量相等,后面要讲的差值、加权求和等也是这样。
% Matlab代码示例
A = [9, 2, 8, 2]; B = [1, 2, 3, 4];
A .* B
% ans = 9 4 24 8
两张图片乘积时的效果,就是Photoshop中的正片叠底(Multiply)效果。颜色值范围0~1,白色为1,因此白色部分会保持另一张图的原色不变,其它颜色会相应变暗。
% Matlab代码示例
% 要求两张图片同样大小

% imread是读取某张图片
% im2single表示R、G、B颜色分开处理
img1 = im2single(imread('c:/a1.jpg'));
img2 = im2single(imread(