这一次咱们要看的论文是一篇华为的 AAAI2019 的 GAN 和蒸馏相结合的论文。知识蒸馏的基础概念大家可以看这个介绍:知识蒸馏是什么?一份入门随笔。这里,我们先简单的回顾一下知识蒸馏。 什么是知识蒸馏我们知道在深度学习的大部分网络中,有很多神经元是冗余的,但是在很多移动端,比如手机上,是跑不 ...
常用算法总结(纯代码版)
线性表顺序表定义#include using namespace std;typedef int Elemtype_S;//顺序表struct SeqList{ Elemtype_S *data; int len;} 逆置//逆置void Reverse(SeqList &L){ ...
InfoMaxGAN
首先一下文章的背景,他要解决的是传统的 GAN 会存在的两个问题。第一个是我们之前说过的模式崩溃,就是生成器会反复的生成一些相似或者相同的样本,这是因为生成器本质上是在减小生成样本和真是样本的 JS 距离,但是真实的数据是高维空间中的一个低维流形,所以这里的 PR 几乎处处为 0。然后第二点,G ...
李宏毅深度学习笔记 7 - 生成式对抗网络综述
从 2014 年 GAN 提出来开始,到现在已经多到两个字母的缩写不够用的情况。我们把这些 GAN 的结构分为两种,一种是网络结构层面的变体,另一种是损失函数层面的变体。前面一种的话,主要是为了让 GAN 去适配于不同领域的不同任务,后面一种就是从 GAN 训练的本质上出发去做优化,解决在 GA ...
李宏毅深度学习笔记 6 - 半监督学习
什么是半监督学习Supervised Learning:$(x^r,y^r)^R_{r=1}$ 每一组 data 都有 input $x^r$ 和 output $y^r$ 相对应 Semi-supervised Learning:$\begin{Bmatrix}(x^r,\hat{y}^r ...
李宏毅深度学习笔记 5-Transformer
这一节的重点在于自注意力机制(Self-Attention)的引入 RNN 和 CNN 的局限性在笔记三循环神经网络中,我们已经知道了实用 RNN 可以取处理时序的数据。但是 RNN 处理这种数据的方式,是非常低效的:后一个单元需要用到前一个单元的输出或者是中间结果。这就导致了,如果我想要下图中的输 ...
李宏毅深度学习笔记 4 - 词向量
我们知道计算机中存储数据都是用二进制的 0 或 1 表示的,那么假设现在有两个词:奔驰、宝马,我们怎样去表示这两个词呢? 一种很简单直观的方法就是使用数字序号,也就是 1 表示奔驰,2 表示宝马。这种序号表示会隐含的加入一些模糊的信息,比如 2-1=1 是否就代表宝马 - 奔驰 = 奔驰呢?或者 2 ...
李宏毅深度学习笔记 3 - 循环神经网络
为什么需要 RNN?RNN 处理的对象是时序的数据,这些时序的数据前后之间是存在有某种联系的(例如我们可以根据前后文推断挖掉的某个词)。每一个单词可以使用一个向量来表示,传统的神经网络将这些词一个个的输入网络,是不能得到这种 “前后文” 关系的,所以我们需要一种有记忆的神经网络 - Recurren ...
李宏毅深度学习笔记 2 - 卷积神经网络 CNN
为什么适用 CNN相较于 DNN,CNN 使用局部连接和权值共享大大降低了参数量,为什么这种方法可行呢? 某一张图片的 pattern 通常只是一小部分,因此对于某一个神经元来说,并不需要看整张图像 (局部连接) 对于某一个局部特征,当他出现在图像的不同位置时,完全可以只使用一个 de ...
李宏毅深度学习笔记 1 - 深度学习的一些技巧
如何在训练数据上得到更好的结果?改变激活函数sigmoid 会把输入的大变化压缩成较小的输出变化,因此在网络加深时会导致梯度消失现象 ReLU Q:ReLU 会导致神经网络变为线性的吗?A: 对于使用 ReLU 的网络,整体还是非线性的,当输入做较大改变的时候,激活的神经元就会发生变化 ReLU ...