神经网络压缩

一直使用云端的话,速度太慢了。并且使用云端不够私密。要在设备上直接进行智能计算,就需要神经网络压缩。
network pruning,训练一个大的神经网络——>然后评估每个参数或神经元的重要性——>移除最不重要的参数——>微调其他参数。
修剪参数之后的network,形状可能是不规则的。不好实作,也不好用gpu进行加速。要将部分被修剪掉的参数,设置为0。形状不规则的情况下,可能反而会变慢。
修剪掉神经元,形状仍然是规则的,会比较好。
直接训练小的network,正确率会低于训练大的network。不如先训练大的network,然后再修剪为小的network。
大乐透假说。训练network是一件看人品的事情,和初始参数有关。要有高的中奖率,就应该买更多彩票。同理,训练结果要好,就需要更多的参数。训练一个大的network,可以当成训练多个小的network,那么训练大的network就更有可能成功。

大的network中有一堆小的network,而其中有一个是刚好能够训练起来的。

Knowledge Distillation
知识蒸馏
Teacher Net (Large) ——> Student Net (Small)
例如:teacher先训练一个分类问题,而student将teacher的输出当成正确答案,无论老师的答案是正确的或者错误的。
直接训练student的结果不如先训练teacher再训练student。
teacher network可以是单一的network,也可以是多个 n*network,正确答案是多个模型的结果的平均值。
Temperature of softmax,一个小技巧。

将teacher的比较集中的结果,转为比较分散的结果。
teacher和student之间,也可以增加几层进行学习。
Parameter Quantization,用更少的空间存储一个参数。
weight clustering,将参数进行分群,相近的数字作为一群,而一个群中的所有参数使用一个参数或者群中所有参数的平均值进行表示。
出现次数多的参数使用更多bit表示,而出现次数少的参数使用少的bit表示,类似于哈夫曼编码。
BinaryConnect,参数都是±1反而会达到overfitting的效果。

架构设计,Depthwise Separable Convolution。
1.Depthwise Convolution,Filter number=Input channels number,kk,每个filter负责一个channel,只考虑一个channel内部。
2.有一个问题,channel之间没有任何互动,为了解决跨channel的问题,那么加上pointwise convolution,1
1,只考虑channel之间的关系。

可以节省参数,(kki*)O–>(kki)+(iO),相除=1/O+1/kk,k越大,节省的空间越大。
Low rank approximation,
将一层拆分为两层后,对于参数的需求反而减少了。
Dynamic Computation,动态决定计算量。因为一个模型可能运行在不同的嵌入式设备上,并且在同一个设备上,不同状态下可用的运算资源也有可能不同,比如手机电量低时运算资源也有可能少。
让network可以自由调整深度。在不同运算资源的情况下,运算跑过的深度层次也不同。让 L=L1+L2+L3+…+Ln,总的loss等于每一层的loss的总和。

也可以让network自由决定自己的宽度。

让network根据自身所处的条件和问题的困难程度来决定宽度和深度。
Network Pruning
Knowledge Distillation
Parameter Quantization
Architecture Design
Dynamic Computation

Meta Learning 元学习

meta learning:learning to learning,学习如何学习。
机器学习的三步骤:
1.定义unknown function
2.定义loss function
3.优化optimization
meta learning:
输入训练资料,输出function。
学习net architecture、initial parameters、learning rate……
loss function需要决定一个learning algorithm的好坏。
例如,如何决定classifier好还是坏?主要看这个classifier在测试资料上的loss表现如何。

很容易理解,meta learning就是使用训练任务中的训练资料和测试资料,找一个learning algorithm,而这个learning algorithm可以选出最好的mechanie learning model,而评判model好坏的方法就是看model在测试任务的训练数据上,训练出的model对于测试资料好坏如何。
可以使用reinforcement learning,学习出来一个“learning algorithm”。
ML vs Meta
目标:
ML:找一个function
Meta:找一个可以找到最好的function的function
训练资料:
ML:某个任务中的训练资料
Meta:各个训练任务中的训练资料和测试资料,Across-task Training。
测试资料:
ML:某个任务中的测试资料
Meta:训练任务中的训练资料和测试资料,Across-task Testing,要测试的是learning algorithm的好坏。
Learning to initialize
学习如何初始化,Model-Agnostic Meta-Learning
Reptile

MAML为什么很好?
因为feature reuse。
learning rate也可以通过meta learning学习出来

Network Architecture Search(NAS)

