全文总结于哔哩大学的视频:李宏毅2020机器学习深度学习(完整版)国语

2020版课后作业范例和作业说明在github上:点击此处

李宏毅上传了2020版本的机器学习视频和吴恩达的CS229机器学习相比,中文版本的机器学习显得亲民了许多,李宏毅的机器学习是英文的ppt+中文讲解,非常有利于大家入门。吴恩达的CS229中偏向于传统机器学习(线性回归、逻辑回归、Naive Bayes、决策树、支持向量机等),李宏毅2020版本的机器学习中除了最前面的回归、分类,后面更多篇幅涉及卷积神经网络(CNN)、循环神经网络(RNN)、强化学习(RL)等深度学习的内容。

本博客持续更新,结合哔哩大学的视频观看效果更佳。

下文加粗字体为内容引导标题。

目录:

Generation、

Attention、

Tips for Generation


一、Generation

我们要产生一个有structured object(结构化对象),对象可以分成很多个组成部分,我们用RNN把这些部分挨个产生出来。例如:一个句子由很多字组成,要产生一个句子,可以用RNN把每个字要一个个产生出来。

假设产生一个中文句子。
下图中的BOS代表句子的起始,这个特别的字符到RNN里后,输出w1的几率是多少,比如得到一个床。再把床丢进去,输出字符是前,前两个输入是w1w2后,第三个同样的几率字符是明,类似一句诗就出来了。

也可以产生一个图片
图片由像素构成,假设有一个3*3个像素的图片。
如下图,图片第一个是blue、第二个是red、第三个四个是yellow、gray,依次。很像一个九个单词的句子。
BOS相当于begin of sentence,output一个red,red丢进RNN产生blue,一次产生各个颜色,就有了图片。

但是这样做感觉有很多瑕疵。

我们是如下图产生的各种颜色。蓝色产生红色,
灰色是由黄色产生,虽然灰色考虑了前面的蓝红黄,但不想要这样的效果。
而是下边的效果。


理想是这样,图片像素间有几何关系。
我们想产生灰色时根据蓝色产生,产生黑色时由红色和灰色。

如下图左上角,我们用这样的方法,先input三组东西,再output三组,再叠起来。

下图中的黑色方框输入到黑色箭头的位置。从下往上三个小正方体是一个lstm,输出给其他的lstm模型。

然后向右推,产生红色。

再从后面产生灰色,黑色框里有蓝色,所以灰色会考虑到蓝色后产生。

其次可以产生视频,产生手写字体。
但是只是用RNN来生成是不够的,因为我们不但要产生一个句子,而且要符合一定的情景。如下图,看到第一个图片要产生一个句子:A young girl is dancing(一个年轻的女孩在跳舞),第二个例子为听到别人说 hello ,要回答:hello,nice to meet you。

那怎么给一个图片,产生一个相关的句子呢?

我们把图片通过设定好的CNN转换成一个向量,把图片向量当成RNN的input丢进去,丢的图片不一样则输出的句子就不一样。为了防止RNN每次的输出忘了这个图片,我们可以在每次RNN时都丢进去一次图片。


类似原理可以用来机器翻译

先把几个汉字丢进绿色的CNN,然后粉色框总结出整个句子的信息,和上面图片一样都转换成向量的模式,再丢尽右边的RNN就完成了翻译的过程。

前半部分把input变成一个向量丢给Generation 的部分就叫做Encoder,后半部分根据code产生句子的部分叫做Decoder。

上边黑体字是一个很重要的结论,Encoder和Decoder是共同训练的,Encoder和Decoder的RNN参数不一样。

二、Attention

接下来是Attention,Attention是一种动态的条件生成。

什么是动态的条件生成?
先看上边的翻译一个句子:Decoder是每次输入的c1、c2、c3都是一个由Encoder生成的向量,都是整个句子的向量。

而我们要改进的就是,例如在生成machine时我们只需要让他看见 “机器” 两个汉字生成的向量即可。生成learning时只看到 ”学习“两个字生成的向量,这样更准确。

这件事怎么做呢?我们继续用翻译的例子

实现方法就是用attention model,用RNN处理每一个词汇,使其在每个时间点用每一个字用一个向量表示,即h1、h2、h3、h4。
经过一个softmax,四个α的值和为1,得到一个向量c,红色字体为举例,
c = 0.5 h1+ 0.5 h2。
接下来c作为encoder的输出丢给decoder,输出了一个machine。


下边再用z1一样再算一遍,输出为learning

同样可以用于语音识别(没看懂)

给图片自动生成标题的应用:
一个图片用一个向量表示的话没法做出标题来,可以用一组向量来描述这个图片。
把每一个小部分的filter取出来,用CNN分别表示。然后和z0运算的到各自的softmax,然后做出这个粉红色的weighted sum,丢到RNN的decoder中去生成z1,再根据z1算z2,依次。


结果可见,第一个图生成的标题为: 一位女士在草地上扔飞盘。

以下为transform内容,暂时不看

持续更新本文章

