原文: 二值神经网络(Binary Neural Network,BNN) 在我刚刚过去的研究生毕设中,我在ImageNet数据集上验证了图像特征二值化后仍然具有很强的表达能力,可以在检索中达到较好的效果.而Bengio大神的这篇文章,则不止于将特征二值化,而是要将权重和每层的激活值统统二值化.相比于非二值化的网络,将大量的数学运算变成了位操作.这样就节省了大量的空间而前向传播的时间,使神经网络的应用门槛变得更低. 本文是阅读Bengio二值化网络文章的笔记,特此声明. 要想使整个神经网络二值化…
转载请注明出处: http://www.cnblogs.com/sysuzyq/p/6248953.html by 少侠阿朱…
目录 摘要 引言 1.BinaryNet 符号函数 梯度计算和累积 通过离散化传播梯度 一些有用的成分 算法1 使用BinaryNet训练DNN 算法2 批量标准化转换(Ioffe和Szegedy,2015),适用于小批量激活x. 算法3 ADAM学习规则(Kingma&Ba,2014). 2.基准测试结果 MLP on MNIST ConvNet on CIFAR-10 ConvNet on SVHN 3.在运行时更快 第一层 4.相关工作 结论 参考资料 论文地址:https://arxiv…
A Recipe for Training Neural Networks Andrej Karpathy blog  2019-04-27 09:37:05 This blog is copied from:https://karpathy.github.io/2019/04/25/recipe/ Some few weeks ago I posted a tweet on “the most common neural net mistakes”, listing a few common…
课程主页:http://cs231n.stanford.edu/   Introduction to neural networks -Training Neural Network ______________________________________________________________________________________________________________________________________________________________…
背景: 做大规模机器学习算法,特别是神经网络最怕什么--没有数据!!没有数据意味着,机器学不会,人工不智能!通常使用样本增强来扩充数据一直都是解决这个问题的一个好方法. 最近的一篇论文<Training Neural Networks with Very Little Data-A Draft>提出了一个新的图像样本增强方法:对图像使用径向变换生成不同"副本",解决样本数量太少难以训练的问题.论文地址:https://arxiv.org/pdf/1708.04347.pdf…
1506.01186-Cyclical Learning Rates for Training Neural Networks 论文中提出了一种循环调整学习率来训练模型的方式. 如下图: 通过循环的线性调整学习率,论文作者观察到的一种比较典型的曲线如下图: 图中,使用循环调整方式的模型,虽然训练中准确度有很大的波动,但是这种波动并不影像模型很快的收敛,并且以更快的速度收敛到了固定学习率或者学习率衰减方案中能达到的最高准确率. 这种方式需要设置的超参有三个, min bound,max bound…
Training Neural Networks: Q&A with Ian Goodfellow, Google Neural networks require considerable time and computational firepower to train. Previously, researchers believed that neural networks were costly to train because gradient descent slows down n…
最近拜读大神Karpathy的经验之谈 A Recipe for Training Neural Networks  https://karpathy.github.io/2019/04/25/recipe/,这个秘籍对很多深度学习算法训练过程中遇到的各自问题进行了总结,并提出了很多很好的建议,翻译于此,希望能够帮助更多人学到这些内容. 译文如下: 几周前,我发布了一条关于“最常见的神经网络错误”的推文,列出了一些与训练神经网络相关的常见问题.这条推文得到了比我预期的要多得多的认同(包括网络研讨…
CS231n Winter 2016: Lecture 5: Neural Networks Part 2 CS231n Winter 2016: Lecture 6: Neural Networks Part 3 by Andrej Karpathy 本章节主要讲解激活函数,参数初始化以及周边的知识体系. Ref: <深度学习>第八章 - 深度模型中的优化 Overview 1. One time setup activation functions, preprocessing, weig…
课程主页:http://cs231n.stanford.edu/ _______________________________________________________________________________________________________________________________________________________ -Parameter Updates 解决的方法: *Momentum update 其实就是把x再加上mu*v(可以看作是下滑过…
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很大的loss function,一个方向梯度变化明显,另一个方向梯度变化很缓慢,SGD在优化过程中会震荡着下降,导致优化很慢.深度学习的网络会有上百万甚至更多的参数需要优化,在这个上百万维的空间里,更容易出现各个维度梯度变化差别很大的问题. 2)陷落在局部最小点或者鞍点(saddle point).…
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法则的时候,后一层传回来的导数乘以sigmoid的导数也是0了,换句话说,对于sigmoid饱和的区域后一层的导数传不到前面去了.(b)输出永远为正,即下一层的输入永远为正,我们希望输入的均值为0.(c)exp还是稍微有点难计算. 2)tanh(x),输出压缩在[-1,+1]之间,比sigmoid的进…
原文链接:https://developers.google.com/machine-learning/crash-course/training-neural-networks/ 反向传播算法是最常见的一种神经网络训练算法.借助这种算法,梯度下降法在多层神经网络中将成为可行方法.TensorFlow 可自动处理反向传播算法,因此不需要对该算法作深入研究. 1- 最佳做法 1.1 失败案例 很多常见情况都会导致反向传播算法出错. 梯度消失 较低层(更接近输入)的梯度可能会变得非常小.在深度网络中…
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很大的loss function,一个方向梯度变化明显,另一个方向梯度变化很缓慢,SGD在优化过程中会震荡着下降,导致优化很慢.深度学习的网络会有上百万甚至更多的参数需要优化,在这个上百万维的空间里,更容易出现各个维度梯度变化差别很大的问题. 2)陷落在局部最小点或者鞍点(saddle point).…
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法则的时候,后一层传回来的导数乘以sigmoid的导数也是0了,换句话说,对于sigmoid饱和的区域后一层的导数传不到前面去了.(b)输出永远为正,即下一层的输入永远为正,我们希望输入的均值为0.(c)exp还是稍微有点难计算. 2)tanh(x),输出压缩在[-1,+1]之间,比sigmoid的进…
1. Feedforward and cost function; 2.Regularized cost function: 3.Sigmoid gradient The gradient for the sigmoid function can be computed as: where: 4.Random initialization randInitializeWeights.m function W = randInitializeWeights(L_in, L_out) %RANDIN…
现有分布式模型训练的模式 分布式SGD 并行SGD: 大规模训练中,一次的最长时间取决于最慢的机器 异步SGD: 不同步的数据,有可能导致权重更新向着未知方向 并行多模型 :多个集群训练不同的模型,再组合最终模型,但是会消耗inference运行时 蒸馏:流程复杂 student训练数据集的选择 unlabeled的数据 原始数据 留出来的数据 协同蒸馏 using the same architecture for all the models; using the same dataset…
可以用两种方式来看神经网络,一种就是层的集合,也就是层组成的数组,另一种是神经元的集合,也就是神经元组成的Graph. 基于神经元的实现方式中,需要定义两个类 Neuron, Weight Neuron类的实例相当于是vertex,Weight组成的链表相当于是邻接表和逆邻接表. 基于层的实现方式中,每种层都对应一种层类,分别是 LogisticRegressionLayer, HiddenLayer, LeNetPoolingLayer 暂时还没有画卷积层的数据结构,这里先给出一个卷积操作的描…
Survey Recent Advances in Efficient Computation of Deep Convolutional Neural Networks, [arxiv '18] A Survey of Model Compression and Acceleration for Deep Neural Networks [arXiv '17] Quantization The ZipML Framework for Training Models with End-to-En…
本文来自<MobiFace: A Lightweight Deep Learning Face Recognition on Mobile Devices>,时间线为2018年11月.是作者分别来自CMU和uark学校. 0 引言 随着DCNN的普及,在目标检测,目标分割等领域都有不小的进步,然而其较高准确度背后却是大量的参数和计算量.如AlexNet需要61百万参数量,VGG16需要138百万参数量,Resnet-50需要25百万参数量.Densenet190(k=40)需要40百万参数量.…
两派 1. 新的卷机计算方法 这种是直接提出新的卷机计算方式,从而减少参数,达到压缩模型的效果,例如SqueezedNet,mobileNet SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size 修改网络结构,类似于mobileNet MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Appli…
126 篇殿堂级深度学习论文分类整理 从入门到应用 | 干货 雷锋网 作者: 三川 2017-03-02 18:40:00 查看源网址 阅读数:66 如果你有非常大的决心从事深度学习,又不想在这一行打酱油,那么研读大牛论文将是不可避免的一步.而作为新人,你的第一个问题或许是:“论文那么多,从哪一篇读起?” 本文将试图解决这个问题——文章标题本来是:“从入门到绝望,无止境的深度学习论文”.请诸位备好道具,开启头悬梁锥刺股的学霸姿势. 开个玩笑. 但对非科班出身的开发者而言,读论文的确可以成为一件很…
Where can I start with Deep Learning? By Rotek Song, Deep Reinforcement Learning/Robotics/Computer Vision/iOS | 03/01/2017   If you are a newcomer to the Deep Learning area, the first question you may have is “Which paper should I start reading from?…
Convolutional Neural Networks ImageNet Models Architecture Design Activation Functions Visualization Fast Convolution Low-Rank Filter Approximation Low Precision Parameter Pruning Transfer Learning Theory 3D Data Hardware ImageNet Models 2017 CVPR Xc…
神经网络模型量化方法简介 https://chenrudan.github.io/blog/2018/10/02/networkquantization.html 2018-10-02 本文主要梳理了模型量化算法的一些文章,阐述了每篇文章主要的内核思想和量化过程,整理了一些对这些文章的分析和看法. [转载请注明出处]chenrudan.github.io 随着神经网络算法的发展,网络性能虽然越来越强大,但是也耗费了太多的计算资源和内存,为了得到更有效率的网络以及能部署在移动端,近几年神经网络的压…
    Pull requestsIssues Marketplace Explore             Learn Git and GitHub without any code! Using the Hello World guide, you’ll start a branch, write comments, and open a pull request. Read the guide Watch 2,133  Star23,826 Fork5,417 floodsung/Dee…
目录 1.简介 2.优点 3.基本原理 3.1 权重和激活值二值化[3] 3.2 乘法优化 3.3 权重和激活值更新 4.结论[3] 参考资料 1.简介 ​ 二值化神经网络,在浮点型(权重值和激活函数值存储类型,32bit)神经网络的基础,将其权重和激活函数值进行二值化(+1,-1存储,只需1bit)得到的神经网络.[1] ​ BNN可用于嵌入式或移动场景(例如手机端.可穿戴设备.自动驾驶汽车等)[1],这些场景都没有GPU且计算能力和存储容量相对较弱且限制较大,具有研究的价值和意义. 二值化神…
1. Parameter pruning and sharing 1.1 Quantization and Binarization Compressing deep convolutional networks using vector quantization Quantized convolutional neural networks for mobile devices Improving the speed of neural networks on cpus Deep learni…
https://www.jianshu.com/p/f9b015cc4514 https://github.com/hpi-xnor/BMXNet  BMXNet:基于MXNet的开源二值神经网络实现 Index Introduction Related Works Binary Neural Networks XNOR-Net Conclusion Introduction 神经网络模型的压缩是一个很有前景的方向.由于神经网络需要较大的计算量,目前来说,我们通常在服务器上对神经网络进行训练或是…