机器学习笔记—13(李宏毅版)神经网络压缩与元学习相关推荐

  1. 机器学习笔记(六)-神经网络:概述

    本次学习笔记主要记录学习机器学习时的各种记录,包括吴恩达老师视频学习.李宏毅老师视频学习.周志华老师的<机器学习>(西瓜书)以及李航老师的<统计学习方法>.作者能力有限,如有错 ...

  2. 神经网络压缩库Distiller学习

    课题需要来学习一下Intel开源的Distiller神经网络压缩库. Intel 主要根据以下特征和工具构建了 Distiller: 集成了剪枝.正则化和量化算法的框架 分析和评估压缩性能的一组工具 ...

  3. 机器学习贝叶斯学习心得_贝叶斯元学习就是您所需要的

    机器学习贝叶斯学习心得 Update: This post is part of a blog series on Meta-Learning that I'm working on. Check o ...

  4. 迁移学习笔记3: TCA, Finetune, 与Triplet Network(元学习)

    主要想讲的内容有: TCA, Finetune, Triplet Network 迁移学习与元学习有哪几类方法 想讲的目标(但不一定完全能写完, 下一次笔记补充): 分别属于什么方法, 处于什么位置, ...

  5. Learning to Learn:图神经网络上的元学习

    © 作者|田长鑫 机构|中国人民大学信息学院 研究方向 | 图表示学习和推荐系统 来源 | RUC AI Box 图神经网络(GNN)在实际应用中往往会受到可用样本数量太少的限制,而元学习(meta- ...

  6. 【机器学习入门笔记13:BP神经网络逼近股票收盘价格】20190218

    2019-02-18  by 崔斐然 目标:实现股票日线的绘制并且利用人工神经网络实现股票价格的拟合. 分为两大部分,第一部分基础数据绘制,第二部分BP神经网络搭建 第一部分:基础数据图绘制 1.导入 ...

  7. 李宏毅机器学习笔记13:Why Deep

    Why Deep? 本文主要围绕Deep这个关键词展开,重点比较了shallow learning和deep learning的区别: shallow:不考虑不同input之间的关联,针对每一种cla ...

  8. [云炬python3玩转机器学习笔记] 1-3课程所使用的主要技术栈

    课程环境 语言:Python3 框架:Scikit-learn 其他框架:numpy,matplotlib... IDE:Jupyter Notebook,PyCharm,ANACONDA 课程学习基 ...

  9. 机器学习笔记:CNN卷积神经网络

    1,CNN概述 卷积神经网络由输入层.卷积层.池化层.全连接层和输出层组成. 通过增加卷积层和池化层,可以得到更深层次的网络. 与多层感知器相比,卷积神经网络的参数更少,不容易发生过拟合. 2, 为何 ...

最新文章

  1. 【问题记录】服务器部署项目时启动tomcat后报错 HTTP 错误 404.0- Not Found 您要找的资源已被删除、已更名或暂时不可用 解决方案···
  2. how is SAP ui5 shell view implemented
  3. 客户行为模型 r语言建模_客户行为建模:汇总统计的问题
  4. Eclipse 下载 开源项目 maven依赖丢失和 Deployment Assembly 丢失
  5. 物联网火爆,入门却太难了!
  6. 大数计算器概念c语言,用C语言求两个超大整数的和
  7. 库克:iPhone虽贵但值得购买,相当于每天仅付1美元
  8. 路透:在美投资遇阻 中国科技资金转向以色列
  9. linux第五单元作业,第五单元《微型计算机系统》教案
  10. Java - springboot中md5加解密工具类
  11. python小波去噪的方法_小波去噪基本概念
  12. winform打印服务器上的pdf文件,c# winform 静默打印 PDF文件
  13. Homography拓展(含与平面法向量相关的情况)
  14. CEO陈睿多措施并举,为B站的创新发展护航
  15. 关于transform-style:preserve-3d的些许明了
  16. 了解Java8中的parallelStream
  17. css div里引用em字体会变斜体_DIV+CSS怎么样改字体样式
  18. 申请 Apple ID 的操作方法
  19. Excel下拉框设置多选
  20. 星际战甲堕落轰击者结合目标_warframe星际战甲新手必备mod分享

热门文章

  1. 摩尔斯电码(Morse code)
  2. Viewer.js Javascript/jQuery图片查看器
  3. WebMatrix进阶教程(1):如何安装和使用微软全新开发工具WebMatrix
  4. jquary发送ajax请求的三种方式
  5. Nvidia显卡命名的各部分的含义
  6. opencv计算图像的水平投影和垂直投影
  7. scrapy爬取漫画
  8. English Words(For Computer Science)
  9. flutter限制数字输入
  10. 先验 超验_什么是“先验”?什么是“超验”?二者如何区分?