UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE
UNIVERSIDADEFEDERAL DORIOGRANDE DO NORTE CENTRO DETECNOLOGIA
PROGRAMA DEPÓS-GRADUAÇÃO EMENGENHARIAELÉTRICA
Modelo Comportamental do Capacitor
Ferroelétrico como Unidade Básica de
Neurônios Artificiais e sua Implementação em
FPGA
Alan Paulo Oliveira da Silva
Orientador: ProfaDraAna Maria Guimarães Guerreiro
Tese de Doutorado apresentada ao
Pro-grama de Pós-Graduação em Engenharia Elétrica da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Doutor em Ciências.
Silva, Alan Paulo Oliveira
Modelo comportamental do capacitor ferroelétrico como unidade básica de neurônios artificiais e sua implementação em FPGA / Alan Paulo Oliveira da Silva - Natal, RN, 2015.
87 f. : il.
Orientadora: Profa. Dra. Ana Maria Guimarães Guerreiro.
Tese (doutorado) - Universidade Federal do Rio Grande do Norte. Centro de Tecnologia. Programa de Pós-Graduação em Engenharia Elétrica e da Computação.
1. Capacitor ferroelétrico - Tese. 2. Neurônio artificial - Tese. 3. FPGA - Tese. I. Guerreiro, Ana Maria Guimarães. II. Universidade Federal do Rio Grande do Norte. III. Título.
Modelo Comportamental do Capacitor
Ferroelétrico como Unidade Básica de
Neurônios Artificiais e sua Implementação em
FPGA
Alan Paulo Oliveira da Silva
Tese de Doutorado aprovada em 30 de janeiro de 2015 pela banca examinadora composta pelos seguintes membros:
ProfaDraAna Maria Guimarães Guerreiro (orientador) . . . DCA/UFRN
Prof. Dr. Marcelo Augusto Costa Fernandes . . . DCA/UFRN
ProfaDraHeliana Bezerra Soares . . . DEB/UFRN
Prof. Dr. Danniel Cavalcante Lopes . . . DCEN/UFERSA
Agradecimentos
Esse trabalho é fruto do apoio, encorajamento e orientação de muitas pessoas especiais em minha vida.
Primeiramente, eu gostaria de agradecer profundamente aos professores, Dra. Ana Maria Guimarães Guerreiro e Dr. Marcelo Augusto Costa Fernandes, por todos os ensinamen-tos, críticas, aconselhamentos e acompanhamento durante toda a trajetória de elaboração desse trabalho.
À professora Dra. Ana Maria Guerreiro, agradeço especialmente pela enorme contri-buição na minha formação profissional e pessoal ao longo dos anos da minha formação acadêmica. O seu apoio foi fundamental para que eu pudesse alcançar meus objetivos acadêmicos na graduação e pós-graduação. À você, professora Ana, meu muitíssimo obrigado.
Ao professor Dr. Marcelo Fernandes, agradeço especialmente pela enorme contribuição nas etapas finais desse trabalho. Sua orientação foi fundamental na adequação e fecha-mento das ideias, contribuindo para meu esclarecifecha-mento e para a construção de uma visão mais crítica e científicamente fundamentada.
Paralalemante, eu gostaria de agradecer a todos os professores que contribuíram para a minha formação, especialmente os professores do Departamento de Computação e Auto-mação da Universidade Federal do Rio Grande do Norte pelos ensinamentos e orientações significativoas para meu enriquecimento pessoal e profissional.
Um agradecimento especial a todos os colegas com quem tive o prazer de conviver e trabalhar no Laboratório de Sistemas Inteligentes do Departamento de Computação e Au-tomação da Universidade Federal do Rio Grande do Norte. Vocês também foram muito importantes para que eu pudesse enfrentar muitos momentos difíceis durante toda essa caminhada.
Agradeço também a Deus pelo dom da vida e pela força para seguir em frente e encarar os obstáculos no caminho.
Resumo
Este trabalho propõe a utilização do modelo comportamental do ciclo de histerese do capacitor ferroelétrico como uma nova alternativa às técnicas normalmente custosas no cálculo de funções não-lineares em neurônios artificiais implementados em plataforma de
hardwarereconfigurável, no caso, um dispositivo FPGA. Inicialmente a proposta foi
vali-dada por meio da implementação da lógicabooleanaatravés dos modelos digitais de dois
neurônios artificiais: o Perceptron e uma variação do modeloSpiking Neuron Integrate and Fire, ambos utilizando o modelo também digital do ciclo de histerese do capacitor
ferroelétrico como unidade básica não-linear no cálculo das saídas dos neurônios. Final-mente, foi utilizado um modelo analógico do capacitor ferroelétrico com o objetivo de verificar a sua eficácia e uma possível redução no número de elementos lógicos necessá-rios no caso da implementação dos neurônios em circuito integrado. As implementações foram realizadas por meio de modelos emSimulinke a sintetização dos mesmos foi feita
com o auxílio dosoftware DSP Builder, daAltera Corporation.
Abstract
This work proposes the use of the behavioral model of the hysteresis loop of the fer-roelectrics capacitor as a new alternative to the usually costly techniques in the computa-tion of nonlinear funccomputa-tions in artificial neurons implemented on reconfigurable hardware platform, in this case, a FPGA device. Initially the proposal has been validated by the implementation of the boolean logic through the digital models of two artificial neurons: the Perceptron and a variation of the model Integrate and Fire Spiking Neuron, both using the model also digital of the hysteresis loop of the ferroelectric capacitor as it’s basic non-linear unit for the calculations of the neurons outputs. Finally, it has been used the analog model of the ferroelectric capacitor with the goal of verifying it’s effectiveness and possi-bly the reduction of the number of necessary logic elements in the case of implementing the artificial neurons on integrated circuit. The implementations has been carried out by Simulink models and the synthesizing has been done through the DSP Builder software from Altera Corporation.
Sumário
Sumário i
Lista de Figuras iii
Lista de Tabelas vii
1 Introdução 1
1.1 Metodologia . . . 2
1.2 Motivação . . . 5
1.3 Objetivos . . . 7
1.4 Publicações Aceitas . . . 7
1.5 Organização do Trabalho . . . 8
2 Estado da Arte 9 2.1 Conclusão . . . 11
3 Redes Neurais Artificiais 13 3.1 Principais Características . . . 13
3.2 Neurônio Biológico e Neurônio Artificial . . . 14
3.3 Processo de Treinamento . . . 19
3.3.1 Paradigmas de Treinamento . . . 21
3.4 Conclusão . . . 21
4 Neurônios Ferroelétricos 23 4.1 Modelo Matemático do Capacitor Ferroelétrico . . . 23
4.2 Capacitor Ferroelétrico como Função de Ativação . . . 24
4.2.1 Modelo FePerceptron . . . 24
4.2.2 Simulação do Modelo FePerceptron . . . 27
4.2.3 Modelo Spiking FeNeuron . . . 28
4.2.4 Simulação do Modelo Spiking FeNeuron . . . 31
4.3 Conclusão . . . 35
5 Neurônios Fe em FPGA e Resultados Obtidos 37 5.1 Neurônios Fe com pesos pré-definidos . . . 38
5.2 FePerceptron e seu Ciclo de Aprendizagem . . . 44
5.3 Spiking FeNeuron e seu Ciclo de Aprendizagem . . . 50
Lista de Figuras
1.1 Blocos sintetizáveis disponíveis no software DSP Builder utilizados no
desenvolvimento dos modelos dehardware. . . 4
1.2 Estrutura básica de um FPGA. Composta por blocos lógicos programá-veis (CLBs) e interconexões reprogramáprogramá-veis controlados por elementos chamados de Matrizes de Interconexão, ouSwitch Matrix[Pedroni, 2004]. 6 3.1 Estrutura básica de um neurônio biológico. As celulas contêm elemen-tos como corpo celular (Soma), núcleo, axiônios, dentritos e terminações sinápticas [Silva, Spatti e Flauzino, 2010]. . . 14
3.2 Primeiro modelo computacional de um neurônio biológico proposto por McCulloch e Pitts [McCulloch e Pitts, 1943]. . . 15
3.3 Função de ativação degrau. . . 16
3.4 Função de ativação degrau bipolar. . . 17
3.5 Função de ativação rampa simétrica. . . 18
3.6 Função de ativação logística paraβ=0.5. . . 18
3.7 Função de ativação tangente hiperbólica paraβ=2. . . 19
3.8 Função de ativação gaussiana para com centro em zero e desvio padrão σ=0.5. . . 20
3.9 Função de ativação linear. . . 20
4.1 A aproximação do ciclo de polarização saturada com base no compor-tamento do capacitor ferroelétrico em um circuito elétrico utilizando as funções tangente hiperbólicas. Os valores utilizados foram retirados de um ciclo de histerese real: Ps = 23µC/cm2, Pr = 15µC/cm2, e Ec = 40kV/cm2[Guerreiro, 2004]. . . 24
4.2 O modelo do neurônioPerceptronde Rosemblatt com duas entradas. . . . 25
4.3 O modelo do neurônioFePerceptron. . . 26
4.4 As curvas de aprendizado das portas lógicas AND e NAND. . . 29
4.5 As curvas de aprendizado das portas lógicas OR e NOR. . . 29
4.6 O modelo discretoSpiking FeNeuron[Guerreiro, 2004]. . . 32
4.7 As curvas de aprendizado para as portas lógicas AND e NAND, utilizando o modeloSpiking FeNeuron. . . 33
4.8 As curvas de aprendizado para as portas lógicas OR e NOR utilizando o modeloSpiking FeNeuron. . . 33
4.9 A curva de aprendizado para a porta lógica XOR utilizando o modelo Spiking FeNeuron. . . 34
AND. . . 38 5.2 Curva da aproximação da tangente hiperbólica em Look-up Tableem
re-lação a curva da função original. . . 40 5.3 Modelo sintetizável referente aohardwaredoSpiking FeNeuroncom
pe-sos sinápticos previamente calculados para a implementação da porta ló-gica XOR. . . 42 5.4 Cáculo do limite de ativação dinâmicoΘ(n)no modeloSpiking FeNeuron. 44
5.5 Diagrama de blocos sintetizáveis referente ao modelo do FePerceptron
juntamente com seu ciclo de aprendizagem. . . 45 5.6 Diagrama de blocos sintetizáveis referente ao cálculo da saída do
neurô-nioFePerceptroncom a adição do erroe(n)e da taxa de aprendizadoη. . 46 5.7 Diagrama de blocos sintetizáveis referente ao cálculo da regra de ajuste
dos pesos sinápticos doFePerceptron. . . 47
5.8 Curvas de aprendizado das portas lógicas AND e NAND obtidas por meio do modelo sintetizável doFePerceptron (curvas em preto) em relação as
curvas de aprendizado obtidas nas respectivas simulações em software
(curva em azul). . . 49 5.9 Curvas de aprendizado das portas lógicas OR e NOR obtidas por meio
do modelo sintetizável doFePerceptron (curvas em preto) em relação as
curvas de aprendizado obtidas nas respectivas simulações em software
(curva em azul). . . 50 5.10 Diagrama de blocos sintetizáveis referente ao modelo Spiking FeNeuron
juntamente com seu ciclo de aprendizagem. . . 51 5.11 Diagrama de blocos sintetizáveis referente ao cálculo da saída do
neurô-nioSpiking FeNeuroncom a adição do erroe(n)e da taxa de aprendizado
γ. . . 52 5.12 Diagrama de blocos sintetizáveis referente ao cálculo da regra de ajuste
dos pesos sinápticos doSpiking FeNeuron. . . 53
5.13 Curvas de aprendizado das portas lógicas AND e NAND obtidas por meio do modelo sintetizável doSpiking FeNeuron(curvas em preto) em relação
as curvas de aprendizado obtidas nas respectivas simulações emsoftware
(curva em azul). . . 55 5.14 Curvas de aprendizado das portas lógicas OR e NOR obtidas por meio do
modelo sintetizável do Spiking FeNeuron (curvas em preto) em relação
as curvas de aprendizado obtidas nas respectivas simulações emsoftware
(curva em azul). . . 56 5.15 Curva de aprendizado da porta lógica XOR obtida por meio do modelo
sintetizável doSpiking FeNeuron(curvas em preto) em relação as curvas
de aprendizado obtidas nas respectivas simulações emsoftware(curva em
5.18 Modelo digital do capacitor ferroelétrico. . . 58 5.19 Modelo contínuo do capacitor ferroelétrico substituindo o modelo digital
Lista de Tabelas
4.1 Parâmetros de treinamento calculados na simulação do neurônio FePer-ceptronpara cada porta lógica. . . 28
4.2 Saídas calculadas na simulação do neurônioFePerceptron em relação as
saídas desejadas. . . 28 4.3 Parâmetros obtidos e utilizados para cada porta lógica no modeloSpiking
FeNeuron. . . 34
4.4 Saídas calculadas na simulação do neurônioSpiking FeNeuron. . . 34
5.1 Tabela verdade obtida nas implementações de 4 portas lógicas utilizando oFePerceptron. . . 41
5.2 Tabela verdade obtida nas implementações das portas lógicas AND, NAND, OR, NOR e XOR utilizando oSpiking FeNeuron. . . 44
5.3 Pesos sinápticos ótimos calculados por meio do diagrama de blocos sinte-tizáveis referente ao modelo do ciclo de treinamento do neurônio FePer-ceptron. . . 48
5.4 Erro referente aos valores dos pesos calculados pelo modelo dehardware
em relação aos pesos calculados na simulação emsoftwaredoFePerceptron. 49
5.5 Recursos de hardware utilizados na síntese doFePerceptron com o
mo-delo digital do ciclo de histerese do capacitor ferroelétrico. . . 50 5.6 Pesos sinápticos ótimos calculados por meio do diagrama de blocos
sinte-tizáveis referente ao modelo do ciclo de treinamento do neurônioSpiking FeNeuron. . . 54
5.7 Erro referente aos valores dos pesos calculados pelo modelo dehardware
em relação aos pesos calculados na simulação em software do Spiking FeNeuron. . . 54
5.8 Recursos de hardware utilizados na síntese doSpiking FeNeuron com o
modelo digital do ciclo de histerese do capacitor ferroelétrico. . . 55 5.9 Resultado do treinamento do neurônioFePerceptroncompleto utilizando
o modelo contínuo do capacitor ferroelétrico. . . 59 5.10 Resultado do treinamento do neurônioSpiking FeNeuroncompleto
utili-zando o modelo contínuo do capacitor ferroelétrico. . . 59 5.11 Recursos de hardware utilizados na síntese doFePerceptron com o
mo-delo contínuo do ciclo de histerese do capacitor ferroelétrico. . . 59 5.12 Recursos de hardware utilizados na síntese doSpiking FeNeuron com o
Capítulo 1
Introdução
As redes neurais artificiais (RNAs) são modelos computacionais inspirados no sis-tema nervoso de seres vivos [Silva, Spatti e Flauzino, 2010]. As RNAs fazem parte da área do conhecimento conhecida como sistemas inteligentes e podem ser definidas como máquinas computacionais com um alto grau de paralelismo constituídas por um conjunto de unidades de processamento, chamadas de neurônios artificiais, que são interligados
através de interconexões chamadas desinapses artificiais. As sinapses artificiais são
nor-malmente representadas através de um conjunto depesos sinápticos[Haykin, 2001]. As
RNAs possuem funções limitadoras que definem o conjunto de valores que podem ser calculados nas saídas de cada camada de neurônios artificiais, que pode ser constiuída por um ou mais neurônios. Essas funções são chamadas de funções de ativação.
Os primeiros trabalhos em redes neurais artificiais foram publicados na década de 40 porém, as RNAs foram fortemente investigadas somente a partir do final da década de 80. Contudo, nesse intevarlo de tempo foram publicados trabalhos importantes na área como a derivação de algoritmos de predição utilizando gradiente reverso por Werbos (1974), Grossberg (1980) e sua implementação da rede ART (adaptive resonance theory),
Kohonen e seus mapas auto-organizáveis (1982), Hopfield e suas redes recorrentes (1982) e, a proposição do algoritmobackpropagationpor Rumelhart, Hinton e Williams (1986).
Este último motivou novamente o interesse dos pesquisadores nas redes neurais artificiais. Abaixo seguem algumas das potenciais áreas de aplicação das RNAs:
Aproximador universal de funções Consiste no mapeamento das relações funcionais
entre as variáveis de um sistema a partir de um conjunto pré-determinado de va-lores. Essa será a principal aplicação abordada nesse trabalho, já que a ideia básica do mesmo consiste no mapeamento de funções lógicas booleanas através de um neurônio artificial.
Reconhecimento e classificação de padrões Consiste na associação de um padrão de
entrada para uma das classes de padrões previamente definidas. Essas classes po-dem envolver diferentes padrões de imagens, voz, escrita, etc.
Agrupamento de dados Consiste em agrupar os diversos padrões de entrada através da
detecção e identificação de similaridades e particularidades. A saída desse tipo de aplicação consiste no devido agrupamento dos padrões de entrada nas suas respec-tivas classes.
estimados através de diversos valores observados previamente.
Otimização de sistemas Nesse caso as redes neurais artificiais são utilizadas em
proble-mas de otimização combinatorial, programação dinâmica, otimização restrita, entre outros, com o objetivo de minimizar ou maximizar uma função objetivo, de acordo com as características do problema.
Reconstrução da informação Essa aplicação consiste na recuperação de padrões cujos
elementos são fornecidos de forma incorreta ou imprecisa para suas formas corretas. Muitas pesquisas vem sendo desenvolvidas na área de implementação de RNAs em
hardware. Nessas implementações é comum a utilização de funções não-lineares no
cál-culo das saídas das estruturas neurais ou neurônios artificiais. A realização dessas funções de ativação não-lineares emhardwareé uma preocupação constante nos muitos trabalhos
desenvolvidas nessa área de pesquisa. Alguns exemplos de trabalhos nos quais podemos perceber esse fato são: [Yang, Wu e Li, 2012], [Al-Kazzaz e Khalil, 2008], [Goser, 1996], [Savich, Moussa e Areibi, 2007], [Hariprasath e Prabakar, 2012], além de [Soleimani, Ahmadi e Bavandpour, 2012], dentre muitos outros. Independente da técnica utilizada na implementação das funções de ativação (sejam aproximações das não-linearidades para funções com características lineares, registro dos pontos das curvas características em memórias de leitura), essa é uma preocupação recorrente em grande parte dos trabalhos na área.
Nesse trabalho é proposta a implementação da lógica booleana em plataforma de hard-ware reconfigurável como forma de validação da utilização do modelo comportamental
do ciclo de histerese de um capacitor ferroelétrico como unidade básica não-linear de neurônios artificiais. O ciclo de histerese do capacitor possui uma curva característica equivalente a uma função tangente sigmoide especificamente ponderada de forma que, a princípio, a utilização do mesmo na implementação de neurônios artificiais sintetizados em circuitos integrados em substituição a técnicas comuns no cálculo das funções não-lineares normalmente mais custosas pode resultar em ganhos reais de uso de recursos de
hardware.
1.1
Metodologia
Esse trabalho seguirá a seguinte metodologia: serão implementados dois modelos de neurônios artificiais em plataforma de hardware digital (neurônios Fe), o Perceptron
de Rosemblatt [Rosemblatt, 1958] e um modelo modificado do neurônio Spiking Neu-ron Integrate and Fire, chamado deBoolean Complete Neuron(BCN) [Guerreiro, 2004],
ambos utilizando um modelo comportamental do ciclo de histerese do capacitor ferroelé-trico como sua unidade básica não-linear, ou seja, sua função de ativação não-linear, para o cálculo das saídas dos neurônios.
Serão desenvolvidos modelos digitais dos neurônios artificiais por meio da ferramenta de desenvolvimento em nível de sistemaDSP(Digital Signal Processing)Builder[Altera,
2005] da Altera Corporation com o objetivo de sintetizar os modelos de hardware dos
1.1. METODOLOGIA 3 O DSP Builder é um software que integra blocos sintetizáveis em hardware para o
projeto de sistemas de simulação em Simulink (Ambiente de simulação de sistemas da MathWorks- [MathWorks Simulink, 2009]). A ferramenta permite o projeto dehardware
digital em nível de sistema, sua simulação e síntese em uma plataforma de hardware re-configurável e consiste em um conjunto de blocos específicos que podem ser utilizados em modelos gerados na ferramentaMathWorks/Simulink. Esses blocos específicos
reali-zam várias funções no processamento dos dados digitais, desde funções aritméticas, de armazenamento, conversão, entre outras, além do blocoSignal Compiler realiza a leitura
de arquivos contendo modelosSimulinkque utilizam blocos doDSP Buildere gera
arqui-vos de código em linguagem de descrição dehardwareVHDL (Very high speed integrate circuits Hardware Description Language, [Pedroni, 2004] e [Maxfield, 2004]) referentes
ao modelo escriptspara a síntese, implementação dohardwaree sua simulação. ODSP Buildergera automaticamente código RTL (Register Transfer Level) baseado nas
descri-ções de um projeto em alto-nível doSimulink. Os blocos sintetizáveis disponíveis noDSP Builderutilizados nesse trabalho podem ser visualizados na figura 1.1.
Cada bloco disponibilizado pelo DSP Builder possui um código VHDL associado
a ele. Dessa forma, é possível sintetizar um modelo dehardware desenvolvido através
dessa ferramenta de desenvolvimento em nível de sistema. Os blocos são organizados em categorias e descritos a seguir:
Entrada/Saída: São blocos que realizam a interface entre sinais de ambiente Simulink
e suas representações digitais na placa FPGA. O bloco Input realiza a conversão
das amostras para suas representações digitais de acordo com o número debits(no
nosso caso, 16bits) especificado em cada bloco. CadaInputtambém é considerado
um canal de entrada para a placa FPGA, de forma que cada sinal conectado a este bloco poderá ser visualizado e manipulado de acordo com as configurações nas si-mulações dohardware e na sintetização para a placa. O blocoOutputfunciona de
forma semelhante ao bloco Input, porém ele faz o papel de interface de saída, de
forma que cada amostra conectada a este bloco poderá ser visualizada como um canal de saída na placa FPGA. Os blocosConstantrepresentam valores constantes
fixos. Esses blocos são sintetizáveis, portanto não é preciso realizar conversões pré-vias nas representações de seus valores. As conversões necessárias são realizadas posteriormente nas operações efetuadas com esses blocos.
Aritmética: São os blocos sintetizáveis responsáveis pelas operações aritméticas
reali-zadas nos neurônios Fe. Essas operações incluem blocos multiplicadores, soma-dores/subtratores, cálculo do módulo e divisores. As operações aritméticas são necessárias nos neurônios Fe em ambos os cenários abordados, ou seja, quando são utilizados os pesos previamente calculados e também quando os pesos são calcula-dos nas etapas de treinamento e aprendizado.
Barramento: São blocos de grande importância no desenvolvimento do hardware. Os
blocosAltBussão responsáveis por alterar a representação de uma palavra binária.
Eles são utilizados após uma operação de multiplicação para reduzir a palavra re-sultante (32bits) para uma representação de 16 bits, caso contrário a capacidade
da placa FPGA será excedida, o que impossibilitaria a sintetização dohardwarena
Figura 1.1: Blocos sintetizáveis disponíveis no software DSP Builder utilizados no
de-senvolvimento dos modelos dehardware.
para que seja gerada uma sequência binária de acordo com o resultado da operação lógica, permitindo assim um controle eficiente das operações lógicas condicionais necessárias no processo.
Lógico condicional: Implementa uma operação lógica condicional de SE, SENÃO SE,
SENÃO.
Multiplexador: Implementa o elemento clássico da lógica digital Multiplexador, que
seleciona uma de suas entradas como saída de acordo com uma entrada especial de seleção.
Look-up Table: Esse blocos sintetizáveis implementam uma Look-up Table, de forma
1.2. MOTIVAÇÃO 5 necessária uma tabela muito grande, de forma que em cada caso foram realizados testes preliminares para que a tabela pudesse ser reduzida. Além disso, nos neurô-nios implementados com suas etapas de treinamento e aprendizado os pesos iniciais foram controlados para que o tamanho da tabela também pudesse ser controlado e reduzido.
Primeiramente os neurônios artificiais Fe foram implementados para simular as portas lógicas booleanas utilizando pesos sinápticos previamente calculados por meio de simu-lações em MATLAB (ambiente de linguagem de computação técnica de alto nível para desenvolvimento de algoritmos, visualização e análise de dados e computação numérica - [MathWorks Matlab, 2009]) com o objetivo de validar a utilização do modelo compor-tamental do ciclo de histerese do capacitor ferroelétrico como sua função de ativação. O ciclo de histerese do capacitor ferroelétrico também será implementado nessa etapa por meio de um modelo digital nosoftware DSP Builder.
Posteriormente, os pesos sinápticos foram calculados emhardwarepor meio da
inte-gração do algoritmo de aprendizagemLMS(Least Mean Square) aos neurônios, de forma
a validar a utilização do ciclo de histerese do capacitor ferroelétrico em um sistema de aprendizado neural em plataforma dehardware.
Finalmente, o modelo comportamental do ciclo de histerese do capacitor ferroelétrico foi implementado por meio de um modelo analógico utilizando os recursos do ambiente
Simulink, com os objetivos de simular e validar a implementação dos neurônios artificiais
Fe em circuito integrado, no qual o elemento eletrônico físico do capacitor ferroelétrico será utilizado para a realização da função de ativação dos neurônios em chip, além de
verificar o ganho em uso de recursos dehardware, comparando a quantidade de
elemen-tos lógicos digitais necessários na implementação dos neurônios Fe utilizando o modelo analógico do capacitor ferroelétrico e a implementação utilizando o modelo digital do ca-pacitor, o qual faz uso de técnicas convencionais para o cálculo de funções não-lineares, como o registro dos pontos das funções em memória.
1.2
Motivação
As redes neurais artificiais têm sido profundamente investigadas desde o fim da década de 80 e ainda hoje possuem um grande potencial de pesquisa. Devido às caracte-rísticas inerentes as RNAs como capacidade de generalização, armazenamento de infor-mações, tolerância a falhas, capacidade de aprendizado, alto grau de paralelismo, entre outras, o aprofundamento em pesquisas relacionadas a esse tema tem sido constante.
Muitos trabalhos têm sido publicados na áera das implementações das redes neurais artificiais em plataformas dehardwareanalógico e digital. As implementações em hard-waretrazem consigo efeitos colaterais como perda da precisão dos dados, menor taxa de
aprendizado e erros computacionais mas mesmo com todas as dificuldades, existe uma grande necessidade no mundo real de tais implementações. A combinação das redes neurais artificias com elementos dehardwarepode trazer avanços nas áreas de
imagens, reconhecimento acústico, extraçao de características em impressões digitais, monitoramento de tráfego, controle adaptativo, entre outras.
Porém, projetarhardware para fins genéricos é uma tarefa difícil, de tal forma que
as tecnicas implementados nessas plataformas são voltadas para aplicações específicas. Nesse contexto surge a plataforma reprogramável dehardwaredigital FPGA, que possui
uma alta capacidade e facilidade de reconfiguração. A plataforma FPGA possui um pa-ralelismo inerente a sua arquitetura e é composta por blocos lógicos chamados de CLBs (Configurable Logica Blocks) e interconexões, ambos reconfiguráveis. Os blocos lógicos
podem ser reprogramados para se comportarem como um hardware diferente a cada
re-programação, enquanto que as interconexões programáveis podem ser reconfiguradas de acordo com elementos que estabelecem as conexões entre os blocos lógicos, as chamdas
Switch Matrix. A estrutura básica de uma plataforma FPGA pode ser vista na figura 1.2
Figura 1.2: Estrutura básica de um FPGA. Composta por blocos lógicos programáveis (CLBs) e interconexões reprogramáveis controlados por elementos chamados de Matrizes de Interconexão, ouSwitch Matrix[Pedroni, 2004].
Além disso, a utilização do capacitor ferroelétrico como unidade básica não-linear de neurônios artificiais pode ser uma alternativa às técnicas comumente utilizadas no cálculo de funções não-lineares em redes neurais artificiais emhardware. Essas técnicas
podem se mostrar custosas, de forma que a realização dessas funções emhardwareé uma
preocupação recorrente em trabalhos nessa área.
A utilização do modelo comportamental do ciclo de histerese do capacitor ferroelé-trico, além de apresentar resultados satisfatórios na aproximação de funções por meio de neurônios artificiais, poderá resultar em um ganho significativo no uso dos recursos da plataforma de hardware necessários nas implementações de soluções neurais artificiais,
po-1.3. OBJETIVOS 7 demos imaginar contribuições na utilização de redes neurais artificiais emhardware na
implementação de funções mais complexas.
1.3
Objetivos
A seguir são descritos os objetivos específicos propostos nesse trabalho:
1. Implementação do modelo comportamental do ciclo de histerese de um capacitor
fer-roelétrico em ambiente desoftware Matlab, de forma a compreender seu
funciona-mento.
2. Utilização do modelo do capacitor ferroelétrico implementado como a função de
ati-vação de um neurônioperceptron(FePerceptron) e de um neurônioSpiking Neuron
(Spiking FeNeuron).
3. Realização do treinamento dos neurônios artificiaisFePerceptroneSpiking FeNeuron
em ambiente Matlab para obter o conjunto de pesos sinápticos referentes as imple-mentações da lógica booleana.
4. Implementação dos Neurônios Fe através de modelos digitais em Simulink em
con-junto com o softwareDSP Builder, disponível noDSP Development Kit daAltera Corporation, primeiro, utilizando pesos sinápticos previamente calculados em
si-mulações em Matlab, e posteriormente calculando os pesos sinpáticos por meio dos próprios modelos digitais através da implementação do algoritmo de aprendizagem
LMSem modelo dehardwaredigital.
5. Validação dos Neurônios Fe por meio da implementação da lógicabooleana.
6. Implementação do modelo analógico do ciclo de histerese do capacitor ferroelétrico
para simular e validar a sua utilização em uma implementação dos neurônios Fe em circuito integrado.
7. Síntese em hardware dos modelos implementados e comparação da utilização de
re-cursos dehardwareentre as abordagens utilizadas na implementação dos neurônios
Fe para verificar o ganho proposto no uso do capacitor ferroelétrico em substituição de técnicas comuns no cálculo de funções não-lineares em neurônios artificiais.
1.4
Publicações Aceitas
Nesta seção serão discutidos alguns aspectos das publicações geradas por esse tra-balho. A primeira publicação aceita gerada por esse trabalho é referente ao capítulo de livro [Silva, Leite, Guerreiro, Araújo e McMillan, 2011]. Nessa publicação são discutidos diversos aspectos da utilização do modelo comportamental do ciclo de histerese de um ca-pacitor ferroelétrico como função de ativação na implementação de neurônios artificiais, além das simulações dos neurônios FePerceptron e Spiking FeNeuron na
implementa-ção de funções lógicas booleanas. Além disso são discutidos aspectos da utilizaimplementa-ção dos neurônios Fe no projeto de circuitos digitais mais complexos como registradores e mul-tiplexadores e é apresentado o projeto da arquitetura forward do neurônio FePercetron
A segunda publicação aceita é referente a um artigo no periódicoIntegrated Ferroe-lectrics, no qual foram realizadas as implementações dos neurôniosFePerceptron e Spi-king FeNeuronutilizando a ferramentaDSP Builder. Os neurônios foram implementados
juntamente com os seus ciclos de aprendizagem e foram treinados para realizarem a apro-ximação das funções lógicas booleanas.
1.5
Organização do Trabalho
Este trabalho está organizado da seguinte forma: no capítulo 2 é apresentado um breve estado da arte relacionado as implementações das redes neurais artificiais e neurô-nios artificiais em hardware. No capítulo 3 será discutido um breve resumo acerca das
redes neurais artificiais e alguns de seus aspectos relevantes a esse trabalho. No capítulo 4 será discutida a proposta do trabalho que consiste na implementação, sintetização e va-lidação de Neurônios artificiais com função de ativação com base no ciclo de histerese de um capacitor ferroelétrico em plataforma dehardwaredigital reprogramável. No capítulo
Capítulo 2
Estado da Arte
Apesar das dificuldades encontradas nas implementações emhardwaredas redes
neu-rais artificiais muitos trabalhos têm sido publicados. Como dito anteriormente, as imple-mentações emhardwaredas RNAs podem acarretar em erros de cálculo computacional,
degradação do aprendizado e perda da precisão dos resultados. Muitos desses aspec-tos têm sido estudados e investigados em diversas pesquisas. Dos trabalhos realizados é possível citar [Bermak e Martinez, 2003], [Kung, 1992] e [Lenne, 1995] em hardware
digital, [Brown, Yu e Garverick, 2004] e [Mead, 1989] em hardware analógico,
[Leh-man, Bruun e Dietrich, 1996] e [Schimid, Leblebici e Mlynek, 2004] em plataforma de
hardwarehíbrido, implementações em plataforma FPGA destacam-se os trabalhos
[Ned-jah e Mourelle, 2007], [Rak, Soss e Cserey, 2009] e [Schrauwen e D’Haene, 2005]. Os trabalhos [Moerland, Fiesler e Saxena, 2007] e [Tokes, Orz, Vr e Roska, 2000] realizam implementações ópticas não eletrônicas.
No trabalho [Hariprasath e Prabakar, 2012], foi implementada uma rede neural artifi-cial de múltiplas camadas em plataforma FPGA visando a redução dos recursos de hard-ware necessários sem o comprometimento do sistema e das limitações temporais como
um todo, de forma que redes neurais maiores possam ser implemetadas emhardware. A
função de ativação dessa rede neural (que possui dois neurônios na camada de entrada, uma camada oculta e um neurônio na camada de saída) foi implementada por meio de uma aproximação linear da função tangente sigmoide, de forma que as não-linearidades da função possam ser aproximadas em hardware por meio da implementação de uma
função linear, reduzindo assim a utilização dos recursos dehardwarenecessários.
Pode-se citar o trabalho [Al-Kazzaz e Khalil, 2008], no qual são propostas três arqui-teturas para a implementação de um modelos de neurônio artificial em plataforma FPGA: serial, parcialmente paralela e totalmente paralela, todas utilizando formato de ponto fixo de 16bits. Nesse trabalho, a função de ativação escolhida também foi uma tangente
sig-moide. A sua implementação emhardwarefoi realizada por meio de três métodos:
apro-ximação direta, aproapro-ximação porLookup Table(registro dos pontos da curva da função)
e aproximação linear.
Na aproximação direta a função tangente sigmoide é aproximada por uma função não-linear mais simples do que a exponencial infinita que representa a função sigmoide, normalmente uma função não-linear de segundo grau. Dessa forma, a função tangente pode ser aproximada em implementações emhardware digital por meio de técnicas de
A aproximação porLookup Table(LUT) é o armazenamento prévio de pontos da curva
da função não-linear original (no caso, a tangente sigmoide) em uma estrutura de memó-ria LUT. Normalmente essa solução apresenta um menor erro, porém é mais custosa em relação aos recursos dehardwarenecessários na implementação de redes neurais
artifici-ais emhardware, já que utiliza muitos desses recursos no armazenamento dos pontos da
função em memória ROM.
Finalmente, a aproximação linear consiste na implementação da função não-linear por meio de aproximações lineares a cada etapa predefinida da sua curva característica.
Também é possível citar alguns trabalhos relativos à implementação em plataforma FPGA de neurônios de disparo (Spiking Neurons). Dentre eles, podemos citar o trabalho
[Soleimani, Ahmadi e Bavandpour, 2012] e [Yang, Wu e Li, 2012]. O primeiro realiza a implementação do modelo Izhikevich ([Izhikevich, 2003]) e o segundo um modelo In-tegrate and Fire. Em ambos os trabalhos, as não-linearidades dos modelos e de suas
funções de ativação são implementadas emhardwarepor meio de aproximações: no
pri-meiro aproximações lineares e no segundo a aproximação de funções gaussianas por meio de filtros FIR consecutivos.
No trabalho [Savich, Moussa e Areibi, 2007] foi implementado em FPGA uma estru-tura de rede neural artificial de múltiplas camadas e seu treinamento por meio do algo-ritmo backpropagation. A função de ativação da rede foi uma tangente sigmoide e sua
implementação emhardwaretambém foi realizada por meio de aproximações lineares em
cada etapa da função tangente.
Também é possível destacar o trabalho [Janardan e Indranil, 2010] que realiza uma análise que envolve breves resumos de várias abordagens no que se refere a implementa-ções das redes neurais artificiais em hardware. O trabalho propõe uma discussão
direci-onada às implementações digitais, analógicas, híbridas e em FPGA, buscando definir os principais avanços na área e tecer as tendências para trabalhos futuros.
No que se refere à implementações VLSI é possível encontrar referências nos traba-lhos [Glesner e Poechmueller, 1994] e [Mead, 1989]. Uma análise a respeito dos neu-rocomputadores até os anos 90, construídos através de placas aceleradoras, hardwarede
propósito geral eneurochipspode ser encontrada em [Heemskerk, 1995]. Também é
pos-sível destacar trabalhos em implementações digitais com processadores customizados, como por exemplo o trabalho [Ienne, Cornu e Kuhn, 1996].
Em [Sundararajan e Saratchandran, 1998] são discutidos em detalhes vários aspectos de implementações em paralelo de modelos de redes neurais artificiais utilizando diversas arquiteturas dehardware.
Em [Zhu e Sutton, 2005] é possível encontrar uma análise de implementações de redes neurais artificiais em FPGA discutindo diferentes técnicas e aspectos das implementações. No trabalho [Dias, Antunes, e Manuel, 2004] os autores apresentam um foco especí-fico para plataformas dehardware disponíveis para o mercado. São discutidos sistemas
neurofuzzy abordando aspectos de várias tecnologias de implementação emhardware e
técnicas de projeto emsoftware.
Em [Schrauwen e D’Haene, 2005] encontra-se implementações de redes neurais arti-ficiaisSpiking.
2.1. CONCLUSÃO 11 adaptativos inteligentes.
Também é possível citar alguns trabalhos no campo de algorítmos de aprendizagem em hardware como [Jabri e Flower, 1991], [Duong, 1995], [Smieja, 1993], e também
[Duong e Stubberud, 1995], e [Chen, Haykin e Becker, 2000].
Alguns trabalhos podem ser destacados em implementação em hardware de redes
neurais artificiais baseadas no modelo Perceptron de Múltiplas Camadas (MLP) como [D’Acieno, 2000] e [Kumar, Shekhar e Amin, 1994], trabalhos utilizando redes neurais artificiais de funções de base radial como [Fakhraie, Farshbaf e Smith, 1994] e [Yang e Paindavoine, 2005] e também é possível citar trabalhos em neurocomputadores como [Glesner e Poechmueller, 1994] e [Strey e Avellana, 1996].
No trabalho [Souza e Fernandes, 2014] é proposta a implementação de uma rede neu-ral do tipo RBF (Radial Basis Function) em FPGA utilizando a ferramenta de
desenvol-vimento em nível de sistemaSystem Generator. Os autores realizam diversas análises de
desempenho e utilização de recursos dehardware para dois cenários: a implementação
da função lógica booleana XOR e a interpolação da função seno. São utilizadas diversas representações numéricas em ponto fixo nos dois casos e as funções de base radial nos neurônios artificiais são aproximadas por meio do registro dos pontos das funções em tabelas LUT.
2.1
Conclusão
Muitos trabalhos vem sendo desenvolvidos na área de implementação de RNAs emhardware. Independente da arquitetura da rede utilizada ou da plataforma de
desen-volvimento, a implementação das funções de ativação não-lineares é uma preocupação recorrente, de forma que algumas técnicas são utilizadas com o objetivo de reduzir o custo de recursos de hardware necessário nessas implementações, cada uma com suas
características, vantagens e desvantagens. Esse trabalho propõe uma técnica alternativa nas implementações das funções de ativação emhardwaredigital, visando permitir que os
recursos dehardware nas plataformas sejam utilizados para a expansão das arquiteturas
Capítulo 3
Redes Neurais Artificiais
Os primeiros trabalhos sobre redes neurais artificiais foram publicados há mais de 50 anos, porém, a pesquisa em relação ao tema iniciou um forte avanço somente na década de 1990 com a publicação de trabalhos em diversas áreas e a proposição de métodos que incrementaram a eficiência no treinamento das redes. Neste capítulo serão abordados aspectos das redes neurais artificiais que fazem parte da base que estrutura as implemen-tações propostas nesse trabalho.
3.1
Principais Características
As redes neurais artificiais constituem modelos computacionais inspirados no sistema nervoso biológico, de forma que podem representar mecanismos autônomos dotados de inteligência. São constituídas de unidades de processamento chamadas de neurônios arti-ficiais, interconectados por meio de sinapses neurais artificiais (pesos sinápticos), repre-sentadas através de vetores que interligam cada unidade de neurônio artificial. Algumas das principais características das redes neurais artificiais são descritas a seguir:
1. Mecanismos adaptativos: A adaptação dos pesos sinápticos de uma rede neural
ar-tificial é realizada por meio de conjuntos de amostras que representem o funcio-namento adequado da rede aplicada a um determinado problema, de forma que a rede possui a capacidade de adaptar-se por meio do conhecimento adquirido pela experimentação.
2. Capacidade de aprendizagem: As redes neurais artificiais possuem a capacidade de
aprendizagem de acordo com algoritmos de treinamento aplicados que ajustam as sinapses artificiais por meio da observação do estado atual da rede e do estado desejado.
3. Capacidade de generalização: As redes neurais artificiais treinadas são capazes de
estimar soluções para entradas que não faziam parte do conjunto inicial de amostras de treinamento, ou seja, são capazes de generalizar seu aprendizado.
4. Classificador natural: Uma rede neural artificial é capaz de classificar padrões de
5. Paralelismo inerente: As redes neurais artificiais são sistemas paralelos e distribuídos
por natureza, de forma que o processo de aprendizagem não seja comprometido pela falha de um ou mais neurônios artificiais.
3.2
Neurônio Biológico e Neurônio Artificial
Como dito anteriormente, as redes neurais artificias são compostas por conjuntos de unidades de processamento, chamadas de neurônios artificias, que por sua vez são inspi-radas nos neurônios biológicos presentes no nosso sistema nervoso.
Os neurônios são as células elementares do sistema nervoso cerebral e são processa-dores biológicos operando em paralelo. Juntos eles compõem uma grande rede neural biológica. Assim como outras células biológicas os neurônios são dotados de núcleo e outros elementos celulares. Cada um (ou conjunto) desses neurônios é responsável pela produção e controle de ações de acordo com as suas funcionalidades, tais como a memo-rização de informações no nosso cérebro.
Figura 3.1: Estrutura básica de um neurônio biológico. As celulas contêm elementos como corpo celular (Soma), núcleo, axiônios, dentritos e terminações sinápticas [Silva,
Spatti e Flauzino, 2010].
O funcionamento básico de um neurônio biológico se resume no seguinte: o corpo celular (também chamado desoma) de um neurônio é responsável pelo processamento de
todas as informações oriundas de seus dentritos (vários prolongamentos finos que captam os estímulos vindos de outros neurônios). É então gerado um determinado potencial de ativação de acordo com o processamento das informações vindas dos dentritos pelo corpo celular do neurônio. Esse potencial de ativação indica se o neurônio poderá ou não dispa-rar um estímulo para outro neurônio através de seu axônio (prolongamento único capaz de propagar os estímulos do neurônio biológico). As terminações do axônio também são constituidas de finos prolongamentos chamados de terminações sinápticas. A estrutura básica de um neurônio biológico pode ser vista na figura 3.1.
3.2. NEURÔNIO BIOLÓGICO E NEURÔNIO ARTIFICIAL 15 as conexões que permitem a transferência dos impulsos elétricos vindos do axiônio de um neurônio para os dentritos de outros neurônios. A transmissão dos impulsos é reali-zada sem a existência de contato físico entre os elementos neuronais mas sim através de substâncias neurotransmissoras entre as sinapses e os dentritos responsáveis também por ponderar os estímulos.
As redes neurais biológicas inspiraram as redes neurais artificiais. As unidades de processamento que compõem as RNAs são modelos simplificados dos neurônios biológi-cos. Os neurônios artificiais são elementos não-lineares que possuem uma simples fun-ção: coletar os sinais em seu conjunto de entrada, agregá-los de acordo com sua função operacional e produzir uma saída levando em consideração a sua função de ativação.
O modelo de neurônio mais simples e que engloba as principais características de uma rede neural biológica (alto grau de paralelismo e conectividade) foi proposto por [McCulloch e Pitts, 1943] na década de 40.
Nesse modelo, cada neurônio da rede pode ser implementado conforme mostra a fi-gura 3.2.
Figura 3.2: Primeiro modelo computacional de um neurônio biológico proposto por Mc-Culloch e Pitts [McMc-Culloch e Pitts, 1943].
O conjunto{x1,x2, ...,xn}é análogo aos impulsos elétricos vindos das sinapses de um
neurônio biológico até os dentritos de outro neurônio. Em uma rede neural artificial esse conjunto representa os diversos sinais de entrada (meio externo).
As substâncias neurotransmissoras realizam as ponderações dos estímulos que che-gam nos dentritos de um neurônio biológico. Essas ponderações são representadas pelo conjunto{w1,w2, ...,wn}. De forma análoga ao processo biológico, cada entradaxié
pon-derada pelo seu respectivo peso sináptico wi. Além disso, existe o limite de ativaçãoΘ,
que especifica o limiar que deve ser atingido para que seja gerado um valor de disparo em direção à saída do neurônio. Esse limite é ponderado porw0. Dessa forma, podemos
ver que a saída yé função de uma combinação linear das entradas ponderadas por seus
observado na expressão
y= f(
n
∑
i=1
wixi+Θw0). (3.1)
A função f é chamada de função de ativação e seu objetivo é limitar o valor de saída
produzido pelo neurônio dentro de um intervalo de valores razoáveis de acordo com a natureza da função.
As funções de ativação podem ser de dois grupos principais: funções parcialmente diferenciáveis e funções totalmente diferenciáveis. As funções de ativação parcialmente diferenciáveis são aquelas que possuem pontos onde as suas derivadas de primeira ordem são inexistentes. Alguns exemplos dessas funções são detalhadas a seguir:
Função degrau (heavyside hard limiter): Nessa função, a saída do neurônio artificial
será 1 sempre que o seu potencial de ativação for superior a zero. Caso contrá-rio, a saída do neurônio assumirá valores nulos [Silva, Spatti e Flauzino, 2010]. A representação matemática da função degrau pode ser vista na equação
f(u) =
1, u≥0
0, u<0. (3.2)
A representação gráfica da função pode ser vista na figura 3.3.
Figura 3.3: Função de ativação degrau.
Função degrau bipolar (symmetric hard limiter): Nesse caso, a saída do neurônio
3.2. NEURÔNIO BIOLÓGICO E NEURÔNIO ARTIFICIAL 17 é representada matematicamente pela expressão
f(u) =
1, u>0
0, u=0 −1, u<0.
(3.3) Na figura 3.4 é possível visualizar a representação gráfica da função degrau bipolar.
Figura 3.4: Função de ativação degrau bipolar.
Função rampa simétrica: A saída do neurônio artificial será o próprio potencial de
ati-vação do neurônio se este estiver definido no intervalo dos limites da rampa [-a, a]. Caso contrário, a saída do neurônio será o limite superioraquando o pontencial de
ativação for maior que ae −a quando o potencial de ativação for menor que −a
[Silva, Spatti e Flauzino, 2010], como pode ser visto na expressão
f(u) =
a, u>a u, −a≤u≤a
−a, u<a.
(3.4) A representação gráfica da função pode ser vista na figura 3.5.
As funções de ativação totalmente diferenciáveis são aquelas onde as derivadas de primeira de todos os seus pontos são conhecidas. As principais funções desse grupo são descritas a seguir:
Função logística: A saída do neurônio será o resultado da equação matemática
f(u) = 1
1+e−βu. (3.5)
Figura 3.5: Função de ativação rampa simétrica.
3.3. PROCESSO DE TREINAMENTO 19
Função tangente hiperbólica: O resultado da saída do neurônio artificial será calculado
de acordo com a expressão matemática
f(u) = 1−e
−βu
1+e−βu. (3.6)
A saída do neurônio sempre asumirá valores reais entre −1 e 1. A constante β
também está associada ao nível de inclinação da curva tangente hiperbólica [Silva, Spatti e Flauzino, 2010]. A representação gráfica da função pode ser vista na figura 3.7.
Figura 3.7: Função de ativação tangente hiperbólica paraβ=2.
Função gaussiana: Nessa função, a saída do neurônio artificial será calculada de acordo
com a equação matemática
f(u) =e−
(u−c)2
2σ2 . (3.7)
Nesse caso, a saída do neurônio será igual para aqueles valores deu que estejam
localizados a uma mesma distância do centro da função [Silva, Spatti e Flauzino, 2010]. A representação gráfica da função pode ser vista na figura 3.8.
Função linear: A saída do neurônio artificial será o seu potencial de ativação, como pode
ser visto na expressão [Silva, Spatti e Flauzino, 2010]
f(u) =u. (3.8)
A representação gráfica da função pode ser vista na figura 3.9.
3.3
Processo de Treinamento
Figura 3.8: Função de ativação gaussiana para com centro em zero e desvio padrãoσ=
0.5.
3.4. CONCLUSÃO 21 [Silva, Spatti e Flauzino, 2010]. Dessa forma, por meio de um processo de treinamento as redes neurais artificiais podem aprender o comportamento do sistema como um todo e fornecer saídas muito próximas das saídas desejadas para qualquer entrada.
O processo de treinamento de uma rede neural é a aplicação de um algoritmo de aprendizagem que irá iterativamente ajustar os pesos sinápticos da rede neural até que estejam em sintonia com a função que desejamos aproximar.
3.3.1
Paradigmas de Treinamento
Existem dois principais paradigmas de treinamento: supervisionado e não-supervisionado.
1. Supervisionado: No treinamento supervisionado existe a presença do professor, que
fornece as entradas de treinamento para a rede neural artificial e suas respectivas saídas desejadas, caracterizando assim as amostras do conjunto de treinamento. Dessa forma, por meio de uma regra de ajuste, os pesos sinápticos são atualizados de acordo com a distância das saídas apresentadas pela rede e das saídas desejadas. Uma das principais regras de ajuste dos pesos sináptios é a regra de aprendizado de Hebb, vista na equação
w(n+1) =w(n) +η(d(n)−y(n))x(n), (3.9) ondew(n)são os pesos sinápticos atuais,ηé a taxa de aprendizado da rede, d é a
saída deseja,y(n)é a saída da rede exé a entrada da rede.
2. Não-supervisionado: No treinamento não-supervisionado as amostras de treinamento
não possuem as saídas desejadas de cada entrada da rede neural artificial, dessa forma, não há a figura do professor. Nos algoritmos de treinamento não-supervisionados normalmente a rede neural artificial deverá ajustar os pesos sinápticos de forma a refletir as similaridades correlacionárias do conjunto de amostras indetificadas no processo de auto-organização em clustersda rede neural. Normalmente o
treina-mento competitivo é utilizado no paradigma não-supervisionado, de forma que os neurônios competem entre si em uma abordagemo vencedor leva tudo.
3.4
Conclusão
Nesse capítulo foram discutidos aspectos das RNAs como a arquitetura básica de um neurônio artificial, tipos de função de ativação e processo de treinamento. Algumas fun-ções de ativação comuns nas implementafun-ções de RNAs apresentam características não-lineares, de forma que, nas implementações das RNAs emhardware, as funções de
ativa-ção são realizadas por meio de técnicas de projeto visando reduzir o custo de implementa-ção dessas funções. O capacitor ferroelétrico possui um ciclo de histerese que pode ter seu comportamento modelado por uma função tangente sigmoide, de forma que esse compo-nente eletrônico pode ser utilizado na implementação de RNAs emhardwaresubstituindo
Capítulo 4
Neurônios Ferroelétricos
Nesse trabalho é proposta a implementação, sintetização e validação em plataforma dehardwaredigital reconfigurável dos modelos de neurônios artificiaisPerceptrone Spi-king Neuronutilizando um modelo comportamental do ciclo de histerese de um capacitor
ferroelétrico. Existem dois grupos de modelos do ciclo de histerese de um capacitor ferroelétrico: os modelos baseados em aspectos físicos e os modelos baseados nos as-pectos comportamentais. Nesse trabalho será utiizado o modelo comportamental, já que o mesmo não requer um conhecimento aprofundado da teoria do capacitor ferroelétrico mas sim uma observação cuidadosa acerca do comportamento do capacitor ferroelétrico do ponto de vista de um circuito elétrico. Além disso, o modelo comportamental utili-zado consiste em uma aproximação matemática que utiliza a função tangente hiperbólica no mapeamento do ciclo de histerese do capacitor, possibilitando o estudo do mesmo como função de ativação de neurônios artificiais.
4.1
Modelo Matemático do Capacitor Ferroelétrico
Muitas pesquisas têm sido realizadas com o obejetivo de modelar os aspectos compor-tamentais de um capacitor ferroelétrico desde que eles foram introduzidos como elemen-tos de armazenamento em aplicações de memórias não-voláteis integradas ([Sheikholes-lami e Gulak, 1997]).
Nesse trabalho será utilizado o modelo matemático baseado na simetria do ciclo de histerese proposto em [Miller, Schwank, Nasby e Rodgers, 1991]. Nesse modelo o ciclo de polarização saturada do capacitor é aproximado utilizando duas funções hiperbólicas, vistas nas equações
Psat+ (E) =Pstanh[
E−Ec
2δ ] (4.1)
e
Psat− (E) =−Psat+(−E) (4.2) ondePsat+(E)ePsat− (E)representam as curvas positiva e negativa respectivamente do ciclo de histerese. Ps e Ec são a polarização de saturação e o campo coercivo extraido de um
somente pelo termoPr, a polarização remanescente, por meio da equação
δ=Ec[ln(
1+Pr/Ps
1−Pr/Ps
)]−1. (4.3) Na figura 4.1 podemos observar o ciclo de histerese do capacitor. A simetria em relação à origem é garantida pela equação 4.2.
Figura 4.1: A aproximação do ciclo de polarização saturada com base no comportamento do capacitor ferroelétrico em um circuito elétrico utilizando as funções tangente hiperbó-licas. Os valores utilizados foram retirados de um ciclo de histerese real: Ps=23µC/cm2,
Pr =15µC/cm2, eEc=40kV/cm2[Guerreiro, 2004].
O modelo matemático nos proporciona uma boa aproximação do comportamento de um capacitor ferroelétrico em estado estacionário, de forma que para esse trabalho esse modelo é suficiente.
4.2
Capacitor Ferroelétrico como Função de Ativação
Nesse trabalho o ciclo de histerese de um capacitor ferroelétrico será utilizado como função de ativação de dois modelos de neurônios artificiais: o Perceptron e o Spiking Neuron. Os neurônios artificiais resultantes são chamados de FePerceptron e Spiking FeNeuron.
4.2.1
Modelo FePerceptron
4.2. CAPACITOR FERROELÉTRICO COMO FUNÇÃO DE ATIVAÇÃO 25 unidade de processamento de informação que é fundamental para a operação de uma rede neural ([Haykin, 2001]).
O modelo do neurônioperceptron possui três elementos básicos, como pode ser
ob-servado na figura 4.2:
Figura 4.2: O modelo do neurônioPerceptronde Rosemblatt com duas entradas.
1. Sinapses que são caracterizadas pelos pesos sinápticos (Synaptic Weights).
2. Um combinador linearΣque realiza a soma dos sinais de entrada (Input) ponderados
pelos seus respectivos pesos sinápticos e o limite de ativaçãoΘ, ouBias, também
ponderado por seu respectivo peso.
3. Uma função de ativação não-linear (Φ(v)) que limita a amplitude da saída para um conjunto de valores específicos.
O limite de ativação externo Θ tem o efeito de aumentar ou diminuir a entrada da função de ativação, dependendo se ele é positivo ou negativo. O perceptron consiste
em um combinador linear seguido de uma função não-linear. As entradasxi ponderadas
pelas conexões sinápticas wi são somadas juntamente com o limite de ativação também
ponderado porw0. A soma resultante é o potencial de ativação do neurônio e é aplicada à
função de ativação não-linear denotada porΦ(v). Essa função define a saída do neurônio
em relação ao potencial de ativação v e é geralmente uma função sigmoid. Os pesos
sinápticos modelam as terminações sinápticas enquanto que a saída do neurônio modela a taxa de disparo dos neurônios biológicos. O limite de ativaçãoΘé normalmente fixado
no valor+1.
O modelo do neurônioPerceptronpode ser descrito matematicamente de acordo com
as equações:
v=
p
∑
j=1
e
y=Φ(v+w0Θ). (4.5)
A capacidade de aprendizado de uma rede neural artificial é uma de suas caracterís-ticas mais importantes. O aprendizado pode ser relacionado a uma melhoria no desem-penho do sistema. Isso é alcançado através da minimização do erro, auto-organização da informação em classes através de suas correlações e a maximização de recompensas em um sistema baseado no paradigma tentativa-e-erro. Na prática, o aprendizado de uma rede neural artificial é alcançado através do ajuste de seus parâmetros livres.
O modeloFePerceptron(visto na figura 4.3) utiliza o capacitor ferroelétrico como sua
unidade básica e é composto por um conjunto de sinais de entrada xi, um conjunto de
pesos sinápticos wi funcionando como resistores, combinando linearmente os sinais de
entrada. O resultado da combinação linear é aplicado ao ciclo de histerese do capacitor ferroelétrico que opera como a função de ativação do neurônio artificialperceptron,
resul-tando na saída do modelo. Devido a simetria do ciclo de histerese só é necessário utilizar um lado da sua curva característica, de acordo com o modelo matemático comportamental utilizado.
Figura 4.3: O modelo do neurônioFePerceptron.
4.2. CAPACITOR FERROELÉTRICO COMO FUNÇÃO DE ATIVAÇÃO 27 de acordo com a equação
y=Psat+(
p
∑
j=1
wjxj+w0Θ). (4.6)
O objetivo do modelo, nesse caso, é classificar corretamente o conjunto de estímulos externos {x1,x2, ...,xp} em duas classes. Nesse trabalho nós utilizamos oFePerceptron
para implementar funções lógicas booleanas de duas entradas, portanto nossa rede neural artificial é composta por uma única camada com um nerônio de duas entradas, o limite de ativação e uma saída.
4.2.2
Simulação do Modelo FePerceptron
O modeloFePerceptronfoi simulado com o objetivo de verificar a sua capacidade de
realizar as operações lógicas booleanas referentes as portas lógicas AND, OR, NAND e NOR. Foi desenvolvido um código em ambiente Matlab onde as portas lógicas simuladas possuem uma arquitetura de um único neurônio.
No código gerado os pesos sinápticos são calculados de forma iterativa com base na minimização de uma função erro. O algoritmo utiliza um paradigma supervisionado de treinamento, ou seja, a saída desejada é conhecida no processo de treinamento do neurônio artificial. As saídas desejadas são obtidas de acordo com as tabelas da verdade das respectivas portas lógicas simuladas peloFePerceptron.
O algoritmo de treinamento é descrito a seguir: Variáveis e parâmetros:
Entradas:x(n) = [Θ x1 x2]T
Pesos sinápticos:wn= [w0 w1 w2]T
Saída do neurônio: yn
Saída desejada:dn
Taxa de aprendizado, ou uma constante positiva menor que 1:η
MSE(Erro quadrático médio):error(n) 1. Inicialização:wnobtido aleatoriamente.
2. Calcular a saída do neurônio até que o erro seja mínimo, por meio da equação 4.6. 3. Ajuste dos pesos sinápticos e cálculo do erro, de acordo com a equação:
e(n) =d(n)−y(n), (4.7) onde
w(n+1) =w(n) +η[e(n)]x(n), (4.8)
e o cálculo doMSEpor meio da equação error(n) = 1
onde Γ inclui todos os neurônios na camada de saída da rede FePerceptron. No
caso, é utilizado somente um neurônio.
4. Incrementon=n+1. Retornar ao passo 2.
Após o processo de treinamento os pesos sinápticos são calculados e podem ser utili-zados para simular as respectivas portas lógicas. Os resultados do treinamento podem ser observados nas tabelas 4.1 e 4.2. Nas figuras 4.4 e 4.5 é possível visualizar as curvas de aprendizado para cada porta lógica simulada. Essas curvas mostram a evolução do erro quadrático médio a medida que o treinamento avança, ou seja, número de iterações
au-menta. É possível observar também que para todas as portas lógicas simuladas oMSEse
aproximou de zero, o que representa que as saídas do neurônio se aproximam das saídas desejadas satisfatoriamente.
Porta lógica booleana w1 w2 w3 Erro mínimo Iterações
AND 0.6389 0.6389 -0.3759 0.0000059874 8 NAND -0.6503 -0.6503 1.5709 0.0000059874 11
OR 0.7089 0.7089 0.2528 0.0000020539 9 NOR -0.6688 -0.6688 0.9145 0.0000052702 8
Tabela 4.1: Parâmetros de treinamento calculados na simulação do neurônioFePerceptron
para cada porta lógica.
Porta lógica Saídas calculadas Saídas desejadas AND -0.0006 0.0015 0.0015 0.9981 0 0 0 1 NAND 1 0.9988 0.9988 0.0017 1 1 1 0 OR 0.0013 1 1 1 0 1 1 1 NOR 0.9985 0.0011 0.0011 -0.0009 1 0 0 0
Tabela 4.2: Saídas calculadas na simulação do neurônio FePerceptronem relação as
saí-das desejasaí-das.
Analisando os resultados das tabelas 4.1 e 4.2, é possível observar que oFePerceptron
foi capaz de simular as portas lógicas booleanas AND, NAND, OR e NOR, validando a proposta do neurônio ferroelétrico.
A simplicidade do modelo pode ser extendida para implementações em hardware,
onde para alterar o tipo de porta lógica utilizada basta somente alterarmos parâmetros numéricos do projeto.
4.2.3
Modelo Spiking FeNeuron
Os neurônios artificiais de disparo (Spiking Neurons) são modelos biofísicos que
ten-tam descrever as propriedades de neurônios biológicos através da modelagem do fluxo in-tegrado dos sinais através das regiões do neurônio. Os sinais de disparo (spikes), oriúndos
4.2. CAPACITOR FERROELÉTRICO COMO FUNÇÃO DE ATIVAÇÃO 29
Figura 4.4: As curvas de aprendizado das portas lógicas AND e NAND.
a uma função limitadora. O modeloSpiking FeNeuroné um modelo discreto, baseado no
neurônio BCN ([Guerreiro, 2004]). O neurônio é composto por uma camada de entrada, pesos sinápticos, filtros recursivos de primeira ordem (First Order IIRτi j), um soma, uma
função limitadora ξ() e um potencial da membranaMembrane Potencial. Os spikesde
entrada são ponderados por seus respectivos pesos sinápticos e passam através dos fil-tros recursivos de primeira ordem. O soma é responsável por realizar uma combinação linear entre as saídas dos filtros e o limite de ativação dinâmico (resultado da soma do limite de ativação estático e o potencial da membrana) do ciclo de realimentação gerando um potencial de ativação. A função limitadora por sua vez compara o potencial gerado pelo soma e o limite de ativação dinâmico e caso o potencial exceda o limite de ativação dinâmico umspikeé gerado.
Um neurônioique recebe entradas de neurônios pré-sinápticos j∈Γjpode ser
defi-nido de acordo com a equação
Γj={j/j pré-sináptico para i}. (4.10)
O modelo Spiking FeNeuron discreto considera o valor “1"para um spike gerado e
o valor “0"para a ausência de um spike. As entradas ponderadas pelos seus respectivos
pesos sinápticos passam através dos filtros recursivos de primeira ordem e as saídas dos filtros são somadas. A saída dos filtros recursivos pode ser observada na equação
uf i j(n) =e
−(τT i j)u
f i j(n−1) +wi j(n)xi j, (4.11)
ondexi j são osspikesde entradas,wi j são os pesos sinápticos,τi j é a constante de atraso
do filtro recursivo euf i j(n)é a saída do filtro recursivo em um instante de tempon.
O limite de ativação dinâmico é descrito pela equação
Θ(n) =Θ0+Θ1(n), (4.12)
ondeΘ0é uma constante que representa o limite de ativação estático.
O limite de ativaçãoΘ1(n)é gerado pelo potencial da membrana e pode ser descrito
na equação
Θ1(n) =pi(n)ri(n), (4.13)
onde pi(n)é a saída do filtro recursivo de primeira ordem do ciclo de realimentação.
O termori(n)é descrito de acordo com a equação
ri(n) =ξ(|pi(n)| − p
∑
j=1
xi j(n)), (4.14)
onde pé o tamanho do vetor de entrada.
4.2. CAPACITOR FERROELÉTRICO COMO FUNÇÃO DE ATIVAÇÃO 31 de acordo com a equação
ξ(v) =1
2+ 1 2(er f(
v
2k)). (4.15)
A equação do filtro recursivo de primeira ordem do ciclo de realimentação do neurônio é descrito na equação
pi(n) =api(n−1) +gi(n), (4.16)
ondegi(n)depende da saída atual do neurônioyi(n)e do termori(n)(equação 4.17), ou
seja,
gi(n) =ξ(ri(n)−yi(n)). (4.17)
Portanto, o estado atual do neurôniompipode ser escrito de acordo com a equação
mpi(n) =−{Θ0+pi(n)ri(n)}+
∑
j∈τuf i j(n). (4.18)
A saída do neurônioyi(n)pode ser descrita como visto na equação
yi=ξ(mpi(n)). (4.19)
Todo o processo pode ser visto na figura 4.6. Na figura podemos observar também que
Θ1(n)depende da realimentaçao das entradas e do saída do neurônio. O filtro recursivo de
primeira ordem do ciclo de realimentação possui coeficiente de atraso igual aa. O valor
absoluto da saída do filtropi(n)é subtraída da soma das entradas. O resultado é submetido
à funçãoξ(), resultando emri(n). Como dito anteriormente, a funçãoξ()é implementada
pela aproximação matemática do ciclo de histerese do capacitor ferroelétrico. O resultado
ri(n) é igual a 1 quando a saída do filtro for igual ou maior do que a soma dos sinais
de entrada, e 0 caso contrário. O termori(n) é multiplicado por pi(n), gerando Θ1(n),
que por sua vez é somado com o limite de ativação estático Θ0, resultando no limite
de ativação dinâmicoΘ, que é a saída do bloco do potencial da membrana. O limite de
ativação dinâmico acumula carga até que umspikeseja gerado e os filtros sejam resetados.
Dessa forma, problemas não-lineares como a porta lógica XOR podem ser resolvidos com um único neurônio utilizando a função limitadoraξ()como função de ativação.
4.2.4
Simulação do Modelo Spiking FeNeuron
A simulação do modelo Spiking FeNeuron, assim como no caso do FePerceptron,
consiste basicamente em 4 etapas. São elas:
1. Entrada: As entradas/estímulos pré-sinápticas independentes multiplicadas por seus
respectivos pesos sinápticos:
Figura 4.6: O modelo discretoSpiking FeNeuron[Guerreiro, 2004].
2. Filtros recursivos: Os sinais de entrada ponderados por seus respectivos passam através
dos filtros recursivos de primeira ordem:
uf i j(n) =αi j(n) +e
−T
τi j
uf i j(n−1). (4.21)
3. Cálculo da saída: Os sinais dos filtros recursivos são somados (potencial gerado pelo
soma) e posteriormente subtraídos do limite de ativação dinâmico produzido pelo potencial da membrana. Se o potencial exceder o limite de ativação dinâmico, um
spikede saída será gerado, de acordo com as equações 4.19, 4.18, 4.17 e 4.14. No Spiking FeNeuron a funçãoξrepresenta o ciclo de histerese do capacitor
ferroelé-trico, de acordo com a equação:
ξ(v) =Psat+(v). (4.22)
Se for gerado um spikede saída os filtros são resetados. Caso contrário os filtros
acumulam potencial.
4. Aprendizado: Ajuste dos pesos sinápticos de acordo com a equação
wi j(n+1) =wi j(n) +γ(di(n)−yi(n))xi j(n), (4.23)
ondesi(n)é a saída desejada,yi(n)é a saída do neurônio,xi j(n)são as entradas eγ
é a taxa de aprendizado.
O modeloSpiking FeNeuronfoi utilizado para implementar as funções lógicas