CS50 Introduction to Artificial Intelligence with Python Lecture 4
第四讲的主题是Optimization,这里总结第四讲以及第四次作业。
课程地址:https://cs50.harvard.edu/ai/
备注:图片均来自课程课件。
Optimization从选择集合内选择最佳选择。
Hill Climbing爬山法的思路是查看当前状态的相邻节点,如果比当前状态更好,则将当前状态更新为相邻节点,否则直接返回当前节点;伪代码如下:
function HILL-CLIMB(problem):
current = initial state of problem
repeat:
neighbor = highest valued neighbor of current
if neighbor not better than current:
return current
current = neighbor
Hill Climbing Variants
变量
定义
steepest-ascent
选择价值最高的邻居
stochastic
...
CS50 Introduction to Artificial Intelligence with Python Lecture 3
第三讲的主题是Uncertainty,这里总结第三讲以及第三次作业。
课程地址:https://cs50.harvard.edu/ai/
备注:图片均来自课程课件。
这节课前面大部分内容是概率论的基本内容,这里略过,从贝叶斯网络开始回顾。
Bayesian Networks贝叶斯网络是表示随机变量之间依赖性的数据结构,几个特点如下:
有向图
每个节点代表一个随机变量
从$X$到$Y$的箭头表示$X$是$Y$的父节点
每个节点$X$都有概率分布$\mathbf{P}(X | \text { Parents }(X))$
来看一个具体例子:
然后对上图分别指定条件分布即可构成贝叶斯网络。
Inference
查询$\mathrm X$:要为其计算分布的变量
证据变量$\mathrm E$:事件$\mathrm e$的观察变量
隐藏变量$\mathrm Y$:无证据,没有被查询的变量。
目标:计算$\mathbf{P}(\mathrm{X} | \mathbf{e})$
具体方式如下
\mathbf{P}(\mathrm{X} | \mathbf{e})=\alpha \math ...
CS224N Natural Language Processing with Deep Learning Lecture 11
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
这里回顾CS224N Lecture 11的课程内容,这一讲主要介绍了CNN在NLP中的应用。
备注:图片均来自课程课件。
From RNNs to Convolutional Neural NetsRNN很难捕捉词组信息,但是CNN可以捕捉词组信息,这便是在NLP中使用CNN的原始思想。
卷积定义1维离散卷积
(f * g)[n]=\sum_{m=-M}^{M} f[n-m] g[m]2维卷积
A 1D convolution for text将句子中每个单词的词向量拼接起来组成矩阵(可以填充0),然后对其使用卷积,一个例子如下:
可以增加滤波器,得到如下结果:
对卷积的结果使用池化操作可以起到降采样的作用:
还可以将CNN中的stride设置为非$1$值:
以及局部 ...
David silver 强化学习 Lecture 6
课程主页: https://www.davidsilver.uk/teaching/
这里回顾David silver 强化学习 Lecture 6的课程内容,这一讲简单介绍了价值函数的近似。
Value Function Approximation
前几节介绍的方法都是使用查表法计算价值函数,即对每个状态计算$V(s),Q(s,a)$
大型MDP中,状态太多,不太可能穷举所有状态,一个思路是使用函数近似价值函数,即
\begin{aligned}
\hat{v}(s, \mathbf{w}) & \approx v_{\pi}(s) \\
\hat{q}(s, a, \mathbf{w}) & \approx q_{\pi}(s, a)
\end{aligned}
从可见状态到不可见状态
使用MC或TD学习更新参数w
Which Function Approximator?现在要对函数近似器进行选择,由于使用梯度方法进行优化,比较好的近似器为
特征的线性组合
神经网络
其实第一种是第二种的特殊情形。
Gradient Descent
假设$J(\mathrm w)$是 ...
CS224N Natural Language Processing with Deep Learning Lecture 10
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
这里回顾CS224N Lecture 10的课程内容,这一讲主要介绍了Question answering。
备注:图片均来自课程课件。
Question answeringQuestion answering类似于阅读理解,给定原文P和问题Q,我们希望给出回答A,模式如下:
Stanford Question Answering Dataset (SQuAD)SQuAD是问答系统的一个经典数据集:
每个问题有3个答案,下面介绍两种评估结果的方式:
Exact match:如果和3个答案之一相同则为$1$,否则为$0$
$F_1$:把系统和每个答案作为bag of words,计算
\text { Precision }=\frac{T P}{T P+F P}, \t ...
CS224N Natural Language Processing with Deep Learning Lecture 9
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
这里回顾CS224N Lecture 9的课程内容,这一讲主要介绍了Project以及机器翻译的剩余内容。
备注:图片均来自课程课件。
机器翻译完成之后,自然需要一个评估手段,这里介绍最常用的BLEU:
Bilingual Evaluation Understudy (BLEU)给定机器翻译结果MT,以及多个参考翻译,记
p_{n}=\#\text{matched n-grams}/ \#\text{n-grams in candidate translation}记
\beta=e^{\min \left(0,1-\frac{\operatorname{len}_{\mathrm{ref}}}{\operatorname{len} \mathrm{MT}}\right)} ...
Michael Collins NLP Homework 2
课程主页:http://www.cs.columbia.edu/~cs4705/
课程网盘地址:
链接:https://pan.baidu.com/s/1KijgO7yjL_MVCC9zKZ7Jdg提取码:t1i3
这一次回顾Michael Collins NLP作业2。
Question 1(a)只需要指出变化的部分即可,其余部分保持不变:
\begin{aligned}
f(\text{S} \to \text{NP NP VP}) &=\text{S} \to \text{NP NP}_1 ,p=0.3\\
f(\text{VP}\to\text{Vt NP PP})&=\text{VP}\to\text{Vt NP}_2,p=0.2\\
f(\text{NP}\to \text{DT NN NN}) & =
\text{NP}\to \text{DT NN}_1 ,p=0.3
\end{aligned}增加如下规则:
\begin{aligned}
\text{NP}_1&\to\text{NP VP},p=1\\
\text{NP}_2&\to\text{NP P ...
CS50 Introduction to Artificial Intelligence with Python Lecture 2
第二讲的主题是Knowledge,这里总结第二讲以及第二次作业。
课程地址:https://cs50.harvard.edu/ai/
备注:图片均来自课程课件。
这一讲介绍的知识是指逻辑知识,其目标是让AI具有逻辑推断能力。
Sentence对世界的断言,该断言用知识语言描述。
命题符号我们用大写字母表示命题符号,例如$P,Q,R$
逻辑连接词
模型将真值赋值给每个命题逻辑,例如:
蕴含
\alpha \vDash \beta当$\alpha$为true时,$\beta$总是true。
推断从旧的sentence中推断新sentence的过程。
下面介绍一些推断算法。
Model Checking
要确定$\mathrm{KB} \vDash \alpha$:
列举所有可能的模型。
如果在每个模型中$\text{KB}$为真时$α$也为真,则$\text{KB}$蕴含$α$。
否则,$\text{KB}$不蕴含$α$。
Model Checking其实就是穷举法,来看一个具体例子:
推断法则这里给出几个常用的推断法则:
条件
结论
$\alpha \righ ...
CS236 Deep Generative Models Lecture 8
课程主页:https://deepgenerativemodels.github.io/
课件资料:https://github.com/Subhajit135/CS236_DGM,https://github.com/deepgenerativemodels/notes
视频地址:https://www.bilibili.com/video/av81625948?from=search&seid=4636291486683332935
这里回顾CS236 Lecture 8的课程内容,这一讲继续介绍了Normalizing Flow Models。
NICE(Nonlinear Independent Components Estimation)NICE由两种可逆变换组成:分别是加法层和伸缩层,后面具体介绍这两部分。
NICE - Additive coupling layers将变量划分为两个不相交子集:$\mathbf{z}_{1: d},\mathbf{z}_{d+1: n},1\le d<n$
前向映射$\mathbf z \mapsto \mathbf x ...
CS236 Deep Generative Models Lecture 7
课程主页:https://deepgenerativemodels.github.io/
课件资料:https://github.com/Subhajit135/CS236_DGM,https://github.com/deepgenerativemodels/notes
视频地址:https://www.bilibili.com/video/av81625948?from=search&seid=4636291486683332935
这里回顾CS236 Lecture 7的课程内容,这一讲介绍了Normalizing Flow Models。
Normalizing Flow ModelsSimple Prior to Complex Data Distributions
理想的概率分布应该有如下特点:
解析的概率密度
易于采样
不幸的是,数据的分布往往更复杂
关键思想:利用变量变换的方法将简单分布映射到复杂分布
Change of Variables formula
一维情形:如果$X=f(Z)$并且$f$单调,反函数为$Z=f^{-1}(X)=h(X)$,那么: ...
CS224N Natural Language Processing with Deep Learning Lecture 8
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
这里回顾CS224N Lecture 8的课程内容,这一讲介绍了机器翻译,Seq2Seq以及Attention。
备注:图片均来自课程课件。
机器翻译机器翻译是使用计算机自动进行翻译的过程,在2014年之前,使用的是统计模型,这种方法较为复杂,在2014年之后主要是用神经机器翻译——即使用神经网络进行机器翻译,这里使用了一个重要模型:Seq2Seq。
Seq2SeqSeq2Seq是指将序列转换成序列的结构,由两个RNN组成,分别为encoder和decoder,encoder将输入进行编码,decoder将编码后的结果进行解码,生成输出,图示如下:
训练方法为计算输出的交叉熵损失函数,然后进行梯度下降,以机器翻译为例,其损失函数计算方法如下:
注意解码部分会用两个特殊标记表示 ...
CS50 Introduction to Artificial Intelligence with Python Lecture 1
最近开始学习哈佛的CS50系列课程之一:Introduction to Artificial Intelligence with Python,第一讲的主题是Search,这里总结第一讲以及第一次作业。
课程地址:https://cs50.harvard.edu/ai/
备注:图片均来自课程课件。
问题要素
agent(智能体):感知其环境并在该环境上作用的实体
state(状态):智能体及其环境的配置
initial state(初始状态):智能体开始的状态
actions(动作):在一个状态下可以做出的选择,$\text{Action}(s)$返回状态$s$可以执行的动作
transition model(转移模型):描述在任何状态下执行任何动作会导致什么状态,$\text{RESULT}(s, a)$返回在状态$s$执行动作$a$后的状态
state space(状态空间):通过任何动作序列可以从初始状态到达的所有状态的集合
goal test(目标测试):确定给定状态是否为目标状态的方法
path cost(路径花费):与给定路径相关的数值成本
Search Problem ...