概率论与数理统计
无穷小阶数
无穷小量表述:线性逼近
相当于利用切线和斜率来理解误差和逼近。
泰勒级数:线性逼近
相当于我们来用一次曲线逼近,二次曲线逼近,三次曲线逼近....一直写下去
积分:对面积做一个逼近
牛顿莱布尼茨公式:
机器学习中的牛顿法:
此时初始点的选取也十分的关键。
牛顿法与梯度下降法:
牛顿法步长是确定的,但你需要做二次逼近。
梯度下降法我们得自己确定步长,但只需要一阶逼近。
离散随机变量:
连续随机变量:
贝叶斯公式:
大数定律,中心极限定理通过样本来研究密度函数。
随机变量的矩,n=1描述中间位置。n=2的矩是看距离中心的分散程度。特征函数(概率密度函数的拉普拉斯变换)
大数定律(n越大 散开的程度越小 研究到后面他们的接近情况)
中心极限定律(不满足研究他们的接近情况而是研究他们的形状)根号n用来放大他们的形状。他们的形状会越来越接近正态分布。
期望与方差相关计算:
协方差的意义:
协方差是两个随机变量具有相同方向变化趋 势的度量;若Cov(X,Y)>0,它们的变化趋势 相同,若Cov(X,Y)<0,它们的变化趋势相 反;若Cov(X,Y)=0,称X和Y不相关。
相关系数:
协方差矩阵:
矩:
偏度:
u3可以表示成x的3阶中心矩
峰度:
切比雪夫不等式:
样本的统计量:
样本的矩:
矩估计:A1,A2是可以算出的量。样本的方差作为总体方差,样本均值作为总体均值。
矩估计例子:
根据均匀分布均值和方差公式
极大似然估计:
为什么要去极大值,是因为这个样本这样的情况已经存在了,当时要使他的概率最大才能让他好成立。MLE极大似然估计的简称。
例子:
混合高斯模型我们可以利用em模型去做(后面讲:混合模型指有两种隐形的变量,隐变量)
矩阵的秩
R(A,b)增广矩阵
系数矩阵:
正交阵:
特征值和特征向量:
特征值与特征向量一个示例:
https://blog.csdn.net/u010182633/article/details/45921929
对称矩阵不同特征值的特征向量正交
二次型:
凸优化
-
仿射集与仿射包
注意仿射要求的是直线,凸集要求的是线段。
-
凸集与凸包
O为1是让是一个线段,在内部,不然他就出去了
凸锥
相当于任意一个点与原点的连线
-
超平面与半空间
1,2范数
-
欧式球和椭球
-
范数球和范数锥
-
多面体
-
仿射变换
可以理解成做平移,投影等变换。
-
仿射变换进一步
和的理解:
u=xx u=yy分别为凸
u=xx+yy也是凸 -
透视变换
-
投射函数(线性分式函数)
红绿凸是一个投射的示例
相当于投射之后在某一个方向上做拉伸一个方向做缩小。不会影响凸的变换。
-
分割超平面
-
支撑超平面
概念难懂可以看第二张图例
-
凸函数
-
二阶可微
证明是凸的可以去算二阶导
-
上境图
-
jensen不等式
把这个p(x)看成概率
D是指相对熵
-
凸函数保凸性
共轭函数
共轭函数一个简单的解释:
把y看成一个自变量
https://blog.csdn.net/shenxiaolu1984/article/details/78194053?locationNum=3&fps=1
这个例子教我们如何给一个函数然后求出她的共轭函数。
第 2-3步是最x求偏导
-
Fenchel不等式
-
凸优化
有m个不等式约束
有p个不等式约束
-
凸函数解法-利用对偶函数
我们求这个凹函数的最大值,根据定义我们得到这个最大值是小于我们的最优解的,但也是最接近的。
示例如:
-
最小二乘法
对L求x的偏导,代入L得到其对偶函数G,再去求G的偏导
广义线性回归和对偶优化
X为一个矩阵,o是一个列向量,求偏导是X的转置。矩阵没有特殊说明一般默认为列向量,用转置来表示行向量
x(i)表示第i个样本点,h(x)是估计的方程式(估计值),求所有点到直线的距离最小值。1/2是因为求导之后会有2,消去他。一般y(i)与理想值有一个差值,在下一张图里面引入一个噪声差值。
我们认为:可以把这个噪声可以称一个高斯分布(因为它是由多个分布所组成的,例如房价噪声因素:地铁,政策等等)
并且噪声的均值一般也应该为0.因为他是高斯函数,写出她的概率。
具体的求解
实际中,若XTX阶过高,仍然需要使用梯度
可以知道目标函数是一个凸函数,沿梯度下降肯定是有一个最优解的,而且还是全局最优的。
下降的方式计算数值解。
批处理我们是拿到所有整体样本再做一次,变化就很慢。变化很小。
实际中我们一般用随机梯度下降,给一个样本变化一次。
两者综合一下:如果不是每拿到一个样本即更改梯度,而是 若干个样本的平均梯度作为更新方向,则是 mini-batch梯度下降算法。
-
逻辑回归:
把y=1,0单纯看成两种分类就行。属于一个分类的0.8 属于另一个分类的概率便是0.2
利用极大似然法,求最优解的theater。
-
对数线性模型:
我们可以把逻辑回归看成一个对数线性的模型
-
线性方程中的最小二乘
像刚才那样求目标函数的最小值,我们化简之后本质就是求xxt的最小值(x看成theatar)
- 强对偶条件
梯度下降和拟牛顿
-
固定学习率
一开始还不错,但是后面学习速度很慢。
所以我们需要去优化:
在斜率(方向导数)大的地方,使用小学习率 在斜率(方向导数)小的地方,使用大学习率
-
变化学习率
每走一步,按照图示方式算一次学习率。
我们现在要找=0的那个点,我们可以先找0点发现<0,再去找一个>0的点,(函数是连续的)那么能找到=0的点。
-
去找变化学习率的方法
为了方便理解我们都把那些数组想成1维度的,就把转置想成去掉就行了。
-
回溯线性搜索
-
二次插值搜索
a是取在对称轴那个点,把原始的函数看成一个2次的函数,我们本来的目标函数是找极值点,刚好对称轴就是一个极值点。
-
牛顿法
利用二次曲线的拟合,先在左边那个点处,根据她的一阶导数,二阶导数,和本身那个点拟合处一条二次曲线,去找到这个曲线的极值,再在这个曲线的极值重复刚才的操作。
牛顿法失效的情况
多变量的情况下Hessian矩阵就是二阶导数
事实上hessian有时候他不是正定的,所以我们需要一些其他的矩阵形式去替代他。
-
bfgs最著名的一种拟牛顿的方式
s:步长的变化
y:导数值的变化
把这个B矩阵代替hessian矩阵
理解成梯度下降是用一个一次函数去做拟合,牛顿法理解成用二次函数去拟合。
熵
log3 3是指概率的倒数
log9也是同样的道理
熵的定义
一个例子
-
联合熵 条件熵
相对熵
相对熵不是互相对立的,但是互信息是
-
熵总体的一些说明
-
最大熵模型
最大熵模型用的是条件熵而不是用的联合熵(因为根据题干来说,我们一般是承认一个已知的x)
给定均值和方差的情况下,正态分布是熵最大的一种分布。
- 特征与样本
y:需要确定的信息
x:特征中的上下文(已知信息)
加横线的是指在样本中的,我们可以算出来,已知的东西。
我们认为总体的概率是可以用样本的概率来表示的。
-
最大熵模型的总结
-
用最大熵模型我们需要解决的问题
最大熵模型与极大似然模型的关系
最大熵模式最大化的东西和极大似然法最大化的东西是一样的。
具体的计算过程可以不看,理解成把在最大熵模型里的最优解代入到mle(极大似然法中)得到的式子都是一样的。
知道的越多你不确定的东西就越少了。
-
对lamuda的求解
有点类似与梯度的思想
聚类
杰卡德相似:主要是对于集合而言
余弦相似度:向量而言,文本处理多一点
-
皮尔逊相似系数:值-1,1之间
kmeans
不断的去判断每个点到均值的距离,然后不断划分类别,迭代。
kmeans初值的选取也十分的重要的。因为不同的选取会导致最后结果的不同。k均值一定会收敛的但是不一定收敛到最优解。
- 如果最后收敛结果不满意,我们可以把最近的两个簇做合并。如果要劈开一个簇,我们做第二次kmens
-
层次聚类
层次聚类方法对给定的数据集进行层次的分解,直 到某种条件满足为止。具体又可分为:
凝聚的层次聚类:AGNES算法
一种自底向上的策略,首先将每个对象作为一个簇,然 后合并这些原子簇为越来越大的簇,直到某个终结条件 被满足。
分裂的层次聚类:DIANA算法
采用自顶向下的策略,它首先将所有对象置于一个簇 中,然后逐渐细分为越来越小的簇,直到达到了某个终 结条件。
-
密度聚类方法
q到p1直接密度可达,p1到p直接密度可达,q到p也是密度可达的。
密度可达是要求其中一个点要是核心点,可连可以是两个非核心点。
左侧1-12是指12个左边点,属性12指坐标。
-
密度最大值聚类
所以我们说任何点都是有高密距离的。(总有一个人比你有钱,那如果是马云的话,我们就用密度最大的对象来定义)
-
利用密度最大值聚类理解噪声和边界
-
几种谱聚类的概念
-
几种连接图
这是用来表征相似度的计算方法 相当于概念中的s函数
-
拉普拉斯矩阵
相当于是升维度,利于分类,再来用kmeans进行分类,最后分出来的结果也就是之前点的结果。(不用太想明白理论的道理,就相当于是一定的条件下不好分,我加个条件继续分)
-
三种谱聚类的过程
- 示例
看第一排,前四个图(前四个向量)第一个图 区分出4(只有他为1) 第二图区分8(只有他为0)
三个不同矩阵对于谱聚类不同算法,第一排:正则化的方式。
第一排第一个图表示10个特征值以及他们的值,第二个以及之后,第二图表示第4维度取得大,其他地方取得0.
非凸函数就不能用kmeans,我们可以通过谱聚类映射变成凸的,然后kmeans。
决策树与随机森林
- k近邻
k=5,在一个点周围要5个点,看哪种分类占的多,就是哪个比例。
对最后一句话的解释,我们决策树的建立过程实质是一种熵下降的过程,让不确定性越来越小。
相当于去算一个途径让熵下降最快的。
- 信息增益
基本记号的举例:比如说类别c为是否出去玩,a这个特征可以是天气,其取值为:晴,阴,下雨等等。
-
信息增益的计算方法
可以通过此算出a的信息增益,b的,和c的。将这三者拿来做比较,选出数值大的。
举例:Di指晴天的个数,Dik指晴天出去玩的个数。
有时候信息增益不是一个很好的指标,我们可以选择信息增益率。
对于gini指数看这个好理解:https://blog.csdn.net/wjlwangluo/article/details/78656192
-
三种学习算法总结
随机森林
决策树对训练属于有很好的分类能力,但对 未知的测试数据未必有好的分类能力,泛化 能力弱,即可能发生过拟合现象。我们可以用随机森林。
每个重采样,保证m此取得采样是不同的(有放回的选择),每个分类器是可以用不同的分类算法。个人理解bootstrap在对这n的样本抽样的时候,他就会根据这个样本去生成一些新的量,进而每次抽的东西量不变,也不重复(适合小样本估计大总体的情况)
-
例子
通过随机森林这样的方式先去找到头骨的位置。
类似于这样
我们是可以用决策树拿来做分类的。
- 投票机制:
- 简单投票机制:
- 一票否决(一致表决)
- 少数服从多数:有效多数(加权)
- 阈值表决
- 贝叶斯投票机制:
- 简单投票法假设每个分类器都是平等的。
- 在实际生活中,我们听取一个人的意见,会 考虑这个人过去的意见是否有用,从而加大 或者减少权值。
- 贝叶斯投票机制基于每个基本分类器在过去 的分类表现设定一个权值,然后按照这个权 值进行投票。
-
投票举例
假如都没有人投票的时候这个投票基本为平均数(最稳当)
Adaboost
- kernel方法
x与u看成两份数据,k(x,u)看成距离的度量,f(x)的w看成权值。通过这个w来拟合数据。
kernel的四种形式如下。
几种kernel对应的演示
-
CART
三种计算方式:
-
Boosting
不断通过原始数据取调整权重
- Boosting几种loss
boosting 是一种将弱分类器转化为强分类器的方法统称,而adaboost是其中的一种,采用了exponential loss function(其实就是用指数的权重),根据不同的loss function还可以有其他算法,比如L2Boosting, logitboost...
参考 boosting
https://blog.csdn.net/PbGc396Dwxjb77F2je/article/details/78786963对其的理解示例:
下面,给定下列训练样本,请用AdaBoost算法学习一个强分类器。
> ![- - ](http://upload-images.jianshu.io/upload_images/1954308-93feeb91822a6d66?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
求解过程:初始化训练数据的权值分布,令每个权值W1i = 1/N = 0.1,其中,N = 10,i = 1,2, ..., 10,然后分别对于m = 1,2,3, ...等值进行迭代。
拿到这10个数据的训练样本后,根据 X 和 Y 的对应关系,要把这10个数据分为两类,一类是“1”,一类是“-1”,根据数据的特点发现:“0 1 2”这3个数据对应的类是“1”,“3 4 5”这3个数据对应的类是“-1”,“6 7 8”这3个数据对应的类是“1”,9是比较孤独的,对应类“-1”。抛开孤独的9不讲,“0 1 2”、“3 4 5”、“6 7 8”这是3类不同的数据,分别对应的类是1、-1、1,直观上推测可知,可以找到对应的数据分界点,比如2.5、5.5、8.5 将那几类数据分成两类。当然,这只是主观臆测,下面实际计算下这个具体过程。
**迭代过程1**
对于m=1,在权值分布为**D1**(10个数据,每个数据的权值皆初始化为0.1)的训练数据上,经过计算可得:
1. **阈值v取2.5**时误差率为0.3(x < 2.5时取1,x > 2.5时取-1,**则6 7 8分错**,误差率为0.3),
2. 阈值v取5.5时误差率最低为0.4(x < 5.5时取1,x > 5.5时取-1,则3 4 5 6 7 8皆分错,误差率0.6大于0.5,不可取。故令x > 5.5时取1,x < 5.5时取-1,则0 1 2 9分错,误差率为0.4),
3. 阈值v取8.5时误差率为0.3(x < 8.5时取1,x > 8.5时取-1,则3 4 5分错,误差率为0.3)。
可以看到,无论阈值v取2.5,还是8.5,总得分错3个样本,故可任取其中任意一个如2.5,弄成第一个基本分类器为:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-c8fbc6f221d9f1ca?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
上面说阈值v取2.5时则6 7 8分错,所以误差率为0.3,更加详细的解释是:因为样本集中
1. 0 1 2对应的类(Y)是1,因它们本身都小于2.5,所以被G1(x)分在了相应的类“1”中,分对了。
2. 3 4 5本身对应的类(Y)是-1,因它们本身都大于2.5,所以被G1(x)分在了相应的类“-1”中,分对了。
3. 但6 7 8本身对应类(Y)是1,却因它们本身大于2.5而被G1(x)分在了类"-1"中,所以这3个样本被分错了。
4. 9本身对应的类(Y)是-1,因它本身大于2.5,所以被G1(x)分在了相应的类“-1”中,分对了。
从而得到G1(x)在训练数据集上的误差率(被G1(x)误分类样本“6 7 8”的权值之和)**e1=P(G1(xi)≠yi) = 3*0.1 = 0.3**。
然后根据误差率e1计算G1的系数:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-afcbcfb5d9288aa9?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这个a1代表G1(x)在最终的分类函数中所占的权重,为0.4236。
接着更新训练数据的权值分布,用于下一轮迭代:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-6df0ab68bb2719d5?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
值得一提的是,由权值更新的公式可知,每个样本的新权值是变大还是变小,取决于它是被分错还是被分正确。
即如果某个样本被分错了,则yi * Gm(xi)为负,负负得正,结果使得整个式子变大(样本权值变大),否则变小。
第一轮迭代后,最后得到各个数据**新**的权值分布**D2 **= (0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.0715,0.1666, 0.1666, 0.1666, 0.0715)。由此可以看出,因为样本中是数据“6 7 8”被G1(x)分错了,所以它们的权值由之前的0.1增大到0.1666,反之,其它数据皆被分正确,所以它们的权值皆由之前的0.1减小到0.0715。
分类函数f1(x)= a1*G1(x) = 0.4236G1(x)。
此时,得到的第一个基本分类器sign(f1(x))在训练数据集上有3个误分类点(即6 7 8)。
从上述第一轮的整个迭代过程可以看出:被误分类样本的权值之和影响误差率,误差率影响基本分类器在最终分类器中所占的权重。
**迭代过程2**
对于m=2,在权值分布为**D2 **= (0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.1666, 0.1666, 0.1666, 0.0715)的训练数据上,经过计算可得:
1. 阈值v取2.5时误差率为0.1666*3(x < 2.5时取1,x > 2.5时取-1,则6 7 8分错,误差率为0.1666*3),
2. 阈值v取5.5时误差率最低为0.0715*4(x > 5.5时取1,x < 5.5时取-1,则0 1 2 9分错,误差率为0.0715*3 + 0.0715),
3. **阈值v取8.5**时误差率为0.0715*3(x < 8.5时取1,x > 8.5时取-1,**则3 4 5分错**,误差率为0.0715*3)。
所以,阈值v取8.5时误差率最低,故第二个基本分类器为:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-8bde02947f25bcb5?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
面对的还是下述样本:
> ![image](http://upload-images.jianshu.io/upload_images/1954308-67692468b6d81cfb?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
很明显,G2(x)把样本“3 4 5”分错了,根据D2可知它们的权值为0.0715, 0.0715, 0.0715,所以G2(x)在训练数据集上的误差率e2=P(G2(xi)≠yi) = 0.0715 * 3 = 0.2143。
计算G2的系数:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-369fee44bb578850?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
更新训练数据的权值分布:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-0947c50e1640be5c?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**D3 **= (0.0455, 0.0455, 0.0455, 0.1667, 0.1667, 0.01667, 0.1060, 0.1060, 0.1060, 0.0455)。被分错的样本“3 4 5”的权值变大,其它被分对的样本的权值变小。
f2(x)=0.4236G1(x) + 0.6496G2(x)
此时,得到的第二个基本分类器sign(f2(x))在训练数据集上有3个误分类点(即3 4 5)。
**迭代过程3**
对于m=3,在权值分布为**D3 **= (0.0455, 0.0455, 0.0455, 0.1667, 0.1667, 0.01667, 0.1060, 0.1060, 0.1060, 0.0455)的训练数据上,经过计算可得:
1. 阈值v取2.5时误差率为0.1060*3(x < 2.5时取1,x > 2.5时取-1,则6 7 8分错,误差率为0.1060*3),
2. **阈值v取5.5**时误差率最低为0.0455*4(x > 5.5时取1,x < 5.5时取-1,**则0 1 2 9分错**,误差率为0.0455*3 + 0.0715),
3. 阈值v取8.5时误差率为0.1667*3(x < 8.5时取1,x > 8.5时取-1,则3 4 5分错,误差率为0.1667*3)。
所以阈值v取5.5时误差率最低,故第三个基本分类器为:
> > > [图片上传中...(image-fd72e2-1525278525589-0)]
依然还是原样本:
> ![image](http://upload-images.jianshu.io/upload_images/1954308-ae123c807ae99271?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时,被误分类的样本是:0 1 2 9,这4个样本所对应的权值皆为0.0455,
所以G3(x)在训练数据集上的**误差率e3** = P(G3(xi)≠yi) = **0.0455*4** = 0.1820。
计算G3的系数:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-c492514aa6da81ad?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
更新训练数据的权值分布:
> > ![image](http://upload-images.jianshu.io/upload_images/1954308-98d13ac87e3e31c4?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**D4 **= (0.125, 0.125, 0.125, 0.102, 0.102, 0.102, 0.065, 0.065, 0.065, 0.125)。被分错的样本“0 1 2 9”的权值变大,其它被分对的样本的权值变小。
f3(x)=0.4236G1(x) + 0.6496G2(x)+0.7514G3(x)
此时,得到的第三个基本分类器sign(f3(x))在训练数据集上有0个误分类点。至此,整个训练过程结束。
现在,咱们来总结下3轮迭代下来,各个样本权值和误差率的变化,如下所示(其中,样本权值D中加了下划线的表示在上一轮中被分错的样本的新权值):
1. 训练之前,各个样本的权值被初始化为D1 = (0.1, 0.1,0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1);
2. **第一轮迭代**中,样本“**6 7 8”**被分错,对应的误差率为**e1**=P(G1(xi)≠yi) = 3*0.1 = 0.3,此第一个基本分类器在最终的分类器中所占的权重为**a1** = 0.4236。第一轮迭代过后,样本新的权值为**D2 **= (0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.1666, 0.1666, 0.1666, 0.0715);
3. **第二轮迭代**中,样本**“3 4 5”**被分错,对应的误差率为**e2**=P(G2(xi)≠yi) = 0.0715 * 3 = 0.2143,此第二个基本分类器在最终的分类器中所占的权重为**a2** = 0.6496。第二轮迭代过后,样本新的权值为**D3 **= (0.0455, 0.0455, 0.0455, 0.1667, 0.1667, 0.01667, 0.1060, 0.1060, 0.1060, 0.0455);
4. **第三轮迭代**中,样本**“0 1 2 9”**被分错,对应的误差率为**e3** = P(G3(xi)≠yi) = 0.0455*4 = 0.1820,此第三个基本分类器在最终的分类器中所占的权重为**a3** = 0.7514。第三轮迭代过后,样本新的权值为**D4 **= (0.125, 0.125, 0.125, 0.102, 0.102, 0.102, 0.065, 0.065, 0.065, 0.125)。
从上述过程中可以发现,如果某些个样本被分错,它们在下一轮迭代中的权值将被增大,反之,其它被分对的样本在下一轮迭代中的权值将被减小。就这样,分错样本权值增大,分对样本权值变小,而在下一轮迭代中,总是选取让误差率最低的阈值来设计基本分类器,所以误差率e(所有被Gm(x)误分类样本的权值之和)不断降低。
综上,将上面计算得到的a1、a2、a3各值代入G(x)中,G(x) = sign[f3(x)] = sign[ a1 * G1(x) + a2 * G2(x) + a3 * G3(x) ],得到**最终的分类器**为:
G(x) = sign[f3(x)] = sign[ 0.4236G1(x) + 0.6496G2(x)+0.7514G3(x) ]。
贝叶斯网络
贝叶斯:让结果的产生反应部分的原因。
朴素贝叶斯
一个特征出现的概率,与其他特征(条件)独 立(特征独立性)
其实是:对于给定分类的条件下,特征独立
每个特征同等重要(特征均衡性)-
示例 垃圾分类
p(x1)的求法:统计x1这个单词出现的次数,除所有文本中单词的数目
p(x1|c):统计x1这个单词出现的次数,除所有垃圾邮件中单词的数目
-
拉普拉斯平滑
因为有可能这个单词一次都没有出现过。
交叉验证:比如1000封,第一次1-900封训练,900-1000验证;第二次800-900验证,其余训练。
小数乘积溢出的处理办法,可以加一个In。小数相乘对精度要求比较高,转换成对数以后就不用太高的精度。例如0.00001*0.000001 转化成log10为底的话直接是一个整数。
-
贝叶斯网络
A是原因影响b,ab一起会影响c。a,b,c的联合概率。
-
实际贝叶斯网络
如下图我们刻画呼吸困难只需要4个参数0.1 0.7 0.8 0.9(对应四种可能性的结果)对比不用贝叶斯网络我们要用2的5次方个参数才能判断结果。所以利用贝叶斯网络降低计算的复杂度。
-
一个示例
因为条件不是互补的,当a是t的时候,打电话的概率是0.7 不打是0.3。a是f的时候打电话是0.01 不打是0.99。
parents 如上图alarm就是john的parents
-
贝叶斯网络模型判断条件独立
如果可以写成这种形式,则可以说条件独立。
对以上概念的说明举例:
注意看他们已知未知的情况下,造成的条件独立。
-
马尔可夫模型
马尔可夫毯讲解如下:
绿色都是条件独立的,框内的表示你的parents,亲家,还有孩子,这些都是不独立的。毯子以外的都是独立的。
-
贝叶斯网络的构建
选取好节点,然后依次去添加他,然后如下下图计算比较看是不是独立的。
最后的结果如图,因此节点的选取顺序是很重要的。
-
混合模型的情况
-
贝叶斯网络推导
相当于对其他变量求积分了
-
因子图
=没什么意思,可以直接忽略
-
取消贝叶斯网络的环
具体步骤:
Y写错了,是Xi与Xj
11.支持向量机
对偶函数
新的理解,因为都是在求下界所以肯定是在驻点处求,求导=0,然后代入拉格朗日函数便得到对偶函数。-
分割与分离超平面
-
我们需要选出多个分割面中的最优的一个
一些基本的概念:可分指集合可分割,不可分相当于集合有重叠的点。
- 线性可分支持向量机
低维不可分,高维可能就能分了。比如两个球,把它照在墙上可能会重叠(不可分)。我们想办法通过这个映射回到这两个三维的球去分割他。
按这样来理解:
min是求所有样本点到一个线的最小距离,max是求很多线之中求最小的点距离他最远的。(找一条分割超平面,找距离所有样本的最小距离的最大值)
我们可以通过一定的缩放,让所有点带到这个直线上的时候(函数距离)总是大等1的。因为这部分要大等1,那么她的min就是1.并且代入=1的点还是支撑向量。带1进去。
建立拉格朗日算法
进一步优化框架
注意计算是内积,y代表是正负点的值(1,-1)
-
有噪声,非线性可分的情况
跟之前线性可分一致的方式。最后拿到新的约束条件。
-
SMO
利用smo解决svm的学习问题,因为这里有n个a的参数。
12.EM算法(期望最大化)
- EM算法
用于样本无法完全估计的情况,比如这种我们只能知道身高,并不能精确知道他们的性别。我们假定男女身高都是高斯的分布。
pai(k)是一个先验的值: em算法是先来假设这个值再来迭代,比如我们可以先假设男女性的比例为1:1。后面来迭代。
表达的意思是:N表示正态分布,后面两个参数是表示这个正太分布的均值和方差,xi是指具体的那个数据,这里整体是指:这种分布下取得xi的概率为多少。
- 按步骤来看
步骤1,这些都是我们先给一个先验的值然后不断去迭代他。例如我们假设男女比例是1:1,男性均值是177,方差是10,我们代入一个数据身高178cm,我们根据这个公式的到178属于男性的概率。
根据极大释然估计我们得到的结论(我们知道x1,x2,x3....我们能知道他们整体的均值和方差),样本均值就是均值,样本方差就是方差。所以把下面这一步得到的u与sigmo带进去迭代。(y(i,k)*x相当于代表这个数据从k部分生成了多少的值,相当于一个值是由其中一个部分贡献出来的概率。由此可以有n个数据,用这个数据当作一个高斯分布算出新的u与sigmo)
-
EM提出
就跟之前那样的理解一样,然后也是不断去迭代。
wij表示:第i个样本属于j这个类别的概率。(e-step)
再把这三个新得到的值重新代入estep重新去迭代他。(后面计算的结论其实和第一步第二步那几张图那种朴素的想法是一致的。)
具体的一个例子:
https://blog.csdn.net/u011300443/article/details/46763743
代码:
https://blog.csdn.net/google19890102/article/details/46431715
主题模型
-
主题模型的引入
主题模型可以理解为一种聚类。
z是一个隐变量(因为我们不能直接看出来是什么主题的)。多项分布(利于只有两个词二项分布,多项分布是指取值可以取n个)
-
找目标函数
观察到第i个文档出现了wj这些词汇,算出主题的概率。
-
具体步骤
看不懂的话帮助理解资料如下:
http://www.cnblogs.com/zhangchaoyang/articles/5668024.html
: LDA模型
-
共轭分布
这里可以把alpha和beta理解成伪计数(相当于历史经验而来得到的计数)
把alpha和beta这些具体的实数看成有n维的,所有写成alpha向量的形式。把上面的变量概率theta,1-theta等等看成p的向量。规划因子这部分是直接写出来,具体推论这里不考虑。
x1,x2表示独立的参数(例如军事,政治主题分别的概率),根据第二张图可以发现在a=0.1的时候区分度就很好,a=1的时候相当于每种主题概率(政治,军事,体育)都相同没有意思,同样a=10也可以看出来区分度是不够的。
-
LDA的仔细解释
主题分布:
天龙八部:爱情,武侠,军事等等主题,我们算出这个主题分布的各个概率,取出较大的几个便可以确定天龙八部的最可能的主题。
-
gibbs 采样
w1这个词,一开始初始化每个词都给他们分配多个主题,结合词分布经过统计计算他可能最后会属于t1,t2,t3...tk个主题然后在这k个主题随机抽取一个主题。不一定是取x=2,也有可能回去取3,初始每个词分配的主题都是乱来的,但是通过mcmc模型之后,能够保证结果是正确的。
-
词分布与主题分布
前面的意思是指t这个词在k主题下出现的概率。nkt,词分布t这个词在k这个主题下的出现的次数。
14次课——采样
-
万金油的做法
想要得到一个红线的目标采样,先去确定一个好采样的q函数,然后在按照刚才的那种思想去采样:通过z0做一条竖线,从0-kq(z0)这一段做一个均匀采样,如果在红线下面就要,否则就不要。
-
采样的意义
可以算出参数来
-
HMM的做法
主要用频率取估计概率。
状态序列可能有两种的情况
p(theta|x,z)还比较好算,因为有采样值(就想抛多次硬币求概率一样)
采样值可以理解成比如抛硬币正面是1,背面为0,通过概率反求采样值。将p(theta|x)循环迭代进去
相当于是前面的z的概率就通过采样先算出来,然后在代入进去。
查看下随机em算法和mc-em算法
-
重新回到采样
采样:其实就是给一个概率分布p(x)去生成若干个样本。
一行表示父代位于第几阶层,表示子代各个阶层可能的概率。
利用前面举例给的矩阵,结合起来可以算出,新的一次迭代,一次迭代下去,最终会收敛。
- 马尔科夫随机过程(为什么都会这么收敛
重点研究状态转移概率矩阵)
两个状态都可以联通(例如父第一代儿子可以转换为1-3代)
将上一张图的2-3点联合起来理解,有如下:
-
MCMC算法
非周期的意思就是:不要是震荡的情况,这种情况是看似满足条件但他可能不收敛。
-
设定接受率
第四点:相当于现在把后面两项看成一个整体了
-
Metropolis-Hastings(第三条是人为设定他小于1)
如果接受就变化状态,不接受就保持状态不变。
认为y1,y2是两个状态怒,y1转到y2.
p(x,y)可以写成p(x)*p(y|x)(条件概率本身),后面可以直接对a()做赋值。
将这个拓展为高维度。
=相当于是把这个条件分布等于一个正态分布。不要把他看成两个数值的相等,想像成赋值的感觉。
同样上面一张图x1=条件部分:其实不是看成等号,相等于这个分布取个值给x1.例如这个条件分布可能是一个正态分布,根据给定条件,取出这个正态分布的一个值给x1.
参考资料
http://www.cnblogs.com/pinard/p/6645766.html
条件随机场
第二点:结合上一章讲的初始概率与子父代那个具体的例子来看。
-
标注问题
先拆分每个单词,然后划分词性。用HMM也可以(相当于每个单词是观察值,隐变量是他们的词性)
马尔可夫:一般看到这个图就意味条件独立。
如图是cancer的马尔可夫毯。(他的孩子,她的父亲,她的亲家)
去掉方向变成右边的东西,我们可以认为这个是新的无向的马尔可夫毯。因为左边的图,大家觉得2,14与8是独立的,觉得不太对。
-
条件随机场
做法步骤:
1.连接所有的双亲;2.去掉所有的方向
因为x是观测值,所有我们认为u与w是对x均有影响且他们两也有影响。
再给定2的情况下,45便是独立的,但又因为上面的做法连接双亲,45又是连接有关联的(矛盾)上图表示45条件独立,但下图45便不是了,所以两图就不是等价的了。
如下图,我们可以说在做的过程中是有一定程度上是可以保持信息的不变形的。
记号:v:点集 e:边集
垂直符号表示独立的意思。第一个,给定其他节点的情况下,1和7是独立的。(成对性)
第二个,给定23节点下,1和其他节点独立。(局部性)
第三个,给定354,1,2和6,7两对节点是有独立性(全局性)
三个性质其实都是等价的。例如1作为一个节点集合,23一个节点集合,4567一个节点集合:1在给定23的情况下,与4567这个集合独立(全局-局部)
-
HMM三个关键问题
https://www.zybuluo.com/frank-shaw/note/130678看这个链接。
根据后向前向概率的定义,我们可以得到单个状态的概率。前向指前t个观测值,后向t+1之后的观测值。
观测输出o的概率,既可以通过前向算法单独计算,也可以通过后向计算,甚至还可以通过前后向一起来计算。
-
两个状态的联合概率
vertibi具体例子:
http://www.360doc.com/content/13/1117/00/9482_329785011.shtml(可以理解成盒子抽球,在哪个盒子中抽的球的概率大就选哪个)-
团与最大团
规划因子
细致:
-
线性链条件随机场
前面是:引入这个指数,首先让之前的正函数可以满足,其次相乘变成了相加。y1,y2一个团(不需要考虑x也是团的一部分:他本质是一个关于y的随机场,我们把x作为条件,因此是条件随机场),y2,y3一个团,把这个看成Tk这个整体的函数,这个函数他可能是需要x作为条件,也是状态i上的,所以要写上x和i。后面是:不同的y到x之间也有不同的连接。根据求积分可以知道z(x)
tk和s1都在yi与yi-1起作用,所以是个小范围的。
-
几个例子
这些特征函数都是需要提前给定的。
补充资料见:https://www.jianshu.com/p/55755fc649b1
-
由此更加简化的形式
-
CRF矩阵形式
-
GRF概率计算问题
当时让i-1时刻的转移到i(*一个M就可以转移)
1是全1的向量
-
参数学习问题
-
预测算法
17次课PCA-SVD
-
主成分分析
一般向量不标示的话,默认是列向量,这里a和u来乘就变成了一个数。我们把这m个数看成一堆随机变量,来看看方差之类的。
为了简便,这里把期望看成0,相当于去均值化。
-
PCA
缺点就是降维之后,不太好解释是什么东西(例如不好知道右图纵轴是什么东西)
-
向量的不相关性
其实是两个参数标准差的乘积。
-
相关系数
-
协方差矩阵
两个公式仅仅差了一个求期望的过程,如果去了均值化,那就可以说求余弦值就等于求相关系数了。
-
PCA总结
第一条:最后一句话的理解:最后特征向量的个数是等于矩阵的维度的。
v是一个n维的,AV就变成了m维的向量。做一个m维的向量u。第一部分是个等式,V表示nn的v方阵。U看成mm(本来是m*n但是他会做一些填补)的U矩阵。中间的那个加和符号表示segma(指一个对角阵)。
填补:
正交阵,相乘1
-
SVD
目的是用后面这三块黄色的部分去代替第一块红色的部分(进行了压缩)
-
SVD与pLSA
plsa复习:
https://blog.csdn.net/u010159842/article/details/48637095
计算词分布和主题分布的参数,然后再将模型参数用来判断主题。
可以把plsa看成一个概率化的矩阵分解过程。
-
SVD示例
取k=2相当于就是只要前两列。(另外一种思路:不把除开红框以外的数值全部变成0,乘回去跟A相差不大)
通过这个红色框我们看到256是很接近的,这跟开始的时候256数据也是比较一致的。
-
聚类用户
相当于U是指的产品,V指的是用户。
-
PCA与SAD区别与意义
如上个例子,sad就是算用户和产品这两个场的内容,pca相当于是对一个场的一个处理。
CNN
深度是神经元的个数
-
池化层pooling
4个框取一个最大值
hinge loss
https://blog.csdn.net/heyc861221/article/details/80125277
20 代码实现
-
2个题目
-
EM算法回顾
z相当于是一个隐变量
Q(z)是z自己的一个概率分布。
-
GMM
w(i)j表示第i份来自第j个高斯分布的概率。
求极大值,找偏导。
x(i)是第i个样本的值:身高1.8 w(i)l:第i个样本属于j类的概率,1.8 女性0.1 男性概率0.9.
刚才是对均值求偏导,现在求方差的。
接着是求概率
peiK 大类的比例(男性比例,女性比例)y(i,k)第i个样本来自第k个组分的概率。
-
线性回归部分
实际中用梯度下降的时候会比较多。
-
优化学习率