Escolar Documentos
Profissional Documentos
Cultura Documentos
a CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA DE TELEINFORMÁTICA
CURSO DE ENGENHARIA DE COMPUTAÇÃO
FORTALEZA
2016
JÚLIO PEIXOTO DA SILVA JÚNIOR
FORTALEZA
2016
Dados Internacionais de Catalogação na Publicação
Universidade Federal do Ceará
Biblioteca Universitária
Gerada automaticamente pelo módulo Catalog, mediante os dados fornecidos pelo(a) autor(a)
BANCA EXAMINADORA
Aos meus pais por todos os esforços, ajuda e apoio durante todo o curso.
A todos os meus colegas de turma que entraram em 2012.1 na Engenharia de
Teleinformática e mais outros que foram se agregando no caminhar do curso.
Um grande agradecimento aos meus amigos Marcelo Mauro e ao Antônio Júlio,
esses dois caras que sempre me apoiaram e estiveram comigo em diversas batalhas.
Aos professores que lutaram pelo curso noturno, em especial ao inesquecı́vel
Alexandre Moreira (Sobral). Um grande agradecimento aos professores Alexandre Coelho,
Tarcı́sio Costa e Jardel Silveira, que além grandes professores, orientaram-me com vários
conselhos nessa trajetória.
Ao professor Guilherme Barreto, pela excelente orientação e pela oportunidade.
Agradeço por todas as adversidades encontradas nessa caminhada, cada uma
delas me tornou mais forte e persistente. Dos cinco anos deste curso, quatro foram
trabalhando e não foi fácil, saio de cabeça erguida para as próximas batalhas.
1
Seizures due to epileptic crisis reach a large number of people, around 5% of the world
population has already suffered some kind of seizure. There are several exams for the
diagnosis of epilepsy, such as magnetic resonance imaging (MRI), functional magnetic
resonance imaging (FMRI) and electroencephalogram (EEG), the EEG being the most
commonly used diagnostic test. Concerning scalp EEG, the electrical signals of the ce-
rebral activation are acquired by electrodes on the scalp. Because cerebral activation
contains several variations, depending from patient to patient and the position of the
electrodes, this diagnosis is extremely difficult for professionals in the area. This work
consists in using a machine learning method based on neural networks. Two architectures:
Multilayer Perceptron (MLP) and Extreme Learning Machine (ELM), will be compared
to perform the detection of seizures and classification of EEG signals from pediatric pa-
tients. To perform the classification, a key point is the extraction of signal attributes.
This work highlights that there are several techniques for extracting attributes from EEG
and a gold standard is not available. Two extraction techniques will be presented and
compared: Power Spectral Density (PSD), using the Welch method, and the estimation
of the coefficients of an autoregressive (AR) method. The results with use PSD using
neural nets had obtained of fees of rightness next to 98 % and already with the esteem
to the parameters of the model AIR with order 4 fees of 96% rightness next to in two to
the three patients submitted to the tests.
Keywords: Electroencephalogram (EEG), Epileptic Crisis, Neural Networks, Multilayer
Perceptron (MLP), Extreme Learning Machine (ELM), Power Spectral Density (PSD),
Autorregresive Model.
LISTA DE FIGURAS
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Resumo do Capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 ELETROENCEFALOGRAMA (EEG) . . . . . . . . . . . . . . . 18
2.1 Introdução ao EEG . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Fundamentos Fisiológicos do Eletroencefalograma . . . . . . . . 19
2.3 Ritmos Cerebrais . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Medições e Gravação do EEG . . . . . . . . . . . . . . . . . . . . 23
2.4.1 Padrão Convencional de Posição dos Eletrodos (10-20) . . . . . 24
2.5 Banco de Dados Utilizado . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Detecção de Ataque Epilético no EEG . . . . . . . . . . . . . . . 27
2.7 Resumo do Capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 MÉTODOS DE EXTRAÇÃO DE ATRIBUTOS . . . . . . . . . 30
3.1 Caracterı́sticas do Sinal EEG . . . . . . . . . . . . . . . . . . . . 30
3.2 Densidade Espectral de Potência (PSD) . . . . . . . . . . . . . . 32
3.3 Estimação de Parâmetros de um Modelo Autorregressivo . . . 37
3.4 Resumo do Capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 CLASSIFICADORES BASEADOS EM REDES NEURAIS . . 40
4.1 Introdução a Redes Neurais . . . . . . . . . . . . . . . . . . . . . 40
4.2 Definições Preliminares . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3 Fundamentos da Rede Neural MLP . . . . . . . . . . . . . . . . 42
4.4 Fundamentos da Rede Neural ELM . . . . . . . . . . . . . . . . 48
4.5 Resumo do Capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5 IMPLEMENTAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1 Metodologia Utilizada . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2 Extração de Atributos . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3 Implementação dos Classificadores . . . . . . . . . . . . . . . . . 61
5.4 Resumo do Capı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6 RESULTADOS OBTIDOS . . . . . . . . . . . . . . . . . . . . . . 67
7 CONCLUSÕES E DISCUSSÕES . . . . . . . . . . . . . . . . . . 79
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
APÊNDICE A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
ANEXO A – CATÁLOGO DOS DADOS ANALISADOS . . . 92
13
1 INTRODUÇÃO
1.1 Objetivos
1.2 Metodologia
dados para a obtenção das caracterı́sticas utilizando-se os dois métodos citados anteri-
ormente. Para realizar a comparação entre os métodos de extração dos atributos, os
resultados são validados em testes exaustivos dos modelos de classificação escolhidos, uti-
lizando ferramentas estatı́sticas para a devida comparação dos resultados. Na Figura 2,
é apresentado um diagrama básico da metodologia que é aplicada no trabalho.
Figura 2 – Metodologia do trabalho.
2 ELETROENCEFALOGRAMA (EEG)
Fonte: http://www.infoescola.com/biologia/tecido-nervoso/ ,
acesso em outubro de 2016.
Os potenciais de ação são causados por uma troca de ı́ons através da membrana
do neurônio, ou seja, é uma mudança temporária no potencial elétrico da membrana que
é transmitida ao longo do axônio. Geralmente é iniciado no corpo celular e se propaga
somente em uma direção (dendritos, corpo celular e por fim axônio). Ao despolarizar
o potencial da membrana do neurônio, tornando-a mais positiva, produz um pico de
potencial também denominado disparo ou ativação. Após chegar ao ponto máximo do
pico, ocorrerá a repolarização da membrana, tornando-se mais negativa. O potencial
elétrico se torna mais negativo do que o referencial de repouso e em seguida retorna ao
nı́vel de repouso. Esse ciclo dura em torno de 5 a 10 ms. Na Figura 4, é apresentado um
exemplo de um disparo.
Os valores de pico do potencial elétrico são variáveis devido ao processo de
sinapse. A sinapse, apresentada na Figura 5, é a transmissão de um sinal elétrico ou
quı́mico entre dois neurônios. O neurônio que inicia a transmissão ou alteração é deno-
minado pré-sináptico e o que sofre a ação é denominado o pós-sináptico. As sinapses,
inicialmente estudadas na década de 50, podem ser elétricas ocasião na qual apresentam
20
• as ondas delta estão dentro de uma faixa de 0,5-4 Hz, são encontradas em estágios
de atividades cerebrais lentas. Estas ondas estão associadas principalmente com o
sono profundo, facilmente confundı́veis com ruı́do (normalmente chamado de sinais
de artefatos), causado pelos músculos do pescoço ou da mandı́bula. No entanto,
através da aplicação de métodos de análise de sinal simples para o EEG, é possı́vel
identificar quando a resposta é causada por movimento excessivo.
• as ondas theta cuja faixa de frequência é de 4 a 7,5Hz, estão associadas com a
mudança da consciência em direção à sonolência. Essas ondas também estão as-
sociadas com o acesso ao material inconsciente, inspiração criativa e à meditação
profunda. Normalmente, esse tipo de faixa de frequência está acompanhado por
outras frequências relacionando com o nı́vel de excitação. As ondas theta desem-
penham um papel importante na infância, e em elevados nı́veis de intensidade de
atividades nos adultos em vigı́lia são anormais e são causadas por vários problemas
patológicos.
• as ondas alpha (8-13 Hz) são encontradas normalmente na parte posterior da
cabeça, na região occipital do cérebro. Em geral tem uma forma arrendondada
ou em forma de um sinal senoidal. Raramente podem se manifestar como ondas
agudas. As ondas alpha indicam uma consciência relaxada, sem qualquer atenção
ou concentração. É o ritmo mais proeminente em toda a atividade cerebral. O
”estado”alpha é reduzido ou eliminado através da abertura dos olhos, por ouvir
sons desconhecidos, por ansiedade, concentração mental ou atenção.
23
• as ondas beta (14-30 Hz) são associadas com o pensamento ativo, atenção e foco no
mundo exterior para resolver um problema concreto e são encontradas em adultos
normais e também podem estar ligadas ao estado de pânico. São encontrada em
suma maioria na região frontal e central com amplitudes menores do que os ritmos
alpha.
• as ondas gamma (≥ 30 Hz) geralmente não são de interesse clı́nico e fisiológico.
No entanto a detecção destes ritmos pode ser utilizada para a confirmação de de-
terminadas doenças cerebrais.
De fato, é complicado entender e detectar os ritmos cerebrais do sinal EEG.
Profissionais com experiência e bastante treinados sentem dificuldade em determinados
momentos. Portanto existem diversas ferramentas para o processamento de sinais que
permitem separar e analisar formas de onda desejadas dentro do EEG. A análise visual
do EEG é subjetiva e depende da anormalidade que se deseja verificar.
1.
Figura 9 – Padrão 10-20 .
que esta sendo utilizado. A configuração dos canais utilizada em cada paciente é apresen-
tada no Anexo A. O arquivo de extensão .edf (European Data Format) é um arquivo de
dados composto por um cabeçalho, seguido pelos registros de dados. Esta especificação
pode ser vista em: http://www.edfplus.info/specs/edf.html. O cabeçalho identifica
o paciente e especificam as caracterı́sticas técnicas do sinal gravado. Os primeiros 256
bytes do cabeçalho especificam o número da versão deste formato, o paciente, a identi-
ficação de gravação, informações de duração da gravação, o número de registros de dados
e, finalmente, o número de sinais em cada registro de dados. Em seguida, é especificado o
tipo de sinal (por exemplo, EEG, temperatura corporal, etc), a calibração de amplitude
e o número de amostras em cada registo de dados (KEMP et al., 1992).
Para a visualização e análise dos dados presentes nos arquivos utilizando o
ambiente computacional Matlab ou Octave, foi necessário utilizar a função edfread.m. O
parâmetro de entrada da função é o endereço e nome do arquivo, e a função retorna um
cabeçalho (header) e os dados (recorddata). Um exemplo de como a função é utilizada é
apresentado a baixo no código a seguir:
clear; clc;
% Exemplo de utilizacao da funcao edfread
[header, recorddata] = edfread('chb01 03.edf');
Sabemos que os ataques epiléticos são perı́odos onde a atividade cerebral oscila
entre a hiperatividade e o hipersincronismo, gerando sintomas clı́nicos que podem ser
acompanhados de convulsões. A variação dos sintomas clı́nicos ocorre em função da
localização de origem desse estado, com o padrão de distribuição e a abrangência para
outras regiões do cérebro.
A redistribuição da energia espectral, causada pela epilepsia, consiste no surgi-
mento ou no desaparecimento de componentes de frequência dentro de uma faixa que varia
de 0 a 25 Hz, porém essas componentes de frequência variam de paciente para paciente e
varia também com o local de origem do ataque.
Utilizando os exemplos apresentados por SHOEB (2009), a Figura 10 ilustra
um exemplo do comportamento dos sinais de um paciente em crise. A crise se inicia no
instante 1723 segundos e consiste no aumento de energia do sinal EEG em todos os canais,
seguido pelo surgimento de um ritmo beta canais F3-C3 e C3-P3. Em seguida a amplitude
deste ritmo aumenta à medida que as suas frequência diminuem e se instalam dentro da
banda de frequência do tipo theta. Outro exemplo pode ser visto na Figura 11, onde
a crise epilética inicia-se no instante 6313 segundos, com o surgimento de ritmo theta
proeminentemente nos canais F7-T7 e T7-P7. Os outros canais apresentam mudanças
após o inicio de crise, e é possı́vel verificar alterações da frequência em outros canais. Por
fim, é apresentado o exemplo da Figura 12, ilustrando um descarga anormal no intervalo
de 2884-2892 segundos, caracterizada pelas altas amplitudes com seguidos picos de ondas
de alta frequência. Porém, essa descarga anormal não é devido a ocorrência de uma crise
epiléptica.
Os três exemplo são uma pequena amostra da variabilidade de sinais que po-
dem ser observada entre os vários tipos de crises epiléticas e os pacientes. Portanto há
uma complexidade em classificar esses padrões de forma genérica para pacientes, sendo
mais comum realizar um estudo do padrão do comportamento do EEG para cada paciente.
28
Fonte:(SHOEB, 2009).
Fonte:(SHOEB, 2009).
Fonte:(SHOEB, 2009).
29
Gráfico 2: Intervalo sem o evento de crise. Gráfico 3: Intervalo com o evento de crise.
O sinal EEG apresenta uma importante caracterı́stica inerente: sua alta não-
estacionaridade. A aplicação de métodos de dinâmica não-linear (ou caos determinı́stico)
ao problema da descrição de um EEG foi relativamente bem sucedida como apresentado
no capı́tulo 7 da referência ADELI (2010). Muitos métodos determinı́sticos baseados em
caos são aplicados para caracterizar a não-linearidade intrı́nseca embutida aos sinais de
EEG. No entanto, a maioria destes métodos necessita de uma condição crı́tica: que a
série de tempo seja estacionária. Tal restrição infelizmente faz com que as abordagens
convencionais não sejam confiáveis para a análise de sinais fisiológicos, uma vez que a não
estacionariedade (isto é, as propriedades estatı́sticas, como a média, variância e função de
autocorrelação variam com o tempo) é uma caracterı́stica intrı́nseca dos dados fisiológicos
e persiste mesmo sem intervenção externa (TSAI et al., 2009).
Os fenômenos não-estacionários estão presentes no EEG, geralmente sob a
forma de eventos transitórios, como ondas acentuadas, picos ou descargas de ondas de pico
que são caracterı́sticas do EEG epiléptico, ou como alternância de intervalos (segmentos)
relativamente homogêneos com caracterı́sticas estatı́sticas diferentes.
O trabalho consiste em utilizar métodos para realizar análise linear no domı́nio
da frequência e do tempo do sinal EEG. Serão utilizados os métodos da Estimação da Den-
sidade Espectral de Potência (PSD) através da Transformada Rápida de Fourier (FFT)
e a estimação dos parâmetros ao modelo autorregressivo (AR).
32
N
1 X
∗
rx (k) = lim x(n + k)x (n) , (3)
N →∞ 2N + 1 n=−N
N −1
1 X
r̂x (k) = x(n + k)x∗ (n), (4)
2N n=0
para garantir que os valores de x(n) que caem fora do intervalo [0, N-1] não sejam com-
putados, pode-se reescrever a equação da seguinte forma:
N −1−k
1 X
r̂x (k) = x(n + k)x∗ (n). (5)
2N n=0
N
X −1
P̂per (ejω ) = r̂x (k)e−jkω . (6)
k=−N +1
Então, xN (n) é o produto de x(n) com uma janela retangular wR (n). Agora
em termos de xN (n), a função de autocorrelação estimada é dada por:
∞
1 X 1
r̂x (k) = xN (n + k)x∗ (n) = xN (k) ∗ xN ∗ (−k), (8)
N k=−∞ N
1 1
P̂per (ejω ) = XN (ejω )XN ∗ (ejω ) = |XN (ejω )|2 , (9)
N N
∞
X N
X −1
X̂N (ejω ) = xN (n)e−jnω = x(n)e−jnω (10)
n=−∞ n=0
34
O sinal xN (n) utilizado no periodograma, foi combinado com uma janela re-
tangular. Porém é comum o uso de outros tipos de janelamento diferente do retangular,
destacando-se as janelas de: Bartlett, Hanning, Hamming, Blackman, Flattopwin, Gaus-
siana e Taylorwin. No Gráfico 4, tem-se o exemplo das janelas de Blackman (azul), a
Gausiana (amarelo) e a de Hamming (vermelho). O cálculo do periodograma modificado
é dado por:
X ∞ 2
jω 1 −jnω
P̂M (e ) = x(n)w(n)e (11)
N U n=−∞
onde w(n) é a janela utilizada e U é dado pela média quadrática da magnitude de w(n).
L−1
1X
U= |w(n)|2 (12)
L n=0
funcion Px = mper(x,win,n1,n2)
x=x(:)
if nargin==2
n1=1
n2=length(x);
end
N=n2-n1+1
35
w=ones(N,1)
if (win==2) w=hamming(N);
elseif (win==3) w=hanning(N);
elseif (win==4) w=bartlett(N);
elseif (win==5) w=blackman(N);
end
xw=x(n1:n2).*w/norm(w);
PX=N*periodogram(xw)
end;
.
Fonte: Elaborada pelo autor.
Pela equação 13, conclui-se caso seja possı́vel encontrar uma média da esti-
mativa do periodograma, então o valor encontrado será uma estimativa consistente de
Px (ejω ). Seja, xi (n) de i = 1 até K, onde temos K realizações de um processo não corre-
lacionado de um processo randômico x(n) sobre o intervalo de 0 < n ≤ L. Sabe-se que a
estimativa do periodograma de xi (n) é dado por:
L−1
(i) jω 1 X −jnω
P̂per (e ) = xi (n)e , i = 1, 2, ..., k, (14)
L n=0
36
K
jω 1 X (i) jω
P̂x (e ) = P̂ (e ). (15)
K i=1 per
1
E{P̂x (ejω )} = E{P̂per
(i) jω
(e )} = Px (ejω ) ∗ WB (ejω ), (16)
2π
1 1
V ar{P̂x (ejω )} = (e )} ≈ Px 2 (ejω ).
(i) jω
V ar{P̂per (17)
K K
em que xi (n) = x(n+iL) para n = 0, 1, ..., K e i = 0, 1, ..., K−1. A seguir será apresentada
um implementação desse método utilizando um função no Matlab.
function Px =bart(x,nsect)
L=floor(length(x)/nsect);
Px=0;
n1=1;
for i=1:nsect
Px = Px + periodogram(x(n1:n1+L-1))/nsect;
n1 = n1 + L;
end;
WELCH (1967) propôs em seu trabalho intitulado “The Use of Fast Fourier
Transform for the Estimation of Power Spectre: A Method Based on Time Averaging
Over Short, Modified Periodograms” duas alterações no método de Barlett. A primeira
proposta de modificação é permitir que a sequência de dados xi (n) se sobreponham e
a segunda proposta é permitir que o janelamento dos dados w(n) seja aplicado a cada
sequência. Desta forma, produz-se um conjunto de periodogramas modificados que devem
ser calculados pela média.
Com um sinal xi (n), esse sinal é formado por sucessiva sequências de offset D
37
K−1 L−1 2
jω 1 X X −jnω
P̂W (e ) = w(n)x(n + iD)e , (19)
KLU i=0 n=0
1
E{P̂w (ejω )} = Px (ejω ) ∗ |W (ejw )|2 , (20)
2πLU
function Px = welch(x,L,over,win)
if (over>=1 | over<0)
error('Overlap invalido')
end
n1=1;
n0=(1-over)*L
nsect=1+floor((length(x)-L)/(n0));
Px=0;
for i=1:nsect
Px=Px + mper(x,win,n1,n1+L-1)/nsect;
n1=n1+n0;
end;
que o valor atual de uma série temporal depende do seu passado imediato mais um erro
aleatório EHLERS (2009). Em outras palavras, é o agregado linear dos valores anteriores
da série com a adição de um ruı́do branco.
A função de autocorrelação de um modelo AR(p) pode ser escrita com a se-
guinte expressão:
Rx (τ ) E[x(n)x(n − τ )]
ρ(τ ) = = (23)
σx 2 E[x2 ]
r(1) = φ1 + φ2 r(1) + ... + φp r(p − 1), τ =1
r(2) = φ r(1) + φ + ... + φ r(p − 2),
τ =2
1 2 p
. . (26)
.. ..
r(p) = φ r(p − 1) + φ r(p − 2) + ... + φ ,
τ = p.
1 2 p
39
Esse capı́tulo tem como objetivo apresentar duas arquiteturas de redes neu-
rais para classificação não-linear. Os métodos adotados de interesse deste trabalho serão:
rede neural do tipo Perceptron Multicamada (MLP - Multilayer Perceptron) do tipo feed-
forward (sem realimentação) com apenas uma camada escondida de neurônios treinados
com o algoritmo de retropropagação do erro (Error Backpropagation) e uma rede neu-
ral de multicamadas do tipo feedforward denominada Extreme Learning Machine (ELM),
proposta por Huang et al (2006).
a relação que mapeia as entradas e as saı́das. Portanto, pode supor que mapeamento pode
ser linear:
d = Mx (30)
em que M é uma matriz cuja dimensões são (p + 1) × m. Portando o uso da rede neural
implementa um algoritmo que dará o menor valor aproximado do mapeamento entrada-
saı́da. A função que melhor aproxima é representada por F̂(·). A saı́da yµ gerada pela
rede neural para a entrada xµ é dada por:
yµ = F̂[xµ ] (31)
wi0 θi
. ..
wi = .
. = ,
. (32)
wip wip
em que θi é o limiar.
De forma similar o vetor de peso associado a cada neurônio k da camada de
saı́da é dado por:
mk0 θk
. .
mk = . .
. = . , (33)
mkq mkq
em que θk é o limiar associado aos neurônios da camada de saı́da k.
O treinamento da rede MLP é composta por duas fases, a primeira fase deno-
minada sentido direto, que envolve o cálculo das ativações e saı́das de todos os neurônios
da camada escondida e de todos os neurônios da camada de saı́da. E a segunda fase
44
(denominada sentido inverso) envolve o cálculo dos gradientes locais e o ajuste dos pesos
de todos os neurônios da camada escondida e de saı́da.
Figura 17 – Fluxo de dados na rede MLP.
onde a função de ativação φ pode assumir a forma de diversas funções, tais como a
função sigmoidal ou logı́stica (equação 36), tangente hiperbólica (equação 37), gaussiana,
multiquadratica, degrau ou cosseno.
1
φ(ui (t)) = (36)
1 + exp[−ui (t)]
1 − exp[−ui (t)]
φ(ui (t)) = (37)
1 + exp[−ui (t)]
O terceiro passo dessa etapa de treinamento é efetuar o cálculo das ativações
45
dos neurônios da camada de saı́da de forma similar ao cálculo dos neurônios da camada
oculta através das equações 34 e 39.
q
X
uk (t) = mki (t)zi (t) = mi T (t)zi (t), k = 1, 2, ..., M, (38)
i=0
em que φk pode assumir as funções de ativação já discutidas aqui nessa seção.
Na segunda fase do treinamento, o sentido inverso, da rede MLP refere-se ao
cálculo dos gradientes locais e ao ajuste dos pesos sinápticos para todos os neurônios da
camada oculta e da camada de saı́da. Portanto, o fluxo de informação é da camada de
saı́da para as camadas escondidas, ou seja, a informação percorre o caminho oposto ao
fase inicial. Nesse tocante se diz que a informação esta fluindo no sentido inverso.
Após os cálculos das ativações dos neurônios da camada oculta e das ativações
dos neurônios de saı́da temos a informação referente ao erro entre a saı́da desejada dk (t)
e a saı́da gerada pele saı́da calculada yk (t). O erro é dado por:
A primeira etapa dessa fase é efetuar o cálculo dos gradientes locais dos
neurônios da camada de saı́da:
na camada oculta:
q
!
X
δi (t) = φ0i (ui (t)) = mki (t)δk (t) , i = 1, 2, ..., q, (44)
i=0
Utilizando-se a arquitetura da rede MLP com apenas uma camada oculta, a rede é repre-
sentada pelo número de variáveis de entrada (p), o número de neurônios ocultos (q) e o
número de neurônios de saı́da (m). O número total de parâmetros (Z) de uma rede MLP
é dada por:
Z = (p + 1)q + (q + 1)m. (49)
O valor da taxa de aprendizado (α) deve ser mantida abaixo de 0,5 para manter
a estabilidade do aprendizado e caso necessário utiliza-se um fator de momento (η) entre
48
0,5 e 1. Com relação à função de ativação utilizada, cada neurônio pode ter a sua função
de ativação, porém para facilitar o projeto todos terão a mesma função de ativação.
Após o treinamento da rede é necessário validá-la, ou seja, testar as suas
saı́das para dados de entrada diferente dos utilizados no treinamento. O procedimento
comum para treinar a rede de posse de N pares de entra-saı́da é utilizar um conjunto de
dados menor (N1 ). Em geral N1 está entre 75% e 90% dos dados totais. Os dados para
treinamento serão N1 e para o teste será N2 = N − N1 .
De acordo com HUANG, ZHU e SIEW (2006), a rede ELM tem como objetivos
alcançar uma alta precisão, com baixa intervenção humana e alta velocidade. Com essas
caracterı́sticas a ELM é uma rede neural de aprendizagem em tempo real (Real-Time
Learning). Que apresenta rápida velocidade de aprendizagem e é de fácil implementação,
sendo bastante utilizada em diversos problemas de classificações de padrões.
Seu uso vem constantemente gerando outras variações mais sofisticadas da
rede e aplicações em diversas áreas tais como a implementação em análise de dados em
Big Data por KASUN et al. (2013), na área médica por BOQUETE et al. (2012) e Kaya
(2013), na área de processamento de imagens com CHEN et al. (2012) e AN & BHANU
(2012). Destacam-se também aplicações na área de robótica e controle por YU, CHOI e
HUI (2012), em aplicações na industria quı́mica com LIU et al. (2012), na área de análise
de séries temporais com BUTCHER et al. (2012), entres outras aplicações.
A rede ELM é uma rede neural do tipo feedforward que apresenta uma única
camada oculta oferecendo pouca intervenção do usuário, referente ao ajustes dos seus
parâmetros se comparada a outras arquiteturas (Perceptron Multicamadas MLP, Funções
de Base Radial e Self-Organized-Maps).
A arquitetura da rede ELM, Figura 20, apresenta os neurônios da camada
oculta (primeira camada de peso sinápticos) e os neurônios da camada de saı́da (segunda
camada de pesos sinápticos). É semelhante à rede MLP, porém apresenta uma fase de
aprendizado muito mais rápida. De foma semelhante a rede MLP o vetor de pesos da
camada escondida para cada neurônio i é representado por wi , conforme apresentado na
equação 32. O vetor de peso a cada neurônio k da camada de saı́da é representado por
mk , conforme apresentado na equação 33.
Podemos dividir as etapas de implementação da rede ELM em três partes. A
inicialização aleatória dos pesos sinápticos dos neurônios da camada oculta e da camada de
saı́da, o acúmulo das saı́das dos neurônios ocultos e por fim o cálculo dos pesos sinápticos
dos neurônios de saı́da, no qual as duas primeiras partes são responsáveis pelo treinamento
da rede neural.
Na primeira etapa, inicialização aleatória dos pesos sinápticos de todos os
neurônios das camadas ocultas (wij ) e de saı́da (mki ). Podemos realizar essa inicialização
utilizando uma distribuição uniformemente distribuı́da em um determinado intervalo (a, b)
(equação 52), ou utilizar uma distribuição normal (gaussiana) com média nula e variância
σ 2 (equação 53).
propaga-se da camada oculta para a camada de saı́da, ou seja, fluido no sentido direto
(Figura 17). Para calcular as ativações sinápticas dos neurônios da camada escondida em
uma iteração t para um determinado vetor de entrada x e um determinado número de
neurônios na camada oculta (q) é utilizado a seguinte expressão:
p
X
ui (t) = wij xj (t) = wiT x(t), i = 1, . . . , q. (54)
j=0
Após o cálculo das ativações dos pesos sinápticos de cada neurônio da camada
oculta é calculada as saı́das correspondentes na camada de saı́da na seguinte expressão:
p
!
X
= φi wiT (t)x(t) ,
zi (t) = φi (ui (t)) = φi wij (t)xj (t) (55)
j=0
Seja D a matriz de vetores, onde teremos N vetores d(t) ao longo das colunas
e Z a matriz de vetores de pesos para a camada de saı́da. utilizando D e Z a matriz M
é dada por:
M = DZT (ZZT )−1 (58)
5 IMPLEMENTAÇÃO
Manharris é apresentado a seguir no Gráfico 8. Comparando o uso das duas janelas para
esse conjunto de dados é possı́vel observar que as duas apresentam uma PSD aproximada,
porém a janela de Black Manharris (128) apresenta as curvas levemente mais suaves em
relação a janela gaussiana (128).
cuja saı́da da estimação da PSD seja suavizada pode acarretar em perda de informações
essenciais para os procedimentos posteriores. Os mesmos dados foram submetidos às
mesmas janelas utilizada anteriormente porém com um tamanho de 64, os gráficos 9
e 10 apresentam a PSD para as janelas gaussiana(64) e Black Manharris(64). Sendo
assim, observa-se claramente a diferença entre os resultados apresentados para as situações
propostas nos exemplos quando se considera o tamanho da janela utilizada.
plo do Gráfico 7, onde não há evento de crise epiléptica convulsiva, em comparação com
o calculado para um intervalo onde ocorre uma crise, são apresentados na Tabela 3. Fica
claro e evidente que há uma aumento da energia espectral dissipada em um evento de
crise epiléptica quando se observa a média dos ritmos cerebrais nos três canais analisados.
xu (t) = {φ11 (t), φ12 (t), φ21 (t), φ22 (t), ..., φpc (t)}, (60)
método de extração que serão utilizados nos classificadores. Em que um arquivo conterá
o vetor de caracterı́sticas para cada intervalo de todos os eventos que apresentaram uma
crise epiléptica e o segundo arquivo conterá os vetores de caracterı́sticas para todo o
arquivo de gravação como o maior intervalo de dados de crise epilépticas. Tomando como
referência o exemplo do paciente 1, o arquivo como o maior tempo registrado de crises é
o ch01 26.edf.
Após a extração dos vetor de atributos do paciente 1 através no método de
Welch, observou-se que será necessário realizar um balanceamento do dados de entrada,
pois para o paciente 1 o arquivo de teste contem 1162 intervalos, do quais 50 apresentam
crises, e o arquivo que apresenta todas as demais crises epilépticas convulsivas desse
paciente contém 169 intervalos. Sendo assim, apenas cerca de 15% dos intervalos são da
classe que apresenta algum tipo de crise. Portando optou-se por utilizar um proporção
entre no mı́nimo 1/4 e no máximo 1/2 dos dados.
As funções desenvolvidas para a extração de atributos são apresentadas no
Apêndice A.
(VP + VN )
AC = (63)
T OT AL
VP
SB = (64)
(VP + FN )
SB + EP
EF = (66)
2
(VP ∗ VN − FP ∗ FN )
φ= p (69)
(VP + FP ) ∗ (VP + FN ) ∗ (VN + FP ) ∗ (VN + FN )
6 RESULTADOS OBTIDOS
comportou melhor com o uso dos dados do modelo AR(4), porém os resultados ficaram
abaixo do realizado no cenário C. De forma similar ao cenário C ocorreu uma grande
redução de desempenho de classificação para o paciente 8.
O Cenário E apresenta a implementação do classificador utilizando uma rede
neural do tipo ELM e a extração de atributos através do método do periodograma de
Welch. Os parâmetros da arquitetura implementada utilizou 80 neurônios na camada
oculta, a matriz de pesos (definida aleatoriamente) foi multiplicada por um constante
pequena (β = 0, 05). A escolha do número de neurônios foi por tentativa e erro, variando
o número de neurônios entre 2 e 200, sendo escolhido o que manteve a melhor taxa de
acerto em uma faixa de neurônios com taxas parecidas.
A taxas de acertos para os três pacientes são apresentadas na Tabela 21 a
seguir.
7 CONCLUSÕES E DISCUSSÕES
pseudo-inversa. Essa paciente não foi citado no trabalho, mas seus resultados utilizando
RNA foram satisfatórios. Outro fato a destacar é que quando se utilizou-se os dados de
entrada extraı́dos através da PSD, obteve um resultado mais satisfatório quando o vetor
de entrada foi normalizado, com média nula e variância unitária.
O trabalho atingiu seu objetivo em comparar os classificadores baseados em
arquiteturas de RNA (MLP e ELM) e os dois métodos de extração de features do sinal
do EEG, no problema de classificação de crises convulsivas epilépticas.
Este trabalho pode render outros desdobramentos futuros em que pode-se rea-
lizar trabalho com os mesmo dados através do uso de outros métodos de extração como a
Transformada de Wavelet, a clusterização e o uso de dinâmica não linear. Outro destaque
é o uso de classificadores baseados em SVM para a classificação de tipo de crise epilépticas,
já que o este trabalho tratou somente das crises epilépticas do tipo convulsivas. O de-
senvolvimento um algoritmo para detecção prévia de crises epilépticas em tempo real que
possa ser embarcado em um hardware e prover uma auxı́lio na vidas de várias pessoas.
Esse trabalho futuro proverá ao usuário uma estimativa de tempo de uma possı́vel crise
epiléptica através do sinal do EEG e de outros bio-sinais, o qual que será utilizado para o
epiléptico se preparar para acomodar-se ou sair de uma via e estacionar o carro em local
seguro.
81
REFERÊNCIAS
CHEN, Y. Q.; ZHAO, Z. T.; Wang, S. Q.; CHEN, Z. Y. Extreme learning machine
based device displacement free activity recognition model. Soft Computing, v.
16(9), 2012. pp. 1617-1625.
CHIAPPA, S.; BENGIO, S. HMM and IOHMM modeling of EEG rhythms for
asynchronous BCI systems. European Symposium on Artificial Neural Networks
ESANN, 2004.
HAYKIN, Simon. Neural networks and learning machine. New Jersey ,Pearson
Education, Inc, 2009.
HUANG, Gao; HUANG, Guang-Bin; SONG, Shiji; YOU, Keyou. Trends in extreme
learning machines: A review. Neural Networks, v. 70(16), 2015. pp. 3056-3062.
HWANG, J.N.; KUNG, S.Y.; MAHESAN, M.; PRINCIPE, J. C. The Past, Present,
and Future of Neural Networks for Signal Processing. IEEE Signal Processing
Magazine, v. 14, n. 6, 1997. pp. 28-48.
JAIN, A. K.; MAO, J.; MOHIUDDIN, K.K. Artificial neural networks: A tutorial.
Computer, v. 29, 1996. pp. 31-44.
KEMP, Bob; VARRI, Alpo; ROSA, Agostinho C.; NIELSEN, Kim D.; GADE, John. A
simple format for exchange of digitized polygraphic recordings.
Electroencephalography and Clinical Neurophysiology, v. 82, 1992. pp. 391-393.
83
LIU, G. H.; JIANG, H.; XIAO, X. H.; Zhang, D. J.; MEI, C. L.; DING, Y. H.
Determination of process variable ph in solid-state fermentation by ft-nir
spectroscopy and extreme learning machine (ELM). Spectroscopy and Spectral
Analysis, v. 32(4), 2012. pp. 970-973.
SHIH, Eugene I.; SHOEB, Ali H.; GUTTAG, John V. Sensor selection for
energy-efficient ambulatory medical monitoring. Proceedings of the 7th
international conference on Mobile systems, applications, and services, 2009. pp.
347-358.
SIULY, Yan Li; WEN, Peng. Clustering technique-based least square support
84
TSAI, PING-HUANG; LIN, PEI-FENG; LIN, CHEN; HSIN, YUE LOONG. The
non-linear and non-stationry properties in EEG signals: probing the complex
fluctuations by Hilbert-Huang Transform. Advances in Adaptive Data Analysis,
v. 1, n. 3, 2009. pp. 461-482.
WIDROW, B.; GREENBLATT, A.; KIM, Y.; PARK, D. The No-Prop algorithm:
A new learning algorithm for multilayer neural networks. Neural Networks,
v. 37, 2013. pp. 182-188.
YU, Y.; CHOI, T. M.; HUI, C. L. An intelligent quick prediction algorithm with
applications in industrial control and loading problems. IEEE Transactions on
Automation Science and Engineering, v. 9(2), 2012. pp. 276-287.
85
APÊNDICE A
for j=1:length(k)-1
ti=k(:,j);
tf=k(:,j+1);
for i=1:n ch
ch(i,:)=recorddata(chs(:,i),ti*fs:tf*fs);
a = aryule(ch(i,:),tipo);
vetor(:,i)=a(:,2:end);
end
mAR(:,j)=reshape(vetor,1,tipo* n ch);
end
clear; clc;
load chb01 26 Wc.txt;
load seizuresP1 Wc.txt
load alvosP1.txt;
% Vetores (padroes) de entrada
dados=[chb01 26 Wc(:,700:1100) seizuresP1 Wc];
% Saidas desejadas correspondentes
alvos=[alvosP1(:,700:1100) ones(1,length(seizuresP1 Wc))];
alvos ori=alvos';
X=dados;
D=alvos ori';
Y=D;
Nr=100;
% Define tamanho dos conjuntos de treinamento/teste
ptrn=70; % Porcentagem usada para treino
tic
for i=1:Nr
%%%%%Embaralha dados%%%%%%
[X Y]=embaralha(X,Y);
%%%%%Separa em dados de teste e treinamento%%%%%
[Xmodel Ymodel Xtest Ytest]=separa(X,Y,ptrn);
%%%% Metodo dos Minimos Quadrados%%%%
% A=Ymodel*Xmodel'*inv(Xmodel*Xodel'); %Igual a formula
A=Ymodel*pinv(Xmodel); %Aplicando a pseudo-inversa
%%%%%% Teste do modelo%%%%%%
Ypred=A*Xtest; % Diagnosticos preditos
% Calculo dos Acertos
POK=acertos2(Ypred,Ytest);
% Guadar acertos por rodada
VetorPOK(i,:)=POK;
% Guarda Ypred e Ytest em forma matriz de vetores em iteracao
[lh col]=size(Ypred);
87
YP(:,i)=reshape(Ypred,1,lh*col);
YT(:,i)=reshape(Ytest,1,lh*col);
end
toc
matrizConfusao(YP,YT,VetorPOK,Ytest);
TESTE=teste perfo(YP,YT,VetorPOK,Ytest);
%Calcula estatisticas
MED TEST=mean(TESTE');
media=mean(VetorPOK)
maxima=max(VetorPOK)
minima=min(VetorPOK)
mediana=median(VetorPOK)
mdesvio padrao=std(VetorPOK)
for r=1:Nr,
[vNh r]
% Embaralha saidas desejadas tambem
%p/ manter correspondencia com vetor de entrada
[Dn alvos]=embaralha(Dn,alvos);
% Vetores para treinamento e saidas desejadas correspondentes
[Xmodel Ymodel Xtest Ytest]=separa(Dn,alvos,ptrn);
% Tamanho da matriz de vetores de treinamento
[lP cP]=size(Xmodel);
% Tamanho da matriz de vetores de teste
[lQ cQ]=size(Xtest);
% Inicia matrizes de pesos
[WW MM] = iniciaPesos(Nh,No,lP);
WW old=WW;
MM old = MM;
%% ETAPA DE TREINAMENTO
for t=1:Ne,
Epoca=t;
% Embaralha vetores de treinamento
[Xmodel Ymodel]=embaralha(Xmodel,Ymodel);
EQ=0;
% Inicia LOOP de epocas de treinamento
for tt=1:cP,
% ATIVACAO CAMADA OCULTA
[Yi X] = ativacao oculta(Xmodel,WW,0,tt);
% ATIVACAO CAMADA DE SAIDA
[Ok Y] = ativacao saida(Yi,MM);
% CALCULO DO ERRO
[Ek EQ]=erro(Ymodel,Ok,tt,EQ);
% CALCULO DOS GRADIENTES LOCAIS
%camada de saida
[Dk DDk]=grad saida(Ek,Ok);
% gradiente local (camada oculta)
[Di DDi] = grad oculta(Yi,MM,DDk);
% AJUSTE DOS PESOS - CAMADA DE SAIDA
[MM old MM] = ajustePesos(MM old,MM,eta,DDk,Y,mom);
% AJUSTE DOS PESOS - CAMADA OCULTA
[WW old WW] = ajustePesos(WW old,WW,eta,DDi,X,mom);
end % Fim de uma epoca
% MEDIA DO ERRO QUADRATICO P/ EPOCA
EQM(t)=EQ/cP;
end % Fim do loop de treinamento
% CAMADA OCULTA
[Yi X] = ativacao oculta(Xtest,WW,0,tt);
% CAMADA DE SAIDA
[Ok Y] = ativacao saida(Yi,MM);
OUT2=[OUT2 Ok]; % Armazena saida da rede
% Gradiente local da camada de saida
% erro entre a saida desejada e a saida da rede
Ek = Ytest(:,tt) - Ok;
[Dk DDk]=grad saida(Ek,Ok); %camada de saida
% ERRO QUADRATICO GLOBAL (todos os neuronios) POR VETOR DE ENTRADA
EQ2 = EQ2 + 0.5*sum(Ek.ˆ2);
% gradiente local (camada oculta)
[Di DDi] = grad oculta(Yi,MM,DDk);
end
% MEDIA DO ERRO QUADRATICO COM REDE TREINADA (USANDO DADOS DE TREINAMENTO)
EQM2=EQ2/cQ;
% CALCULA TAXA DE ACERTO
Tx OK(r)=acertos2(OUT2,Ytest);
VetorPOK(r,:)=Tx OK(r);
% Guarda Ypred e Ytest em forma matriz de vetores em iteracao
[lh col]=size(OUT2);
YP(:,r)=reshape(OUT2,1,lh*col);
YT(:,r)=reshape(Ytest,1,lh*col);
end
matrizConfusao(YP,YT,Tx OK,Ytest);
TESTE=teste perfo(YP,YT,Tx OK,Ytest);
MED TEST=mean(TESTE');
Tx media=mean(VetorPOK) % Taxa media de acerto global
Tx max=max(VetorPOK)
Tx min=min(VetorPOK)
Tx mediana=median(VetorPOK)
Tx std=std(VetorPOK) % Desvio padrao da taxa media de acerto
% Plota Curva de Aprendizagem
%figure
%plot(EQM,'LineWidth',2)
%xlabel('Epocas');ylabel('Erro');
beep();
end
for Nhr=80:80
% LOOP de rodadas de treinamento/teste
for r=1:Nr
Dn=dados;
alvos=alvos ori';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Passo 2: Separar dados de treino/teste %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Adiciona uma linha de -1's
Dn=adiciona one(Dn);
[Dn alvos]=embaralha(Dn,alvos);
% Vetores para treinamento e saidas desejadas correspondentes
[Xmodel Ymodel Xtest Ytest]=separa(Dn,alvos,ptrn);
% Tamanho da matriz de vetores de treinamento e teste
[lP cP]=size(Xmodel);
[lQ cQ]=size(Xtest);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Passo 3: Escolha aleatoria dos pesos e %%
%%% limiares dos neuronios intermediarios %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Determinacao da matriz da projecao aleatoria
% Multiplica matriz de pesos por uma constante pequena
W=beta*rand(Nh,LinD+1);
% Parte linear da projecao na camada intermediaria
Utr=W*Xmodel;
% Parte nao-linear (aplicacao da funcao sinal)
91
%Ztr=sign(Utr);
% Parte nao-linear (aplicacao da funcao tangente hiperbolica)
Ztr=tanh(Utr);
% Adiciona linha de -1's
Ztr=adiciona one(Ztr);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Passo 4: Estimar os parametros do classificador (pesos e limiares) %%
%%% pelo metodo dos minimos quadrados (classificador sem camada oculta)%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Equacao mais estavel numericamente
M=Ymodel*pinv(Ztr);
%M=Dtr*Ztr'*inv(Ztr*Ztr');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Passo 5: Determinar predicoes da classe dos vetores de teste %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Parte nao-linear (aplicacao da funcao sinal)
%Zts=sign(W*Xts);
% Parte nao-linear (aplicacao da funcao tangente hiperbolica)
Zts=tanh(W*Xtest);
% Adiciona linha de -1's
Zts=adiciona one(Zts);
%Zts=[-ones(1,cQ); Zts];
Ypred=M*Zts; % Saida como numeros reais
Ypred q=sign(Ypred); % Saida quantizada para +1 ou -1.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Passo 6: Determinar as taxas de acerto/erro %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Tx OK(r)=acertos2(Ypred q,Ytest);
VetorPOK(r,:)=Tx OK(r);
% Guarda Ypred e Ytest em forma matriz de vetores em iteracao
[lh col]=size(Ypred q);
YP(:,r)=reshape(Ypred q,1,lh*col);
YT(:,r)=reshape(Ytest,1,lh*col);
end
end
matrizConfusao(YP,YT,Tx OK,Ytest);
TESTE=teste perfo(YP,YT,Tx OK,Ytest);
MED TEST=mean(TESTE');
Tx media=mean(VetorPOK) % Taxa media de acerto global
Tx max=max(VetorPOK)
Tx min=min(VetorPOK)
Tx mediana=median(VetorPOK)
Tx std=std(VetorPOK) % Desvio padrao da taxa media de acerto
92