• Nenhum resultado encontrado

Modelo comportamental do capacitor ferroelétrico como unidade básica de neurônios artificiais e sua implementação em FPGA

N/A
N/A
Protected

Academic year: 2017

Share "Modelo comportamental do capacitor ferroelétrico como unidade básica de neurônios artificiais e sua implementação em FPGA"

Copied!
87
0
0

Texto

(1)

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.

(2)

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.

(3)

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

(4)
(5)

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.

(6)
(7)

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.

(8)
(9)

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.

(10)
(11)

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

(12)
(13)

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

(14)

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

(15)

5.18 Modelo digital do capacitor ferroelétrico. . . 58 5.19 Modelo contínuo do capacitor ferroelétrico substituindo o modelo digital

(16)
(17)

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

(18)
(19)

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.

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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,

(25)

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

(26)

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

(27)

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

(28)

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.

(29)

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

(30)
(31)

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

(32)

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.

(33)

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

(34)

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

(35)

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)

(36)

Figura 3.5: Função de ativação rampa simétrica.

(37)

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

(38)

Figura 3.8: Função de ativação gaussiana para com centro em zero e desvio padrãoσ=

0.5.

(39)

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

(40)
(41)

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

(42)

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

(43)

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

(44)

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.

(45)

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

(46)

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

(47)

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.

(48)

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.

(49)

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:

(50)

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

Referências

Documentos relacionados

O Direito Penal ao intervir, só deve emprestar a sua tutela, só está legitimada a intervir para tutelar determinados bens de agressões humanas quando essa tutela não puder

Diante desse problema os pesquisadores, para a etapa seguinte do trabalho (a montagem de um curso propriamente dito), propuseram a criação de grupos de trabalho

Se você tivesse de descrever para um operador de fábrica o ferro fundido em grafita compacta (ou vermicular) de modo simplificado para o melhor entendimento, como você

Results: The mean results of septal and lateral parts of the mitral annulus Pulsed wave TDE showed that myocardial systolic wave (Sm), myocardial early diastolic wave (Em) and Em

Portanto, diante de tudo que foi apresentado, para obter uma melhor análise sobre a influência da dependência financeira dos agentes militares sobre os gastos e o grau de

Com a finalidade de obtenção de extratos enriquecidos em compostos fenólicos, os resíduos de vinificação foram fracionados com auxílio de coluna aberta utilizando

Este estudo tem por objetivo avaliar a capacidade do exame de Dermatoscopia em detectar lesões suspeitas de malignidade através da Regra do ABCD nos pacientes em seguimento

Tendo como principal objetivo o preenchimento da lacuna existente em informações técnicas para o cultivo, a Embrapa Agroindústria Tropical vem desenvolvendo pesquisas cujos