CS229 2017版作业0
课程视频地址:http://open.163.com/special/opencourse/machinelearning.html
课程主页:http://cs229.stanford.edu/
更具体的资料链接:https://www.jianshu.com/p/0a6ef31ff77a
作业地址:https://github.com/Doraemonzzz/CS229
参考资料:https://github.com/zyxue/stanford-cs229
从今天开始整理CS229的作业,一共做了两个版本,分别是2017版和老版本,虽说一部分有官方解答了,但还是想根据自己的理解做一遍,解答的pdf版本在我的github上。
这次的作业是回顾线性代数。
1.Gradients and Hessians(a)首先计算$f(x) =\frac 1 2 x^T Ax +b^Tx$
\begin{aligned}
f(x) &=\frac 1 2 x^T Ax +b^Tx\\
&=\frac 1 2 \sum_{i=1}^n \sum_{j=1}^n x_iA_{ij}x_j + \s ...
CS229 笔记总结
课程视频地址: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
简单总结CS229系列笔记。
历时两个半月,总算将CS229的笔记完成,做笔记的过程中少数内容参考了中文翻译版:
https://github.com/Kivy-CN/Stanford-CS-229-CN
但绝大多数内容都是在谷歌翻译的基础上修改而成,在这份笔记中,我补充了省略的证明以及最后几节强化学习的内容,发现了一些小问题(暂时还不确定是谁的错误),总之在这个过程中还是挺有收获的,下一阶段会把习题完成,到时候还会继续更新在博客以及github上。
CS229 Lesson 8 顺序最小优化算法
课程视频地址: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
这一讲介绍了核方法以及SMO算法。
7.核方法回到我们对线性回归的讨论中,我们遇到了一个问题,其中输入$x$是房子的生活区域,我们考虑使用特征$x$,$x^2$和$x^3$进行回归以获得三次函数。 为了区分这两组变量,我们将“原始”输入值称为问题的输入属性(在本例中为$x$,生活区域)。当它被映射到一组新的量然后传递给学习算法时,我们将这些新的量称为输入特征。(不幸的是,不同的作者使用不同的术语来描述这两件事,但是我们将尝试在这份讲义中一致地使用这个术语。)我们还将$\phi$表示特征映射,它将属性映射到特征。 例如,在我们的例子中,我们有
\phi(x) =\left[
...
CS229 Lesson 7 最优间隔分类器问题
课程视频地址: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
这一讲介绍了SVM及其对偶形式。
4.最优间隔分类器给定一个训练集,从我们之前的讨论中可以看出,一个自然的想法是试图找到一个最大化(几何)间隔的决策边界,因为这将反映出对训练集的一个非常有信心的预测和一个对训练数据良好的“拟合”。 具体而言,这将导致分类器将正和负训练样本用一个“间隙”(几何间隔)分开。
现在,假设我们得到一个线性可分的训练集;即,可以使用某个分离超平面分离正负样本。我们如何找到达到最大几何间隔的那个? 我们可以提出以下优化问题:
\begin{aligned}
\max_{\gamma, w, b}\ \ &\gamma \\
\text{s.t}\ \ ...
CS231 第十六讲 对抗样本和对抗训练
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲介绍了对抗样本和对抗训练。
这一讲由GAN的提出者Ian Goodfellow详细介绍GAN,主要分为以下几个部分:
下面分别回顾下。
什么是对抗样本假如我们有一个训练好的分类器,对抗样本是通过对原样本加上特定的噪声,使分类器失效的样本,例如下图中右边的图片,这张图片和左图的熊猫看起来没有什么区别,但是分类器却会将其分类为长臂猿:
一般介绍对抗样本都是通过神经网络,但是实际上这个现象不只是出现在神经网络中,常见的机器学习模型里都会受到对抗样本的干扰,例如:
线性模型
Logistic回归
Softmax回归
支持向量机
决策树
最邻近法(Nearest neighbors)
为什么会发生Ian一开始认为对抗样本发生的原因是模型过拟合了:
但实际并非如此,Ian重新训练了模型,但是许多分类器依然在同一对抗样本上分类错误;此外Ian发现如果将对抗样本和原样本之差加上另一个样本,那 ...
CS231 第十五讲 深度学习的方法及硬件
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲主要从运行效率方面介绍深度学习。
这一讲主要介绍从算法和硬件的角度提升深度学习的效率,内容主要分为以下四个部分:
首先是高效推断的算法:
高效推断的算法1.剪枝剪枝的思路很简单,首先训练神经网络,然后去掉低于某个阈值的权重,接着重新训练:
图示如下:
实验表明,这样做基本能保持神经网络的性能,甚至更好:
注意剪枝改变了权重的分布:
2.权重共享权重共享的思路是将大小相近的权重近似为同一个数,这样可以减少内存的开销:
整个流程如下:
来看一个具体例子:
那么这样做的实际效果如何呢?实验表明,我们只要存储少量的有效数据就可以达到原来模型的性能:
还可以用Huffman编码存储权重,这样可以存储更多有效数字。实际中,剪枝和权重共享可以一起使用,把这两部分结合在一起,得到下图:
3.量化量化的思路很简单,首先用浮点数的形式进行训练,然后统计权重的信息,将权重转化为定点数,减少内 ...
CS231 第十四讲 深度强化学习
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲介绍了深度强化学习。
参考资料:https://www.cnblogs.com/coldyan/p/9034192.html
强化学习强化学习解决智能体(agent)与环境(environment)交互的问题,过程如下:
图中的过程描述如下:智能体在状态$s_t$采取行动$a_t$,环境反馈奖励$r_t$,智能体转移到下一个状态$s_{t+1}$。
这么说比较抽象,来看两个具体例子:
马尔可夫决策过程现在我们要对强化学习进行建模,这里利用经典的马尔可夫决策过程来进行建模,定义为
(\mathcal S, \mathcal A,\mathcal R,\mathbb P, \gamma)其中
\begin{aligned}
\mathcal S&:可能的状态\\
\mathcal A&:可能的行动\\
\mathcal R&:给定(行动,状态)的奖励的分布\\
\mathbb P&: ...
Michael Collins NLP Lecture 6
课程主页:http://www.cs.columbia.edu/~cs4705/
课程网盘地址:
链接:https://pan.baidu.com/s/1KijgO7yjL_MVCC9zKZ7Jdg提取码:t1i3
这一讲主要介绍了词汇化概率上下文无关法(Lexicalized Probabilistic Context-Free Grammars)。
Chapter 4 词汇化概率上下文无关法(Lexicalized Probabilistic Context-Free Grammars)1.介绍在之前的讲义中,我们引入了概率上下文无关法(PCFG)作为统计解析的模型。 我们介绍了基本的PCFG形式;描述了如何从一组训练样本(“树库”)中估计PCFG的参数;并且导出了用于使用PCFG进行解析的动态规划算法。
不幸的是,我们描述的基本PCFG是一个相当差的统计解析模型。 本文将介绍词汇化的PCFG,它直接构建在常规PCFG的思想上,但提供了更高的解析精度。 本讲义的其余部分结构如下:
在第2节中,我们将描述基本PCFG的一些弱点,特别是关注它们对词汇信息缺乏敏感性。
在 ...
CS231 第十三讲 生成模型
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲介绍了Pixel RNN/CNN,变分自编码器以及生产对抗网络。
Generative Models首先介绍生成模型,生成模型是学习数据的分布:
分类如下:
这一部分主要讨论Pixel RNN/CNN,变分自编码器(Variational Autoencoder)以及生产对抗网络(GAN)。
PixelRNN and PixelCNN首先利用链式法则分解图像出现的概率:
PixelRNN,PixelCNN就是利用上述公式产生图像:
因为图像是逐个像素产生的,所以产生图像的速度非常慢,总的来说,这两张方法的优点缺点总结如下:
Variational Autoencoders (VAE,变分自编码器)之前介绍的方法是优化如下概率
p_{\theta}(x) = \prod_{i=1}^n p_{\theta}(x_i|x_1,...,x_{i-1})VAE则是通过隐变量$z $计 ...
CS231 第十二讲 可视化和理解卷积神经网络
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
这一讲介绍了可视化和理解卷积神经网络。
特征可视化这一部分主要介绍卷积神经网络的可视化。
First Layer: Visualize Filters首先看下可视化第一层的滤波器:
第一层主要检测边和线。课程中还介绍了最后一层滤波器的可视化,用到了降维等技巧,这里从略。
Maximally Activating Patches另一种可视化方法是找到产生最大激活值的图片块,即遍历训练集,找到是单元激活最大化的一些图片块,利用这个方法可以了解到每个滤波器检测的模式:
Gradient Ascent梯度上升法可以找到使某个激活值最大的图片,思路如下:
正则项是为了让图像更平滑,最后产生的图像代表了CNN检测的模式:
DeepDreamDeepDream是利用Gradient Ascent来产生艺术品,例如输入天空图像:
会产生如下作品:
Neural Style Transfer介绍Neu ...
CS229 Lesson 6 朴素贝叶斯算法
课程视频地址: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
这一讲继续介绍朴素贝叶斯算法以及SVM。
2.2 用于文本分类的事件模型为了结束我们对生成学习算法的讨论,让我们再讨论一个专门用于文本分类的模型。 虽然朴素贝叶斯正如我们所介绍的那样适用于许多分类问题,但对于文本分类,有一个相关模型甚至更好。
在文本分类的特定上下文中,朴素贝叶斯使用了所谓的多变量伯努利事件模型。 在这个模型中,我们假设生成电子邮件的方式是首先随机确定(根据类先验$p(y)$)邮件是垃圾邮件还是非垃圾邮件。 然后,发送电子邮件的人通过字典,根据概率$p(x_i=1|y)$独立决定是否包括邮件中的每个单词$i$。 因此,邮件的概率由$p(y)\prod_{i= ...
CS229 Lesson 5 生成学习算法
课程视频地址: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 IV 生成学习算法到目前为止,我们主要讨论了模拟$p(y | x;θ)$的学习算法,即给定$x$的$y$的条件分布。 例如,logistic回归将$p(y | x;θ)$建模为$h_{\theta}(x)= g(θ^Tx)$,其中$g$是sigmoid函数。 在这部分讲义中,我们将讨论一种不同类型的学习算法。
考虑一个分类问题,我们希望根据动物的某些特征来学习区分大象$(y=1)$和狗$y=0$。 给定训练集,像logistic回归或感知机算法的算法试图找到一条直线,即决定边界,然后将大象和狗分开。 然后,为了将新动 ...