CS229笔记:生成学习算法
在线性回归、逻辑回归、softmax回归中,学习的结果是\(p(y|x;\theta)\),也就是给定\(x\)的条件下,\(y\)的条件概率分布,给定一个新的输入\(x\),我们求出不同输出的概率,我们称这一类学习算法为判别学习算法(discriminative learning algorithm);这一节,我们介绍另一类学习算法:生成学习算法(generative learning algorithm),在生成学习算法中,我们对\(p(x|y)\)和\(p(y)\)建模,也就是说,我们求出各个标签的概率以及在给定标签下输入变量的分布,根据贝叶斯公式可以求出:
\[
\begin{align*}
p(y|x) &= \frac{p(x|y)p(y)}{p(x)} \\
&= \frac{p(x|y)p(y)}{\sum_{j \in \mathcal{Y}}p(x|j)p(j)}
\end{align*}
\]
给定输入\(x\),我们预测其标签时,所求的就是:
\[
\begin{align*}
y &= \arg\max_y p(y|x)\\
&= \arg\max_y \frac{p(x|y)p(y)}{p(x)}\\
&= \arg\max_y p(x|y)p(y)
\end{align*}
\]
高斯判别分析
模型求解
我们简单介绍一下多元高斯分布,多元高斯分布一般有两个参数:均值向量 \(\mu \in \mathbb{R}^{n}\)和协方差矩阵\(\Sigma \in \mathbb{R}^{n \times n}\)(半正定),其概率密度函数为:
\[
p(x;\mu,\Sigma) = \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}\exp\left(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\right)
\]
吴恩达老师在笔记中对多元高斯分布做了比较多的介绍,这里就不详细讲了。
我们介绍的第一个生成学习算法是高斯判别分析(Gaussian discriminant analysis, GDA),它处理的是二分类问题。在GDA中,我们用伯努利分布对\(p(y)\)建模,用多元高斯分布对\(p(x|y)\)建模,即:
\[
\begin{align*}
y &\sim \text{Bernoulli}(\phi)\\
x|y=0 &\sim \mathcal{N}(\mu_0, \Sigma)\\
x|y=1 &\sim \mathcal{N}(\mu_1, \Sigma)\\
\end{align*}
\]
\(GDA\)的模型参数为\(\phi, \mu_0, \mu_1, \Sigma\),我们求出对数似然,利用最大似然来求这些参数:
\[
\begin{align*}
l(\phi, \mu_0, \mu_1, \Sigma) &= \log \prod_{i=1}^{m}p(x^{(i)},y^{(i)};\phi, \mu_0, \mu_1, \Sigma) \\
&= \sum_{i=1}^{m} \log p(x^{(i)},y^{(i)};\phi, \mu_0, \mu_1, \Sigma) \\
&= \sum_{i=1}^{m} \log p(y^{(i)};\phi)p(x^{(i)}|y^{(i)};\mu_0, \mu_1, \Sigma) \\
&= \sum_{i=1}^{m} \log \phi^{y^{(i)}}(1-\phi)^{1-y^{(i)}}(2\pi)^{-\frac{n}{2}}|\Sigma|^{-\frac{1}{2}}\exp\left(-\frac{1}{2}(1-y^{(i)})(x^{(i)}-\mu_0)^T\Sigma^{-1}(x^{(i)}-\mu_0)\right) \\
&\qquad\exp\left(-\frac{1}{2}y^{(i)}(x^{(i)}-\mu_1)^T\Sigma^{-1}(x^{(i)}-\mu_1)\right) \\
&= \sum_{i=1}^{m}y^{(i)}\log \phi + (1-y^{(i)})\log(1-\phi) - \frac{n}{2}\log(2\pi)-\frac{1}{2}\log |\Sigma|\\
&\qquad-\frac{1}{2}(1-y^{(i)})(x^{(i)}-\mu_0)^T\Sigma^{-1}(x^{(i)}-\mu_0)-\frac{1}{2}y^{(i)}(x^{(i)}-\mu_1)^T\Sigma^{-1}(x^{(i)}-\mu_1)
\end{align*}
\]
先对\(\phi\)求导:
\[
\begin{align*}
\frac{\partial l(\phi,\mu_0,\mu_1,\Sigma)}{\partial \phi}
&= \sum_{i=1}^{m}\frac{y^{(i)}}{\phi} + \frac{-(1-y^{(i)})}{1-\phi}\\
&= \sum_{i=1}^{m}\frac{y^{(i)}-\phi}{\phi(1-\phi)}\\
\end{align*}
\]
令\(\frac{\partial l(\phi,\mu_0,\mu_1,\Sigma)}{\partial \phi} = 0\)得:\(\phi = \frac{1}{m}\sum_{i=1}^{m}y^{(i)}\)
再对\(\mu_0\)求导:
\[
\begin{align*}
\frac{\partial l(\phi,\mu_0,\mu_1,\Sigma)}{\partial \mu_0}
&= \sum_{i=1}^{m}-\frac{1}{2}(1-y^{(i)})\cdot 2\Sigma^{-1}(x^{(i)}-\mu_0) \cdot (-1)\\
&= \Sigma^{-1}\sum_{i=1}^{m}(1-y^{(i)})(x^{(i)}-\mu_0)\\
\end{align*}
\]
令\(\frac{\partial l(\phi,\mu_0,\mu_1,\Sigma)}{\partial \mu_0}=0\)得:\(\mu_0 = \frac{\sum_{i=1}^{m}(1-y^{(i)})x^{(i)}}{\sum_{i=1}^{m}(1-y^{(i)})}\),同理:\(\mu_1 = \frac{\sum_{i=1}^{m}y^{(i)}x^{(i)}}{\sum_{i=1}^{m}y^{(i)}}\)
最后考虑对\(\Sigma\)求导:
\[
\begin{align*}
\frac{\partial l(\phi,\mu_0,\mu_1,\Sigma)}{\partial \Sigma}
&= \sum_{i=1}^{m}-\frac{1}{2}\cdot\frac{1}{|\Sigma|}\cdot\frac{\partial|\Sigma|}{\partial\Sigma}-\frac{1}{2}(1-y^{(i)})(x^{(i)}-\mu_0)(x^{(i)}-\mu_0)^T\cdot(-\Sigma^{-2})\\
&\quad-\frac{1}{2}y^{(i)}(x^{(i)}-\mu_1)(x^{(i)}-\mu_1)^T\cdot(-\Sigma^{-2})\\
&= \sum_{i=1}^{m}-\frac{1}{2}\cdot\frac{1}{|\Sigma|}\cdot|\Sigma|\Sigma^{-1}-\frac{1}{2}(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^T\cdot(-\Sigma^{-2})\\
&= \sum_{i=1}^{m}-\frac{1}{2}\cdot\Sigma^{-1}+\frac{1}{2}(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^T\cdot\Sigma^{-2}\\
\end{align*}
\]
令\(\frac{\partial l(\phi,\mu_0,\mu_1,\Sigma)}{\partial \Sigma} = 0\)得:\(\Sigma = \frac{1}{m}\sum_{i=1}^{m}(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^T\)
在对\(\Sigma\)求导的过程中,我们用到了一个结论:
\[
\frac{\partial |\Sigma|}{\partial \Sigma} = |\Sigma|\Sigma^{-1}
\]
综上,GDA中的参数为:
\[
\begin{align*}
\phi &= \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}}{m}\\
\mu_0 &= \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=0\right\}x^{(i)}}{\sum_{i=1}^{m}1\left\{y^{(i)}=0\right\}}\\
\mu_1 &= \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}x^{(i)}}{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}}\\
\Sigma &= \frac{\sum_{i=1}^{m}(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^T}{m}
\end{align*}
\]
GDA v.s. LR
我们把\(p(y=1|x;\phi, \Sigma, \mu_0, \mu_1)\)看作是\(x\)的函数:
\[
\begin{align*}
&p(y=1|x;\phi, \Sigma, \mu_0, \mu_1)\\
= &\frac{p(y=1,x;\phi, \Sigma, \mu_0, \mu_1)}{p(x;\phi, \Sigma, \mu_0, \mu_1)}\\
= &\frac{p(y=1)p(x|y=1;\phi, \Sigma, \mu_0, \mu_1)}{p(y=0)p(x|y=0;\phi, \Sigma, \mu_0, \mu_1)+p(y=1)p(x|y=1;\phi, \Sigma, \mu_0, \mu_1)}\\
= &\frac{\phi \cdot (2\pi)^{-\frac{n}{2}}|\Sigma|^{-\frac{1}{2}}\exp(\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1))}{\phi \cdot (2\pi)^{-\frac{n}{2}}|\Sigma|^{-\frac{1}{2}}\exp(\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1)) + (1-\phi) \cdot (2\pi)^{-\frac{n}{2}}|\Sigma|^{-\frac{1}{2}}\exp(\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0))}\\
= &\frac{\phi \cdot \exp(\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1))}{\phi \cdot \exp(\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1)) + (1-\phi) \cdot \exp(\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0))}\\
= &\frac{1}{1 + \frac{1-\phi}{\phi} \cdot \exp(\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0) - \frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1))}\\
= &\frac{1}{1 + \frac{1-\phi}{\phi} \cdot \exp(\frac{1}{2}x^T\Sigma^{-1}(\mu_1-\mu_0)+\frac{1}{2}(\mu_1-\mu_0)^T\Sigma^{-1}x + \frac{1}{2}\mu_0^T\Sigma^{-1}\mu_0 + \frac{1}{2}\mu_1^T\Sigma^{-1}\mu_1)}\\
= &\frac{1}{1 + \frac{1-\phi}{\phi} \cdot \exp(\frac{1}{2}(\mu_1-\mu_0)^T(\Sigma^{-1})^Tx+\frac{1}{2}(\mu_1-\mu_0)^T\Sigma^{-1}x + \frac{1}{2}\mu_0^T\Sigma^{-1}\mu_0 + \frac{1}{2}\mu_1^T\Sigma^{-1}\mu_1)}\\
= &\frac{1}{1 + \exp((\mu_1-\mu_0)^T\Sigma^{-1}x + \frac{1}{2}\mu_0^T\Sigma^{-1}\mu_0 + \frac{1}{2}\mu_1^T\Sigma^{-1}\mu_1 + \log(\frac{1-\phi}{\phi}))}\\
\end{align*}
\]
\(p(y=1|x;\phi,\Sigma, \mu_0, \mu_1)\)恰好是\(x\)带有截距项时,逻辑回归的假设函数形式。
在推导逻辑回归时,我们只假设了\(y\)服从伯努利分布,而没有假设同类样本服从高斯分布,所以GDA做了更强的假设,我们可以认为GDA是逻辑回归的一种特例,两者比较:
- 逻辑回归的假设较弱,所以适用范围广,鲁棒性更强
- 当同类数据的确符合高斯分布时,GDA的效率更高
朴素贝叶斯
朴素贝叶斯(Naive Bayes)模型也是一种生成学习算法,与GDA类似,它需要对\(p(y)\)和\(p(x|y)\)建模,不同的是,在GDA中,\(x\)是连续的,而在朴素贝叶斯中,\(x\)的取值是离散的,我们先介绍一种多元伯努利事件模型(multi-variate Bernoulli event model),在这一模型中,\(x\)的每个分量只有\(0\)和\(1\)两种取值,也就是说,对于\(x \in \mathbb{R}^{n}\),\(x_i \in \left\{0, 1\right\}\)。
朴素贝叶斯分类器
在多元伯努利事件模型中,对于\(n\)维的变量\(x\),可能的取值有\(2^n\)种,当\(n\)比较大时,要求出每种可能取值的概率是不现实的(如果用多项式分布对\(p(x|y)\)建模,那么参数的个数将是\(2^n-1\)个!),因此,我们需要引入一个很强的假设——朴素贝叶斯假设(Naive Bayes Assumption):
给定标签\(y\)的条件下,\(x\)的各个分量是条件独立的,即:
\(\forall i \neq j, y \in \{0,1\}, p(x_i|y,x_j) = p(x_i|y)\)
基于这一假设,我们得到的算法就是朴素贝叶斯分类器(Naive Bayes classifier),此时,我们可以将\(p(x|y)\)写作:
\[
\begin{align*}
p(x|y) &= p(x_1x_2\cdots x_n|y)\\
&=p(x_1|y)p(x_2|y)\cdots p(x_n|y)\\
&= \prod_{i=1}^n p(x_i|y)
\end{align*}
\]
模型的参数为:
\[
\begin{align*}
\phi_y &= p(y=1)\\
\phi_{i|y=0} &= p(x_i=1|y=0), \quad i=1,2,\dots,n\\
\phi_{i|y=1} &= p(x_i=1|y=1), \quad i=1,2,\dots,n\\
\end{align*}
\]
给定训练数据集\(\left\{(x^{(i)}, y^{(i)})|i=1,2, \dots,m\right\}\),对数似然为:
\[
\begin{align*}
&l(\phi_y, \phi_{i|y=0}, \phi_{i|y=1})\\
= &\log \prod_{i=1}^{m}p(x^{(i)},y^{(i)})\\
= &\log \prod_{i=1}^{m}p(y^{(i)})p(x^{(i)}|y^{(i)})\\
= &\log \prod_{i=1}^{m}\phi_y^{y^{(i)}}(1-\phi_y)^{1-y^{(i)}}\left[\prod_{j=1}^{n}\phi_{j|y=0}^{x^{(i)}_j}(1-\phi_{j|y=0})^{1-x^{(i)}_j}\right]^{1-y^{(i)}}\left[\prod_{j=1}^{n}\phi_{j|y=1}^{x^{(i)}_j}(1-\phi_{j|y=1})^{1-x^{(i)}_j}\right]^{y^{(i)}}\\
= &\sum_{i=1}^{m}y^{(i)}\log \phi_y + (1-y^{(i)}) \log(1-\phi_y)^{} +(1-y^{(i)})\left[\sum_{j=1}^{n}x^{(i)}_j\log\phi_{j|y=0} + (1-x^{(i)}_j)\log(1-\phi_{j|y=0})\right]\\
&+ y^{(i)}\left[\sum_{j=1}^{n}x^{(i)}_j\log\phi_{j|y=1} + (1-x^{(i)}_j)\log(1-\phi_{j|y=1})\right]\\
\end{align*}
\]
令导数等于\(0\),可以得到:
\[
\begin{align*}
\phi_y &= \frac{\sum_{i=1}^{m}y^{(i)}}{m} = \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}}{m}\\
\phi_{j|y=0} &= \frac{\sum_{i=1}^{m}(1-y^{(i)})x^{(i)}_j}{\sum_{i=1}^{m}(1-y^{(i)})} = \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=0\land x^{(i)}_j=1\right\}}{\sum_{i=1}^{m}1\left\{y^{(i)}=0\right\}}\\
\phi_{j|y=1} &= \frac{\sum_{i=1}^{m}y^{(i)}x^{(i)}_j}{\sum_{i=1}^{m}y^{(i)}} = \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=1\land x^{(i)}_j=1\right\}}{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}}\\
\end{align*}
\]
拉普拉斯平滑
现在,我们考虑一种情况:某个特征,比如说\(x_{35000}\),在所有训练数据中都没有出现过,则:
\[
\begin{align*}
\phi_{35000|y=0} &= \frac{\sum_{i=1}^{m}1\left\{x^{(i)}_{35000}=1 \land y^{(i)}=0\right\}}{\sum_{i=1}^{m}1\left\{y^{(i)}=0\right\}}=0\\
\phi_{35000|y=1} &= \frac{\sum_{i=1}^{m}1\left\{x^{(i)}_{35000}=1 \land y^{(i)}=1\right\}}{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}}=0\\
\end{align*}
\]
考虑到我们在做预测时,所求的\(y\)是:
\[
\begin{align*}
y &= \arg\max_y p(x|y)p(y)\\
&= \arg\max_y p(y)\prod_{i=1}^{n}p(x_i|y)
\end{align*}
\]
由于\(\phi_{35000|y=0}\)和\(\phi_{35000|y=1}\)都是\(0\),所以两种类别的概率估计都是\(0\),无法进行预测。为了解决这一问题,我们引入拉普拉斯平滑(Laplace smoothing)。
考虑一个多项式分布随机变量\(z \in \left\{1, 2, \dots, k\right\}\),给定\(m\)个观测结果\(\left\{z^{(1)}, \dots, z^{(m)}\right\}\),通过最大似然,可以得到参数估计:
\[
\phi_j = \frac{\sum_{i=1}^m1\left\{z^{(i)}=j\right\}}{m}
\]
我们不希望因为没有观测到某种结果,就认为这种结果的概率是\(0\),所以我们使用拉普拉斯平滑来估计参数:
\[
\phi_j = \frac{\sum_{i=1}^m1\left\{z^{(i)}=j\right\}+1}{m+k}
\]
使用拉普拉斯平滑,朴素贝叶斯分类器中的参数估计变成:
\[
\begin{align*}
\phi_{j|y=0} &= \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=0\land x^{(i)}_j=1\right\}+1}{\sum_{i=1}^{m}1\left\{y^{(i)}=0\right\}+2}\\
\phi_{j|y=1} &= \frac{\sum_{i=1}^{m}1\left\{y^{(i)}=1\land x^{(i)}_j=1\right\}+1}{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}+2}\\
\end{align*}
\]
多项式事件模型
前面我们考虑的是\(x\)的每个分量只有\(0\)和\(1\)两种取值的情况,这种模型被称为多元伯努利事件模型,现在我们介绍另一种模型多项式事件模型(multinomial event model),在这种模型中,\(x\)的各个分量独立且服从同一个多项式分布,模型的参数为:
\[
\begin{align*}
\phi_y &= p(y)\\
\phi_{k|y=1} &= p(x_j=k|y=1)\\
\phi_{k|y=0} &= p(x_j=k|y=0)\\
\end{align*}
\]
给定训练集\(\left\{(x^{(i)}, y^{(i)}); i = 1, \dots, m\right\}\),其中\(x^{(i)} = (x^{(i)}_1, \dots, x^{(i)}_{n_i})\),似然函数值为:
\[
\begin{align*}
L(\phi_y, \phi_{k|y=1},\phi_{k|y=0}) &= \prod_{i=1}^{m}p(x^{(i)}, y^{(i)})\\
&= \prod_{i=1}^{m}\left(\prod_{j=1}^{n_i}p(x_j|y^{(i)};\phi_{k|y=1},\phi_{k|y=0})\right)p(y^{(i)};\phi_y)
\end{align*}
\]
通过最大似然,可以得到:
\[
\begin{align*}
\phi_y &= \frac{\sum_{i=1}^m1\left\{y^{(i)}=1\right\}}{m}\\
\phi_{k|y=0} &= \frac{\sum_{i=1}^{m}\sum_{j=1}^{n_i}1\left\{y^{(i)}=0 \land x^{(i)}_j=k\right\}}{\sum_{i=1}^{m}1\left\{y^{(i)}=0\right\}n_i}\\
\phi_{k|y=1} &= \frac{\sum_{i=1}^{m}\sum_{j=1}^{n_i}1\left\{y^{(i)}=1 \land x^{(i)}_j=k\right\}}{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}n_i}\\
\end{align*}
\]
使用拉普拉斯平滑,参数估计为:
\[
\begin{align*}
\phi_{k|y=0} &= \frac{\sum_{i=1}^{m}\sum_{j=1}^{n_i}1\left\{y^{(i)}=0 \land x^{(i)}_j=k\right\}+1}{\sum_{i=1}^{m}1\left\{y^{(i)}=0\right\}n_i+K}\\
\phi_{k|y=1} &= \frac{\sum_{i=1}^{m}\sum_{j=1}^{n_i}1\left\{y^{(i)}=1 \land x^{(i)}_j=k\right\}+1}{\sum_{i=1}^{m}1\left\{y^{(i)}=1\right\}n_i+K}\\
\end{align*}
\]
考虑垃圾邮件分类的例子,在多元伯努利事件模型中,一封邮件的生成方式相当于先根据\(p(y)\)随机地确定是垃圾邮件或不是垃圾邮件,再遍历整个字典(字典的大小为\(n\)),对于第\(i\)个单词,根据\(p(x_i|y)\)随机地确定是否要在邮件中使用这个单词,并且每个单词是否被选择是独立的。
在多项式事件模型中,先根据\(p(y)\)随机地确定是垃圾邮件或者不是垃圾邮件,假设邮件有\(n\)个单词,对于第\(1\)个单词,根据\(p(x=k|y)\)随机地确定它是字典中的哪一个,然后对于第\(2\)个单词,与第一个单词独立但同分布地确定,以此类推,直至确定完\(n\)个单词。
CS229笔记:生成学习算法的更多相关文章
- CS229 Lesson 5 生成学习算法
课程视频地址:http://open.163.com/special/opencourse/machinelearning.html 课程主页:http://cs229.stanford.edu/ 更 ...
- [置顶] 生成学习算法、高斯判别分析、朴素贝叶斯、Laplace平滑——斯坦福ML公开课笔记5
转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9285001 该系列笔记1-5pdf下载请猛击这里. 本篇博客为斯坦福ML公开 ...
- 【cs229-Lecture5】生成学习算法:1)高斯判别分析(GDA);2)朴素贝叶斯(NB)
参考: cs229讲义 机器学习(一):生成学习算法Generative Learning algorithms:http://www.cnblogs.com/zjgtan/archive/2013/ ...
- Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯
(一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解 ...
- 生成学习算法(Generative Learning algorithms)
一.引言 前面我们谈论到的算法都是在给定\(x\)的情况下直接对\(p(y|x;\theta)\)进行建模.例如,逻辑回归利用\(h_\theta(x)=g(\theta^T x)\)对\(p(y|x ...
- 斯坦福《机器学习》Lesson5感想———1、成学习算法
在前面几课里的学习算法的思路都是给定数据集以后.确定基于此数据集的最佳如果H函数,通过学习算法确定最佳如果H的各个參数,然后通过最佳如果函数H得出新的数据集的结果.在这一课里介绍了一种新的思路,它的核 ...
- 挑子学习笔记:DBSCAN算法的python实现
转载请标明出处:https://www.cnblogs.com/tiaozistudy/p/dbscan_algorithm.html DBSCAN(Density-Based Spatial Clu ...
- 【笔记】MAML-模型无关元学习算法
目录 论文信息: Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networ ...
- 强化学习-学习笔记7 | Sarsa算法原理与推导
Sarsa算法 是 TD算法的一种,之前没有严谨推导过 TD 算法,这一篇就来从数学的角度推导一下 Sarsa 算法.注意,这部分属于 TD算法的延申. 7. Sarsa算法 7.1 推导 TD ta ...
随机推荐
- Python+Selenium笔记(十八):持续集成jenkins
(一)安装xmlrunner 使用Jenkins执行测试时,测试代码中会用到这个模块. pip install xmlrunner (二)安装jenkins (1) 下载jekins https: ...
- 使用 Azure PowerShell 监视和更新 Windows 虚拟机
Azure 监视使用代理从 Azure VM 收集启动和性能数据,将此数据存储在 Azure 存储中,并使其可供通过门户.Azure PowerShell 模块和 Azure CLI 进行访问. 使用 ...
- Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
新服务器搭建环境总是有很多问题.在安装MS SQL SERVER 2014 EXPRESS的时候提示无法安装成功,需要先安装 .NET Framework 3.5!但是新问题又来了,使用Windows ...
- linux正则表达式(基础正则表达式+扩展正则表达式)
正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...
- mysql5.7 误删管理员root账户
1.停止数据库,并在mysql配置文件my.cnf中添加skip-grant-tables参数到[mysqld]配置块中 2. 执行 systemctl start mysqld 3. 执行 mysq ...
- laravel 实现思路以及各组件原理
laravel 内核是个IOC容器,IOC是把本来自己实例化的对象. 通过在容器里注册,通过容器来进行实例化. laravel队列用的是redis的列表来实现.
- JAVA引用的种类
最近在进行Java项目开发的时候,由于业务的原因,有时候new的对象会比较多,这个时候我总是有一个疑惑?那就是JVM在何时决定回收一个Java对象所占据的内存?这个问题其实对整个web系统来说是一个比 ...
- jQuery html表格排序插件:tablesorter
ablesort是一款很好用的jQuery表格排序插件. 支持多种数据类型排序,会自动识别表格内容数据类型,使用也非常方便. 使用jQuery tablesort实现html表格方法: 1. 下载jQ ...
- BZOJ2580:[USACO]Video Game(AC自动机,DP)
Description Bessie is playing a video game! In the game, the three letters 'A', 'B', and 'C' are the ...
- HP-UX平台安装Oracle11gR2数据库
1. 前提条件 1.1 认证操作系统 Certification Information for Oracle Database on Linux x86-64 (Doc ID 1304727.2) ...