文章来源:https://www.toutiao.com/i6539751003690893828/?tt_from=weixin_moments&utm_campaign=client_share&from=timeline&timestamp=1522668580&app=news_article_lite&utm_source=weixin_moments&isappinstalled=0&iid=29516333526&utm_medium=toutiao_android&wxshare_count=2&pbid=6622050729162491406

英文原文:http://tinyclouds.org/residency/

“超分辨率”问题:用条件型生成对抗网络(conditional GAN)来解决这个问题,但经过几次失败

换成了另一种有望解决该问题的新型生产式模型——PixelCNN:降低了输出图像的尺寸并使用脸部或卧室类的小型数据集

但PixelCNN却对过时的梯度极其敏感,这就导致了通过增加硬件的数量来使用异步随机梯度下降算法所带来收益微乎其微。

但同步随机梯度下降算法也有自己的问题:首先,它需要大量的机器经常进行同步,这就无可避免的会导致停机时间的增加;其次,除非将每台机器的批尺寸设为1,否则它无法通过增加机器的数量来增加每秒训练的次数。最终,我发现对我而言最简单有效的设置是用一台8GPU的机器使用同步随机梯度下降算法进行训练,即便如此每次训练仍需花上数天的时间。

拥有大量计算能力的另一好处是可以对超参数的优化进行大规模的暴力搜索。

另一个难题是如何量化评估结果。最后,我们把这项任务交给了大众——询问参与调查的人哪些图像看上去更真实,这才证明了我们模型的价值。

失败与未报告的实验结果:

大数的素因数分解:Mohammad和我尝试过两种方法:他修改了Google机器翻译的seq2seq模型,该模型把一个半素大数的整数序列作为输入,并以预测其素因数中的一个做为输出;我则使用一个较为简单的模型,它将定长整数作为输入,并用几个全连接层来预测输入的分类:素数或合数。但这两种方法最后都只学到了最为明显的规律(如果尾数为0,那它就不是素数!)

给出一张噪点图片并让它使用梯度自我更新来生成图像(也称为deep dreaming),训练的目标是令该网络把“真实”类别的输出达到最大化。该模型通过交替生成“假”实例来进行训练,跟典型的GAN中的鉴别器一样。这个模型在MNIST数据集上的确输出了不错的结果,但我没法在CIFAR-10 数据集上达到同样的效果,并且它的实用性也极为有限。

很多模型都不适用于异步随机梯度下降算法。最近,一篇名为DCASGD的论文提出了一种解决过时梯度问题的可能方法——在每一个线程更新自己的权重时使用差分向量。不幸的是,我没能在TensorFlow上复原他们的结果,也就无法尝试我基于此方法的几个设想,可能还是哪里有Bug。

思考,结论:

不过,我确实发现,这一模型的构建、训练和调试都相当困难。当然,大部分的困难是由于我缺乏经验,这也表明有效训练这些模型是需要相当丰富的经验的。我的工作集中在机器学习最为容易的分支上:监督式学习。但即便有着完美的标记数据,开发模型可能仍然十分困难。

一般情况就是预测的维度越大,构建模型所花的时间就越长(例如:花大把的时间进行编程、调试和训练)。基于我的经验,建议所有人在开始时都尽可能的简化和限制你的预测范围。举一个我们在着色实验中的例子:我们在开始时试图让模型预测整个RGB图像,而非只去预测颜色通道。

如果我用“工作”这一词的直观意义来描述软件的话,那么图像分类任务似乎“工作”的很稳健;生成式模型几乎很少能“工作”,人们也不太了解这种模型,GAN能输出高质量图像,但同时却极难构建起来。我的经验是,对GAN的架构作出任何小改动都有可能使它完全无法工作。我听说强化学习与其相比更加困难,但因经验不足,在此就不作评价了。

另一方面,随机梯度下降算法的性能十分强大,即使是严重的数学错误,可能也只是会使结果有一些失真,而不至于产生严重的偏差。

并行化(Parallelization)能带来的好处很有限。增加计算机数量使大规模的超参数搜索会变得更加容易,但理想情况下,我们会设计不用特别仔细调试也能很好运转的模型。

不好的是,对于很多模型而言,异步随机梯度下降算法并没有什么用处——更加精确的梯度通常用处不大。这就是为什么 DCASGD 的研究方向很重要的原因。

论文中的信噪比很低。但是还有很大的改进空间。人们通常不会坦率承认他们模型的失败之处,因为学术会议更看重的是准确度而不是透明度。我希望学术会议能接受提交博客文章,并要求开源实现,Distill在这方面的努力值得称赞。

