ABCnet——高精度二值化網路(Binary Neural Network)
"Towards Accurate Binary Convolutional Neural Network"這篇文章提出了ABCnet,是一種表示精度較高的二值化網路結構(作為XNORnet的演進)。有關XNORnet及其優勢可以參考論文:"XNORNet: ImageNet Classification Using Binary Convolutional Neural Networks"。
論文地址:https://arxiv.org/abs/1711.11294
ABCnet GitHub:https://github.com/layog/Accurate-Binary-Convolution-Network
XNORnet GitHub:https://github.com/ayush29feb/Sketch-A-XNORNet
1、權重引數二值化的線性組合
文章採用一組二值化基(binary filter base)的線性組合來表示網路層引數:
線性組合係數與二值化基的求解問題如下:
針對每個網路層,文章採用一組固定數值的矢量表示二值化基,並且由網路層引數的均值與標準差決定:
由此便可以獲得單一求解線性組合係數的優化問題:
2、權重引數的STE求導
當引數二值化之後,由於估計取值的離散性,不能直接求解損失函式關於原引數的導數,只能用STE(Straight Through Estimator)方法近似求解:
其中c 為損失函式,O 表示網路層輸出。
3、網路層輸入的量化
當網路引數二值化之後,便可以消除卷積或矩陣乘法涉及的乘法操作(multiplier-free),若進一步將網路層輸入量化為1bit,那麼卷積或矩陣乘法便可以簡化為bit-wise XNOR與bit-count運算:
實施二值化操作時,網路層輸入仍然採用一組二值化基的線性組合予以估計:
其中scale係數(beta)、shift係數(v)是可訓練引數,類似於Batch Normalization的仿射變換系數。最終二值化網路層的構造及計算方式如下:
若網路層同時包含pooling、batch normalization及activation操作,則類似於XNORnet的做法,網路層可構造為bn -> conv2d -> pooling -> activation的形式:
並且BN(仿射變換)與網路層輸入的二值化可以合併在一起:
4、實驗結果
針對ImageNet2012分類任務,以Resnet18為例,ABCnet結構相比於原網路、以及其他二值化網路的推理精度對比如下:
相關推薦
ABCnet——高精度二值化網路(Binary Neural Network)
"Towards Accurate Binary Convolutional Neural Network"這篇文章提出了ABCnet,是一種表示精度較高的二值化網路結構(作為XNORnet的演進)。有關XNORnet及其優勢可以參考論文:"XNORNet: ImageNet
深度神經網路(Deep Neural Network)
dZ[l]=dA[l]∗g[l]′(Z[l])dW[l]=1mdZ[l]⋅A[l−1]db[l]=1mnp.sum(dZ[l],axis=1,keepdims=True)dA[l−1]=W[l]T⋅dZ[l]
c#實現圖片二值化例子(黑白效果)
rec con devel 圖片 round amp bsp 操作 spl C#將圖片2值化示例代碼,原圖及二值化後的圖片如下: 原圖: 二值化後的圖像: 實現代碼:using System; using System.Drawing; namespace BMP2G
【論文閱讀筆記】---二值神經網路(BNN)
二值網路是將權值W和隱藏層啟用值二值化為1或者-1。通過二值化操作,使模型的引數佔用更小的儲存空間(記憶體消耗理論上減少為原來的1/32倍,從float32到1bit);同時利用位操作來代替網路中的乘加運算,大大降低了運算時間。由於二值網路只是將網路的引數和啟用值二值化,並沒有改變網路的結構。因此我們主要關注
深度學習【6】二值網路(Binarized Neural Networks)學習與理解
http://blog.csdn.net/linmingan/article/details/51008830 Binarized Neural Networks: Training Neural Networks with Weights and Ac
一些基本的opencv影象預處理函式直接用法(灰度化,otsu二值化,腐蝕膨脹,canny)
#include <cv.h> #include <cxcore.h> #include <highgui.h> using namespace std; using namespace cv; int main(int a
python 圖片二值化處理(處理後為純黑白的圖片)
先隨便招一張圖片test.jpg做案例然後對圖片進行處理# 圖片二值化 from PIL import Image img = Image.open('test.jpg') # 模式L”為灰色影象,它
不均勻光照的二值化方法(去陰影、去曝光)
基於對比背景影象,調整對比度 以下是餘下全文 測試影象是白底黑字 一、演算法思想 1.計算整幅影象的背景影象 2.影象的標準化 3.對比原影象和背景影象,增強和對比度。 二、演算法詳細步驟 1.計算整幅影象的背景影象 (1)設計w*w
【高精度演算法】A-B(答案可負)
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> cha
創建二叉樹( 二叉排序樹(Binary Sort Tree))
sort data scanf urn pre [] print 二叉樹 str #include<stdio.h> #include<stdlib.h> /* 遞歸前中後遍歷 */ typedef struct node { int data;
DeepLearning.ai作業:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)(1)
title: ‘DeepLearning.ai作業:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)(1)’ id: dl-ai-5-1h1 tags: dl.ai homework categories: AI Deep
DeepLearning.ai筆記:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)
title: ‘DeepLearning.ai筆記:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)’ id: dl-ai-5-1 tags: dl.ai categories: AI Deep Learning date: 2
DeepLearning.ai作業:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)(2)
title: ‘DeepLearning.ai作業:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)(2)’ id: dl-ai-5-1h2 tags: dl.ai homework categories: AI Deep
DeepLearning.ai作業:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)(3)
title: ‘DeepLearning.ai作業:(5-1)-- 迴圈神經網路(Recurrent Neural Networks)(3)’ id: dl-ai-5-1h3 tags: dl.ai homework categories: AI Deep
深度學習--深度信念網路(Deep Belief Network)
本篇非常簡要地介紹了深度信念網路的基本概念。文章先簡要介紹了深度信念網路(包括其應用例項)。接著分別講述了:(1) 其基本組成結構——受限玻爾茲曼機的的基本情況,以及,(2) 這個基本結構如何組成深度信念網路。 本文僅僅能使讀者瞭解深度信念網路這一概念,內容非常淺顯,甚至有許多不嚴密
學習筆記之——基於pytorch的殘差網路(deep residual network)
本博文為本人學習pytorch系列之——residual network。 前面的博文( 學習筆記之——基於深度學習的分類網路)也已經介紹過ResNet了。ResNet是2015年的ImageNet競賽的冠軍,由微軟研究院提出,通過引入residual block能夠成功地訓練高達
DeepLearning.ai筆記:(1-4)-- 深層神經網路(Deep neural networks)
這一週主要講了深層的神經網路搭建。 深層神經網路的符號表示 在深層的神經網路中, LL表示神經網路的層數 L=4L=4 n[l]n[l]表示第ll層的神經網路個數 W[l]:(n[l],nl−1)W[l]:(n[l],nl−1) dW[l
DeepLearning.ai作業:(1-4)-- 深層神經網路(Deep neural networks)
不要抄作業! 我只是把思路整理了,供個人學習。 不要抄作業! 本週的作業分了兩個部分,第一部分先構建神經網路的基本函式,第二部分才是構建出模型並預測。 Part1 構建的函式有: Initialize the parameters t
RBM(受限玻爾茲曼機)和深層信念網路(Deep Brief Network)
目錄: 一、RBM 二、Deep Brief Network 三、Deep Autoencoder 一、RBM 1、定義【無監督學習】 RBM記住三個要訣:1)兩層結構圖,可視層和隱藏層;【沒輸出層】2)層內無連線,層間全連線;3)二值狀態值,