1. 深度学习面临的问题:

  1)模型越来越大,很难在移动端部署,也很难网络更新。

  2)训练时间越来越长,限制了研究人员的产量。

  3)耗能太多,硬件成本昂贵。

  解决的方法:联合设计算法和硬件。

  计算硬件可以分为通用和专用两大类。通用硬件又可以分为CPU和GPU。专用硬件可以分为(FPGA和ASIC,ASIC更高效,谷歌的TPU就是ASIC)。

2. Algorithms for Efficient Inference

  1)Pruning,修剪掉不那么重要的神经元和连接。第一步,用原始的网络训练;第二步,修剪掉一部分网络;第三步,继续训练剩下的网络。不断重复第二步和第三步。在不损失精度的情况下,网络可以缩小到原来的十分之一(继续缩小精度会变差)。

  2)Weight Sharing,权重并不需要那么精确,可以把一些近似的权重看成一样的(比如2.09、2.12、1.92、1.87可以全部看成2)。也是在原始训练基础上,用某种方式简化权重,然后不断训练调整简化权重的方式。在不损失精度的情况下,网络可以缩小到原来的八分之一。

  前两种方法可以结合使用,网络可以缩小到原来的百分之几。有个名字Deep Compression。

  3)Quantization,数据类型。TPU的设计主要就是优化这一部分。

  4)Low Rank Approximation,把大网络拆成一系列小网络。

  5)Binary(二元)/Ternary(三元) Net,很疯狂地把权重离散化成(-1,0,1)三种。

  6)Winograd Transformation,一种更高效的求卷积的做法。

3. Hardware for Efficient Inference

  这个方向各种硬件的共同目的是减少内存的读取(minimize memory access)。硬件需要能用压缩过的神经网络做预测。

  EIE(Efficient Inference Engine)(Han et al. ISCA 2016):稀疏权重(扔掉为0的权重)、稀疏激活值(扔掉为0的激活值)、Weight Sharing(4-bit)。

4. Algorithms for Efficient Training

  1)Parallelization。CPU按照摩尔定律发展,这些年单线程的性能已经提高的非常缓慢,而核的数量在不断提高。

  2)Mixed Precision with FP16 and FP32,正常是用32位计算,但计算权重更新的时候用16位。

  3)Model Distillation,用训练的很好的大网络的“软结果”(soft targets)作为标签提供给压缩过的小网络训练。这是Hinton的一篇论文提出的,里面解释了为什么软结果比ground truth更好。

  4)DSD(Dense-Sparse-Dense Training),先对原始的稠密的网络做Pruning,训练稀疏的网络后,再Re-Dense出稠密的网络。Han说这是先学习树的枝干,再学习叶子。相比原来的稠密网络,Re-Dense出的精度更高。

5. Hardware for Efficient Training

  Computation和Memory bandwidth是影响整体性能的两个因素。

  Han对比Nvidia Pascal和Volta,猛吹了一波Volta。。。Volta有120个Tensor Core,非常擅长矩阵运算。

  

cs231n spring 2017 lecture15 Efficient Methods and Hardware for Deep Learning 听课笔记的更多相关文章

  1. cs231n spring 2017 lecture15 Efficient Methods and Hardware for Deep Learning

    讲课嘉宾是Song Han,个人主页 Stanford:https://stanford.edu/~songhan/:MIT:https://mtlsites.mit.edu/songhan/. 1. ...

  2. 韩松毕业论文笔记-第六章-EFFICIENT METHODS AND HARDWARE FOR DEEP LEARNING

    难得跟了一次热点,从看到论文到现在已经过了快三周了,又安排了其他方向,觉得再不写又像之前读过的N多篇一样被遗忘在角落,还是先写吧,虽然有些地方还没琢磨透,但是paper总是这样吧,毕竟没有亲手实现一下 ...

  3. cs231n spring 2017 lecture9 CNN Architectures 听课笔记

    参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...

  4. cs231n spring 2017 lecture9 CNN Architectures

    参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...

  5. cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  6. cs231n spring 2017 lecture7 Training Neural Networks II

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  7. cs231n spring 2017 lecture13 Generative Models 听课笔记

    1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...

  8. cs231n spring 2017 lecture11 Detection and Segmentation 听课笔记

    1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"." ...

  9. cs231n spring 2017 Python/Numpy基础 (1)

    本文使根据CS231n的讲义整理而成(http://cs231n.github.io/python-numpy-tutorial/),以下内容基于Python3. 1. 基本数据类型:可以用 prin ...

随机推荐

  1. 【java】实例化对象的3种方式:new、clone、反射

    实例化对象的3种方式:new.clone.反射

  2. [array] leetcode - 35. Search Insert Position - Easy

    leetcode - 35. Search Insert Position - Easy descrition Given a sorted array and a target value, ret ...

  3. qt调用simsimi api实现小黄鸡

    项目地址:https://github.com/racaljk/xiaojianji 好吧我把它命名为小贱鸡.,下面说一说他的实现. 由于官方的simsimi api需要收费,免费试用版有各种限制,所 ...

  4. Python3.5:装饰器的使用

    在Python里面函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数,简单来说函数也是变量也可以作文函数的参数 >>> def funA(): ... pr ...

  5. TxDragon的训练5

    Solution 代码:由乃: //MADE BY QT666 #include<iostream> #include<cstdio> #include<algorith ...

  6. ASP.NET如何通过后台数据库提供的链接播放视频(不使用外置插件)

    1.后台视频数据库: 2.aspx中的关键代码: <asp:DataList ID="DataList2" runat="server" DataKeyF ...

  7. Spring之DAO二

    上一篇算是把JdbcDaoSupport的使用演示了一下,这篇主要是演示MappingSqlQuery.SqlUpdate.SqlFunction的使用以及Spring的事务管理. 一.Mapping ...

  8. 解决ios手机上传竖拍照片旋转90度问题

    html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ...

  9. Mac Sublime text3 如何设置更加漂亮好用?

    说明:配置是根据自己的需求搜索了蛮多博客测试总结的. 显示效果 配置信息: command + , [逗号], 右侧配置信息 { "color_scheme": "Pac ...

  10. jenkins的搭建

    根据官方网站的步骤进行安装 网址:https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions ...