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 fi 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