5.把Multinomial分布从多项式形式转化成指数族分布的形式。
\[y=\{1,2,\cdots,k\},k个参数:\Phi_1,\Phi_2,\cdots,\Phi_k,其中\Phi_i=P(y=i),i=1,2,\cdots,k,所以其实是k-1个参数。\]
\[令T_1=\begin{bmatrix}1\\0\\0\\\vdots\\0\end{bmatrix},T_2=\begin{bmatrix}0\\1\\0\\\vdots\\0\end{bmatrix}\cdots,T_{k-1}=\begin{bmatrix}0\\0\\\vdots\\0\\1\end{bmatrix},T_k=\begin{bmatrix}0\\0\\\vdots\\0\\0\end{bmatrix}\in R^{k-1},定义指示函数:1\{True\}=1,1\{False\}=0\]
\[用指示函数表示向量T(y)的第i个元素:T(y)_i=1\{y=i\}\]
\[\begin{alignat}{1}那么P(y)&={\Phi_1}^{1\{y=1\}}\cdot{\Phi_2}^{1\{y=2\}}\cdots\cdot{\Phi_k}^{1\{y=k\}}\\&={\Phi_1}^{T(y)_1}\cdot{\Phi_2}^{T(y)_2}\cdots\cdot{\Phi_k}^{1-\sum_{i=1}^{k-1}T(y)_i}\\&=\cdots\\&=b(y)exp\{\eta^TT(y)-a(\eta)\}\end{alignat}\]
上面写法和4中写法的不同主要由他们不同的思考方式造成,4中的思考方式是排列组合的想法,上面的我就不是很清楚。
\[其中\eta=\begin{bmatrix}\log\frac{\Phi_1}{\Phi_k}\\\vdots\\\log\frac{\Phi_{k-1}}{\Phi_k}\end{bmatrix}\in \mathcal{R^{k-1}},a(\eta)=-\log(\Phi_k),b(y)=1\]
\[解出\Phi_i=\frac {e^{\eta_i}}{1+\sum_{j=1}^{k-1}e^{\eta_j}}=\frac {e^{\theta_ix}}{1+\sum_{j=1}^{k-1}e^{\theta_jx}},i=1,2,\cdots,k-1\]
\[h_\theta (x)=E(T(y)|x;\theta)=E \left( \begin{bmatrix}1\{y=1\}\\\vdots\\1\{y=k-1\}\end{bmatrix}\Bigg|x;\theta \right) =\begin{bmatrix}\Phi_1\\\vdots\\\Phi_{k-1}\end{bmatrix}=\begin{bmatrix}\frac {e^{\theta_1}x}{1+\sum_{j=1}^{k-1}e^{\theta_jx}}\\\vdots\\\frac {e^{\theta_{k-1}}x}{1+\sum_{j=1}^{k-1}e^{\theta_jx}}\end{bmatrix}\]
6.softmax回归算法是logistic算法的推广可以判断k种情况。
5.完整的贝叶斯概率模型实现
1.判别和生成
对不同类别样本分别进行建模。曾经有人用logistic回归做医学统计,被行内人鄙视,其实很简单,很专业的领域内就应该用贝
叶斯集合专业经验和观点才对的。判别的形式定义:
\[直接通过学习得到后验概率P(y|x)或者假设函数h_\theta(x)\to \{1,0\}直接做判断。\]
生成的形式定义不一样:
\[\begin{alignat}{1}&首先对目标所属分类下分别进行概率建模P(x|y),再利用专业知识建模先验概率P(y),就得到特征概率模型P(x)=P(x|y)P(y)\\&再得到样本P(x,y)之后,最后得到目标后验概率P(y|x)=\frac{P(x,y)}{P(x)}。\end{alignat}\]
其实所谓生成学习算法就是建立了一个从已知到未知的完整的贝叶斯概率模型。
—>分类的一般方式就是形成若干分界的界面。如果是分两类,在平面上用线去分,在三维空间中用面去分,在n维空间中用
n-1维的一个几何体去分,很特别的在现实空间中,一个刹那就是一个点,也可以斜着时空切,也可以选时空中的一个,在一
个平面上两点就能确定一条线了,最少三点就能就能确定一个平面了,在四维空间中四个点就能确定一个体了。也就是一个划分四维空间的“面”,也就是说在现实生活中至少4个不同的瞬间就能使得事情有显著差异了,差不多就是四个标准你就做了判
断了属于A还是属于B。
—>我觉得传统某些处理不是很合适,比如事情A和事情B都知道了,也就是说既可以假设P(A|B),也可以假设P(B|A),为什么我觉
得这样不太妥当呢。
2.高斯判别分析
\[设有连续的特征输入x \in \mathcal{R^{n}},假设P(x|y)服从高斯分布\mathcal{N}(\vec{\mu},\Sigma),其中\Sigma=E\{(x-\mu)(x-\mu)^T\}\]
—>期望向量和协方差矩阵的意义:期望向量就是联合密度函数的中心。协方差阵的对角元表示某个维度的方差,自然是方差越小越集中。方差参数能保证方差正负无穷大时概率都趋近于零。如何理解协方差阵中的非对角元。
—>两维度相关时钟形对称轴的同坐标轴倾斜的角度是怎样的?
假设目标输出服从伯努利分布:
\[P(y)=\Phi^y(1-\Phi)^{1-y}\]
已有分类下特征服从高斯分布:
\[P(x|0)=\frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}\exp\left\{-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0)\right\}\\P(x|1)=\frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}\exp\left\{-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1)\right\}\]
给定样本之后写出对数似然函数(Joint Likelyhood):
\[\begin{alignat}{1}l(\Phi,\mu_0,\mu_1,\Sigma)&=\log \prod_{j=1}^{m}P(x^{(j)},y^{(j)})\\&=\log \prod_{j=1}^{m}P(x^{(j)}|y^{(j)})P(y^{(j)})\end{alignat}\]
不同于逻辑回归时候的条件对数似然函数,直接从样本得到后验概率分布的似然估计,对\theta做估计:
\[l(\theta)=\prod_{j=1}^{m}P(y^{(j)}|x^{(j)};\theta)\]
回到正轨,求\mu_0,\mu_1,\Sigma使得l(\Phi,\mu_0,\mu_1,\Sigma)最大,做最大似然估计,结果是
[推导]:
\[\Phi=\frac{\sum_{j=1}^{m}y^{(j)}}{m}=\frac{\sum_{j=1}^{m}1\{y^{(j)}=1\}}{m}\]
\[\mu_0=\frac{\sum_{j=1}^{m}1\{y^{(j)}=0\}x^{(j)}}{\sum_{j=1}^{m}1\{y^{(j)}=0\}}\]
\[\mu_1=\frac{\sum_{j=1}^{m}1\{y^{(j)}=1\}x^{(j)}}{\sum_{j=1}^{m}1\{y^{(j)}=1\}}\]
\[\Sigma=?\]
得到模型估计之后,给定新的样本特征,对目标作出最大可能预测:
\[\begin{alignat}{1}\arg \underset{y}{\max}P(x|y)=\arg \underset{y}{\max}\frac{P(x|y)P(y)}{P(x)}&=\arg \underset{y}{\max}P(x|y)P(y)\\&=\arg \underset{y}{\max}P(x|y),如果P(y)是Uniform的。\end{alignat}\]
\[注:arg 指argument.Uniform指的均匀分布 .\]
高斯判别分析和逻辑回归的联系:
比如,我们有训练样本(x,y),y\in {1,0},两类样本分别服从高斯分布,可以画出P(y=1|x)的概率看起来是正态函数的分布函数:\[P(y=1|x)=\frac{P(x|y=1)P(y=1)}{P(x)}其中P(x)=P(x|y=1)P(y=1)+P(x|y=0)P(y=0)\]
同时,P(y=1|x)的函数图形也类似一个sigmoid函数。
它们之间的本质区别在两个函数的位置和陡峭程度不一样。
[看看sigmoid函数的导函数]
—>如果P(x|y=1)和P(x|y=0)两个密度函数相交于点(\dot{x},P(\dot{x}|y=1))那么P(y=1|\dot{x})=P(y=0|\dot{x})=0.5
—>两个密度函数除一个密度函数得到一个分布函数,同时它也是一个条件密度?Remarkable.
—>想跟恩达同学讲,不要觉得这种类同很神奇,这是将1看做发生,将0看做不发生假设和的概率定义导致的必然结果。
发现最开始的假设!
---------------------------------------------------------------------------------------------------------------------------------------------------------
3.利用完整的贝叶斯概率模型的优劣:
设P(x|y)服从高斯分布,P(y)服从两点分布,利用完整的贝叶斯概率模型,得到
后验分布P(y=1|x)
是Logistic函数,但其逆命题
不成立。
一般地,若P(y)服从两点分布,只要P(x|y=1)和P(x|y=0)服从同一种指数族分布——比如伽马分布、泊松分布、指数
伽马分布、贝塔分布,利用完整的贝叶斯概率模型,就能得到P(y=1|x)是Logistic函数。这也是另一种导出logistic函数的方法。
[定理证明]
逻辑回归对数据的假设少,所以更具鲁棒性,不能判断数据分布时,逻辑回归是不错选择。
---------------------------------------------------------------------------------------------------------------------------------------------------------
4.应用朴素贝叶斯做垃圾邮件分类(多元伯努利事件模型)
\[存放词语的字典向量D=(a,abs,answer,\cdots,buy,\cdots,zymurgy)^T. y \in\{1,0\},y=1:是垃圾邮件,\]
\[y=0:不是垃圾邮件.邮件的特征向量x\in \{0,1\}^N,定义特征中元素x_i=1,如果邮件中存在d_i;\]
\[x_i=0,如果邮件中不存在d_i,i=1,2,3,\cdots,N.并且假设在给定y条件下邮件中语词彼此独立,即有:\]
\[\begin{alignat}{1}P(x_1,x_2,x_3,\cdots,x_N|y)&=P(x_1|y)P(x_2|x_1y)P(x_3|x_2x_1y)\cdots P(x_N|x_{N-1}\cdots x_2x_1y)\\&=P(x_1|y)P(x_2|y)P(x_3|y)\cdots P(x_N|y)=\prod_{i=1}^{N}P(x_i|y)\end{alignat}\]
—>x_i彼此条件独立的假设在真实英语中并不对。
对P(x|y)建模写出概率参数:
\[\Phi_{i|y=1}=P(x_i=1|y=1) ; \Phi_{i|y=0}=P(x_i=1|y=0) ;\Phi_y=P(y=1)\]
写出联合似然函数:
\[L(\Phi_y,\Phi_{i|y=1},\Phi_{i|y=0})=\prod_{j=1}^{m}P(x^{(j)},y^{(j)})\]
利用最大似然法求出估计值:
\[\Phi_{i|y=1}=\frac{\sum_{j=1}^{m}1\{x_{i}{(j)}=1,y^{(j)}=1\}}{\sum_{j=1}^{m}1\{y^{(j)}=1\}},i=1,2,\cdots,N\]
\[\Phi_{i|y=0}=\frac{\sum_{j=1}^{m}1\{x_{i}{(j)}=1,y^{(j)}=0\}}{\sum_{j=1}^{m}1\{y^{(j)}=0\}},i=1,2,\cdots,N\]
\[\Phi_y=\frac{\sum_{j=1}^{m}1\{y^{(j)}=1\}}{m}\]
对给定的要判断的邮件用贝叶斯求出其是垃圾邮件的概率:
\[给定要判断的邮件\hat{x}=(\hat{x_1},\hat{x_2},\cdots,\hat{x_N})^T\]
\[集合N_1\cup N_0=\{1,2,\cdots,N\},N_1\cap N_0=\varnothing, \hat{X_1}=\{x_i\}_{i \in N_1},\hat{X_0}=\{x_i\}_{i \in N_1}\]
利用已经求出的估计值:
\[P(\hat{x}|y=1)=\frac{P(\hat{x},y=1)}{P(y=1)}=\frac{P(\hat{x_1},\hat{x_2},\cdots,\hat{x_N},y=1)}{\Phi_y}=\frac{\prod_{i \in N_1}{}P(\Phi_{i|y=1})}{\Phi_y}\]
---------------------------------------------------------------------------------------------------------------------------------------------------------
5.Laplace平滑
当在要判别的邮件中发现没包含在字典中的新词语,即极大似然估计不够用时候可采取的方法。此法是在尝试估计太阳明天升起的概率时想出来的。不能因为没观测到某事就说某事不可能,就是这里采取的开放的观点。
\[P(y=1)=\frac{'1's+1}{'1's+1+'0's+1}\]
针对垃圾邮件判别的最大似然估计量将变成:
\[\Phi_{i|y=1}=\frac{\sum_{j=1}^{m}1\{x_{i}{(j)}=1,y^{(j)}=1\}+1}{\sum_{j=1}^{m}1\{y^{(j)}=1\}+2},i=1,2,\cdots,N\]
\[一般地,y\in\{1,2,\cdots ,k\},P(y=j)=\frac{\sum_{i=1}^{m}1\{y^{(i)}=j\}+1}{m+k}\]
而且Laplace平滑能够得到最优估计。
----------------------------------------------------------------------------------------------------------------------------------------------------------
6.多项式事件模型:特征向量元能取k种的朴素贝叶斯
\[字典中的词语d_i \in D,i=1,2,\cdots,N。其中x_i=i|x_i=d_i \in {1,2,3,\cdots,n}表示从邮件内容词语到字典词语的索引。\]
\[第j个训练样本X^{(j)}=\{x_{1}^{(j)},x_{2}^{(j)},\cdots,x_{n_j}^{(j)}\}^T,n_j表示邮件中词语的数量,j=1,2,\cdots,m。\]
\[特征维和观测维张成n+1维随机向量:P(x,y)=\prod_{i=1}^{n}P(x_i|y)P(y)\]
\[需要估计的模型参数:\Phi_{k|y=1}=P(x_i=k|y=1),\Phi_{k|y=0}=P(x_i=k|y=0),\Phi_y=P(y)\]
\[\begin{alignat}{1}直观最大似然参数估计和Laplace平滑:\Phi_{k|y=1}&=\frac{\sum_{j=1}^{m}1\{y^{(j)}=1\}\sum_{i=1}^{n_j}1\{x_{i}^{(j)}=k\}+1}{\sum_{j=1}^{m}1\{y^{(j)}=1\}\cdot n_j+N},k \in{1,2,\cdots,N}\\\Phi_y&=\frac{\sum_{j=1}^{m}1\{y^{(j)}=1\}}{m}\end{alignat}\]
—>Laplace平滑更像一种定义的拓展。恩达符号定义的不规范,给他讲解带来蛮多麻烦。
—>多项式事件模型在自然语言处理中被称做一元模型,其结果与文本顺序无关。
故事:学到的最重要的东西是机器学习的思想方法,模型的话可以根据需要以及过去拥有的知识自己建造出来的,就像一个建筑师。小时候,幼儿园和我家门口有蛮多建材商店,里面裁玻璃、装窗框、切广告字贴纸。一次,他们废弃了好多的白色泡沫
垫堆在路边,它们变成孩子们无比爱惜的财产。我哥用竹签子把若干的三角形体,多边形体穿起来竟然形成了一个军舰的架势
。真是令我无比艳羡,我有点怪我自己,怎么没弄成一个很棒的模型呢?小学时候,我曾煞有介事地告诉一位从幼儿园到高中一直同班的一位同学“造吗?我们该做一个用螺旋钮控制的碗柜!”,我还很详细地画了个图纸,没法儿实施!哪有我需要的灵
巧的锯子和听话的木头。后来见过很专业的建筑师,几乎都是荷兰人他们一个个高头大马,演示自己的作品一点不含糊,充满热爱。就在我小小的那个年代互联网已经萌芽,如今人们生活其中,就是所谓的影响力。
----------------------------------------------------------------------------------------------------------------------------------------------------------