diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2f2b2621d20ff9c89135bf94259f47d91f67c7d5..f63cd12b2762c46bcc1a786ee0e9cc7d3a68008f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,7 +51,7 @@ ### 三、提交 + `fork` Github 项目 -+ 将文档放在`docs`中。 ++ 将文档(**Markdown 格式**)放在`docs`中。 + `push` + `pull request` diff --git a/README.md b/README.md index 319ad47b1a8c73763211308880cde8a58906f39a..ffcd14c4b9db0a74ffea4cc63fcfccd20912c841 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,12 @@ + [ApacheCN 机器学习交流群 629470233](http://shang.qq.com/wpa/qunwpa?idkey=30e5f1123a79867570f665aa3a483ca404b1c3f77737bc01ec520ed5f078ddef) + [ApacheCN 学习资源](http://www.apachecn.org/) -+ [贡献指南](CONTRIBUTING.md) + +## 贡献指南 + +笔记整理活动正在进行,请查看[贡献指南](CONTRIBUTING.md),并在[整体进度](https://github.com/apachecn/stanford-cs224n-notes-zh/issues/1)中领取任务。 + +> 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科) ## 联系方式 diff --git a/docs/1.md b/docs/1.md deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/docs/lecture 20/Lecture20_part1.md b/docs/lecture 20/Lecture20_part1.md new file mode 100644 index 0000000000000000000000000000000000000000..203e9dc687ba40db04ffc57d533deccf5dcbe63a --- /dev/null +++ b/docs/lecture 20/Lecture20_part1.md @@ -0,0 +1,94 @@ +一 NLP深度学习的过去 +==================== + +![](media/cc8b2e483b89e4e7f585053d9ae16901.png) + +很多被现在认为非常核心技术的想法在当时是不存在的,如Seq2Seq、注意力机制、大规模问答系统/阅读理解数据集,甚至是TonsorFlow或Pytorch等框架。 + +**Seq2Seq** + +seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列, +Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder +将这个固定长度的向量变成可变长度的目标的信号序列。 + +**Attention** + +Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射。 + +二 NLP深度学习的未来 +==================== + +![](media/b28cc037a458e62e70e28df3da4db868.png) + +1、本课程的关键思想:在训练NLP系统时利用未标记的例子。 + +2、扩大规模的深度学习模型OpenAl和GPT-2 + +3、NLP的社会影响 + +4、NLP在未来的研究领域发挥的重要作用 + +三 深度学习的发展 +================= + +![](media/5ccf67442a3c6f56f661544b9718d5be.png) + +近年来,深度学习发展迅速关键在于其扩展能力的提高,增加模型的大小和相关数据集,其准确性得到极大的提升。在80年代和90年代,就有很多关于神经网络的研究。 + +![](media/5b6b327867947bbaacf320e8183363b8.png) + +![](media/8b074b58ce68a16643e0e3ba231ced83.png) + +深度学习在图像识别、机器翻译以及游戏。因此,对于ImageNet,对于图像识别,ImageNet数据集有1400万个图像,机器翻译数据集通常有数百万个例子。对于游戏,实际上可以生成尽可能多的训练数据,只需在游戏中一遍又一遍地运行代理即可。 + +四 NLP数据集 +============ + +![](media/00594abd6ebca941e5e33b1d1ecf7242.png) + +NLP数据存在的原因**只适用于英语**。 + +绝大多数数据是英语,实际上不到世界人口的10%,说英语是他们的第一语言。因此,如果您查看存在的全部语言,那么小数据集的这些问题才会复杂化。 + +因此,当受到这些数据的限制时,希望利用深度学习规模并训练最大的模型。最近成功的**流行解决方案是使用未标记的数据**。因为与标记数据不同,语言非常容易获取。在某些情况下,甚至可以要求像语言学这样的专家来注释该数据。 + +五 使用未标记的数据进行翻译 +=========================== + +应用利用未标记数据的想法,将NLP模型改进为机器翻译任务。 + +![](media/f8a9cc51dd30a1550b288b3304e510a4.png) + +机器翻译确实需要相当大的数据集。而这些数据集是NLP研究人员为了训练其模型而注释了文本,训练模型受到标记数据的限制,但我们可以很容易找到未标记的数据,准确地查看一些文本并决定它所使用的语言并训练分类器来做到这一点。 + +![](media/a45da67f31b5f0894dd05ee257c7a457.png) + +![](media/9a8bb5e3c768fa5db9036117cc7f75bb.png) + +**预训练** + +预训练——通过语言建模来预训练。 + +将从一种语言翻译为另一种语言,需要为这两种语言收集大型数据集,然后训练两种语言模型,每种语言模型一次,最后使用那些预先训练的语言模型作为机器翻译系统的初始化。 + +编码器对输入语言进行检测,同时对其语言模型的权重进行初始化,而解码器对目标语言模型的权重进行初始化,这将提高模型的性能。 + +![](media/70bd9c1c9f1b8aeb64495385072364cf.png) + +![](media/0c13b354bd2f25497ff75e7433a8db0b.png) + +预训练的问题——预训练中,两个独立的语言模型在未标记的语料库上运行时,两者之间从未真正进行任何交互。 + +**自我训练** + +将原始的单语句和机器提供的翻译视为人为提供的翻译,并在此示例中正常训练机器学习模型。 + +**反向翻译** + +![](media/49490589f03b3454efff6aceed677d59.png) + +翻译系统从源语言到目标语言,还将训练从目标语言到源语言的模型。 + +![](media/a963ae4807b619f2b301b9566069f4bc.png) + +这是来自Facebook的英语到德语的翻译,他们使用了500万个带标签的句子对,也使用了230个没有翻译的单语句子。你可以看到,与以前的技术水平相比,如果你将它与之前的研究和机器转机翻译进行比较,它们可以获得6个BLEU点改进。 diff --git a/docs/lecture 20/Lecture20_part2.md b/docs/lecture 20/Lecture20_part2.md new file mode 100644 index 0000000000000000000000000000000000000000..8a5362bc9989b0d6745b6462d9319766a7e9994c --- /dev/null +++ b/docs/lecture 20/Lecture20_part2.md @@ -0,0 +1,82 @@ +一 双语数据 +=========== + +![](media/d976819e250653f03cf7a4a9439cac96.png) + +这里的目标是用一种语言给出一个单词,找到它的翻译,但不使用任何标记数据。 + +尝试解决此任务的方法称为**跨语言嵌入**。 + +目标是学习两种语言中单词的单词向量,希望这些单词向量具有已经学过的有关单词向量的所有好的属性,同时也希望特定语言的单词向量能够接近到它的翻译的单词矢量。 + +![](media/bfa990c95fe70d27430257291a8e5793.png) + +解决这个问题的关键方法:**word2vec** + +**嵌入空间的结构具有很多规律性,利用这种规律性来帮助找到那些嵌入空间之间的对齐**。 + +![](media/5e21808db8af3416351121f745477256.png) + +![](media/7d41ff65016bd11b9fbeb32918f13b0b.png) + +这是两组字嵌入的图片,红色有英文单词,蓝色有意大利语单词。虽然现在的矢量空间看起来彼此非常不同,但是看到它们有一个非常相似的结构。尝试将转换的英语嵌入集旋转,以便它们与意大利嵌入相匹配。 + +从数学上来说,这意味着需要一个学习矩阵W,用英语中的cat表示矢量,我们将它乘以W,最终得到西班牙语或意大利语的gatto矢量。将W约束为正交,这意味着几何上W只会对X中的向量进行旋转。 + +二 如何学习W +============ + +![](media/22fd011d4ca155b84b651df09e7aa675.png) + +实际上有很多技术可以用来学习这个W矩阵,其中一个就是称为**对抗训练**。 + +它的工作方式如下: + +除了试图学习W矩阵之外,还将尝试学习一个被称为鉴别器的模型。采用一个向量,预测该向量最初是英文单词嵌入还是原来是意大利语嵌入。 + +如果没有W矩阵,这对于鉴别器来说是一个非常简单的任务,清楚地分开英语和意大利语的嵌入字。如果学习W矩阵成功地将所有这些嵌入对齐,那么鉴别器将永远不会做得很好。 + +在训练期间,首先要稍微训练一下鉴别器,这意味着确保它在区分英语和意大利语单词时尽可能好,然后训练W,而训练W的目标是将鉴别器混淆为尽可能多。 + +![](media/d8b5c15ef6c09b4e5e6221c08a77a117.png) + +**seq2seq模型** + +对标准的seq2srq模型进行了一处更改,即我们将使用相同的编码器和编码器,无论输入和输出语言如何。它将具有英语单词和法语单词的向量表示。 + +对于解码器,我们需要给它一些关于它应该生成什么语言的信息。这样做的方法是输入一个特殊的标记,这个标记在括号中表示告诉模型的语法。在底部,它输入法语句子作为输入,它只是生成法语作为输出,这意味着只是再现原始输入序列。 + +![](media/29d3c9fa71562a0d68ed4568cfa3b8fc.png) + +三 如何训练seq2seq模型 +====================== + +去噪自动编码器 + +它被扰乱之前重新生成句子实际上是什么。也许有一个想法为什么这将是一个有用的训练目标,是因为有一个没有注意的编码器-解码器。编码器正在将整个源句子转换成单个向量,自动编码器做的是确保向量包含有关句子的所有信息,以便能够从编码器产生的向量中恢复原始句子的内容。 + +![](media/36429d6dd9868d07d9d92cc712d26690.png) + +用没有标签的句子,不提供任何人工翻译,假设一个英语句子或者说一个法语句子,给出一个法语句子,可以将它翻译成英语,使用模型的当前状态,然后要求该模型从英语翻译或将该英语翻译回法语。 + +![](media/16d1c888725fe434f06485e4b8a0a47e.png) + +使用这些跨语言嵌入来初始化机器翻译模型使用共享编码器。在顶部,只有一个自动编码目标,由于嵌入看起来非常相似,并且因为编码器是相同的,所以模型对这个法语句子的表示实际上应该与英语句子的表示非常相似。因此,当这种表示传递到解码器时,我们希望获得与以前相同的输出。 + +![](media/ed979ece44c470f0e90d399c89168997.png) + +另一种思考方式是希望我们的模型能够对句子进行编码,这样表达式就像是一种通用的国际语言。我们的自动编码器和我们的反向翻译示例中,这里的目标序列是相同的。 + +![](media/87ba75b9ceeb74f88f5d92abbec5c1fb.png) + +毫无疑问,在给定大量监督数据的情况下,受监督的机器翻译模型比无监督的机器翻译模型工作得更好。但是无监督的机器翻译模型实际上仍然做得很好。 + +![](media/aa7868f8bd9dd5d3f8ebdd08e413d78c.png) + +使用无监督机器翻译模型可以做的另一件好事是**属性转移**。 + +![](media/94d73800652ad75fbe429812a903ebab.png) + +因此,如果你看一个不同的语言对,让我们说英语到土耳其语,这两种语言的语言学是完全不同的,这些方法在某种程度上仍然有效,所以他们可以说五个BLEU点,但他们不会几乎和其他设置一样工作。 + +纯粹的监督学习仍然存在巨大差距。 diff --git a/docs/lecture 20/Word_Translation_without_Parallel_Data.pdf b/docs/lecture 20/Word_Translation_without_Parallel_Data.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a38d4d871a7289f529a06306c88143633ae3422c Binary files /dev/null and b/docs/lecture 20/Word_Translation_without_Parallel_Data.pdf differ diff --git a/docs/lecture 20/lecture20_part3.md b/docs/lecture 20/lecture20_part3.md new file mode 100644 index 0000000000000000000000000000000000000000..7ee494f9caac1aca2956dcaabd128906a7f4a472 --- /dev/null +++ b/docs/lecture 20/lecture20_part3.md @@ -0,0 +1,60 @@ +一 BERT +======= + +![](media/1fc8b424ade235725a60af4f056558b7.png) + +这是常规BERT,使用英语一些句子(其中某些单词被删除),要求使用BERT模型来填补空白并预测这些单词。 + +谷歌实际上已经完成了多语言BERT训练。采用的是连接一大堆不同语言的语料库,然后训练一个模型在所有语言上使用模型。最近,由Facebook提出的这种新的扩展,实际上是将LM培训目标与翻译相结合。 + +在这种情况下,给这个模型一个英文序列和一个法语序列,删除一些单词,要求模型填写它,更好地使模型理解两种语言之间的关系。 + +![](media/863d03b91f0a5659e4f8e2a054936e45.png) + +因此像BERT用于NLP中的其他任务一样,基本上都采用这种跨语言BERT,将其用作无监督机器翻译系统的初始化,并获得了大约10个BLEU点的增益,这样就可以实现无人监督的机器翻译。 + +二 Huge Models and GPT-2 +======================== + +![](media/707177c98672fbd53c9be53ac13cd78c.png) + +首先,这是一些不同大小的NLP模型,也许几年前标准的LSTM中型模型大约有1000万个参数。在OpenAl论文之前,这个GPT-2大约是它的10倍,大约相当于另一个数量级。当然,、神经网络中的突触和权重是完全不同的。 + +![](media/7429800d68f22424891570eaecd970b3.png) + +该图显示了x轴是时间,y轴是用日志来衡量用于训练该模型的petaFLOPS的数量。这意味着至少目前的趋势是机器学习模型的计算能力呈现出指数增长。 + +![](media/3017ff5e27e32edc63d73a563f988a25.png) + +这结果来自一个视觉的生成性对抗网络,它已经在很多数据上进行了训练,并且已经在大规模上进行了训练,这是ELMo和BERT之间的大型模型。如果你感兴趣的是https://thispersondoesnotexist.com/。 + +![](media/883a1f598728ca6deb4101b097107b21.png) + +这是谷歌最近的工作,他们训练了一个有5亿个参数的图像网络模型。这里的图表显示x轴上的日志缩放参数数量,然后ImageNet在y轴上的准确性,这种大型模型表现得更好。并且似乎成为一种趋势,其精度随着模型尺寸的对数而增加。 + +![](media/49a12531f44200f697663ba7da938af0.png) + +硬件在很大程度上扩展模型和训练模型。特别是,越来越多的公司正在开发深度学习的硬件。实际上另一种扩展模型的方法是利用并行性。 + +一种是数据并行性。在这种情况下,GPU将拥有该模型的数据副本,将正在训练的数据分成小批量到这些模型中,这样就可以更快地训练模型。 + +另一种并行性是模型并行性。在这种情况下,您实际上需要将模型拆分为多个计算单元。 + +![](media/1e5d555592b54279f9571143f2a1bc1a.png) + +![](media/4698fa83c1a4f0c5fdde96eccea1648b.png) + +拥有像GPT-2这样超级庞大的语言模型,可以用它进行语言建模。并在基准测试上运行这种语言模型。如果想评估语言模型,首先在Penn +Treebank上训练,然后评估这个组合。在这种情况下,GPT-2只是因为看过这么多的文字并且是如此大的模型,优于其他的先前,即使它没有那些数据也能在不同的语言基准中测试。 + +![](media/52313442e024b1d78d8f7fe85bb1c83c.png) + +零射击学习只是尝试完成一项任务,而不需要对它进行训练。通过设计一个提示需要输入的语言模型,然后让它从那里生成,希望它生成与你想要解决的任务相关的语言。 + +![](media/24daaa12a59b6f4adf3446cc556c055c.png) + +x轴是对数缩放的模型大小,y轴是精确度,虚线基本上对应于这些任务的现有工作。 + +![](media/b3d54f5f91d45e47215ce3a4a8219dbd.png) + +通常在NLP的历史中,如果想将一种世界知识带入一个NLP系统,你需要一个类似于事实的大数据库,它仍然可以通过阅读大量文本而无需明确地获取一些世界知识将这些知识付诸于模型。 diff --git a/docs/lecture 20/media/00594abd6ebca941e5e33b1d1ecf7242.png b/docs/lecture 20/media/00594abd6ebca941e5e33b1d1ecf7242.png new file mode 100644 index 0000000000000000000000000000000000000000..4785fa078f44db75b941d1f9a88d4f43cb51c5ad Binary files /dev/null and b/docs/lecture 20/media/00594abd6ebca941e5e33b1d1ecf7242.png differ diff --git a/docs/lecture 20/media/0c13b354bd2f25497ff75e7433a8db0b.png b/docs/lecture 20/media/0c13b354bd2f25497ff75e7433a8db0b.png new file mode 100644 index 0000000000000000000000000000000000000000..2cec02e55d6d2c8c30d9aae89d957eac26359734 Binary files /dev/null and b/docs/lecture 20/media/0c13b354bd2f25497ff75e7433a8db0b.png differ diff --git a/docs/lecture 20/media/16d1c888725fe434f06485e4b8a0a47e.png b/docs/lecture 20/media/16d1c888725fe434f06485e4b8a0a47e.png new file mode 100644 index 0000000000000000000000000000000000000000..227e6874791e4bad6e5fec47813430c1b2e0f279 Binary files /dev/null and b/docs/lecture 20/media/16d1c888725fe434f06485e4b8a0a47e.png differ diff --git a/docs/lecture 20/media/1e5d555592b54279f9571143f2a1bc1a.png b/docs/lecture 20/media/1e5d555592b54279f9571143f2a1bc1a.png new file mode 100644 index 0000000000000000000000000000000000000000..bf795f5618faef947120770b685bb92a0351fda4 Binary files /dev/null and b/docs/lecture 20/media/1e5d555592b54279f9571143f2a1bc1a.png differ diff --git a/docs/lecture 20/media/1fc8b424ade235725a60af4f056558b7.png b/docs/lecture 20/media/1fc8b424ade235725a60af4f056558b7.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb2eda4240b4f4d823fa4aeecd38e0468625c20 Binary files /dev/null and b/docs/lecture 20/media/1fc8b424ade235725a60af4f056558b7.png differ diff --git a/docs/lecture 20/media/22fd011d4ca155b84b651df09e7aa675.png b/docs/lecture 20/media/22fd011d4ca155b84b651df09e7aa675.png new file mode 100644 index 0000000000000000000000000000000000000000..8de396e79fdb7357ac9ca5c3b42c80dea2afd13b Binary files /dev/null and b/docs/lecture 20/media/22fd011d4ca155b84b651df09e7aa675.png differ diff --git a/docs/lecture 20/media/24daaa12a59b6f4adf3446cc556c055c.png b/docs/lecture 20/media/24daaa12a59b6f4adf3446cc556c055c.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca9c35c0e8362414447952c8bcec49e34c08b96 Binary files /dev/null and b/docs/lecture 20/media/24daaa12a59b6f4adf3446cc556c055c.png differ diff --git a/docs/lecture 20/media/29d3c9fa71562a0d68ed4568cfa3b8fc.png b/docs/lecture 20/media/29d3c9fa71562a0d68ed4568cfa3b8fc.png new file mode 100644 index 0000000000000000000000000000000000000000..a639badd6e2d00cbc7b17225a87ed4d761941edd Binary files /dev/null and b/docs/lecture 20/media/29d3c9fa71562a0d68ed4568cfa3b8fc.png differ diff --git a/docs/lecture 20/media/3017ff5e27e32edc63d73a563f988a25.png b/docs/lecture 20/media/3017ff5e27e32edc63d73a563f988a25.png new file mode 100644 index 0000000000000000000000000000000000000000..5d00c16fd2b896272f0cf6f4e57e02669a8e3345 Binary files /dev/null and b/docs/lecture 20/media/3017ff5e27e32edc63d73a563f988a25.png differ diff --git a/docs/lecture 20/media/36429d6dd9868d07d9d92cc712d26690.png b/docs/lecture 20/media/36429d6dd9868d07d9d92cc712d26690.png new file mode 100644 index 0000000000000000000000000000000000000000..ab43578fe0c04d3158d726bb84cbb9f623e826e8 Binary files /dev/null and b/docs/lecture 20/media/36429d6dd9868d07d9d92cc712d26690.png differ diff --git a/docs/lecture 20/media/4698fa83c1a4f0c5fdde96eccea1648b.png b/docs/lecture 20/media/4698fa83c1a4f0c5fdde96eccea1648b.png new file mode 100644 index 0000000000000000000000000000000000000000..199632979065dc0b0e896d824c291232948849dd Binary files /dev/null and b/docs/lecture 20/media/4698fa83c1a4f0c5fdde96eccea1648b.png differ diff --git a/docs/lecture 20/media/49490589f03b3454efff6aceed677d59.png b/docs/lecture 20/media/49490589f03b3454efff6aceed677d59.png new file mode 100644 index 0000000000000000000000000000000000000000..c17825b0f4016c7c1a015386280863e3b947f8b3 Binary files /dev/null and b/docs/lecture 20/media/49490589f03b3454efff6aceed677d59.png differ diff --git a/docs/lecture 20/media/49a12531f44200f697663ba7da938af0.png b/docs/lecture 20/media/49a12531f44200f697663ba7da938af0.png new file mode 100644 index 0000000000000000000000000000000000000000..29510b0c153271f960252e2174e7a16061849681 Binary files /dev/null and b/docs/lecture 20/media/49a12531f44200f697663ba7da938af0.png differ diff --git a/docs/lecture 20/media/52313442e024b1d78d8f7fe85bb1c83c.png b/docs/lecture 20/media/52313442e024b1d78d8f7fe85bb1c83c.png new file mode 100644 index 0000000000000000000000000000000000000000..2c4f6f2930d4738ef8995c4bbaf5f29a0adbcbcf Binary files /dev/null and b/docs/lecture 20/media/52313442e024b1d78d8f7fe85bb1c83c.png differ diff --git a/docs/lecture 20/media/5b6b327867947bbaacf320e8183363b8.png b/docs/lecture 20/media/5b6b327867947bbaacf320e8183363b8.png new file mode 100644 index 0000000000000000000000000000000000000000..345616c4f89b650e3f8556d6ebc5c11f35736e97 Binary files /dev/null and b/docs/lecture 20/media/5b6b327867947bbaacf320e8183363b8.png differ diff --git a/docs/lecture 20/media/5ccf67442a3c6f56f661544b9718d5be.png b/docs/lecture 20/media/5ccf67442a3c6f56f661544b9718d5be.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3032b354fc31c5904b7b4b2a8a5029a662eb44 Binary files /dev/null and b/docs/lecture 20/media/5ccf67442a3c6f56f661544b9718d5be.png differ diff --git a/docs/lecture 20/media/5e21808db8af3416351121f745477256.png b/docs/lecture 20/media/5e21808db8af3416351121f745477256.png new file mode 100644 index 0000000000000000000000000000000000000000..52f1a1789016bec52863b93ee247ef05ede81697 Binary files /dev/null and b/docs/lecture 20/media/5e21808db8af3416351121f745477256.png differ diff --git a/docs/lecture 20/media/707177c98672fbd53c9be53ac13cd78c.png b/docs/lecture 20/media/707177c98672fbd53c9be53ac13cd78c.png new file mode 100644 index 0000000000000000000000000000000000000000..8321986dca8a8ff99ecdb24e39f4a9ec0b662c87 Binary files /dev/null and b/docs/lecture 20/media/707177c98672fbd53c9be53ac13cd78c.png differ diff --git a/docs/lecture 20/media/70bd9c1c9f1b8aeb64495385072364cf.png b/docs/lecture 20/media/70bd9c1c9f1b8aeb64495385072364cf.png new file mode 100644 index 0000000000000000000000000000000000000000..f25f6e38545b143730bd25bca6d5c7e017e8c6fd Binary files /dev/null and b/docs/lecture 20/media/70bd9c1c9f1b8aeb64495385072364cf.png differ diff --git a/docs/lecture 20/media/7429800d68f22424891570eaecd970b3.png b/docs/lecture 20/media/7429800d68f22424891570eaecd970b3.png new file mode 100644 index 0000000000000000000000000000000000000000..b4321722e4f52b444e1a21e388d2193e9075541f Binary files /dev/null and b/docs/lecture 20/media/7429800d68f22424891570eaecd970b3.png differ diff --git a/docs/lecture 20/media/7d41ff65016bd11b9fbeb32918f13b0b.png b/docs/lecture 20/media/7d41ff65016bd11b9fbeb32918f13b0b.png new file mode 100644 index 0000000000000000000000000000000000000000..0688f34bc42e08510a7975346f4cc327631d9501 Binary files /dev/null and b/docs/lecture 20/media/7d41ff65016bd11b9fbeb32918f13b0b.png differ diff --git a/docs/lecture 20/media/863d03b91f0a5659e4f8e2a054936e45.png b/docs/lecture 20/media/863d03b91f0a5659e4f8e2a054936e45.png new file mode 100644 index 0000000000000000000000000000000000000000..91ddd51f661c10d42d2803bcb8ecdd46a5832058 Binary files /dev/null and b/docs/lecture 20/media/863d03b91f0a5659e4f8e2a054936e45.png differ diff --git a/docs/lecture 20/media/87ba75b9ceeb74f88f5d92abbec5c1fb.png b/docs/lecture 20/media/87ba75b9ceeb74f88f5d92abbec5c1fb.png new file mode 100644 index 0000000000000000000000000000000000000000..7c04b78b098d927919acce2692ddf57e8a4c5079 Binary files /dev/null and b/docs/lecture 20/media/87ba75b9ceeb74f88f5d92abbec5c1fb.png differ diff --git a/docs/lecture 20/media/883a1f598728ca6deb4101b097107b21.png b/docs/lecture 20/media/883a1f598728ca6deb4101b097107b21.png new file mode 100644 index 0000000000000000000000000000000000000000..f96d3ce945139674d7d67b5619971e9e1f9c51cb Binary files /dev/null and b/docs/lecture 20/media/883a1f598728ca6deb4101b097107b21.png differ diff --git a/docs/lecture 20/media/8b074b58ce68a16643e0e3ba231ced83.png b/docs/lecture 20/media/8b074b58ce68a16643e0e3ba231ced83.png new file mode 100644 index 0000000000000000000000000000000000000000..b95feb21b4e1db0cb90b5c8bc5801de51bfd2425 Binary files /dev/null and b/docs/lecture 20/media/8b074b58ce68a16643e0e3ba231ced83.png differ diff --git a/docs/lecture 20/media/94d73800652ad75fbe429812a903ebab.png b/docs/lecture 20/media/94d73800652ad75fbe429812a903ebab.png new file mode 100644 index 0000000000000000000000000000000000000000..6303a23cef5cac34a3e99ccabf7404f61fc29b48 Binary files /dev/null and b/docs/lecture 20/media/94d73800652ad75fbe429812a903ebab.png differ diff --git a/docs/lecture 20/media/9a8bb5e3c768fa5db9036117cc7f75bb.png b/docs/lecture 20/media/9a8bb5e3c768fa5db9036117cc7f75bb.png new file mode 100644 index 0000000000000000000000000000000000000000..25965c1fa8b879a530ae92b15fdbaeafd8337f37 Binary files /dev/null and b/docs/lecture 20/media/9a8bb5e3c768fa5db9036117cc7f75bb.png differ diff --git a/docs/lecture 20/media/a45da67f31b5f0894dd05ee257c7a457.png b/docs/lecture 20/media/a45da67f31b5f0894dd05ee257c7a457.png new file mode 100644 index 0000000000000000000000000000000000000000..7fc3650c114293c39504a9b98ad880989a017076 Binary files /dev/null and b/docs/lecture 20/media/a45da67f31b5f0894dd05ee257c7a457.png differ diff --git a/docs/lecture 20/media/a963ae4807b619f2b301b9566069f4bc.png b/docs/lecture 20/media/a963ae4807b619f2b301b9566069f4bc.png new file mode 100644 index 0000000000000000000000000000000000000000..55ca05dcfa14ebbdf223496096a9ef7c5e2e2522 Binary files /dev/null and b/docs/lecture 20/media/a963ae4807b619f2b301b9566069f4bc.png differ diff --git a/docs/lecture 20/media/aa7868f8bd9dd5d3f8ebdd08e413d78c.png b/docs/lecture 20/media/aa7868f8bd9dd5d3f8ebdd08e413d78c.png new file mode 100644 index 0000000000000000000000000000000000000000..ff822cdb7be39fe0faf31310204ee3c53904a643 Binary files /dev/null and b/docs/lecture 20/media/aa7868f8bd9dd5d3f8ebdd08e413d78c.png differ diff --git a/docs/lecture 20/media/b28cc037a458e62e70e28df3da4db868.png b/docs/lecture 20/media/b28cc037a458e62e70e28df3da4db868.png new file mode 100644 index 0000000000000000000000000000000000000000..e876aacce71d62930929ce2b84f2f079f92f4dc7 Binary files /dev/null and b/docs/lecture 20/media/b28cc037a458e62e70e28df3da4db868.png differ diff --git a/docs/lecture 20/media/b3d54f5f91d45e47215ce3a4a8219dbd.png b/docs/lecture 20/media/b3d54f5f91d45e47215ce3a4a8219dbd.png new file mode 100644 index 0000000000000000000000000000000000000000..7d56518dc56671aa32d02065f42bed818e7c39a0 Binary files /dev/null and b/docs/lecture 20/media/b3d54f5f91d45e47215ce3a4a8219dbd.png differ diff --git a/docs/lecture 20/media/bfa990c95fe70d27430257291a8e5793.png b/docs/lecture 20/media/bfa990c95fe70d27430257291a8e5793.png new file mode 100644 index 0000000000000000000000000000000000000000..991e619a7b175be9757ab2c654fb5e8e5997b6d0 Binary files /dev/null and b/docs/lecture 20/media/bfa990c95fe70d27430257291a8e5793.png differ diff --git a/docs/lecture 20/media/cc8b2e483b89e4e7f585053d9ae16901.png b/docs/lecture 20/media/cc8b2e483b89e4e7f585053d9ae16901.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd0b88f3077b56e9efb4bc877a782e16d6995fb Binary files /dev/null and b/docs/lecture 20/media/cc8b2e483b89e4e7f585053d9ae16901.png differ diff --git a/docs/lecture 20/media/d8b5c15ef6c09b4e5e6221c08a77a117.png b/docs/lecture 20/media/d8b5c15ef6c09b4e5e6221c08a77a117.png new file mode 100644 index 0000000000000000000000000000000000000000..85c86f76674ffd44ec1b02c00cbfe04a328aa0c2 Binary files /dev/null and b/docs/lecture 20/media/d8b5c15ef6c09b4e5e6221c08a77a117.png differ diff --git a/docs/lecture 20/media/d976819e250653f03cf7a4a9439cac96.png b/docs/lecture 20/media/d976819e250653f03cf7a4a9439cac96.png new file mode 100644 index 0000000000000000000000000000000000000000..a56efb9589a48e431ddb21e739ccc6c562f4ee62 Binary files /dev/null and b/docs/lecture 20/media/d976819e250653f03cf7a4a9439cac96.png differ diff --git a/docs/lecture 20/media/ed979ece44c470f0e90d399c89168997.png b/docs/lecture 20/media/ed979ece44c470f0e90d399c89168997.png new file mode 100644 index 0000000000000000000000000000000000000000..507643f86870c6830b078a69be350ff64576c182 Binary files /dev/null and b/docs/lecture 20/media/ed979ece44c470f0e90d399c89168997.png differ diff --git a/docs/lecture 20/media/f8a9cc51dd30a1550b288b3304e510a4.png b/docs/lecture 20/media/f8a9cc51dd30a1550b288b3304e510a4.png new file mode 100644 index 0000000000000000000000000000000000000000..1dfbd0e42215bf2488816a4382a85b49c042f587 Binary files /dev/null and b/docs/lecture 20/media/f8a9cc51dd30a1550b288b3304e510a4.png differ diff --git a/docs/lecture 20/note.md b/docs/lecture 20/note.md deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000