B-VGG16: Red Neuronal de Convoluci
´
on
cuantizada binariamente para la clasificaci
´
on de
im
´
agenes
B-VGG16: Binary Quantized Convolutional Neuronal Network for image classification
Nicol
´
as Urbano Pintos
1
, H
´
ector A. Lacomi
2
y Mario B. Lavorato
3
Divisi
´
on Radar L
´
aser, CITEDEF
J. B. de la Salle 4397, Villa Martelli- Argentina
1
nurbano@frh.utn.edu.ar
Grupo ASE, UTN FRH
Par
´
ıs 532, Haedo- Argentina
2
hlacomi@citedef.gob.ar
Grupo TAMA, UTN FRH
Par
´
ıs 532, Haedo- Argentina
3
mlavorato@frh.utn.edu.ar
Resumen—En este trabajo se entrena y eval
´
ua una red
neuronal de convoluci
´
on cuantizada de forma binaria para la
clasificaci
´
on de im
´
agenes. Las redes neuronales binarizadas
reducen la cantidad de memoria, y es posible implementarlas
con menor hardware que las redes que utilizan variables
de valor real (Floating Point 32 bits). Este tipo de redes se
pueden implementar en sistemas embebidos, como FPGA.
Se realiz
´
o una cuantizaci
´
on consciente del entrenamiento,
de modo de poder compensar los errores provocados por la
p
´
erdida de precisi
´
on de los par
´
ametros. El modelo obtuvo
una precisi
´
on de evaluaci
´
on de un 88% con el conjunto de
evaluaci
´
on de CIFAR-10.
Palabras clave: Redes Neuronales de Convoluci
´
on;
Clasificaci
´
on; Cuantizaci
´
on.
Abstract— In this work, a Binary Quantized Convolution
neural network for image classification is trained and
evaluated. Binarized neural networks reduce the amount
of memory, and it is possible to implement them with less
hardware than those that use real value variables (Floating
Point 32 bits). This type of network can be implemented
in embedded systems, such as FPGA. A quantization-aware
training was performed, to compensate for the errors caused
by the loss of precision of the parameters. The model obtained
an evaluation accuracy of 88% with the CIFAR-10 evaluation
set.
Keywords: Convolution Neural Network; Classification;
Quantization.
I. INTRODUCCI
´
ON
Las Redes Neuronales de Convoluci
´
on (CNN - Convo-
lutional Neural Network) se utilizan en la actualidad en
diversas aplicaciones de reconocimiento de im
´
agenes, ya
sea, en la detecci
´
on de defectos en la industria [1], en la
clasificaci
´
on de obst
´
aculos en la navegaci
´
on aut
´
onoma [2],
o en el reconocimiento de objetos en la rob
´
otica [3].
Con el fin de clasificar im
´
agenes, las CNN extraen
caracter
´
ısticas de las mismas a partir de filtros o kernels
[4]. Dichos filtros contienen pesos y sesgos que deben ser
entrenados, de modo de obtener caracter
´
ısticas de bajo nivel,
como puntos o l
´
ıneas, y a partir de la sucesi
´
on de estos
filtros, o btener c aracter
´
ısticas d e a lto n ivel, c omo f ormas o
texturas.
En
el aprendizaje profundo (DL - Deep Learning) se
utiliza una gran cantidad de capas con este tipo de filtros,
a fin d e p oder r econocer guras y fo rmas. Di chos filtros
se almacenan en variables de valor real, generalmente de
punto flotante d e 3 2 b its ( FP32 - F loating P oint 3 2 bits).
Las arquitecturas actuales de aprendizaje profundo para
reconocimiento de im
´
agenes tienen millones de par
´
ametros,
por ejemplo, la red VGG16 (Visual Geometry Group 16)
[5] que posee 16 capas, tiene m
´
as de 138 millones de
par
´
ametros, y se necesitan de 552 MB de memoria para
almacenarlos, y para realizar la clasificaci
´
on d e u na sola
imagen se necesitan de 30.8 GFLOPS (FLOPS - Floating
Point Operation).
La gran cantidad de memoria necesaria para almacenar los
par
´
ametros de estas redes, y la cantidad de operaciones nece-
sarias para realizar una clasificaci
´
on, hacen que implementar
dichos algoritmos en sistemas embebidos sea una tarea
compleja, especialmente si se necesitan respuestas en tiempo
real. Es por ello, que diversos trabajos de investigaci
´
on
abordan con diferentes enfoques la implementaci
´
on de estas
redes en sistemas embebidos [6].
En la actualidad, existen trabajos que se enfocan en
la cuantizaci
´
on de par
´
ametros, este concepto se basa en
representar los par
´
ametros con variables de menor precisi
´
on,
como por ejemplo enteros de 8 bits (INT8 - Integer 8 bits)
[7]. Dentro de la rama de redes neuronales de convoluci
´
on
cuantizadas, Courbariux et. al [8] demostro
´
que es posible
cuantizarlas con variables binarias, de modo de reducir la
cantidad de memoria necesaria, y a su vez, inferirlas de
forma eficiente a partir de operaciones binarias en sistemas
embebidos como FPGA (Field Programmable Gate Array).
En el presente trabajo se entrena y eval
´
ua una red neuronal
de convoluci
´
on binaria, basada en VGG16, cuantizada de
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
107
Recibido: 31/10/22; Aceptado: 07/12/22
Creative Commons License - Attribution-NonCommercial-
NoDerivatives 4.0 International (CC BY-NC-ND 4.0)
https://doi.org/10.37537/rev.elektron.6.2.169.2022
Original Article
forma directa a partir de la librer
´
ıa Brevitas [9], lo cual per-
mite exportar la red a diferentes aceleradores de inferencia
como por ejemplo, el framework FINN [10].
As
´
ı mismo, se comparan de los resultados obtenidos con
los m
´
etodos de BNN de
´
ultima generaci
´
on con el conjunto
de datos CIFAR10 [11]. Y, se discute acerca de qu
´
e m
´
etodo
es m
´
as apto para implementar en un dispositivo FPGA.
Adem
´
as, se dispone de un bloc de notas en Google Colab, a
partir del cual se pueden realizar evaluaciones del modelo.
El mismo se puede acceder desde la referencia [12].
El documento se encuentra organizado de la siguiente
manera, en la secci
´
on 2 se encuentran los antecedentes
de las redes neuronales binarizadas. En la secci
´
on 3 se
da un panorama de los trabajos de cuantizaci
´
on binaria
relacionados. En la secci
´
on 4 se detalla la red propuesta.
En la secci
´
on 5 se informa sobre los procedimientos para
la evaluaci
´
on del modelo. En la secci
´
on 6 se presentan los
resultados. Y por
´
ultimo, en la secci
´
on 7 y 8 se esbozan las
conclusiones y se detalla el trabajo a futuro.
II. ANTECEDENTES
A. Cuantizaci
´
on de Redes Neuronales de Convoluci
´
on
El enfoque de los investigadores actuales se centra en
implementar redes neuronales con una cuantizaci
´
on de 8
bits enteros INT8 o 4 bits enteros INT4. Como es el caso
de los desarrolladores de Xilinx y Nvidia, quienes ofrecen
herramientas de software para implementar una cuantizaci
´
on
de enteros de 8 bits, los framework TensorRT [13] y VITIS
AI [14] respectivamente, lo cual reduce considerablemente
los requerimientos de memoria y el costo computacional.
TensorRT es un framework dise
˜
nado para ser utilizado en
CPU o en placas de desarrollo basadas en GPU como
Jetson Nano. VITIS AI ha logrado grandes avances en la
implementaci
´
on de CNN en FPGA, abordan la cuantizaci
´
on
INT8 e INT4, pero se necesitan de dispositivos FPGA tipo
Zynq UltraScale+, ya que es necesario implementar una
DPU (Deep Learning Processing Unit), como es el caso de
las placas de desarrollo Kria de Xilinx. Los tipos de cuan-
tizaci
´
on m
´
as utilizados en este campo son: cuantifizaci
´
on
posterior al entrenamiento y entrenamiento consciente de
cuantificaci
´
on.
1) Cuantizaci
´
on posterior al entrenamiento: La cuan-
tizaci
´
on posterior al entrenamiento (PTQ— Post Training
Quantization), es una t
´
ecnica en donde la red neuronal es
entrenada utilizando variables de valor real (FP32 o FP16), y
luego es cuantizada. Para realizarlo, se cuantiza directamente
los par
´
ametros de la red, estos par
´
ametros no pueden ser
cambiados, y no se puede realizar un nuevo entrenamiento,
solo inferir. El inconveniente de este tipo de cuantizaci
´
on, es
que al cambiar los par
´
ametros por los nuevos cuantizados,
aparece un error en la precisi
´
on de cada una de las capas
de la red que no son compensados.
2) Cuantizaci
´
on consciente del entrenamiento: La cuanti-
zaci
´
on consciente del entrenamiento QAT (Quantized Aware
Training) compensa los errores de cuantizaci
´
on durante
el mismo entrenamiento. La librer
´
ıa Pytorch [15] ofrece
herramientas para implementar cuantizaciones tipo QAT,
pero est
´
an destinadas a ser utilizadas en CPU Espec
´
ıficos
(ARM y x64).
En los
´
ultimos a
˜
nos, se han desarrollado diferentes her-
ramientas para llevar a cabo redes QAT [16]. El proyecto
de investigaci
´
on Brevitas [9], es una plataforma que permite
implementar dichas redes, y es compatible con Pytorch.
Ofrece un conjunto de bloques de diferentes niveles de
abstracci
´
on para reducir la precisi
´
on del modelo en hardware
en el entrenamiento. Actualmente, solo ofrece cuantizaci
´
on
uniforme.
B. Cuantizaci
´
on Binaria
Si bien la mayor
´
ıa de las investigaciones sobre CNN se
basan en punto flotante, y las cuantizaciones en INT8 e
INT4, hay investigaciones que han implementado redes con
1 bit o 2 bits de activaci
´
on, logrando una alta precisi
´
on.
Como es el caso de BinaryNet desarrollada por Courbariaux
et al. [8], este tipo de redes se denominan BNN (Binary
Neural Network).
Se consideran 3 aspectos en la binarizaci
´
on, la bina-
rizaci
´
on de activaciones de entrada, de pesos de las capas, y
de las salidas. En el caso de que tanto las entradas, los pesos
y las salidas sean binarias, se denomina binarizaci
´
on total,
cuando hay 1 o 2 componentes binarizados, se denomina
binarizaci
´
on parcial.
En las redes BNN, solo los valores binarizados de los
pesos y activaciones se utilizan en todos los c
´
alculos. Como
la salida de una capa es la entrada de la siguiente, todas
las entradas de las capas son binarias, a excepci
´
on de la
primera capa. Esto no resulta un inconveniente, ya que en el
campo de la visi
´
on artificial, la representaci
´
on de la entrada
suele tener muchos menos canales, por ejemplo RGB tiene 3
canales, que las representaciones internas, por ejemplo 512,
es por ello que la primera capa de una red de convoluci
´
on
suele ser la m
´
as peque
˜
na, tanto en par
´
ametros como en
cantidad de c
´
alculos.
Los autores de BinaryNet realizan una BNN, donde los
pesos y las activaciones se restringen a 1 y +1, el objetivo
primordial, es que sean simples de implementar en hardware
con compuertas tipo XNOR. Utilizan una binarizaci
´
on de-
termin
´
ıstica basada en la funci
´
on sign:
x
b
= sign(x) =
(
+1 if x 0
1 if x < 0
(1)
Siendo x el peso o la activaci
´
on de valor real y x
b
bina-
rizado. La cuantizaci
´
on se realiza con la siguiente ecuaci
´
on:
q = sign(r) (2)
Siendo r los par
´
ametros de la capa anterior. Se obtiene el
estimador g
q
del gradiente de la funci
´
on de p
´
erdidas con la
estimaci
´
on directa (STE- Straight-through gradient estima-
tion) [17]. Tal cual se describre en la siguiente ecuaci
´
on:
g
r
= g
q
1
|r|≤1
(3)
Courbariaux obtiene resultados competitivos respecto a los
modelos de precisi
´
on completa en CNN y redes totalmente
conectadas y con capas de normalizaci
´
on de lote en conjun-
tos de datos como MNIST, SVHN y CIFAR10.
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
108
http://elektron.fi.uba.ar
C. Aceleradores de BNN en hardware
En lo que respecta a la implementaci
´
on en Hardware,
estas redes presentan muchas ventajas frente a las CNN
tradicionales, ya que se pueden inferir con menos recursos
computacionales, son de bajo consumo energ
´
etico, y a su vez
necesitan de menor cantidad de memoria. Es por ello, que
se busca ejecutarlas en hardwares limitados computacional-
mente, como pueden ser los ASIC, las FPGA o las CPU. Si
bien un dise
˜
no de un dispositivo ASIC, presenta ventajas
a la hora de la eficiencia energ
´
etica, las FPGA son los
dispositivos m
´
as vers
´
atiles, es por ello que diversos autores
se centran en la implementaci
´
on en este tipo de dispositivos.
Los autores de XNOR-NET [18], han implementado su
modelo en una Raspberry PI zero obteniendo resultados
favorables. A su vez, los desarroladores de JDAI, han creado
una librer
´
ıa denominada daBNN [19] con el fin de realizar
inferencias en dispositivos m
´
oviles con procesadores ARM.
Desde la empresa Xilinx han desarrollado FINN [10] un
framework capaz de implementar BNN en sus FPGA a partir
de una arquitectura de transmisi
´
on de m
´
ultiple, utilizando
conteo de bits, l
´
ımites y operadores tipo OR para mapear
dichas redes. Logrando inferir el modelo BNN-PYNQ [20]
basado en CNV, en un chip Zynq 7020.
III. TRABAJOS RELACIONADOS
En los
´
ultimos a
˜
nos, se han propuesto diversas redes
neuronales binarizadas, basadas en diferentes t
´
ecnicas. A
grandes rasgos se las puede clasificar c
´
omo, redes neu-
ronales binarias directas, y redes neuronales basadas en la
optimizaci
´
on. Dentro de esta
´
ultima categor
´
ıa se distinguen
los m
´
etodos que minimizan el error de cuantizaci
´
on, aque-
llos que mejoran la funci
´
on de p
´
erdida y los m
´
etodos que
buscan reducir el error de gradiente.
Las redes neuronales binarizadas directas cuantizan los
pesos y las activaciones a un 1 bit, utilizando una funci
´
on
de binarizaci
´
on, luego realizan la propagaci
´
on hacia atr
´
as,
optimizando el modelo de la forma cl
´
asica. BinaryConnect
[21] convierte los pesos FP32 dentro de la red en pesos
de 1 bit. En la propagaci
´
on hacia adelante, un m
´
etodo de
binarizaci
´
on estoc
´
astico es utilizado para cuantizar los pesos.
Luego, en la propagaci
´
on hacia atr
´
as, una funci
´
on de recorte
es utilizada para limitar el rango de actualizaci
´
on de los
pesos de FP32, logrando as
´
ı que los pesos de valor real no
crezcan demasiado sin un impacto en los pesos binarios.
Los mismos autores implementaron la red BNN [8]
demostrando que estas redes necesitan 32 veces menos
memoria que una red de precisi
´
on completa, y pueden inferir
en un tiempo 60% menor , a partir de una normalizaci
´
on por
lote basada en turnos y contadores de bit tipo XNOR.
El equipo de Xilinx ha desarrollado el repositorio BNN-
PYNQ, que es parte del proyecto FINN [10], est
´
a basado
en BinaryNet, en la cual utilizan un modelo inspirado en
VGG11, al que denominan CNV, y obtienen una precisi
´
on
en el conjunto de datos CIFAR10 del 84.22% con una
cuantizaci
´
on de 1 bit de pesos y 1 bit de activaci
´
on. El
modelo consta de 4 pilas de convoluci
´
on, activaci
´
on y
Maxpooling, se utiliza la binarizaci
´
on binaria denominada
bipolar, ya se restringe los valores a +1 y -1.
En el caso de la optimizaci
´
on a partir de la disminuci
´
on
del error de cuantizaci
´
on de los pesos y las activaciones, se
emplea una soluci
´
on similar a la de la binarizaci
´
on directa,
pero se introduce un factor de escala para el par
´
ametro
binario. De forma tal que, en vez de binarizar entre 1 y
+1 se binariza entre α y +α, siendo el peso representado
como w αb
w
. Luego se minimiza el error de cuantizaci
´
on
para encontrar el factor de escala
´
optimo y los par
´
ametros
binarios.
Este m
´
etodo disminuye el error de cuantizaci
´
on, respecto
a usar 1 y +1, aumentando la precisi
´
on de inferencia
de la red. Dentro de estos m
´
etodos se pueden considerar
XNOR-NET [18] y BWN [18], siendo la primera una red
totalmente binarizada y la segunda, una red donde solamente
se binarizan los pesos.
Otro enfoque se basa en minimizar el error de cuanti-
zaci
´
on, encontrando una funci
´
on de p
´
erdidas
´
optima, que
controle el entrenamiento de los par
´
ametros, teniendo en
cuenta las restricciones de la binarizaci
´
on. Los m
´
etodos
descriptos en los p
´
arrafos anteriores, solo se centran en
mejorar la precisi
´
on local, logrando que los par
´
ametros sean
los m
´
as cercanos posibles a los valores de FP32. En cambio,
la red LAB [22], busca minimizar la p
´
erdida total asociada
a los pesos binarios utilizando el algoritmo cuasi-Newton.
Para ello, emplean la informaci
´
on de la media m
´
ovil de
segundo orden que es calculada por el optimizador ADAM
[23], y de este modo encontrar los pesos
´
optimos teniendo
en cuenta las caracter
´
ısticas de la binarizaci
´
on.
Por otro lado, el m
´
etodo Aprendiz [24] entrena a una red
de baja precisi
´
on llamada estudiante, usando una red de gran
escala entrenada con una red Maestro de las mismas carac-
ter
´
ısticas. La BNN es supervisada por la red Maestro, pero
preserva la capacidad de aprendizaje, y obtiene rendimientos
cercanos a la red de precisi
´
on completa. Este concepto se
denomina destilaci
´
on.
La red Principal/Subsidiaria [25] demuestra que la funci
´
on
de p
´
erdidas, relacionada con el modelo de precisi
´
on com-
pleta de la red Maestra, ayuda a estabilizar el entrenamiento
de los modelos binarios Aprendiz con una gran precisi
´
on.
Otros enfoques actuales se basan en reducir el error
del gradiente. Ya que, al utilizar el estimador directo STE
(Straight-Through Estimator) [17] para los gradientes de
la propagaci
´
on hacia atr
´
as, existe un desajuste entre el
gradiente de la funci
´
on de binarizaci
´
on. Como es el caso de
la funci
´
on sign y el mismo STE que en general, suele ser
una funci
´
on tipo clip. Esto puede provocar que la red no sea
optimizada correctamente, generando una baja considerable
de la precisi
´
on.
Este inconveniente puede ser solucionado dise
˜
nando una
funci
´
on aproximada de binarizaci
´
on de modo de disminuir
el desajuste de la propagaci
´
on hacia atr
´
as. La red DSQ [26]
reemplaza la funci
´
on de cuantizaci
´
on tradicional, con una
funci
´
on de cuantizaci
´
on de software, que ajusta el valor de
corte y la forma de la funci
´
on de cuantizaci
´
on para acercarse
de forma gradual a la funci
´
on sign. La red DSQ rectifica
la distribuci
´
on de datos de forma orientable, logrando una
disminuci
´
on en el desajuste del gradiente y obteniendo una
precisi
´
on inclusive superior que la del modelo con precisi
´
on
completa.
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
109
http://elektron.fi.uba.ar
IV. EXPERIMENTACI
´
ON
Para llevar a cabo este trabajo se emple
´
o la librer
´
ıa Bre-
vitas, la cual ofrece un conjunto de bloques de construcci
´
on
con diferentes niveles de abstracci
´
on con el objetivo de
realizar cuantizaciones en modelos de redes neuronales. A
su vez, se destaca que Brevitas ofrece la exportaci
´
on a difer-
entes plataformas de inferencia de modelos y aceleraci
´
on de
hardware, como FINN [10], onnxruntime [27], TVM [28] y
PyXIR [29].
A. Conjunto de datos
Se utiliz
´
o el conjunto de datos CIFAR-10 [11] que con-
siste de 60 mil im
´
agenes color (RGB) de 32x32 p
´
ıxeles,
con 6 mil im
´
agenes por cada clase. Hay 50 mil im
´
agenes
para entrenamiento y 10 mil para evaluaci
´
on. Las clases se
encuentran etiquetadas de acuerdo a la Figura 1.
Fig. 1. Clases de conjunto de datos CIFAR-10
B. Arquitectura
En este trabajo se utiliza como modelo a la variaci
´
on de
la red VGG16 propuesta por Lui et. al [30]. La cual consiste
de pilas de capas formadas por convoluci
´
on, activaci
´
on, y
pooling. La primera pila de capas consta de 2 convoluciones
de 64 filtros cada una, y un Maxpooling, que reduce el
tama
˜
no de la matriz a la mitad, utilizando un kernel de 2x2,
y seleccionando el mayor elemento de esa porci
´
on de la
matriz.
La segunda, consta de 2 convoluciones de 128 filtros
cada una con un Maxpooling a la salida. La tercera de 3
convoluciones de 256 filtros con Maxpooling. Y la cuarta
y la quinta constan de 3 convoluciones de 512 filtros cada
una, en este caso sin Maxpooling. Ya que las dimensiones
de las matrices no son divisibles por 2.
Por
´
ultimo, se utilizan dos redes neuronales totalmente
conectadas para relacionar los 512 elementos con 1024, y
la segunda los 1024 elementos con las 10 clases de salida
de la red, por
´
ultimo se utiliza la funci
´
on Softmax. Se
puede observar la arquitectura completa en la Figura 2.
Fig. 2. Arquitectura de la red BVGG16 propuesta
C. Funci
´
on de p
´
erdidas
La funci
´
on de p
´
erdida o de coste cuantifica el error del
modelo, a trav
´
es del c
´
alculo de la predicci
´
on de la red contra
el valor verdadero. Durante el entrenamiento, el optimizador
ajusta el modelo para minimizar las p
´
erdidas.
En este trabajo se utiliza una funci
´
on de entrop
´
ıa cruzada
categ
´
orica, ya que se trata de una clasificaci
´
on multi-clase.
La misma cuantifica la diferencia entre dos distribuciones
de probabilidad, la predicha por el modelo y la real. Se
computa a partir de la ecuaci
´
on 4.
Loss =
m
X
i=1
y
i
· log ˆy
i
(4)
Donde ˆy
i
es el i valor escalar de salida del modelo, y
i
corresponde al valor real. Cuando se utiliza para distinguir a
2 distribuciones discretas de probabilidad, como el caso de
este experimento, y
i
representa la probabilidad de la clase
i, y la suma de todos los y
i
es igual 1. El signo negativo
asegura que la probabilidad se vuelva menor cuando las dos
distribuciones de probabilidad son cercanas entre s
´
ı.
D. Regularizaci
´
on
Al entrenar redes neuronales profundas se corre el riesgo
de caer en el sobre ajuste. Por ese motivo existen diversas
t
´
ecnicas para evitarlo, como Dropout [31], Kernel regularizer
y BatchNormalization [32].
En este caso, se utiliza BatchNormalization, qui
´
en nor-
maliza la activaci
´
on de la capa anterior de cada lote, apli-
cando una transformaci
´
on que mantiene el promedio de acti-
vaci
´
on cercano a 0 y la desviaci
´
on est
´
andar cercana a 1. Esto
direcciona el problema del desplazamiento de la covarianza
interna. Tambi
´
en act
´
ua como regularizador, en algunos casos
eliminando la necesidad de utilizar Dropout. Logra la misma
precisi
´
on con menores pasos de entrenamiento, por lo tanto,
acelera el proceso de entrenamiento.
E. Optimizador
El optimizador se encarga de generar pesos que ajusten de
mejor manera el modelo. Calcula el gradiente de la funci
´
on
de p
´
erdidas por cada peso, a trav
´
es de la derivada parcial.
El objetivo es minimizar el error, por lo tanto, los pesos se
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
110
http://elektron.fi.uba.ar
modifican en direcci
´
on negativa del gradiente.
W
t
+ 1 = W
t
df(coste)
dW
lr (5)
El descenso de gradiente estoc
´
astico mantiene una tasa
de aprendizaje
´
unica para actualizar todos los pesos, y la
tasa no cambia durante el proceso de entrenamiento. En
este trabajo se utiliza el algoritmo de Adam (Adaptive
moment estimation) [23], el cual es una combinaci
´
on de
AdaGrad (Algoritmo de gradiente adaptativo) y RMSprop
(Propagaci
´
on cuadr
´
atica media). Se tiene un factor de en-
trenamiento por par
´
ametro. Cada factor de entrenamiento se
ve afectado por la media del momentum del gradiente.
F. Cuantizaci
´
on
De acuerdo a lo propuesto por BinaryNet [21], todas
las capas utilizan valores de 1 bit para las activaciones
de entrada, los pesos y las activaciones de salida, lo que
se denomina binarizaci
´
on total, y se representa de forma
bipolar con -1 y +1.
La capas de convoluci
´
on se implementan con la funci
´
on
QuantConv2d de la librer
´
ıa Brevitas [9]. La misma es
construida con Conv2d de PyTorch y se instancia a trav
´
es
de una clase de cuantizaci
´
on denomina QuantWBIOL
(QuantWeightBiasInputOutputLayer) la cual recibe la en-
trada, el sesgo y los pesos de la capa de convoluci
´
on y
retorna su versi
´
on cuantizada con los par
´
ametros selecciona-
dos. Para instanciar QuantConv2D es necesario definir las
dimensiones y los canales de la entrada, como as
´
ı tambi
´
en, la
dimensi
´
on del filtro y otros par
´
ametros como el padding y el
striding. Adem
´
as, es necesario definir el tipo de cuantizador
para los pesos, el ancho de bits, el rango y si la cuantizaci
´
on
es signada.
1) Cuantizador: Brevitas provee varios tipos de cuan-
tizadores, en este trabajo se utiliz
´
o QuantType.BINARY,
el cual se implementa con el m
´
odulo BinaryQuant(). Este
m
´
odulo entrega la salida cuantizada a un bit, en el formato
sin cuantizar, que consta de la escala, el punto cero, y el
ancho de bits de la cuantizaci
´
on. Dado el siguiente tensor:
A =
0.0250 0.4700 2.0575
0.4244 0.7854 0.5433
0.2290 0.6359 1.0642
(6)
En primer lugar, se obtiene el m
´
aximo valor, y a partir de
este valor, se calcula la escala del siguiente modo:
escala =
max|A
ij
|
1
(7)
Al ser una cuantizaci
´
on binar
´
ıa, el m
´
aximo valor que puede
tomar es +1.
En segundo lugar, se calcula el nuevo tensor a partir de
la escala y se redondea al valor entero m
´
as cercano -1 o +1,
ya que el cero se encuentra restringido.
A
q uant
=
A
escala
+1 +1 +1
+1 1 1.
+1 +1 1.
(8)
2) Capas Cuantizadas: A continuaci
´
on se detalla como
se instanci
´
o la funci
´
on QuantCon2d en la primera capa de
convoluci
´
on de la red planteada en el trabajo.
QuantConv2d(kernel_size=3,
padding=1,
in_channels=3,
out_channels=64,
bias=False,
weight_quant=CommonWeightQ,
weight_bit_width=1,
return_quant_tensor=True)
Adem
´
as, se utilizaron para las capas de pooling la funci
´
on
QuantMaxPool2d, y para las activaciones la funci
´
on Quant-
Identity.
G. Activaci
´
on
En los experimentos realizados, se utiliz
´
o la funci
´
on
identidad como activaci
´
on. Vale la pena aclarar, que al ser
una activaci
´
on cuantizada, aunque la funci
´
on sea identidad,
la cuantizaci
´
on, que en este caso eso es la funci
´
on sign, hace
las veces de funci
´
on transferencia. En la Fig. 3 se observa
la funci
´
on sign.
Fig. 3. Funci
´
on sign utilizada para la cuantizaci
´
on
H. Par
´
ametros e hiperpar
´
ametros de entrenamiento
Se configur
´
o la red con los par
´
ametros e hiperpar
´
ametros
que se observan en la tabla I.
TABLA I
PAR
´
AMETROS E HIPERPAR
´
AMETROS DE ENTRENAMIENTO
Arquitectura VGG16
Conjunto de Datos CIFAR-10
´
Epocas 1000
Tasa de Aprendizaje 0.02
Tama
˜
no de lote 100
Funci
´
on de p
´
erdidas Cross Entropy
Funci
´
on de Activaci
´
on Identidad(Cuantizada)
Optimizador ADAM
Regularizador BatchNormalization
Bits de Pesos 1 bit
Bits de activaciones 1 bit
V. EVALUACI
´
ON
A. Entrenamiento
Se entren
´
o el modelo cuantizado sobre el conjunto de
datos CIFAR-10 con una tasa de aprendizaje de 0.02.
De las 50 mil im
´
agenes del conjunto de entrenamiento,
se separaron 5 mil de forma aleatoria para utilizarlas
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
111
http://elektron.fi.uba.ar
como validaci
´
on. Se utiliz
´
o un tama
˜
no de batch de 100,
y a las im
´
agenes del conjunto de datos se les aplic
´
o la
transformaci
´
on a tensor de PyTorch, y una funci
´
on de
volteo aleatorio y recorte aleatorio para aumentar los datos.
Se puede visualizar un ejemplo del lote en la Fig. 4.
Fig. 4. Ejemplo de batch de 100 im
´
agenes
Se realiz
´
o el entrenamiento en una computadora de
escritorio con procesador I7 11700k, 16 GB DDR4-2666
MHz de Memoria, y una placa GPU NVIDIA GeForce
RTX-3060. Se entrenaron 1000
´
epocas en casi 5 horas. Vale
la pena aclarar, que si bien se obtienen pesos y activaciones
binarios, para realizar el entrenamiento se utilizan valores
reales que luego son cuantizados en cada capa.
VI. RESULTADOS
Con el modelo propuesto B-VGG16 se obtiene una pre-
cisi
´
on con el conjunto de datos de evaluaci
´
on de CIFAR10
de un 88.21%. La misma es calculada como el cociente de
las predicciones correctas con el n
´
umero total de predic-
ciones.
En la Figura 5 se observa la matriz de confusi
´
on, la
cual representa en el eje x las clases reales, y en el eje
y los valores predichos. La diagonal principal representa
a las clases que han sido correctamente predichas por el
algoritmo.
Fig. 5. Matriz de confusi
´
on del conjunto de evaluaci
´
on
En la izquierda de la Figura 6 se observa una imagen de
32x32 p
´
ıxeles RGB obtenida del conjunto de evaluaci
´
on de
CIFAR10. Luego de ser inferida por el modelo en an
´
alisis,
se observan las probabilidades predichas para cada clase a la
derecha de la Figura 6. La clase auto es la que tiene mayor
probabilidad.
Fig. 6. Imagen del conjunto de datos CIFAR10
Adem
´
as, de la evaluaci
´
on con im
´
agenes pertenecientes al
conjunto de datos se evalu
´
o con fotograf
´
ıas externas, como
es el caso de la imagen de la izquierda de la Figura 7, donde
en primer lugar se recort
´
o la imagen para centrar al veh
´
ıculo,
y luego se la redujo a 32x32 p
´
ıxeles. Se pueden observar
las predicciones obtenidas en el gr
´
afico de la derecha de la
Figura 7.
Fig. 7. Imagen reducida a 32x32 p
´
ıxeles
A. Comparaci
´
on con otras redes BNN
En la tabla II se observa la comparaci
´
on de la precisi
´
on de
evaluaci
´
on de diferentes redes de convoluci
´
on binarizadas
que han surgido en los
´
ultimos a
˜
nos. Se hace menci
´
on al
m
´
etodo utilizado, la arquitectura de la red, la cantidad de
bits de los pesos y las activaciones. Todos los m
´
etodos est
´
an
evaluados con el conjunto de datos CIFAR-10.
Para esta tabla fueron seleccionados m
´
etodos que realizan
cuantizaci
´
on totalmente binaria, de 1 bit tanto para los pesos
como las activaciones, como es el caso de las redes BNN-
PYNQ [20], XNOR-NET [18], LAB [22], Main/Subsidiary
[25] y DSQ [26].
Si bien la red propuesta B-VGG16 no supera a la red de
´
ultima generaci
´
on DSQ, la cual reduce el error del gradiente,
ni a XNOR-NET que minimiza el error de cuantizaci
´
on. S
´
ı
presenta mejoras en aquellas redes que utilizan el enfoque
de mejorar la funci
´
on de p
´
erdidas, como es el caso de la
red LAB y Main/Subsidiary.
A su vez, la red obtiene un rendimiento m
´
as alto que
BNN-PYNQ, esto se debe principalmente a que la red pro-
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
112
http://elektron.fi.uba.ar
TABLA II
COMPARACI
´
ON CON OTRAS REDES BNN EVALUADAS CON EL CONJUNTO DE DATOS CIFAR10
Red Enfoque Arquitectura Bits(W/A) Acc.[%]
VGG16 [30] Precisi
´
on completa VGG-16 32/32 90,2
B-VGG16(propia) Directo B-VGG16 1/1 88,21
BNN-PYNQ [20] Directo CNV 1/1 84,22
XNOR-NET [18] Minimizar el Error de cuantizaci
´
on VGG-SMALL 1/1 89,8
LAB [22] Mejorar la Funci
´
on de p
´
erdidas VGG-SMALL 1/1 87,72
Main/Subsidiary [25] Mejorar la Funci
´
on de p
´
erdidas VGG-11 1/1 82
DSQ [26] Reducir el error de Gradiente VGG-SMALL 1/1 91,7
puesta utiliza m
´
as capas de convoluci
´
on que la arquitectura
CNV.
Vale la pena resaltar que la precisi
´
on no es el
´
unico crite-
rio a evaluar de las BNN, ya que la versatilidad es de gran
importancia para implementar estas redes en aplicaciones
pr
´
acticas. Ya sea para reentrenar la red con otro conjunto de
datos, o para llevarla a hardware.
Por otro lado, los m
´
etodos que buscan mejorar la precisi
´
on
de las BNN a partir de cuantizadores dedicados, se basan
en c
´
alculos complejos, y en varias etapas, lo cual dificulta
su implementaci
´
on y reproducibilidad en hardware, en otras
palabras, carecen de un sentido pr
´
actico. El equilibrio entre
la precisi
´
on y la velocidad de inferencia es un criterio a
tener en cuenta.
En resumen, el m
´
etodo propuesto por los autores B-
VGG16 logra una precisi
´
on competitiva, superando incluso
algunos m
´
etodos m
´
as complejos a nivel c
´
alculo, pero sin
llegar a los resultados obtenidos por los m
´
etodos de
´
ultima
generaci
´
on como DSQ. Sin embargo, tiene la ventaja de ser
simple de implementar, debido a que utiliza un m
´
etodo de
cuantizaci
´
on directo. A su vez, la red se construye a partir
de Brevitas y Pytorch, por lo que permite que sea evaluada
en el bloc de notas puesto a disposici
´
on en la referencia
[12]. Tambi
´
en, es importarte resaltar que la librer
´
ıa Brevitas,
permite exportar directamente al framework FINN, y esto
permitir
´
ıa en un futuro implementar la red en una FPGA. Por
estos motivos, se considera que el modelo propuesto, tiene
como ventaja principal su versatilidad, frente a los modelos
comparados.
VII. CONCLUSIONES
En el presente trabajo se hace una discusi
´
on y an
´
alisis
de diferentes m
´
etodos de cuantizaci
´
on binaria de redes
neuronales de convoluci
´
on y luego, sobre la base de esto, se
implementa una red de convoluci
´
on basada en la arquitectura
VGG16 a partir de las herramientas de cuantizaci
´
on tipo
QAT que ofrece la librer
´
ıa Brevitas. Se utiliza una cuanti-
zaci
´
on binaria de 1 bit tanto para los pesos como para las
activaciones. Se entrena y eval
´
ua con el conjunto de datos
CIFAR10. La librer
´
ıa Brevitas presenta la ventaja de ser de
f
´
acil utilizaci
´
on, y a su vez, est
´
a directamente asociada al
framework FINN de inferencia a FPGA.
Si bien, la red no obtiene los resultados m
´
as altos, en
cuanto a la comparaci
´
on de la precisi
´
on con otros m
´
etodos
de cuantizaci
´
on binaria de
´
ultima generaci
´
on, como DSQ.
Si supera a la ya mencionada BBN-PYNQ, y a los m
´
etodos
basados en mejorar la funci
´
on de p
´
erdidas.
Respecto a DSQ, el modelo propuesto por este trabajo,
tiene la ventaja de ser m
´
as vers
´
atil, ya que es mucho m
´
as
simple de implementar, debido principalmente, a que utiliza
una cuantizaci
´
on directa y a su vez presenta la ventaja
de que al ser codificado con la librer
´
ıa Brevitas se puede
exportar directamente al framework FINN, y a partir de
la arquitectura de transmisi
´
on m
´
ultiple con conteo de bits
y compuertas OR, se puede lograr una alta velocidad de
inferencia a un bajo costo energ
´
etico.
El modelo propuesto obtiene una mayor precisi
´
on de
evaluaci
´
on respecto al modelo CNV [20], esto se debe a que
se aumentan la cantidad de pilas de capas de convoluci
´
on,
activaci
´
on y pooling. Al utilizar un modelo m
´
as profundo,
con mayor cantidad de activaciones y par
´
ametros, tambi
´
en
aumenta la cantidad de memoria en juego. Esto podr
´
ıa
implicar un problema a la hora de implementar la inferencia
de la red en sistemas tipo FPGA, pero el modelo CNV est
´
a
implementado para un chip de Xilinx ZYNQ 7020, que
se encuentra dentro de la generaci
´
on anterior de FPGA.
Actualmente, la nueva generaci
´
on de dispositivos de la
marca Xilinx, como por ejemplo la Zynq Ultrascale+ es
capaz de albergar dichos modelos.
VIII. TRABAJO A FUTURO
A partir del framework experimental FINN [10], se im-
plementar
´
a esta red en una FPGA tipo SOC (System On
Chip) del proyecto PYNQ. Para ello se deber
´
a optimizar el
modelo, a partir de t
´
ecnicas de pruning, de modo de reducir
la cantidad de par
´
ametros y de operaciones.
AGRADECIMIENTOS
Los autores agradecen al “Instituto de Investigaciones
Cient
´
ıficas y T
´
ecnicas para la Defensa”— CITEDEF de-
pendiente del Ministerio de Defensa, por el apoyo dado;
adem
´
as, al Programa de Investigaci
´
on y Desarrollo para la
Defensa del Ministerio de Defensa por el financiamiento
del proyecto PIDDEF 06/17. Se agradece a la Universidad
Tecnol
´
ogica Nacional, por el Programa de Investigaci
´
on y
Desarrollo por el proyecto MSTCAHA0008161TC. Y en
particular a la UTN Facultad Regional Haedo, por el apoyo
dado.
REFERENCIAS
[1] X. Chen, J. Chen, X. Han, C. Zhao, D. Zhang, K. Zhu, and Y. Su, A
light-weighted cnn model for wafer structural defect detection, IEEE
Access, vol. 8, pp. 24 006–24 018, 2020, doi: 10.1109/ACCESS.2020.
2970461.
[2] H. Gao, B. Cheng, J. Wang, K. Li, J. Zhao, and D. Li, “Object clas-
sification using cnn-based fusion of vision and lidar in autonomous
vehicle environment, IEEE Transactions on Industrial Informatics,
vol. 14, no. 9, pp. 4224–4231, 2018, doi: 10.1109/TII.2018.2822828.
[3] F. Foroughi, Z. Chen, and J. Wang, A cnn-based system for mobile
robot navigation in indoor environments via visual localization
with a small dataset, World Electric Vehicle Journal, vol. 12,
no. 3, 2021, doi: 10.3390/wevj12030134. [Online]. Available:
https://www.mdpi.com/2032-6653/12/3/134
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
113
http://elektron.fi.uba.ar
[4] N. Aloysius and M. Geetha, “A review on deep convolutional neural
networks, Proceedings of the 2017 IEEE International Conference
on Communication and Signal Processing, ICCSP 2017, vol. 2018-
Janua, pp. 588–592, 2018, doi: 10.1109/ICCSP.2017.8286426.
[5] K. Simonyan and A. Zisserman, “Very deep convolutional networks
for large-scale image recognition, 2014, doi: 10.48550/ARXIV.
1409.1556. [Online]. Available: https://arxiv.org/abs/1409.1556
[6] A. Shawahna, S. M. Sait, and A. El-Maleh, “FPGA-Based accelerators
of deep learning networks for learning and classification: A review,
IEEE Access, vol. 7, pp. 7823–7859, 2019, doi: 10.1109/ACCESS.
2018.2890150.
[7] I. Hubara, M. Courbariaux, D. Soudry, R. El-Yaniv, and Y. Bengio,
“Quantized neural networks: Training neural networks with low
precision weights and activations, Journal of Machine Learning
Research, vol. 18, pp. 1–30, 2018.
[8] M. Courbariaux, I. Hubara, D. Soudry, R. El-Yaniv, and Y. Bengio,
“Binarized Neural Networks: Training Deep Neural Networks with
Weights and Activations Constrained to +1 or -1, arXiv: Learning,
2016. [Online]. Available: http://arxiv.org/abs/1602.02830
[9] A. Pappalardo, “Xilinx/brevitas, 2021, doi: 10.5281/zenodo.3333552.
[10] M. Blott, T. B. Preuber, N. J. Fraser, G. Gambardella, K. O’Brien,
Y. Umuroglu, M. Leeser, and K. Vissers, “FinN-R: An end-to-end
deep-learning framework for fast exploration of quantized neural
networks, ACM Transactions on Reconfigurable Technology and
Systems, vol. 11, no. 3, 2018, doi: 10.1145/3242897.
[11] A. Krizhevsky, “Learning multiple layers of features from tiny im-
ages, 2009.
[12] N. Urbano Pintos, H. Lacomi, and M. Lavo-
rato, “Bvgg16 - entrenamiento en google colab,
2022. [Online]. Available: https://colab.research.google.com/drive/
1irvyEzHj7tAvIfV56bFHP50fCNDCHZsu?usp=sharing
[13] NVIDIA, “Tensorrt open source software, 2022. [Online]. Available:
https://github.com/NVIDIA/TensorRT
[14] XILINX, “Vitis ai - adaptable & real-time ai inference acceleration,
2022. [Online]. Available: https://github.com/Xilinx/Vitis-AI
[15] A. Paszke, S. Gross, F. Massa, A. Lerer, J. Bradbury, G. Chanan,
T. Killeen, Z. Lin, N. Gimelshein, L. Antiga, A. Desmaison, A. K
¨
opf,
E. Yang, Z. DeVito, M. Raison, A. Tejani, S. Chilamkurthy, B. Steiner,
L. Fang, J. Bai, and S. Chintala, “PyTorch: An imperative style, high-
performance deep learning library, Advances in Neural Information
Processing Systems, vol. 32, no. NeurIPS, 2019.
[16] A. Gholami, S. Kim, Z. Dong, Z. Yao, M. W. Mahoney, and
K. Keutzer, “A Survey of Quantization Methods for Efficient Neural
Network Inference, Low-Power Computer Vision, pp. 291–326, 2022,
doi: 10.1201/9781003162810-13.
[17] Y. Bengio, N. L
´
eonard, and A. Courville, “Estimating or propagating
gradients through stochastic neurons for conditional computation,
arXiv preprint arXiv:1308.3432, 2013.
[18] M. Rastegari, V. Ordonez, J. Redmon, and A. Farhadi, “Xnor-net:
Imagenet classification using binary convolutional neural networks,
in European conference on computer vision. Springer, 2016, pp.
525–542.
[19] J. Zhang, Y. Pan, T. Yao, H. Zhao, and T. Mei, “dabnn: A super fast
inference framework for binary neural networks on arm devices, in
Proceedings of the 27th ACM international conference on multimedia,
2019, pp. 2272–2275.
[20] Y. Umuroglu, N. J. Fraser, G. Gambardella, M. Blott, P. Leong,
M. Jahre, and K. Vissers, “FINN: A framework for fast, scalable
binarized neural network inference, FPGA 2017 - Proceedings of the
2017 ACM/SIGDA International Symposium on Field-Programmable
Gate Arrays, no. February, pp. 65–74, 2017, doi: 10.1145/3020078.
3021744.
[21] M. Courbariaux, Y. Bengio, and J.-P. David, “Binaryconnect: Training
deep neural networks with binary weights during propagations,
Advances in neural information processing systems, vol. 28, 2015.
[22] L. Hou, Q. Yao, and J. T. Kwok, “Loss-aware binarization of deep
networks, arXiv preprint arXiv:1611.01600, 2016.
[23] D. P. Kingma and J. Ba, “Adam: A Method for Stochastic
Optimization, 2014, doi: 10.48550/ARXIV.1412.6980. [Online].
Available: https://arxiv.org/abs/1412.6980
[24] A. Mishra and D. Marr, Apprentice: Using knowledge distilla-
tion techniques to improve low-precision network accuracy, arXiv
preprint arXiv:1711.05852, 2017.
[25] Y. Xu, X. Dong, Y. Li, and H. Su, A main/subsidiary network frame-
work for simplifying binary neural networks, in Proceedings of the
IEEE/CVF Conference on Computer Vision and Pattern Recognition,
2019, pp. 7154–7162.
[26] R. Gong, X. Liu, S. Jiang, T. Li, P. Hu, J. Lin, F. Yu, and J. Yan,
“Differentiable soft quantization: Bridging full-precision and low-
bit neural networks, in Proceedings of the IEEE/CVF International
Conference on Computer Vision, 2019, pp. 4852–4861.
[27] O. R. developers, “ONNX Runtime, 11 2018. [Online]. Available:
https://github.com/microsoft/onnxruntime
[28] T. Chen, T. Moreau, Z. Jiang, L. Zheng, E. Yan, H. Shen, M. Cowan,
L. Wang, Y. Hu, L. Ceze et al., {TVM}: An automated {End-
to-End} optimizing compiler for deep learning, in 13th USENIX
Symposium on Operating Systems Design and Implementation (OSDI
18), 2018, pp. 578–594.
[29] Xilinx, “PyXIR, 11 2019. [Online]. Available: https://github.com/
Xilinx/pyxir
[30] S. Liu and W. Deng, “Very deep convolutional neural network based
image classification using small training sample size, Proceedings -
3rd IAPR Asian Conference on Pattern Recognition, ACPR 2015, pp.
730–734, 2016, doi: 10.1109/ACPR.2015.7486599.
[31] N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever, and
R. Salakhutdinov, “Dropout: A simple way to prevent neural networks
from overfitting, Journal of Machine Learning Research, vol. 15, pp.
1929–1958, 2014.
[32] S. Ioffe and C. Szegedy, “Batch Normalization: Accelerating
Deep Network Training by Reducing Internal Covariate Shift,
2015, doi: 10.48550/ARXIV.1502.03167. [Online]. Available: https:
//arxiv.org/abs/1502.03167
Revista elektron, Vol. 6, No. 2, pp. 107-114 (2022)
ISSN 2525-0159
114
http://elektron.fi.uba.ar

Enlaces de Referencia

  • Por el momento, no existen enlaces de referencia


Copyright (c) 2022 Nicolás Urbano Pintos

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.


Revista elektron,  ISSN-L 2525-0159
Facultad de Ingeniería. Universidad de Buenos Aires 
Paseo Colón 850, 3er piso
C1063ACV - Buenos Aires - Argentina
revista.elektron@fi.uba.ar
+54 (11) 528-50889