《我在谷歌大脑见习机器学习的一年:Node.js创始人的尝试笔记》阅读笔记的更多相关文章

  1. 阅读《RobHess的SIFT源码分析:综述》笔记

    今天总算是机缘巧合的找到了照样一篇纲要性质的文章. 如是能早一些找到就好了.不过“在你认为为时已晚的时候,其实还为时未晚”倒是也能聊以自慰,不过不能经常这样迷惑自己,毕竟我需要开始跑了! 就照着这个大 ...

  2. RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件

    SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述 imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特 ...

  3. RobHess的SIFT源码分析:综述

    最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究. 使用OpenCV中自带的Stitc ...

  4. 阅读《RobHess的SIFT源码分析:综述》笔记2

    今天开始磕代码部分. part1: 1. sift特征提取. img1_Feat = cvCloneImage(img1);//复制图1,深拷贝,用来画特征点 img2_Feat = cvCloneI ...

  5. element-ui button组件 radio组件源码分析整理笔记(一)

    Button组件 button.vue <template> <button class="el-button" @click="handleClick ...

  6. element-ui 组件源码分析整理笔记目录

    element-ui button组件 radio组件源码分析整理笔记(一) element-ui switch组件源码分析整理笔记(二) element-ui inputNumber.Card .B ...

  7. element-ui Carousel 走马灯源码分析整理笔记(十一)

    Carousel 走马灯源码分析整理笔记,这篇写的不详细,后面有空补充 main.vue <template> <!--走马灯的最外层包裹div--> <div clas ...

  8. STL源码分析读书笔记--第二章--空间配置器(allocator)

    声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...

  9. element-ui MessageBox组件源码分析整理笔记(十二)

    MessageBox组件源码,有添加部分注释 main.vue <template> <transition name="msgbox-fade"> < ...

  10. element-ui switch组件源码分析整理笔记(二)

    源码如下: <template> <div class="el-switch" :class="{ 'is-disabled': switchDisab ...

随机推荐

  1. TypeError: document.body is null_js报错解决办法

    今天在使用如下js代码的时候,发现报错:document.body is null <script type="text/javascript"> var dw=doc ...

  2. Ubuntu16安装GTK+2.0教程

    Step 1 修改清华源(修改完可提高下载速度) 先运行 sudo gedit /etc/apt/sources.list 替换文本内容,保存,退出. # 默认注释了源码镜像以提高 apt updat ...

  3. 福大软工1816 · 第五次作业 - 结对作业2_EXE图片_备用

    1_每日推荐界面.png 2_论文搜索界面.png 2_论文搜索界面_搜索功能.png 3_流行趋势_十大热词排名统计图.png 4_人物界面.png 5_我的收藏界面.png 6_设置界面.png ...

  4. 手把手教Android商业项目-即时通讯-i美聊

    [课程概况] 手把手教你从无到有的完整实现一个Android商业项目,是目前整个市场上所没有的课程,废话不多说,请往下看. [项目概况] 项目名称:i美聊 所属领域:移动社交 即时通讯   代码行数: ...

  5. Linux系统命令Top/free的使用及参数详解

    1.作用 top命令用来显示执行中的程序进程,使用权限是所有用户. 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔,以秒 ...

  6. python产生随机字符串

    def GenerateRandomString(len, basechars = []): if (basechars == []): x = range(ord() x.extend(range( ...

  7. [译]Javascript中的mutators

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  8. 「BZOJ 2440」完全平方数「数论分块」

    题意 \(T\)组数据,每次询问第\(k\)个无平方因子的数(\(1\)不算平方因子),\(T\leq 50,k\leq 10^9\) 题解 \(k\)的范围很大,枚举肯定不行,也没什么奇妙性质,于是 ...

  9. loj #2006. 「SCOI2015」小凸玩矩阵

    #2006. 「SCOI2015」小凸玩矩阵   题目描述 小凸和小方是好朋友,小方给小凸一个 N×M N \times MN×M(N≤M N \leq MN≤M)的矩阵 A AA,要求小凸从其中选出 ...

  10. BZOJ 1974 [Sdoi2010] auction 代码拍卖会(数位dp)

    题目描述 随着iPig在P++语言上的造诣日益提升,他形成了自己一套完整的代码库.猪王国想参加POI的童鞋们都争先恐后问iPig索要代码库.iPig不想把代码库给所有想要的小猪,只想给其中的一部分既关 ...