【论文笔记】二值化神经网络(Binarized Neural Network)

文章链接:Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1 是2016年2月份新出的一篇文章。

文章的主要思想是通过二值化weights和activations,来提高NN的速度和减少其内存占用。

1. Binarization Function

首先是如何对weights和activations进行二值化。如下图左,Binarization function 很简单,就是一个符号函数。但是作者就想了啊,符号函数不好进行梯度的反向传播啊,因此就把它近似成了右边的Htanh(x)的函数,这样在[-1,1]区间内导数就等于1。
这里写图片描述

2. 网络前向传播

那么除第一层(输入层)以外,每一层的前向传播过程如下:
这里写图片描述

首先权重Wk 经过二值化,然后与上层二值化后的激活值abk1相乘,再进项BatchNormalization得到这一层的激活值ak,由于BatchNorm的参数θk不是二值的,因此ak也不是二值的,我们需要再对它做二值化得到二值化后的激活值abk

3. 网络反向传播

然后反向传播过程如下,要注意的是权重和激活值的更新并不是二值的,因为如果这样做的话误差会很大。
这里写图片描述

4. 输入层特征编码

整个过程基本就是这样。还有一点,输入层的特征是没有进行二值化的,那怎么办呢?由于图像像素值分布在[0,255]之间,所以可以用8比特来表示,这样就能将输入的实值像素值变成二值化的编码了。整体BNN的流程如下,将乘法运算都变成了XNOR运算,可想而知其运算会很快。
这里写图片描述

5. 实验结果

实验结果如下,Baseline是32bit float的DNN方法,其他两个是在不同平台上运行的BNN方法,虚线表示训练的error rate,实线表示验证的error rate。可以看出BNN在训练时会比较慢,但是精度和DNN差不太多。
这里写图片描述

BNN的优势主要在于其测试速度快,占用内存小。与32bit DNN相比,它的内存占用减少了32倍,并且运行速度在GPU上快了7倍。It is amazing! 接下来的考虑就是能否在更复杂的数据库上得到和普通DNN差不多的精度,同时保持效率上的优势了。

深度学习-Pytorch项目实战-垃圾分类

12-08
【课程介绍】       Pytorch项目实战 垃圾分类 课程从实战的角度出发,基于真实数据集与实际业务需求,结合当下最新话题-垃圾分类问题为实际业务出发点,介绍最前沿的深度学习解决方案。     从0到1讲解如何场景业务分析、进行数据处理,模型训练与调优,最后进行测试与结果展示分析。全程实战操作,以最接地气的方式详解每一步流程与解决方案。     课程结合当下深度学习热门领域,尤其是基于facebook 开源分类神器ResNext101网络架构,对网络架构进行调整,以计算机视觉为核心讲解各大网络的应用于实战方法,适合快速入门与进阶提升。 【课程要求】 (1)开发环境:python版本:Python3.7+; torch 版本:1.2.0+; torchvision版本:0.4.0+ (2)开发工具:Pycharm; (3)学员基础:需要一定的Python基础,及深度学习基础; (4)学员收货:掌握最新科技图像分类关键技术; (5)学员资料:内含完整程序源码和数据集; (6)课程亮点:专题技术,完整案例,全程实战操作,徒手撸代码 【课程特色】 阵容强大 讲师一直从事与一线项目开发,高级算法专家,一直从事于图像、NLP、个性推荐系统热门技术领域。 仅跟前沿 基于当前热门讨论话题:垃圾分类,课程采用学术届和工业届最新前沿技术知识要点。 实战为先 根据实际深度学习工业场景-垃圾分类,从产品需求、产品设计和方案设计、产品技术功能实现、模型上线部署。精心设计工业实战项目 保障效果 项目实战方向包含了学术届和工业届最前沿技术要点 项目包装简历优 课程内垃圾分类图像实战项目完成后可以直接优到简历中 【课程思维导图】 【课程实战案例】
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值