主要讲了GDA和NB。 还有laplace smoothing。 感觉三个模型都不是特别难啊。
Gaussian Discriminant Analysis.
之前讲了广义线性模型、牛顿的算法。
之前说的都是discriminant algorithm。 学习\(P(Y|X)\)或者 output\(h_{\theta}(x) \in \{0,1\}\)
generative learning algorithm.
\(P(x|y), P(y)\) 看特征的情况。 根据bayes,
\[P(y=1|x) = \frac{P(x|y=1)P(y=1)}{P(x)}\]
并且 \(P(x) = P(y=0)P(x)+P(y=1)P(x)\)
举例。
Gaussian Discriminant Analysis.
多元高斯分布。
P(x|y) is Gaussian Distribution.
\[z \sim \mathcal N(\vec \mu,\Sigma) \]
\(\Sigma\)是协方差矩阵。
且
\[p(x;\mu,\Sigma)= \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}\exp(-\frac{1}{2}(x-u)^T\Sigma^{-1}(x-u))\]
\(\Box\)不是很懂这个公式,但是实际上正态分布函数是不需要算的。 这里可以看讲义。
注意这里就是做\(P(x|y=1)\)和 \(P(x|y=0)\)的二元高斯分布的投影,然后求交点连线。
定义式
\[P(y) = \phi^y(1-\phi)^{1-y}\] 并且,
\[P(x|y=0)= \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}\exp(-\frac{1}{2}(x-u_0)^T\Sigma^{-1}(x-u_0))\]
\[P(x|y=1)= \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}\exp(-\frac{1}{2}(x-u_1)^T\Sigma^{-1}(x-u_1))\]
实际上我不太懂这里又不是\(P(\epsilon)\)处于大事件,\(\to0\),为什么要\(\max \prod P(x^{(i)},y^{(i)})\). 就是另外一种算法而已。
然而,逻辑回归是 \(\max \prod P(y^{(i)}|x^{(i)})\)。
就是这样,没说谁好。
它和logistic 的关系到底是什么样的?
假设点是正样本。
GDA是logistic,因为有更严格的假设。
所以这个计算是通过bayes出来的, 图中计算出,\(P(x|y=1),P(y=1)\) 然后,\(P(x) = P(x|y=1)P(y=1)+P(x|y=0)P(y=0)\)。 哈哈,原来是这样。 就得到了\(P(y|x)\)。
这个多假设的条件是, \(x|y \sim \mathcal N\) \(\to\) \(P(y=1|x)\)是一个logistic函数。 但是不能反着来。
\(x|y=1 \sim \mathcal Possion(\lambda_1)\)和 \(x|y=0 \sim \mathcal Possion(\lambda_0)\) \(\to\) \(P(y=1|x)\)是一个logistic函数。
所以这又是个参数方程的锅啊。
但是呢,显然GDA不需要太多的数据,因为假设强啊。
第二个就是 Naive Bayes。 也是 generative learning algorithm. 为什么要说,因为GDA要求\(x\)都是连续变量。 但是NB可以是离散的。
\(y=1\)是垃圾邮件。
假设我们有个字典,按顺序,如果邮件中存在这个词,位于第\(i\)行,\(x_i=1\)否则\(x_i=0\)。 因此,\(x \in \{0,1\}^n\)。 也就是说\(x\)有\(2^n\)种可能性。 因此每个\(x_i \sim \mathcal B\),那么就要联立那么多,显然是不可能的,要估计\(2^n-1\)个参数。
给一个强假设。 \(x_i|y\)条件独立。 \[\begin{alignat}{2} P(x_1,\cdots,x_n|y)& =P(x_1|y)P(x_2|y,x_1)\cdots P(x_n|y,x_1,\cdots,x_{n-1}) \\ & = P(x_1|y)P(x_2|y) \cdots P(x_n|y)\\ \end{alignat}\]
\(P(x_2|y,x_1) = P(x_2|y)\)说明,\(x_1\)不影响\(x_2\)。 虽然强到错,但是还是很有效。
假设一些参数,
\[\begin{alignat}{2} \phi_{i|y=1} &= p(x_i=1|y=1) \\ &=\frac{\sum_{i=1}^m\mathcal I\{x_j^{(i)}=1,y^{(i)}=1\}}{\sum_{i=1}^m\mathcal I\{y^{(i)}=1\}}\\ \end{alignat}\]
\[\phi_{i|y=0} = p(x_i=1|y=0)\]
\[\begin{alignat}{2} \phi_y&= p(y=1) \\ &=\frac{\sum_{i=1}^m\mathcal \{y^{(i)}=1\}}{m} \\ \end{alignat}\]
\[p(y|x)\gets p(x|y)p(y)\]
这个模型的假设,只在joint distribution上。
朴素贝叶斯这样写更容易理解,
\[p(y=1|x) = \frac{p(x|y=1)p(y=1)}{p(x|y=1)p(y=1)+p(x|y=0)p(y=0)}\]
但是\(p(x|y) = 0\)也就是说\(x\)对于\(y\)这个事件没有出现过,那么就出现了,
\[p(y=1|x) = \frac{0 \cdot p(y=1)}{0}\]
因此要修正。
就是laplace smoothing
laplace smoothing
\[P(y=1) = \frac{n_1+1}{n_1+1+n_0+1}\]
这样的话,即使训练组中,\(n_1=0\),也保留了一点可能性,预测\(y=1\)。
一般地,
\[P(y=j)=\frac{\sum_{j=1}^m \mathcal I\{y^{(i)}=j\}+1}{m+k}\]
\[\begin{alignat}{2} \phi_{i|y=1} &= p(x_i=1|y=1) \\ &=\frac{\sum_{i=1}^m\mathcal I\{x_j^{(i)}=1,y^{(i)}=1\}+1}{\sum_{i=1}^m\mathcal I\{y^{(i)}=1\}+2}\\ \end{alignat}\]