CS229 Lesson 2 监督学习应用.梯度下降
课程视频地址:http://open.163.com/special/opencourse/machinelearning.html
课程主页:http://cs229.stanford.edu/
更具体的资料链接:https://www.jianshu.com/p/0a6ef31ff77a
笔记参考自中文翻译版:https://github.com/Kivy-CN/Stanford-CS-229-CN
这一讲介绍了处理线性回归的梯度下降方法以及正规方程。
Part I 线性回归 为了让我们的房屋示例更有趣,让我们考虑一个稍微丰富的数据集,其中我们还知道每个房子的卧室数量:
这里,$x$是$\mathbb R^2$中的二维向量。 例如,$x^{(i)}_1$是训练集中第$i$个房屋的生活区域,$x^{(i)}_2$是其卧室数。 作为初始选择,假设我们决定将$y$近似为$x$的线性函数:
h_{\theta}(x)=\theta_0 +\theta_1 x_1+\theta_2x_2这里,$\theta_i$是参数(也称为权重),它们参数化从$\mathcal X ...
CS231 第十讲 循环神经网络
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲介绍了循环神经网络(RNN)。
RNN基本概念RNN用于处理序列数据,根据输入输出的数量,RNN有如下几种形式
一般的RNN架构如下
每一步中,我们使用$t$时刻的输入$x_t$和$t-1$时刻的状态$h_{t-1}$计算$t$时刻的状态$h_t$,然后利用$h_t$计算输出$y_t$,所以$h_t$的公式如下
h_t = f_W(h_{t-1}, x_t)常见的形式如下
\begin{aligned}
h_t &=\tanh(W_{hh}h_t +W_{xh}x_t)\\
y_t &= W_{hy}h_t
\end{aligned}实际中,一般将第二张图片中的架构展开,这样更便于理解。
多对多
多对一
一对多
例子来看个生成字母的例子,假设字母为[h,e,l,o],可以利用如下网络生成字母
还有一个例子是Image Captioning,即给图像打标签,处理方法是现将图 ...
Michael Collins NLP Lecture 5
课程主页:http://www.cs.columbia.edu/~cs4705/
课程网盘地址:
链接:https://pan.baidu.com/s/1KijgO7yjL_MVCC9zKZ7Jdg提取码:t1i3
这一讲主要介绍了概率上下文无关文法(Probabilistic Context-Free Grammars (PCFGs))。
3.概率上下文无关文法(Probabilistic Context-Free Grammars (PCFGs))3.1 基本定义给定上下文无关文法$G$,我们将使用以下定义:
$\mathcal T_G $是语法$G$下所有可能的最左派生(解析树)的集合。当语法$G$在上下文中很清楚时,我们通常将其简写为$\mathcal T $。
对于任何派生$t\in \mathcal T_G $,我们用$\text{yield}(t)$来表示由$t$的产生的字符串$s\in \Sigma’$(即,$\text{yield}(t)$是$t$中的单词序列)。
对于给定的句子$s\in \Sigma’$,我们用$\mathcal T_G(s)$表示集合
...
CS231 第九讲 CNN架构
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲介绍了一些CNN架构。
AlexNet第一个例子是AlexNet,其架构如下
上图中每一层拆成两部分是因为当时内存不够的原因。
VGGNetVGGNet相比AlexNet来说层数更多,其网络架构如下
GoogLeNetGoogLeNet考虑到计算的问题,利用Inception模块减少了很多参数,Inception模块是一个局部网络,GoogLeNet将很多个Inception模块组成一个大网络,其架构如下
每个Inception模块中进行了并行滤波操作,例如进行多个卷积操作以及池化操作
这样做有一个问题,就是参数会非常多,我们来看个具体例子
从上图中可以看出,如果利用之前所述的架构,那么每个Inception模块计算量就会很大。该问题的解决方案是首先利用$1\times 1$卷积核降低深度,效果如下
在实际中,还用了池化操作,优化后的网络结构如下
利用上述操作减少了大量参数 ...
CS231 第八讲 深度学习软件
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲介绍了PyTorch和TensorFlow。
PyTorch和TensorFlow最主要的区别在于PyTorch建立的是动态图,而TensorFlow建立的是静态图:
静态图的特点是我们只建立一次图,然后不断复用,我们使用的框架会在运行之前优化计算图:
静态图另一个特点只要建立了图,就相当于构造了一个数据结构,可以将其保存下来,很方便的部署(不需要源代码),而动态图则需要保存代码。
不过在条件语句以及循环语句中,由于动态图使用的是语言本身的条件和循环语句,此时会方便很多:
CS231 第七讲 训练神经网络(下)
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲继续介绍训练神经网络的一些技巧。
更好的优化之前我们介绍了随机梯度下降法,但是这个方法有一些问题——如果损失在某个方向降低很快,另一个方向降低很慢,那么图像如下
如果从红点出发,利用随机梯度下降法产生的结果非常震荡,这就会严重影响效率
另一个问题是,随机梯度下降很容易陷入局部最优点和马鞍点
还有一个问题是,随机梯度下降法很容易受到噪声干扰,这会让优化速度减慢
下面介绍几种处理上述问题的优化方法。
Momentum第一种方法是Momentum,其更新公式如下
\begin{aligned}
v_{t+1} &= \rho v_t + \nabla f(x_t) \\
x_{t+1}&= x_t -\alpha v_{t+1}
\end{aligned}伪代码如下
vx = 0
while True:
dx = compute_gradient(x)
vx = rho ...
Michael Collins NLP Lecture 4
课程主页:http://www.cs.columbia.edu/~cs4705/
课程网盘地址:
链接:https://pan.baidu.com/s/1KijgO7yjL_MVCC9zKZ7Jdg提取码:t1i3
这一讲主要介绍了语法解析(Parsing)以及上下文无关法(Context-Free Grammars)。
Chapter 3 概率上下文无关法(Probabilistic Context-Free Grammars (PCFGs))首先介绍语法解析问题,问题形式如下
语法解析的一个应用是机器翻译,因为不同语言中的语法有所不同,例如
本章介绍的概率上下文无关法为处理语法解析问题的一个常用方法,在此之前,我们先介绍上下文无关法(Context-Free Grammars)。
1.上下文无关法(Context-Free Grammars)1.1 基本定义上下文无关法(CFG)是一个四元组$G=(N,\Sigma,R,S)$,其中
$N$是一组有限的非终止符。
$\Sigma$一组有限的终止符。
$R$是形如$X\to Y_1Y_2…Y_n$的有限规则的集合,其中$X\ ...
Michael Collins NLP Lecture 3
课程主页:http://www.cs.columbia.edu/~cs4705/
课程网盘地址:
链接:https://pan.baidu.com/s/1KijgO7yjL_MVCC9zKZ7Jdg提取码:t1i3
这一讲主要介绍了标注问题和隐马尔可夫模型。
Chapter 2 标注问题和隐马尔可夫模型2.1 介绍在许多NLP问题中,我们希望对序列对进行建模。词性(POS)标注可能是此类问题中最早,最著名的例子。 在POS标注中,我们的目标是建立一个模型,其输入为句子,例如
\text{the dog saw a cat}其输出是标注序列
\begin{eqnarray*}
\text{D N V D N}\tag{2.1}
\end{eqnarray*}(这里我们使用D表示定冠词,N表示名词,V表示动词)。标签序列与输入句子的长度相同,因此为句子中的每个单词指定一个标签(在本例中D标注the,N标注dog,V标注saw,依此类推)。
我们将使用$x_1…x_n$来表示标注模型的输入:将其称为句子。在上面的例子中,我们的长度为$n=5$并且
x_1 =\text{ ...
台大实分析单元 22 Radon测度之微分
然后介绍Radon导数的性质。
$\mu$是定义在$\Omega\subset \mathbb R^n$上的Radon测度($\Omega$为开集),定义
\underline D \mu(x)=\underset {\Omega\supset B\to x}{\lim \inf} \frac {\mu(B)}{\lambda^n (B)}
=\lim_{\delta\to 0^+} \{\inf _{\delta B
台大实分析单元 21 Riemann 与 Lebesgue 积分(2)
这一部分继续介绍Riemann积分和Lebesgue积分的关系,然后介绍Radon测度的导数。
Theorem 1
f在I上黎曼可积当且仅当在I上几乎处处连续证明:假设$f$在$I$上黎曼可积,那么
\int_I \underline f d\lambda^n=\underline \int_I f =\overline \int_I f
=\int_I \overline f d\lambda^n所以
\int_I (\bar f -\underline f ) d\lambda^n =0因为$\bar f \ge \underline f$,所以在$I$上
\bar f =\underline f\ \ (a.e)即在$I$上
\bar f =f=\underline f\ \ (a.e)因此$f$在$I$上几乎处处连续。
反之,如果$f$在$I$上几乎处处连续,那么在$I$上
\bar f =f=\underline f\ \ (a.e)因此
\underline \int_I f =\int_I \underline f d\lambda^n
=\int ...
CS231 第六讲 训练神经网络(上)
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲主要介绍训练神经网络的一些技巧。
激活函数回顾神经元的架构
我们首先进行线性运算,接着使用激活函数$f$,常用激活函数如下
下面分别介绍这几个激活函数。
Sigmoid
Sigmoid函数有如下三个问题:
1.饱和的神经元会使得梯度消失。
这是因为当$x$绝对值很大时,Sigmoid函数的导数几乎为$0$(这点从图像中就能看出),而这会使训练过程很缓慢。
2.Sigmoid函数输出结果的均值不是$0$。
由于Sigmoid函数输出结果都大于$0$,由乘法门的含义可知,这会导致梯度的符号都相同,这也不利于训练。
3.$\exp()$有一定的计算量。
这个算是比较次要的原因,感觉主要是和之后的ReLU作对比。
tanh
tanh函数可以克服上述第2个问题,因为输出结果的均值为$0$,但是问题1,3依然没有解决。
ReLU
ReLU函数可以有效克服问题1,但是输出结果的均值不是$0 ...
CS229 Lesson 1 机器学习的动机与应用
课程视频地址:http://open.163.com/special/opencourse/machinelearning.html
课程主页:http://cs229.stanford.edu/
更具体的资料链接:https://www.jianshu.com/p/0a6ef31ff77a
笔记参考自中文翻译版:https://github.com/Kivy-CN/Stanford-CS-229-CN
整理完9到20讲之后开始回过头来整理前面8讲,第一讲主要对机器学习做了简介。
监督式学习让我们首先谈谈监督学习问题的几个例子。假设我们有一个数据集,给出了俄勒冈州波特兰市47所房屋的房间大小和价格:
作图可得:
根据这样的数据,我们如何根据房间大小来学习预测波特兰其他房屋的价格?
我们将使用$x^{(i)}$来表示“输入”变量(这个例子中为房间大小),也称为输入特征,$y^{(i)}$表示“输出”或我们正试图预测的目标变量(此处为价格)。 一对$(x^{(i)},y^{(i)})$被称为训练样本,我们将用于学习的数据集——$m$个训练样本$\{(x^ ...