transformer的本意是变形金刚,现在有一个很知名的应用为BERT,BERT全称为Bidirectional Encoder Representation from Transformer,是Google以无监督的方式利用大量无标注文本「炼成」的语言模型。
本博客不涉及BERT,主要介绍transformer。
transformer是Seq2seq model with“Self-attention"的模型。
什么是Seq2seq model模型?先介绍一下。

Seq2seq model模型

Seq2seq模型现在已经在机器翻译、文本摘要和图像解释方面取得了很大的成功。谷歌翻译在2016年使用这个模型。Seq2seq模型的输入是序列化数据(比如单词、信件内容、图片特征等),输出也是序列化数据。

【李宏毅机器学习】TransFormer框架基础储备知识(p51) 学习笔记 | 全程手码,放心食用相关推荐

  1. 【李宏毅机器学习】Classification_1 分类(p10) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 文章目录 Classification Probabilistic Gernerative Model 分类:概率遗传模型 ==**如何完成这个任务?**== = ...

  2. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  3. 计算机 运行新ie 命令,(新)计算机应用基础IE浏览器设置学习笔记——精品.doc

    计算机应用基础IE浏览器设置学习笔记 一.IE浏览器设置简介 Internet Explorer浏览器(简称IE浏览器)是能够接收用户的请求信息,并到相应网站获取网页内容的专用软件.IE浏览器的使用和 ...

  4. 【六更完结!由于字数限制开新文章继续】零基础信号与系统学习笔记:复指数信号、傅里叶级数的系数推导、三角函数正交性、离散傅里叶变换、相位补偿、z变换表、逆变换表、常见序列及其作用

    零基础信号与系统学习笔记:复指数信号.傅里叶变换.三角函数正交性 基础1:复指数信号 复指数信号基础知识 复指数信号推导1 虚指数信号 虚指数信号特性和作用 直流信号 基础2:傅里叶级数 推导傅里叶级 ...

  5. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

  6. 计算机应用基础IE浏览器设置,(计算机应用基础IE浏览器设置学习笔记.doc

    (计算机应用基础IE浏览器设置学习笔记 计算机应用基础IE浏览器设置学习笔记 一.IE浏览器设置简介 Internet Explorer浏览器(简称IE浏览器)是能够接收用户的请求信息,并到相应网站获 ...

  7. Hinton机器学习与神经网络课程的第二章学习笔记

    Hinton机器学习与神经网络课程的第二章学习笔记 该笔记为自己以后方便查阅,要是有大神感觉我的笔记有哪些地方记的有误差或者不对的话也欢迎指出 文章目录 Hinton机器学习与神经网络课程的第二章学习 ...

  8. 计算机应用基础IE浏览器设置,计算机应用基础IE浏览器设置学习笔记

    IE浏览器的基本设置 计算机应用基础IE浏览器设置学习笔记 一.IE浏览器设置简介 Internet Explorer浏览器(简称IE浏览器)是能够接收用户的请求信息,并到相应网站获取网页内容的专用软 ...

  9. Python基础知识_学习笔记(20200629更新)

    Python学习笔记 本人跟随pythonav武老师视频课学习 侵权删! 瞎哔哔区: 2020-04-19:跟随武老师视频整理了第一版笔记,计划每周末都将这一周的学习笔记整理出来,供大家分享讨论 20 ...

最新文章

  1. TCP实现服务器与单客户端连接(多线程)
  2. 第二次作业(软件工作量的估记方法)
  3. 河流为什么是弯曲的?
  4. 用php生成HTML文件的类
  5. leetcode之回溯backtracing专题3
  6. mybatis源码分析(方法调用过程)
  7. 读书笔记之:高质量程序设计指南——C++/C
  8. java 把文件打包成zip_java 文件流的处理 文件打包成zip
  9. string转int的方法_Spark——scala 实用小方法
  10. 小白都能理解的FTRL
  11. win10背景显示计算机名,如何自定义Win10计算机的开始菜单背景和图片
  12. 简简单单利用字典破解zip文件口令
  13. innerHTML和outerHTML区别
  14. Git下载安装(官网) 拉取代码的两种方法
  15. Faraway(枚举 去绝对值)
  16. 假设检验方法-T检验、Z检验、F检验、卡方检验
  17. 【工作感悟】职场工作感悟(一)
  18. STL初步——集合Set
  19. WMS系统--移库逻辑
  20. ArcEngine10 ecp 授权

热门文章

  1. 计算机网络启动慢,台式电脑开机网络连接慢的解决办法
  2. Mac下挂载NTFS硬盘
  3. On the burstiness of visual elements
  4. hbuilderx升级3.6.5版本后运行到手机端同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示
  5. Windows10 LSTC 2021输入法无法使用的问题
  6. 【SDN】普通路由器刷OpenWrt+OpenFlow教程完美版_搭建SDN OpenFlow1.3协议的路由器(Flash<16M)
  7. 装机大师无法发现linux硬盘,如何解决PE无法识别硬盘的问题
  8. 【软件推荐】Linux的一些好玩的软件
  9. 零基础学Java需要多长时间?
  10. 进入网络安全学习的感想