【NIPS2017前沿】半监督学习需要Bad GAN,清华特奖学霸与苹果AI总监提出(附Ruslan教授深度学习教程pdf下载)
【导读】CMU博士杨植麟与导师同时也是苹果首任AI总监Ruslan Salakhutdinov 在NIPS2017上合作提出新的GAN生成模型,大幅度提高对抗生成网络的特征匹配能力,论文代码也于近日在GitHub上公布。杨植麟本科就读于清华大学计算机系,现在就读于CMU. 他曾在清华4年保持全年级第一,同时也是清华大学2014年本科生特奖获得者,让我们来看下。
▌作者相关信息
杨植麟本科就读于清华大学计算机系,现在就读于CMU. 他曾在清华4年保持全年级第一,同时也是清华大学2014年本科生特奖获得者。在本科阶段就以第一作者在KDD,CIKM,WSDM发表论文,是不折不扣的学霸。
合作导师Ruslan Salakhutdinov
Ruslan Salakhutdinov是来自卡内基梅隆大学(CMU的副教授,2016年被任命为苹果首任AI总监。从整个神经网络和深度学习的历史看,最重要的拐点是2006年7月,Geoffrey Hinton为第一作者的两篇论文《A Fast Learning Algorithm for Deep Belief Nets》和《Reducing the Dimensionality of Data with Neural Networks》的发布,前者首次提出了layerwise greedy pretraining的方法,开创了深度学习方向;后者提出通过最小化函数集对训练集数据的重构误差,自适应地编解码训练数据的算法deep autoencoder,作为非线性降维方法在图像和文本降维实验中明显优于传统方法,证明了深度学习方法的正确性。正是这两篇论文引起了整个学术界对深度学习的兴趣,才有了近十年来深度学习研究的突飞猛进和突破。而Ruslan Salakhutdinov,就是深度学习历史上最重要的标志性论文之一、发布在Nature杂志上的那篇《Reducing the Dimensionality of Data with Neural Networks》的第二作者。此时的他不过是刚刚进入Geoffrey Hinton门下不久的一名博士生(Ruslan Salakhutdinov于2009年获得博士学位),但并不影响其在深度学习领域中的辈分。
Ruslan Salakhutdinov对人工智能的贡献还在于学习深度生成模型的研究上。2007年前后,Ruslan Salakhutdinov与Geoffrey Hinton提出了一种在前馈神经网络中进行有效训练的算法。这一算法将网络中的每一层视为无监督的受限玻尔兹曼机,再使用有监督的反向传播算法进行调优(Ruslan Salakhutdinov的博士论文就是这方面的内容)。在获得博士学位后,Ruslan又花了两年时间从事博士后研究工作,从2011年起在多伦多大学担任助理教授,今年2月,他从多伦多大学转到卡内基梅隆大学,并实现了从助理教授到副教授的跨越。
从2006年的标志性论文发表到现在为止的十年中,Ruslan Salakhutdinov的研究成果层出不穷。截止本文发布之日,Ruslan Salakhutdinov的论文总引用数量达到16819次,其中近5年的引用次数为15191,这也说明了在其一直活跃在深度学习的前沿领域。
▌论文
Good Semi-Supervised Learning that Requires a Bad GAN
好的半监督学习需要坏的对抗生成模型
摘要
基于对抗生成网络的半监督学习取得了许多实实在在的有效结果, 但是仍有一些问题亟待解决度1) 判别器是怎么通过和生成器联合训练来得到增强的 2) 为什么一个好的半监督分类器效果和好的生成器不可兼得. 我们从理论上分析了对于一个给定的判别目标,好的半监督学习的确需要一个坏的生成器, 并且提出一个理想的生成器的定义. 我们设计了一个基于我们分析的全新公式,并大幅度的提高了GANs特征匹配能力, 在多个标准数据取得了最好的效果.
▌论文代码实现
Good Semi-supervised Learning that Requires a Bad GAN
NIPS 2017
Zihang Dai*, Zhilin Yang*, Fan Yang, William W. Cohen, Ruslan Salakhutdinov (*贡献相同)
Github 地址:https://github.com/kimiyoung/ssl_bad_gan
论文地址:https://arxiv.org/abs/1705.09783
依赖包
- python 2.7
- pytorch 0.1.12. 为了安装 pytorch 0.1.12, 你何以运行
conda install pytorch=0.1.12 cuda80 -c soumith
.
获取预训练的PixelCNN模型
`mkdir model
cd model
wget http://kimi.ml.cmu.edu/mnist.True.3.best.pixel
运行代码
在MNIST数据集上重现代码
`python mnist_trainer.py
` 在SVHN数据集上重现代码
`python svhn_trainer.py
` 在CIFAR-10数据机上重现代码
`python cifar_trainer.py
结果
这是不同模型采用非集成的标准结构的结果比较 (100 labels on MNIST, 1000 labels on SVHN, and 4000 labels on CIFAR):
Method |
MNIST (# errors) |
SVHN (% errors) |
CIFAR (% errors) |
---|---|---|---|
CatGAN |
191 +/- 10 |
- |
19.58 +/- 0.46 |
SDGM |
132 +/- 7 |
16.61 +/- 0.24 |
- |
Ladder Network |
106 +/- 37 |
- |
20.40 +/- 0.47 |
ADGM |
96 +/- 2 |
22.86 |
- |
FM |
93 +/- 6.5 |
8.11 +/- 1.3 |
18.63 +/- 2.32 |
ALI |
- |
7.42 +/- 0.65 |
17.99 +/- 1.62 |
VAT small |
136 |
6.83 |
14.87 |
Ours |
79.5 +/- 9.8 |
4.25 +/- 0.03 |
14.41 +/- 0.30 |
附:
杨植麟个人主页:http://kimiyoung.github.io/
Ruslan Salakhutdinov个人主页:
http://www.cs.cmu.edu/~rsalakhu/index.html
特别提示-Ruslan Salakhutdinov 教授最新深度学习教程下载:
请关注专知公众号(扫一扫最下面专知二维码,或者点击上方蓝色专知),
- 后台回复“RUDL” 就可以获取Ruslan Salakhutdinov 教授最新深度学习教程pdf下载链接
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- API接口设计规范
- 陶瓷PCB电路板到底好在哪?
- Mysql常用函数——告别复杂sql
- Spring Boot读取配置文件的几种方式
- python菜鸟教程 | if else 判断
- Java 语言中十大“坑爹”功能!
- R语言生存分析可视化分析
- 全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程
- R语言时间序列和ARIMA模型预测拖拉机销售的制造案例研究
- Windows10下安装linux子系统学习笔记
- 项目实践 | 从零开始学习Deep SORT+YOLO V3进行多目标跟踪(附注释项目代码)
- [OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中-es6-Object.defineProperty()定义属性
- (数据科学学习手札90)Python+Kepler.gl轻松制作时间轮播地图
- WEB前端安全自查和加固
- 硬核!IDEA 中使用 Git 完整入门教程!