Skip to content

Commit d6af513

Browse files
authored
Merge pull request scutan90#472 from Sander-houqi/master
更新第一章
2 parents c7ee64b + b1652c7 commit d6af513

File tree

3 files changed

+111
-15
lines changed

3 files changed

+111
-15
lines changed

.DS_Store

0 Bytes
Binary file not shown.

ch01_数学基础/第一章_数学基础.md

+14-8
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ $$
234234
这里$V​$就是上面的右奇异向量,另外还有:
235235

236236
$$
237-
\sigma_i = \sqrt{\lambda_i}, u_i=\frac{1}{\sigma_i}A\mu_i
237+
\sigma_i = \sqrt{\lambda_i}, u_i=\frac{1}{\sigma_i}AV
238238
$$
239239

240240
这里的$\sigma​$就是奇异值,$u​$就是上面说的左奇异向量。【证明那个哥们也没给】
@@ -300,7 +300,7 @@ PMF 可以同时作用于多个随机变量,即联合概率分布(joint probab
300300

301301
如果一个函数$p​$是x的PDF,那么它必须满足如下几个条件
302302

303-
- $p$的定义域必须是 xx 的所有可能状态的集合
303+
- $p$的定义域必须是x的所有可能状态的集合
304304
- $∀x∈X,p(x)≥0$. 注意,我们并不要求$ p(x)≤1$,因为此处 $p(x)$不是表示的对应此状态具体的概率,而是概率的一个相对大小(密度)。具体的概率,需要积分去求。
305305
- $∫p(x)dx=1$, 积分下来,总和还是1,概率之和还是1.
306306

@@ -378,12 +378,12 @@ $X$和$Y$的关系依赖于$Z$,而不是直接产生。
378378

379379
### 1.5.1 Bernoulli分布
380380

381-
**Bernoulli分布**是单个二值随机变量分布, 单参数$\phi$∈[0,1]控制,$\phi$给出随机变量等于1的概率. 主要性质有:
381+
**Bernoulli分布**(伯努利分布,0-1分布)是单个二值随机变量分布, 单参数$\phi$∈[0,1]控制,$\phi$给出随机变量等于1的概率. 主要性质有:
382382
$$
383383
\begin{align*}
384384
P(x=1) &= \phi \\
385385
P(x=0) &= 1-\phi \\
386-
P(x=x) &= \phi^x(1-\phi)^{1-x} \\
386+
概率质量函数:P(x=x) &= \phi^x(1-\phi)^{1-x} \\
387387
\end{align*}
388388
$$
389389
其期望和方差为:
@@ -393,10 +393,16 @@ E_x[x] &= \phi \\
393393
Var_x(x) &= \phi{(1-\phi)}
394394
\end{align*}
395395
$$
396-
**Multinoulli分布**也叫**范畴分布**, 是单个*k*值随机分布,经常用来表示**对象分类的分布**. 其中$k$是有限值.Multinoulli分布由向量$\vec{p}\in[0,1]^{k-1}$参数化,每个分量$p_i$表示第$i$个状态的概率, 且$p_k=1-1^Tp​$.
397-
398396
**适用范围**: **伯努利分布**适合对**离散型**随机变量建模.
399397

398+
**Multinoulli分布**也叫**范畴分布**, 是单个*k*值随机分布,经常用来表示**对象分类的分布**. 其中$k$是有限值.Multinoulli分布由向量$\vec{p}\in[0,1]^{k-1}$参数化,每个分量$p_i$表示第$i$个状态的概率, 且$p_k=1-1^Tp$.这里$1^T$表示元素全为1的列向量的转置,其实就是对于向量p中除了k的概率之和。可以重写为$p_k=1-\sum_{0}^{k-1}p_i$ 。
399+
400+
补充二项分布、多项分布:
401+
402+
二项分布,通俗点硬币抛多次。二项分布(Binomial distribution)是**n重伯努利试验**成功次数的离散概率分布。
403+
404+
多项式分布(Multinomial Distribution)是二项式分布的推广。二项式做n次伯努利实验,规定了每次试验的结果只有两个,如果现在还是做n次试验,只不过每次试验的结果可以有多m个,且m个结果发生的概率互斥且和为1,则发生其中一个结果X次的概率就是多项式分布。
405+
400406
### 1.5.2 高斯分布
401407

402408
高斯也叫正态分布(Normal Distribution), 概率度函数如下:
@@ -446,7 +452,7 @@ p(x;\lambda)=\lambda I_{x\geq 0}exp(-\lambda{x})
446452
$$
447453
指数分布用指示函数$I_{x\geq 0}​$来使$x​$取负值时的概率为零。
448454

449-
### 1.5.5 Laplace 分布
455+
### 1.5.5 Laplace 分布(拉普拉斯分布)
450456

451457
一个联系紧密的概率分布是 Laplace 分布(Laplace distribution),它允许我们在任意一点 $\mu$处设置概率质量的峰值
452458
$$
@@ -489,7 +495,7 @@ $$
489495

490496
> 注意:
491497
>
492-
> - 函数的期望大于等于期望的函数(Jensen不等式),即$E(f(x))\geqslant f(E(x))$
498+
> - 函数的期望大于等于期望的函数(Jensen(詹森)不等式,即$E(f(x))\geqslant f(E(x))$
493499
> - 一般情况下,乘积的期望不等于期望的乘积。
494500
> - 如果$X$和$Y$相互独立,则$E(xy)=E(x)E(y)​$。
495501

ch02_机器学习基础/第二章_机器学习基础.md

+97-7
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,28 @@ $$
299299

300300
(5)各特征之间不需要满足条件独立假设,但各个特征的贡献独立计算。
301301

302-
### 2.9.3 逻辑回归与朴素贝叶斯有什么区别
302+
### 2.9.3 生成模型和判别模型的区别
303+
304+
305+
生成模型:由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)(贝叶斯概率)。基本思想是首先建立样本的联合概率概率密度模型P(X,Y),然后再得到后验概率P(Y|X),再利用它进行分类。典型的生成模型有朴素贝叶斯,隐马尔科夫模型等
306+
307+
判别模型:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。典型的判别模型包括k近邻,感知级,决策树,支持向量机等。这些模型的特点都是输入属性X可以直接得到后验概率P(Y|X),输出条件概率最大的作为最终的类别(对于二分类任务来说,实际得到一个score,当score大于threshold时则为正类,否则为负类)。
308+
309+
举例:
310+
311+
判别式模型举例:要确定一个羊是山羊还是绵羊,用判别模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。
312+
313+
生成式模型举例:利用生成模型是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。
314+
315+
联系和区别:
316+
317+
生成方法的特点:上面说到,生成方法学习联合概率密度分布P(X,Y),所以就可以从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。但它不关心到底划分各类的那个分类边界在哪。生成方法可以还原出联合概率分布P(Y,X),而判别方法不能。生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快的收敛于真实模型,当存在隐变量时,仍可以用生成方法学习。此时判别方法就不能用。
318+
319+
判别方法的特点:判别方法直接学习的是决策函数Y=f(X)或者条件概率分布P(Y|X)。不能反映训练数据本身的特性。但它寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。直接面对预测,往往学习的准确率更高。由于直接学习P(Y|X)或P(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
320+
321+
​ 最后,由生成模型可以得到判别模型,但由判别模型得不到生成模型。
322+
323+
### 2.9.4 逻辑回归与朴素贝叶斯有什么区别
303324

304325
逻辑回归与朴素贝叶斯区别有以下几个方面:
305326

@@ -311,7 +332,7 @@ $$
311332

312333
(4)逻辑回归需要求特征参数间是线性的。
313334

314-
### 2.9.4 线性回归与逻辑回归的区别
335+
### 2.9.5 线性回归与逻辑回归的区别
315336

316337
线性回归与逻辑回归的区别如下描述:
317338

@@ -396,7 +417,8 @@ J = \frac{(y-a)^2}{2}
396417
$$
397418
​ 假如使用梯度下降法(Gradient descent)来调整权值参数的大小,权值$w$和偏置$b$的梯度推导如下:
398419
$$
399-
\frac{\partial J}{\partial b}=(a-y)\sigma'(z)
420+
\frac{\partial J}{\partial w}=(y-a)\sigma'(z)x\;,
421+
\frac{\partial J}{\partial b}=(y-a)\sigma'(z)
400422
$$
401423
其中,$z​$表示神经元的输入,$\sigma​$表示激活函数。权值$w​$和偏置$b​$的梯度跟激活函数的梯度成正比,激活函数的梯度越大,权值$w​$和偏置$b​$的大小调整得越快,训练收敛得就越快。
402424

@@ -436,6 +458,73 @@ $$
436458
与sigmoid搭配使用的交叉熵函数:`torch.nn.BCEWithLogitsLoss()`
437459
与softmax搭配使用的交叉熵函数:`torch.nn.CrossEntropyLoss()`
438460

461+
462+
463+
对数似然函数:
464+
465+
​ 我们将似然函数作为机器学习模型的损失函数,并且用在分类问题中。这时似然函数是直接作用于模型的输出的(损失函数就是为了衡量当前参数下model的预测值predict距离真实值label的大小,所以似然函数用作损失函数时当然也是为了完成该任务),所以对于似然函数来说,这里的样本集就成了label集(而不是机器学习意义上的样本集X了),这里的参数也不是机器学习model 的参数,而是predict值。
466+
467+
其实作为损失函数的似然函数并不关心你当前的机器学习model的参数是怎样的,毕竟它此时所接收的输入只有两部分:**1、predict。2、label 。3、分布模型(predict服从的分布)**
468+
469+
显然这里的label就是似然函数的观测值,即样本集。**而它眼里的模型,当然就是predict这个随机变量所服从的概率分布模型。它的目的,就是衡量predict背后的模型对于当前观测值的解释程度。而每个样本的predict值,恰恰就是它所服从的分布模型的参数。**
470+
471+
比如此时我们的机器学习任务是一个4个类别的分类任务,机器学习model的输出就是当前样本X下的每个类别的概率,如predict=[0.1, 0.1, 0.7, 0.1],而该样本的标签是类别3,表示成向量就是label=[0, 0, 1, 0]。那么label=[0, 0, 1, 0]就是似然函数眼里的样本,然后我们可以假设predict这个随机变量背后的模型是**单次观测下的多项式分布**,(**因为softmax本身是基于多项式分布的**)。
472+
473+
回顾:
474+
475+
伯努利分布,也叫做(0,1)分布,贝努利分布可以看成是将一枚硬币(只有正反两个面,代表两个类别)向上扔出,出现某个面(类别)的概率情况,因此其概率密度函数为:
476+
477+
$$
478+
f(x)=p^x(1-p)^{1-x}=
479+
\begin{cases}
480+
p,& x=1\\
481+
q,& x=0
482+
\end{cases}
483+
$$
484+
这是理解似然函数做损失函数的关键!另外,贝努利分布的模型参数就是其中一个类别的发生概率。
485+
486+
而二项分布呢,就是将贝努利实验重复n次(各次实验之间是相互独立的)。
487+
488+
而多项式分布呢,就是将二项分布推广到多个面(类别)。
489+
490+
**所以,单次观测下的多项式分布就是贝努利分布的多类推广!即:**
491+
$$
492+
f_{mulit}(x;p)=\prod_{i=1}^C p_{i}^{xi}
493+
$$
494+
其中,C代表类别数。p代表向量形式的模型参数,即各个类别的发生概率,如p=[0.1, 0.1, 0.7, 0.1],则p1=0.1, p3=0.7等。即,**多项式分布的模型参数就是各个类别的发生概率!**x代表**one-hot形式**的观测值,如x=类别3,则x=[0, 0, 1, 0]。xi代表x的第i个元素,比如x=类别3时,x1=0,x2=0,x3=1,x4=0。
495+
496+
想一下,机器学习model对某个样本的输出,就代表各个类别发生的概率。但是,对于当前**这一个**样本而言,它肯定只能有**一个类别**,所以这一个样本就可以看成是一次实验(观察),而这次实验(观察)的结果要服从上述各个类别发生的概率,那不就是服从多项式分布嘛!而且是单次观察!各个类别发生的概率predict当然就是这个多项式分布的参数。
497+
498+
**总结一下,对于多类分类问题,似然函数就是衡量当前这个以predict为参数的单次观测下的多项式分布模型与样本值label之间的似然度。**
499+
500+
所以,根据似然函数的定义,单个样本的似然函数即:
501+
502+
$$
503+
L = f_{mulit}(label;predict)
504+
$$
505+
所以,整个样本集(或者一个batch)的似然函数即:
506+
$$
507+
L=\prod_{X}f_{multi}(label;predict)= \prod_{X}\prod_{i=1}^{C}predict(i)^{label(i)}
508+
$$
509+
所以在累乘号前面加上log函数后,就成了所谓的对数似然函数:
510+
$$
511+
L=\sum_{X}\sum_{i=1}^{C}label(i)log(predict(i))
512+
$$
513+
而最大化对数似然函数就等效于最小化负对数似然函数,所以前面加个负号就和交叉熵的形式相同的了。
514+
515+
交叉熵定义:对于某种分布的随机变量X~p(x), 有一个模型q(x)用于近似p(x)的概率分布,则分布X与模型q之间的交叉熵即:
516+
517+
$$
518+
H(X,q)=-\sum_{x}p(x)logq(x)
519+
$$
520+
这里X的分布模型即样本集label的真实分布模型,这里模型q(x)即想要模拟真实分布模型的机器学习模型。可以说交叉熵是直接衡量两个分布,或者说两个model之间的差异。而似然函数则是解释以model的输出为参数的某分布模型对样本集的解释程度。因此,可以说这两者是“同貌不同源”,但是“殊途同归”啦。
521+
522+
tips:
523+
524+
最大似然估计:
525+
526+
给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即“模型已定,参数未知”。例如,我们知道这个分布是正态分布,但是不知道均值和方差;或者是二项分布,但是不知道均值。最大似然估计(MLE,Maximum Likelihood Estimation)就可以用来估计模型的参数。**MLE的目标是找出一组参数,使得模型产生出观测数据的概率最大。**
527+
439528
### 2.10.5 为什么用交叉熵代替二次代价函数
440529
(1)**为什么不用二次方代价函数**
441530
由上一节可知,权值$w$和偏置$b$的偏导数为$\frac{\partial J}{\partial w}=(a-y)\sigma'(z)x$,$\frac{\partial J}{\partial b}=(a-y)\sigma'(z)$, 偏导数受激活函数的导数影响,sigmoid函数导数在输出接近0和1时非常小,会导致一些实例在刚开始训练时学习得非常慢。
@@ -497,10 +586,12 @@ $$
497586

498587
(4)**对数损失函数**
499588
$$
500-
L(Y, P(Y|X)) = -\log{P(Y|X)}
589+
L(Y, P(Y|X)) = -\log{P(Y|X)}=-\frac{1}{N}\sum_{i=1}^N\sum_{j=1}^M y_{ij}log(p_{ij})
501590
$$
502591

503-
​ 常见的逻辑回归使用的就是对数损失函数,有很多人认为逻辑回归的损失函数是平方损失,其实不然。逻辑回归它假设样本服从伯努利分布(0-1分布),进而求得满足该分布的似然函数,接着取对数求极值等。逻辑回归推导出的经验风险函数是最小化负的似然函数,从损失函数的角度看,就是对数损失函数。
592+
​ 其中, Y 为输出变量, X为输入变量, L 为损失函数. N为输入样本量, M为可能的类别数, $y_{ij}$ 是一个二值指标, 表示类别 j 是否是输入实例 xi 的真实类别. $p_{ij}$ 为模型或分类器预测输入实例 xi 属于类别 j 的概率.
593+
594+
常见的逻辑回归使用的就是对数损失函数,有很多人认为逻辑回归的损失函数是平方损失,其实不然。逻辑回归它假设样本服从伯努利分布(0-1分布),进而求得满足该分布的似然函数,接着取对数求极值等。逻辑回归推导出的经验风险函数是最小化负的似然函数,从损失函数的角度看,就是对数损失函数。形式上等价于二分类的交叉熵损失函数。
504595

505596
(6)**指数损失函数**
506597
指数损失函数的标准形式为:
@@ -731,7 +822,7 @@ $$
731822
由于样本不同,特征取值范围也不同,导致迭代速度慢。为了减少特征取值的影响,可对特征数据标准化,使新期望为0,新方差为1,可节省算法运行时间。
732823

733824
### 2.12.6 随机梯度和批量梯度区别
734-
​ 随机梯度下降(SDG)和批量梯度下降(BDG)是两种主要梯度下降法,其目的是增加某些限制来加速运算求解。
825+
​ 随机梯度下降(SGD)和批量梯度下降(BGD)是两种主要梯度下降法,其目的是增加某些限制来加速运算求解。
735826
下面通过介绍两种梯度下降法的求解思路,对其进行比较。
736827
假设函数为:
737828
$$
@@ -2300,4 +2391,3 @@ $$
23002391
[14] Quinlan J R. Induction of decision trees[J]. Machine learning, 1986, 1(1): 81-106.
23012392
[15] Breiman L. Random forests[J]. Machine learning, 2001, 45(1): 5-32.
23022393

2303-

0 commit comments

Comments
 (0)