BinaryNet&BinaryConnect 预备知识搜集准备 操作记录

安装Theano

cd ~
virtualenv Theano --python=python
pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ Theano

Virtualenv 虚拟环境使用

cd ~
virtualenv env --python=python    #env表示虚拟环境的名字,会在当前目录产生相应的#文件夹
pip freeze  #显示所有依赖
pip freeze > requirement.txt  #生成requirement.txt文件
pip install -r requirement.txt  #根据requirement.txt生成相同的环境

$ deactivate 关闭virtualenv

Pip 使用国内镜像下载的方法
pip install –index https://pypi.mirrors.ustc.edu.cn/simple/ pandas

–index后面也可以换成别的镜像,比如http://mirrors.sohu.com/python/
http://pypi.douban.com/ 豆瓣
http://pypi.hustunique.com/ 华中理工大学
http://pypi.sdutlinux.org/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学

参考文档:
http://blog.csdn.net/tangwei2014/article/details/55077172
1.二值化神经网络简介
二值化神经网络,是指在浮点型神经网络的基础上,将其权重矩阵中权重值和各个激活函数值同时进行二值化得到的神经网络。二值化神经网络具有很好的特性,具体体现在:
通过将权重矩阵二值化,一个权重值只占用一个比特,相比于单精度浮点型权重矩阵,网络模型的内存消耗理论上能减少32倍,因此二值化神经网络在模型压缩上具有很大的优势。
当权重值和激活函数值同时进行二值化之后,原来32个浮点型数的乘加运算,可以通过一次异或运算(xnor)和一次popcnt运算解决,在模型加速上具有很大的潜力。
二值化神经网络中的二值化通常指将权重值和激活函数值二值化到+1和-1实现。

2.神经网络的二值化方法
1)高模型压缩率
2)前向传播速度快

参考文档:
http://blog.csdn.net/stdcoutzyx/article/details/50926174

梯度计算和累加
虽然BNN的参数和各层的激活值是二值化的,但由于两个原因,导致梯度不得不用较高精度的实数而不是二值进行存储。两个原因如下:
梯度的值的量级很小
梯度具有累加效果,即梯度都带有一定的噪音,而噪音一般认为是服从正态分布的,所以,多次累加梯度才能把噪音平均消耗掉。
另一方面,二值化相当于给权重和激活值添加了噪声,而这样的噪声具有正则化作用,可以防止模型过拟合。所以,二值化也可以被看做是Dropout的一种变形,Dropout是将激活值的一般变成0,从而造成一定的稀疏性,而二值化则是将另一半变成1,从而可以看做是进一步的dropout。
在我之前的研究生论文中,在做图像检索时,也将dropout后的特征向量二值化后进行对比过,检索上的Loss不大。

离散化梯度传播
直接对决定式的二值化函数求导的话,那么求导后的值都是0。所以只能采用一种妥协方法,将sign(x)进行宽松。这样,函数就变成可以求导的了。

假设,损失函数是C,二值化操作函数如下:

如果C对q求导已经得到了,那么C对r的求导计算公式如下:

其中1|r|<=1的计算公式就是Htanh。
在具体的算法使用中,对于隐含层单元:
直接使用决定式的二值化函数得到二值化的激活值。
对于权重,

在进行参数更新时,要时时刻刻把超出[-1,1]的部分给裁剪了。即权重参数始终是[-1,1]之间的实数。
在使用参数是,要将参数进行二值化。

参考文档:
http://blog.csdn.net/brandon2015/article/details/70821435
二值网络——开启小而快神经网络时代
作者:周舒畅——旷视科技(Face++)研究员

摘要:这种使用浮点计算的神经网络要求的大存储空间和大计算量,严重阻碍了其在手机、手表和移动机器人等设备上的应用。二值神经网络设法让计算主要在正1或负1间进行,几十倍地降低了网络大小和计算量,但一直以来难以达到高预测准确率。最新的进展大幅提高了二值神经网络的预测准确率并接近实用水…

参考文档:http://blog.csdn.net/cv_family_z/article/details/51917143

下载安装pylearn2

避免网络的问题,直接使用浏览器下载速度会更快一点
网址:https://github.com/lisa-lab/pylearn2

unzip pylearn2-master.zip
cd pylearn2-master
python setup.py develop

设置数据下载路径

vi ~/.bashrc

最后一行添加如下语句

export PYLEARN2_DATA_PATH=/home/luzuishuai/data

youtube 台湾机器学习

Binary weights and XNOR-Net neural network

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值