CMU 15-213 Intro to Computer Systems Lecture 13
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一讲介绍了链接。
链接C程序例子考虑如下两个C程序:
main.c
int sum(int *a, int n);
int array[2] = {1, 2};
int main()
{
int val = sum(array, 2);
return val;
}
sum.c
int sum(int *a, int n)
{
int i, s = 0;
for (i = 0; i < n; i++) {
s += a[i];
}
return s;
}
静态链接连接器将可重定位目标文 ...
CS224N Natural Language Processing with Deep Learning Assignment 5
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
1. Character-based convolutional encoder for NMT(a)因为字母的复杂度比单词要小很多。
(b)character-based
V_{\text {char}} \times e_{\mathrm{char}} + e_{\text{word}} \times e_{\mathrm{char}} \times k+e_{\text{word}}
\approx 96\times 50+256\times 50\times 5+256=69056word-based
V_{\text {word}} \times e_{\text {word}} \approx 50000 \times 256 =12800000(c)1D卷积 ...
CS224N Natural Language Processing with Deep Learning Assignment 4
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
1. Neural Machine Translation with RNNs(a)def pad_sents(sents, pad_token):
""" Pad list of sentences according to the longest sentence in the batch.
@param sents (list[list[str] ]): list of sentences, where each sentence
is represented as a list of words
@param pad_token (str): padding token
...
CMU 15-213 Lab3 Attack Lab
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一部分回顾CSAPP的Attack Lab。
参考资料:
https://www.jianshu.com/p/db731ca57342
整个栈的地址和结构为了后续讨论方便,这里列出栈的地址和其作用。
0x5561dc78 buffer[0-3]
0x5561dc7c buffer[4-7]
0x5561dc80 buffer[8-11]
0x5561dc84 buffer[12-15]
0x5561dc88 buffer[16-19]
0x5561dc8c buffer[20-23]
0x5561dc90 buffer[24-27]
0x5561dc94 buffer[28-31]
0x5561dc98 buffer[32-35]
0x ...
熵的内容总结
参考资料:https://www.fi.muni.cz/~xbouda1/teaching/current/IV111/prednasky/lecture5.pdf
在学习信息论过程中发现熵的内容少了一点,找到一个不错的课件加以补充,这里进行总结。
备注:后续讨论都在离散情形下进行。
不确定性和熵熵的直觉给定概率分布$\left\{p_{1}, p_{2}, \ldots, p_{n}\right\}$,现在要定义一个衡量不确定性的度量,记为$H\left(p_{1}, p_{2}, \ldots, p_{n}\right)$,我们希望该函数满足如下条件:
均匀分布给出最大的不确定性,即当$p_{1}=\cdots=p_{n}=1 / n$时,$H\left(p_{1}, \ldots p_{n}\right)$取最大值
不确定性和概率的顺序无关,即对于任意置换$\pi:\{1 \ldots n\} \rightarrow\{1 \ldots n\}$,我们有$H\left(p_{1}, p_{2}, \ldots, p_{n}\right)=H\left(p_{\pi(1)}, ...
CMU 15-213 Intro to Computer Systems Lecture 12
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一讲介绍了高速缓存存储器。
高速缓存存储器的组织和操作高速缓存存储器
高速缓存存储器是小型,基于SRAM的快速存储器,可在硬件中自动管理
保留经常访问的主内存块
CPU首先在缓存中查找数据
典型系统结构:
高速缓存$(S,E,B)$的通用组织
高速缓存读取
利用上图的结构进行高速缓存读取,索引组判断属于哪个组,块偏移确定了$B$个字节的数据块中的字偏移,标记位确定标记。
例子考虑$E=2$的情形:
首先通过$0…01$确定是第二个缓存,然后比较tag:
最后$100$确定偏移:
再来看一个具体例子:
如果读取的缓存中没有内容或者有效位为0,则记为miss,否则为hit。
写
存在多个数据副本:
L1,L2,L3,主 ...
CS224N Natural Language Processing with Deep Learning Lecture 19 and Lecture 20
课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/
视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239
这里回顾CS224N Lecture 19 and Lecture 20的课程内容,第19讲介绍了深度学习中的偏见,第20讲介绍了NLP和深度学习的未来,由于第19讲内容没有涉及太多理论,这里从略。
备注:图片均来自课程课件。
机器翻译预训练将编码器和解码器分别作为语言模型来训练:
自我训练
预训练的问题:预训练期间两种语言之间没有“交互”
自我训练:标记未标记的数据以获得嘈杂的训练示例
回译(Back-Translation)
有两个相反方向的机器翻译模型$(\text{en->fr})$和$(\text{fr->en})$
模型永远不会看到“错误”的翻译,只有错误的输入
无监督词翻译
跨语言单词嵌入
两种语言共享的嵌入空间
保持单词嵌入的正常美观
但也要让 ...
Information Theory, Inference and Learning Algorithms Lecture 6
课程主页:http://www.inference.org.uk/mackay/itprnn/,http://www.inference.org.uk/itprnn_lectures/
课程视频:https://www.bilibili.com/video/BV14b411G7wn?from=search&seid=1786094286746981315,https://www.youtube.com/watch?v=BCiZc0n6COY&list=PLruBu5BI5n4aFpG32iMbdWoRVAA-Vcso6
课程书籍:https://book.douban.com/subject/1893050/
这次回顾第六讲,第六讲介绍了熵进一步的内容。
备注:笔记参考了中文书籍。
关于熵的更多内容联合熵$X,Y$的联合熵是
H(X, Y)=\sum_{x y \in \mathscr{H}_{X} {\mathscr H}_{Y}} P(x, y) \log \frac{1}{P(x, y)}条件熵已知$y=b_k$时$X$的条件熵是
H\left(X | y= ...
CMU 15-213 Intro to Computer Systems Lecture 11
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一讲介绍了存储器层次结构。
存储技术和趋势RAM(随机访问存储器)
主要特点
传统上将RAM封装为芯片。
基本存储单元通常是一个cell(每个cell一比特)。
多个RAM芯片形成一个存储器。
RAM有两种:
SRAM(静态RAM)
DRAM(动态RAM)
两者的性能对比如下:
非易失性存储器
DRAM和SRAM是易失性存储器
如果关闭电源,则会丢失信息。
非易失性存储器即使断电也能保存存储的值
只读存储器(ROM):在生产期间进行编程
可编程ROM(PROM):可以编程一次
可擦除的PROM(EPROM):可以批量擦除(UV,X射线)
电可擦除PROM(EEPROM):具有电子可擦除功能
闪存:EEPROM。 具有部分 ...
CMU 15-213 Intro to Computer Systems Lecture 10
课程主页:http://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
课程资料:https://github.com/EugeneLiu/translationCSAPP
课程视频:https://www.bilibili.com/video/av31289365/
这一讲介绍了程序优化。
总览
程序性能不仅仅是渐进复杂度
常数项也很重要!
根据代码编写方式很容易产生10:1的性能范围
必须在多个级别进行优化:
算法,数据表示,过程和循环
必须了解系统才能优化性能
程序如何编译和执行
现代处理器+内存系统如何运行
如何衡量程序性能并确定瓶颈
如何在不破坏代码模块化和通用性的情况下提高性能
编译器优化的局限性
在基本约束下运作
语言和编码风格可能会混淆对程序员而言显而易见的行为
大多数分析仅在程序内执行
大多数分析仅基于静态信息
如有疑问,编译器必须是保守的
通用优化方法代码移动/预计算
移动代码
减少执行计算的频率
如果计算产生相同的结果
尤其是将代码移出循环
例如将代码
v ...
Information Theory, Inference and Learning Algorithms Lecture 5
课程主页:http://www.inference.org.uk/mackay/itprnn/,http://www.inference.org.uk/itprnn_lectures/
课程视频:https://www.bilibili.com/video/BV14b411G7wn?from=search&seid=1786094286746981315,https://www.youtube.com/watch?v=BCiZc0n6COY&list=PLruBu5BI5n4aFpG32iMbdWoRVAA-Vcso6
课程书籍:https://book.douban.com/subject/1893050/
这次回顾第五讲,第五讲介绍了符号流码。
备注:笔记参考了中文书籍。
算数码设信源符号表为$\mathscr H_{X}=\left\{a_{1}, \cdots, a_{I}\right\}$,其中$a_I$表示“传输结束”。假设信源发出序列$x_{1}, x_{2}, \cdots, x_{n}, \cdots$,算数码的编码器和解码器使用条件概率$P\lef ...
Digital Signal Processing 1 Basic Concepts and Algorithms Week4
课程主页:https://www.coursera.org/learn/dsp1
这一讲介绍了Fourier Analysis: the Basics。
DFS(离散傅里叶序列)DFS是DFT的周期扩展,公式如下:
合成公式:
\mathbf x[n]=\frac{1}{N} \sum_{k=0}^{N-1}\mathbf X[k] e^{j \frac{2 \pi}{N} n k}, \quad n\in \mathbb Z分析公式:
\mathbf X[k]=\sum_{n=0}^{N-1}\mathbf x[n] e^{-j \frac{2 \pi}{N} n k}, \quad k\in \mathbb Z不难看出$\mathbf x[n]$和$\mathbf X[k]$的周期均为$N$,连续$ N $个傅立叶系数可捕获所有信息。
DFT,DFS,DTFT$L$周期的DFT假设原始信号为$\bar {\mathrm x}[n]$,考虑其周期扩张$\mathrm y[n]$:
\mathrm y[n]= \bar {\mathrm x}[n \mod M]现在对其做D ...