-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.tex
1522 lines (1287 loc) · 75.9 KB
/
main.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[
12pt,
oneside,
a4paper,
english,
brazil
]{abntex2}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{indentfirst}
\usepackage{color}
\usepackage{graphicx}
\usepackage{microtype}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{csquotes}
\usepackage{subcaption}
\usepackage[table]{xcolor}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{caption}
\usepackage[brazilian,hyperpageref]{backref}
\usepackage[alf]{abntex2cite}
\usepackage{macros}
\titulo{Previsão de séries temporais por meio de aprendizado de máquina}
\autor{Guilherme Chichanoski}
\local{Maringá}
\data{2019}
\orientador{Valéria Delisandra Feltrim}
\instituicao{Universidade Estadual de Maringá\\
Centro de Tecnologia --- Departamento de Informática\\
Bacharelado em Ciência da Computação}
\tipotrabalho{Trabalho de Conclusão de Curso}
\preambulo{Trabalho de Conclusão de Curso de Graduação apresentado ao
Departamento de Informática da Universidade Estadual de Maringá, como
requisito parcial para obtenção do grau de Bacharel em Ciência da
Computação.}
\makeatletter
\hypersetup{
pdftitle={\@title},
pdfauthor={\@author},
pdfsubject={\imprimirpreambulo},
pdfcreator={LaTeX with abnTeX2},
pdfkeywords={séries temporais}{arima}{aprendizado de máquina}{redes neurais},
colorlinks=true, % false: boxed links; true: colored links
linkcolor=red, % color of internal links
citecolor=green, % color of links to bibliography
filecolor=magenta, % color of file links
urlcolor=blue,
bookmarksdepth=4
}
\makeatother
\setlength{\parindent}{1.3cm}
\setlength{\parskip}{0.2cm}
\begin{document}
\frenchspacing
\imprimircapa{}
\imprimirfolhaderosto{}
\begin{epigrafe}
\vspace*{\fill}
\begin{flushright}
\textit{``Rogo a você que me lê\\
A sua boa vontade\\
Não olhe os erros, releve,\\
Guarde com sinceridade\\
E busque o melhor fazer\\
Lendo cordel de verdade.''\\
Raquel Juvêncio e Filomena Mourão}
\end{flushright}
\end{epigrafe}
\begin{resumo}
Prever eventos em séries temporais é uma tarefa muito importante e
complexa, para isso muitos autores utilizam-se de métodos estatísticos,
como o ARIMA para realizar essas previsões. No entanto outros métodos
com base em aprendizado de máquina, mais especificamente redes neurais
artificiais, tem se demonstrado substitutos a altura. Foi utilizada a série
S\&P500 para verificação do desempenho dessas abordagens, e como resultado
foi concluído que para previsões de um dia adiante a utilização de redes
neurais artificiais apresenta um desempenho ligeiramente inferior ao
ARIMA\@.
\textbf{Palavras-chave}: séries temporais, arima, aprendizado de máquina,
redes neurais.
\end{resumo}
\begin{resumo}[Abstract]
\begin{otherlanguage*}{english}
Predicting events in time series is a very important and complex task,
for which many authors use statistical methods such as ARIMA to make
these predictions. However other methods based on machine learning, more
specifically artificial neural networks, have obtained good results. The
S\&P500 series was used to verify the performance of these approaches, and
as a result it was concluded that for one-day forecasts the use of
artificial neural networks presents a slightly lower performance than
ARIMA\@.
\textbf{Keywords}: time series, arima, machine learning, neural
networks.
\end{otherlanguage*}
\end{resumo}
\textual{}
\pdfbookmark[0]{\contentsname}{toc}
\tableofcontents*
\cleardoublepage{}
\chapter{Introdução}
%VALERIA: Evite usar a 1a pessoa no texto ("podemos..., fizemos...", etc.). Embora essa forma seja comum na escrita científica em inglês, em português não é usual. Eu já corrigi essa questão em toda a parte revisada (até o início dos modelos probabilísticos). Por favor, corrija no restante.
Segundo \citeonline{wiley} prever é a capacidade de predizer valores ou eventos
futuros e constitui uma tarefa de grande importância para diversos setores,
incluindo governos e indústrias. Uma vez que tal capacidade é parte crucial na
tomada de decisão, fica evidente a necessidade de se realizar boas previsões.
No entanto, fazer boas previsões pode ser uma tarefa extremamente complexa.
Muitos autores e organizações já realizaram previsões que, com o decorrer do
tempo, se mostraram erradas, como no caso do The New York Times, que previu em
1966 que existiriam somente 220 000 computadores nos Estados Unidos no ano
2000.
Ainda conforme \citeonline{wiley}, as previsões são classificadas como sendo
de curto, médio e longo prazo, sendo o prazo definido na frequência
das observações. Quando denominadas de curto prazo, são previstas poucas
observações a frente do tempo atual. Já previsões de médio prazo podem se
estender por algumas observações no futuro. Por fim, previsões que envolvem um
período maior no futuro são chamadas de longo prazo. Ainda conforme o autor,
predições de médio e longo prazo são mais difíceis de se realizar e suscetíveis
a fatores externos.
Para a realização da previsão é necessária a compreensão do evento que se quer
prever. Quando existe uma relação temporal entre as observações do evento em
questão, i.e., o evento ocorre em uma determinada sequência no tempo, é
necessário organizar as informações de forma a evidenciar a dependência das
observações com seus estados anteriores. Nesse caso, as observações passadas
compõem uma série temporal, a partir da qual é possível realizar medições e
produzir modelos capazes de expressar matematicamente o comportamento da série
em função de suas observações anteriores, permitindo assim a predição de
estados futuros.
Conforme mencionado, as séries temporais são compostas de observações
sequenciais ao longo do tempo~\cite{wiley}. Como exemplo, a \autoref{serie0}
mostra uma série gerada utilizando-se um processo de caminhada aleatória. Sendo
essas observações separadas unicamente pelo tempo, pode-se obter os dados em
diferentes intervalos, como observações diárias, semanais ou anuais. Conforme
\citeonline{ehlers}, devido à caraterística estocástica do processo, uma
observação se define em função de suas antecessoras.
\begin{figure}[ht]
\centering
\caption{Série gerada para exemplo}\label{serie0}
\includegraphics[width=.5\linewidth]{images/serie_exemplo.png}
\source{Elaborado pelo autor}
\end{figure}
Considerando então que a série apresentará comportamento estocástico, é
possível propor modelos que serão capazes de aproximar o comportamento
da série. Os modelos comumente utilizados para essa tarefa são aqueles
probabilísticos, mais especificamente o ARIMA\@, proposto por \citeonline{box}.
Também é possível utilizar modelos criados a partir da aplicação de técnicas de
aprendizado de máquina, que vem se apresentando como uma alternativa poderosa
em muitas aplicações.
Com o constante interesse na aplicação e a identificação das capacidades de
técnicas de aprendizado, fica evidente a importância de observar como esses
modelos se comparam com os estatísticos. Dessa forma, o objetivo deste trabalho
foi comparar o desempenho de modelos estatísticos e baseados em aprendizado de
máquina na previsão de uma série de característica econômica. Especificamente,
foram avaliados o modelo estatístico ARIMA e um modelo de aprendizado
de máquina baseado em redes neurais artificiais de múltiplas camadas. Os
resultados indicaram que os modelos tiveram desempenhos semelhantes nos dados
utilizados nesse trabalho.
% Como forma de comparar desempenhos e buscar compreender as técnicas que
% poderiam ser utilizadas para a previsão, este trabalho realizou a previsão de
% uma série de característica econômica utilizando ambas metodologias.
% TODO: Introduzir modelos ARIMA com exemplos de artigos
% FIXME Mais adequado na parte de trabalhos relacionados
%vez mais notórias pelos bons resultados que oferecem. \citeonline{artigoEx3}
%Em contrapartida, técnicas de aprendizado de máquinas estão se tornando cada
%aplicou métodos de aprendizado de máquina possibilitando a previsão com
%bons resultados. Pelo fato dos modelos estatísticos fornecerem resultados
%satisfatórios para predições e estarem bem difundidos na comunidade acadêmica,
%é comum que trabalhos como \citeonline{artigoEx4} compare os resultados
%obtidos a partir de aprendizado de máquina com modelos de abordagem
%estatísticas. Para modelos de aprendizado se destaca aqueles com uso de redes
%neurais artificiais por serem capazes de obter bons resultados conforme
%analisado por \citeonline{zhang}, o autor ainda apresenta outros exemplos
%quais os autores obtiveram resultados superiores ao método estatístico.
O restante desta monografia está organizada como segue. No
\autoref{chap:fundTeor} é apresentada a fundamentação teórica do trabalho,
incluindo os principais métodos de previsão de séries temporais empregados.
No \autoref{chap:trab_relacionados} foram apresentados outros trabalhos que
abordam o tema. Já no \autoref{chap:desenv} são descritos os passos
metodológicos empregados para a desenvolvimento tanto do modelo estatístico
quanto de aprendizado de máquina. Os resultados obtidos com base nos
modelos construídos são apresentados no \autoref{chap:result} e apresentada as
constatações feitas em ambos modelos. Por fim, no \autoref{chap:concl} é
apresentada a conclusão do que foi realizado.
\chapter{Fundamentação teórica}\label{chap:fundTeor}
\section{Previsão}
Segundo \citeonline{wiley}, o processo de previsão pode ser dividido em
diversas atividades, dispostas a seguir:
\begin{enumerate}
\item Definição do problema\\
Envolve definir e entender a tarefa de previsão a ser realizada,
considerando o prazo a ser previsto e definindo os dados necessários.
\item Coleta dos dados\\
Envolve a coleta dos dados necessários de acordo com as definições da
atividade anterior.
\item Análise dos dados\\
Atividade de alta importância para a seleção do modelo mais adequado.
Nessa etapa são utilizadas observações gráficas e extração de
características para identificar padrões que corroborem na escolha dos
parâmetros. Também são identificadas observações problemáticas e, caso
necessário, aplicadas as devidas correções.
\item Seleção e verificação do modelo\\
A partir da análise feita na atividade anterior, será selecionado o
modelo, analisando-se também o comportamento com os dados fornecidos.
Como método de verificação são utilizadas métricas que favoreçam a
comparação.
\item Avaliação do modelo\\
Atividade na qual se avalia como o modelo se comporta com novos dados,
normalmente realizada com observações excluídas dos dados utilizados
nas atividades anteriores. As observações separadas para avaliação são
utilizadas apenas para essa finalidade.
\item Publicação do modelo\\
Com o modelo devidamente selecionado e avaliado, o mesmo é instalado em
ambiente de produção, observando-se as alterações necessárias para que
novos dados sejam inseridos corretamente.
\item Monitoramento do desempenho do modelo\\
Deve-se continuamente avaliar como o modelo aplicado se comporta em
relação ao ambiente, já que o ambiente é algo volátil.
\end{enumerate}
Essas atividades normalmente são realizadas em ordem como exposta. Vale
observar ainda que se os resultados da atividade de avaliação forem
insatisfatórios, deve-se retornar à atividade anterior e refazer a avaliação
até que um modelo que obedeça às especificações seja encontrado.
\section{Séries temporais}\label{sec:seriesTemporais}
Como exposto anteriormente, séries temporais são compostas por observações
sucessivas feitas ao longo do tempo. Cabe destacar ainda que essas séries
se caracterizam pelo fato de suas observações serem dependentes das
observações anteriores. Além disso, tais séries demonstram características
como tendência e sazonalidade. A tendência caracteriza o comportamento de
crescimento/decrescimento da série, o que pode levar a observações futuras com
valores menores ou maiores. A sazonalidade caracteriza padrões cíclicos em
função do tempo, comumente tomando períodos semanais, mensais ou anuais.
Uma série é descrita matematicamente pelo conjunto $\{X(t): t \in T\}$, podendo
$t$ ser um tempo contínuo ou discreto. O tempo $t$ é dito contínuo quando
se possui observações $X(t)$ para todo $t$ em $T$, sendo $T \subseteq
\mathbb{R}^{+}$. O tempo $t$ é discreto quando entre as observações $X(t_i)$ e
$X(t_{i+1})$ existe um intervalo igual de tempo, normalmente dado na forma de
uma sequência, $T = \{1, 2, \ldots, n\}$, sendo $n$ o número de observações.
Segundo \citeonline{ehlers}, uma série temporal classicamente é decomposta
seguindo a \autoref{eq:timeseries}, sendo $t$ usado para denotar o tempo, logo,
é parte fundamental entender o comportamento segundo essas três componentes.
\begin{equation}
\label{eq:timeseries}
X_t = Tendência_t + Sazonal_t + Aleatório_t
\end{equation}
\subsection{Série estacionária}\label{sec:estacionaria}
Um conceito importante para a análise de séries temporais é o seu
caráter estacionário. Um processo é dito estacionário se todas as suas
características comportamentais não se alteram ao longo do tempo. Segundo
\citeonline{timeseriesExample} não existe um limiar que defina uma série como
estacionária, mas pode definir como estacionário um processo se desenvolve no
tempo em torno da média, de modo que a escolha de uma origem dos tempos não
é importante. Segundo \citeonline{ehlers}, uma série é dita estritamente
estacionária quando a distribuição de probabilidade conjunta de $X(t_1),
\ldots, X(t_k)$ é igual a de $X(t_1 + \tau), \ldots, X(t_k + \tau)$.
Ainda segundo \citeonline{ehlers}, a definição estrita de série estacionária é
dificilmente aplicada, então usualmente se utiliza a definição de série
fracamente estacionária, que se define com base no critério da mesma possuir
função média constante. Dessa forma, neste trabalho, foi utilizada a definição
de série fracamente estacionária para se tomar uma série como estacionária.
Em termos matemáticos, usa-se a \autoref{eq:westacionaria} para definir que
variância de um elemento da série ($z_t$) deve ser semelhante à média. Em
outras palavras, o deslocamento da origem do tempo $t$ por uma quantidade
$\tau$ não exerce efeito na distribuição conjunta da série. Assim, o valor
esperado para a série em determinado momento não será dada em função do tempo.
\begin{equation}
\label{eq:westacionaria}
E(z_t) = \mu_t = \mu
\end{equation}
% FIXME Dada em função de que??
%TODO Adicionar referência ao Livro Time Series by exmples
%TODO Adicionar referência ao teste de Dockey Fuller
% VALERIA: Deixe para mostrar o exemplo da série estacionária pós-diferenciação
% na seção que fala sobre a diferenciação. Neste ponto do texto ficou fora de
% contexto. Ou, se vc quer mostrar um exemplo, mostre uma série originalmente
% estacionária. Além disso, nesse caso, vc tem que explicar melhor a figura.
% Por exemplo, qual(is) característica(s) do gráfico da série me diz(em) que
% ela é estacionária? Dizer que a observação do gráfico é suficiente não é
% suficiente. ;)
Segundo \citeonline{timeseriesExample} embora existam testes como o de Dikey
Fuller descrito em \citeonline{dickey} para a prova de estacionariedade,
é suficiente a observação gráfica da série. Caso não seja conclusiva a
observação \citeonline{timeseriesExample} orienta obter o gráfico da função de
autocorrelação, e se observada a existência de mais de 20 correlações
significativas pode-se classificar a série como não estacionária.
\subsection{Sazonalidade e tendência}
Conforme definido por \citeonline{ehlers}, a sazonalidade caracteriza
repetições de comportamento de uma série em um período $s$. A presença da
sazonalidade, em geral, é facilmente observada na representação gráfica da
série, conforme exemplificado no gráfico da \autoref{fig:co2}. Nesse gráfico é
apresentada uma série temporal real que registra a mudança na concentração de
$CO_2$ na atmosfera. Observando o gráfico, é possível notar que há sazonalidade
de periodicidade anual, devido ao gráfico apresentar formato de serra e este se
apresentar em repetição anual.
Ainda no gráfico da \autoref{fig:co2}, também é possível notar que há
uma tendência de crescimento na série. Segundo \citeonline{ehlers}, não há
uma definição exata de tendência, mas, normalmente, a mesma é associada ao
comportamento de mudança das observações ao longo de um vasto período.
Uma série com tendência pode ser descrita como a função apresentada na
\autoref{eq:tendencia}, na qual $\alpha$ e $\beta$ são os coeficientes e
$\epsilon_t$ é um erro aleatório de distribuição normal. O coeficiente $\beta$
define a taxa de crescimento da série, podendo ser dado como um função global
ou definido localmente.
\begin{equation}
\label{eq:tendencia} X_t = \alpha + \beta{}t + \epsilon_t
\end{equation}
% Um exemplo real de uma série temporal que apresenta tendência e sazonalidade
% é mostrado no gráfico na \autoref{fig:co2}. Essa série registra a mudança
% na concentração de $CO_2$ na atmosfera, sendo, portanto, uma série de
% característica natural. Observando o gráfico, é fácil notar a tendência de
% crescimento da série e sua sazonalidade de periodicidade anual.
\begin{figure}[ht]
\centering
\caption{Leituras de $CO_2$ na atmosfera.}\label{fig:co2}
\includegraphics[width=.5\linewidth]{images/co2.png}
\source{\citeonline{co2data}}
\end{figure}
\subsubsection{Filtros}
Em algumas séries, a tendência pode não estar evidente devido ao processo
aleatório. Por conta disso, pode ser necessária a aplicação de filtros que têm
como objetivo obter uma série suavizada que possibilite observar a tendência.
Um desses filtros é apresentado na \autoref{eq:filtro}~\cite{ehlers}.
\begin{equation}
\label{eq:filtro}
y_t = \sum_{j = -q}^{s}{a_{j}x_{t+j}}
\end{equation}
Na \autoref{eq:filtro}, $a_j$ é um coeficiente a ser aplicado a cada termo da
soma de forma a aplicar um peso a este, sendo observado que $\sum{a_j} = 1$.
A \autoref{eq:yjfiltro} é conhecida por fornecer o cálculo das médias
móveis, permitindo suavizar a série, mantendo a tendência. A aplicação
do filtro de médias móveis nos dados das leituras de $CO_2$ resulta na
\autoref{fig:co2filtrado}. Esta evidencia de forma independente a tendência
após a remoção da sazonalidade, por meio da suavização utilizando como
parâmetro $q$ seu período cíclico.
\begin{equation}
\label{eq:yjfiltro}
y_t = \frac{1}{2q + 1}\sum_{j=-q}^{q}{x_{t+j}}
\end{equation}
\begin{figure}[ht]
\centering
\caption{Leituras de $CO_2$ filtrada utilizando médias móveis com $q$ igual
a $52$, devido à sazonalidade ser anual, ou seja, $52$
semanas.}\label{fig:co2filtrado}
\includegraphics[width=.5\linewidth]{images/co2_filtered.png}
\source{Elaborado pelo próprio autor a partir de \citeonline{co2data}}
\end{figure}
\subsubsection{Diferenciação}\label{sec:diff}
Outra tarefa a ser observada em relação ao entendimento de tendência é a forma
na qual é removida. O método mais simples para remoção da tendência é subtrair
de cada valor observado o valor do seu antecessor, conforme descrito na
\autoref{eq:diferenciacao}. Normalmente, uma única diferenciação é suficiente
para remover a tendência, porém em séries com componente sazonal podem vir a
ser necessárias mais de uma em um \textit{lag} diferente.
\begin{equation}
\label{eq:diferenciacao}
y_t = x_t - x_{t-1}
\end{equation}
O gráfico da \autoref{fig:co2diff} mostra o resultado obtido para a série de
leituras de $CO_2$ após uma diferenciação. Pelo gráfico é possível perceber que
a série resultante se aproxima de uma série com função média constante, dando
evidência a componente sazonal já que a variação do gráfico apresenta um forte
comportamento repetitivo.
\begin{figure}[ht]
\centering
\caption{Série da leitura do $CO_2$ na atmosfera com uma
diferenciação}\label{fig:co2diff}
\includegraphics[width=.5\linewidth]{images/co2_diff.png}
\source{Elaborado pelo autor a partir de \citeonline{co2data}}
\end{figure}
\section{Modelos probabilísticos}
Conforme apresentado anteriormente, as séries temporais podem ser previstas
utilizando-se modelos estatísticos. Segundo \citeonline{ehlers}, isso se deve
ao seu caráter estocástico, uma vez que cada observação possui correlação
com as observações imediatamente antecessoras, diferentemente de séries
determinísticas, as quais têm seu estado definido por uma função matemática ou
um sistema para o qual a saída é dependente apenas das entradas atuais.
Um modelo comumente utilizado para a previsão de séries temporais é o ARIMA\@.
Descrito por \citeonline{box}, esse modelo caracteriza a série em termos de
três parâmetros $(p,d,q)$, sendo cada um associado a um processo: $p$ é
associado a processos autorregressivos, $d$ a integração e $q$ a processos de
médias móveis, embora de mesmo nome este não tem qualquer associação ao filtro
de medias moveis.
A definição dos valores desses parâmetros depende da análise das
características da série. \citeonline{box} descreveu algumas ferramentas que
podem auxiliar nessa análise, entre elas a análise da função de autocorrelação.
\subsection{Função de autocorrelação}\label{sec:corre}
Como o nome sugere, a função de autocorrelação mede a correlação entre as
observações de uma série em diferentes períodos. Considerando-se uma série
temporal $X$, calcula-se a correlação entre seus valores com uma defasagem de
tempo $k$, sendo essa defasagem a distância entre o valor analisado $X_t$ a
observação $X_{t-k}$. Por exemplo, supondo uma série de 100 observações,
pode-se chamar de $X'$ a série correspondente às 99 primeiras observações e de
$X''$ a série correspondente às últimas 99 observações. Nesse caso, tem-se uma
defasagem (ou \textit{lag}) de 1 período. Assim a função de autocorrelação será
dada segundo a \autoref{eq:autocorrelacao}.
\begin{equation}
\label{eq:autocorrelacao}
r_k = \frac{\sum_{t=1}^{n-k}{(x_t - \overline{x})(x_{t+k} -
\overline{x})}}{\sum_{t=1}^{n}{(x_t - \overline{x})^2}}
\end{equation}
Segundo \citeonline{ehlers}, a função de autocorrelação, quando plotada
para os $k$-ésimos primeiros coeficientes, é chamada de correlograma e
constitui-se em uma ferramenta importante para as análises. Como um exemplo, a
\autoref{fig:correlogramaCo2} apresenta o correlograma com as 25 primeiras
defasagens das leituras de concentração de $CO_2$ na atmosfera. Nesse gráfico,
também é exibido o intervalo de confiança de 95\% calculado para o correlograma
(destacado em azul). Segundo \citeonline{ehlers}, o intervalo de confiança é
necessário para se definir quais correlações são relevantes e quais não, pois
todas as correlações importantes ficam fora do intervalo de confiança. Sendo
assim, quando todas as correlações estão dentro do intervalo, a série é
caracterizada como um ruído branco, ou seja, seu comportamento não pode
ser modelado. Para encontrar o intervalo de confiança do correlograma,
\citeonline{ehlers} recomenda utilizar a equação $\pm{}2/\sqrt{n}$, sendo $n$ o
número de observações da série.
\begin{figure}[ht]
\centering
\caption{Gráfico da função de autocorrelação das leituras de
$CO_2$}\label{fig:correlogramaCo2}
\includegraphics[width=.5\linewidth]{images/acf_co2.png}
\source{Elaborado pelo autor a partir de \citeonline{co2data}}
\end{figure}
Para exemplificar como a função de autocorrelação pode ser utilizada na
definição do modelo estatístico, a \autoref{fig:acfco2diff} mostra a função de
autocorrelação para a primeira diferenciação da série de leituras de $CO_2$. Se
observa que, após diferenciada e removida a tendência, é possível observar o
comportamento sazonal, já que a função de autocorrelação apresenta correlações
positivas e negativas em uma distância que pode ser entendida como o período
cíclico da série.
\begin{figure}[ht]
\centering
\caption{Gráfico de função de autocorrelação da diferenciação da série de
$CO_2$}\label{fig:acfco2diff}
\includegraphics[width=.5\linewidth]{images/acf_co2_diff.png}
\source{Elaborado pelo autor a partir de \citeonline{co2data}}
\end{figure}
\subsubsection{Função de autocorrelação parcial}
Durante a análise, outra função relevante é a de autocorrelação parcial. Sua
definição, segundo \citeonline{cryer}, é dada pela \autoref{eq:facp}, na qual
$r_k$ é a autocorrelação da série $X$ no \textit{lag} $k$ e $\phi_{k,j}$ é dado
por $\phi_{k-1, j}-\phi_{kk}\phi_{k-1,k-j}$.
\begin{equation}
\label{eq:facp}
\phi_{kk} = \frac{r_k-\sum_{j=1}^{k-1}{\phi_{k-1,j}r_{k-j}}}{1-\sum_{j=1}^{k-1}{\phi_{k-1,j}r_{j}}}
\end{equation}
\subsection{ARIMA}
O modelo ARIMA, já introduzido na seção anterior, possui três parâmetros
essenciais $(p,q,d)$. Segundo \citeonline{rob}, o modelo se diferencia de
outros por ser baseado na definições das autocorrelações da série.
\subsubsection{AR --- Processo autorregressivo}
Segundo \citeonline{ehlers}, um processo $X_t$ é chamado autorregressivo
de ordem $p$, ou $AR(p)$, quando temos $X_t$ dado segundo a
\autoref{eq:aregressivo}. Nesse caso, $\alpha$ são os coeficientes a serem
calculados. O termo $\epsilon_t$ define a componente aleatória, sendo definido
como ruido branco.
\begin{equation}
\label{eq:aregressivo}
X_t = \sum_{i = 1}^{p}{\alpha_{i}X_{t-i}} + \epsilon_t
\end{equation}
\subsubsection{MA --- Processo de médias móveis}
Segundo \citeonline{rob}, assim como o processo autorregressivo, o processo de
médias móveis (\textit{Moving Average}) é uma regressão linear, com coeficiente
$\theta$, no entanto, esta é aplicada sobre os erros de previsão $\epsilon_t$.
Dessa forma, o processo é associado ao filtro de médias móveis por conta de ser
descrito também como um filtro dos erros de previsão.
\begin{equation}
\label{eq:pmediasmoveis}
X_t = \epsilon_t - \theta_1\epsilon_{t-1} - \theta_2\epsilon_{t-2} - \cdots - \theta_{q}\epsilon_{t-q}
\end{equation}
\subsubsection{ARMA --- Modelo misto}
Combinando os processos AR e MA, se obtém um modelo ARMA, que é extremamente
útil para descrever séries temporais e cuja junção pode ser expressa pela
\autoref{eq:arma}.
Então, segundo \citeonline{timeseriesExample}, se considerarmos $X_t$ como uma
série estacionária, tem-se o processo AR relacionando à observação atual com as
$p$ observações anteriores e o processo MA representando-a com as defasagens
passadas.
\begin{equation}
\label{eq:arma}
X_t = \sum_{i = 1}^{p}{\alpha X_{t-i}} + \epsilon_t - \sum_{j = 1}^{p}{\theta \epsilon_{t-i}}
\end{equation}
\subsubsection{Integração}
Em casos que a série analisada é caracterizada como não estacionária, segundo
a definição dada na \autoref{sec:estacionaria}, é necessário primeiramente
transformá-la em uma série estacionária. Essa transformação pode ser realizada
utilizando o método de diferenciação descrito na \autoref{sec:diff}.
Segundo \citeonline{rob}, a diferenciação pode ser definida utilizando o
operador de \textit{backshift}, $B$, definido na \autoref{eq:backshift}. Assim,
define-se a \autoref{eq:diffback} como a primeira diferenciação da série
utilizando o operado $B$.
\begin{equation}
\label{eq:backshift}
By_t = y_{t-1}
\end{equation}
\begin{equation}
\label{eq:diffback}
y'_t = y_t - y_{t-1} = y_t - By_t = (1-B)y_t
\end{equation}
Diferenciações de maior ordem são definidas por $(1-B)^dy_t$.
Combinando-se os processos anteriormente apresentados, pode-se descrever o
ARIMA segundo a \autoref{eq:ARIMA}.
\begin{equation}
\label{eq:ARIMA}
(1 - \alpha_1B-\cdots-\alpha_pB^p)(1-B)^dy_t=(1+\theta_1B+\cdots+\theta_qB^q)\epsilon_t
\end{equation}
\subsection{Seleção do modelo}
De acordo com \citeonline{box}, a identificação do modelo pode ser feita a
partir da análise gráfica da função de autocorrelação (FAC) e da função de
autocorrelação parcial (FACP), que foram apresentadas na \autoref{sec:corre}.
Também é possível se utilizar outros testes para se validar a estacionariedade
da série.
O método proposto por \citeonline{box} observa o comportamento das correlações.
Desta forma, para se identificar a ordem do processo AR é suficiente analisar
se o gráfico da FAC apresenta decaimento exponencial e se o gráfico da FACP
apresenta uma quebra a partir do $p$-ésimo valor do gráfico. A identificação da
ordem do processo MA é feita de modo semelhante, porém o $q$ é dado pelo
elemento que apresenta a quebra no gráfico do FAC, enquanto o gráfico do FACP
apresenta decaimento exponencial.
Se não for possível identificar os parâmetros do modelo a partir deste
procedimento, pode ser que a série apresente tendência. Nesse caso, é
necessária a realização de uma ou mais diferenciações na série. Uma vez que
tem-se uma nova série estacionária, são refeitas as as verificações e
determinadas as ordens do modelo.
% FIXME Tem que achar uma referencia coerente para definição do modelo
Para os casos descritos acima, o modelo obtido é da forma $AR(p)$ ou $MA(q)$,
porém, em casos de modelos híbridos, ambas as funções devem apresentar
comportamento de quebra a partir do $q$-ésimo no gráfico da FAC e do $p$-ésimo
elemento no gráfico da FACP\@. A \autoref{tab:facpacf} apresenta, de forma
sumarizada, o procedimento para a seleção dos parâmetros do modelo.
\begin{table}[ht]
\centering
\caption{Modelo conforme FAC e FACP}\label{tab:facpacf}
\begin{tabular}{l l l}
\multicolumn{1}{c}{Modelo} & \multicolumn{1}{c}{FAC} & \multicolumn{1}{c}{FACP} \\
\toprule
Série aleatória & 0 & 0 \\
AR (p) & decaimento exponencial & 0 após $p$ \textit{lags} \\
MA (q) & 0 após $q$ \textit{lags} & decaimento exponencial \\
\end{tabular}
\source{\citeonline{ehlers}}
\end{table}
Cabe destacar que, segundo \citeonline{vinay}, esse procedimento fornece
modelos que servem somente como uma boa aproximação da série. Para determinação
de um modelo realmente eficiente, pode ser necessária a execução de testes
exaustivos utilizando-se alguma métrica para se selecionar um modelo que seja
parcimonioso e forneça bons resultados. Segundo \citeonline{rob}, deve-se
minimizar o critério de informação de Akaike, que é definido segundo a
\autoref{eq:aic}, sendo $L$ o \textit{likelihood} do modelo.
\begin{equation}
\label{eq:aic}
AIC = -2\log{L}+2(p+q+1)
\end{equation}
\subsection{Determinação dos coeficientes}
Por fim, para a completa construção do modelo apresentado na \autoref{eq:arma},
é necessária a obtenção dos coeficientes do processo autorregressivo e de
médias móveis. Para essa tarefa, segundo \citeonline{vinay}, é comum a
utilização do estimador de \textit{likelihood} ou, mais precisamente, a
maximização da função de \textit{likelihood}.
Essa maximização é descrita por \citeonline{statiticalML} da seguinte forma:
considerando uma função $q(x;\theta)$, que retorna a densidade probabilística
de uma entrada $x$ com um conjunto de parâmetros a ser otimizado $\theta$ de
dimensão $b$, o objetivo é a maximização da \autoref{eq:likelihood} que retorna
a capacidade dos parâmetros em aproximar a série.
\begin{equation}\label{eq:likelihood}
L(\theta) = \prod_{i=1}^{n}{q(x_i;\theta)}
\end{equation}
\subsubsection{Equação de Yule Walker}
Outra forma de se obter os coeficientes do processo autoregressivo é por meio
das equações de Yule Walker. \citeonline{eshel} descreve como é realizado esse
procedimento. De forma geral os coeficientes podem ser encontrados utilizando a
\autoref{eq:yulewalker}, sendo $r_k$ as autocorrelações obtidas na FAC da série
e $\alpha$ os coeficientes do AR\@. Essa forma de se encontrar os coeficientes
torna evidente a relação entre a análise das correlações e o modelo de
previsão.
\begin{equation}
\label{eq:yulewalker}
\begin{pmatrix}
r_1\\
r_2\\
\vdots\\
r_{p-1}\\
r_p
\end{pmatrix} =
\begin{pmatrix}
1 & r_1 & r_3 & \cdots & r_{p-2} & r_{p-1} \\
r_1 & 1 & r_1 & \cdots & r_{p-3} & r_{p-2} \\
& & \vdots & & \vdots & \\
r_{p-2} & r_{p-3} & r_{p-4} & \cdots & 1 & r_1 \\
r_{p-1} & r_{p-2} & r_{p-3} & \cdots & r_1 & 1 \\
\end{pmatrix}
\begin{pmatrix}
\alpha_1\\
\alpha_2\\
\vdots\\
\alpha_{p-1}\\
\alpha_p
\end{pmatrix}
\end{equation}
\section{Aprendizado de Máquina}
Computadores utilizam algoritmos para realizar processamento de dados e
solucionar problemas. Porém, para determinados problemas, não é possível
definir um algoritmo exato, seja porque os seres humanos não conseguem explicar
seu conhecimento, esse conhecimento é muito complexo para ser explicitado, ou,
ainda, porque o conhecimento e a solução do problema muda com o passar do
tempo. Um exemplo de tal situação seria a classificação de um e-mail como
\textit{spam} ou legitimo. Definir as características que fazem um e-mail ser
considerado \textit{spam} pode se tornar um problema complexo, especialmente
considerando-se que a definição de \textit{spam} pode variar com o passar do
tempo e com as características do usuário.
Conforme \citeonline{ethem}, tarefas como a identificação de \textit{spam}, que
não apresentam uma solução evidente, mas que podem ser resolvidas por meio
da identificação de padrões a partir de um conjunto de dados, são boas
candidatas à aplicação de técnicas de aprendizado de máquina. Entretanto, para
classificarmos esse sistema como inteligente, não é suficiente que o mesmo seja
capaz de inferir padrões de uma base, precisamos que este, ainda, seja capaz de
se adaptar a mudanças e aprender com isso.
Como forma de apresentar os usos e entender o funcionamento de técnicas de
aprendizado \citeonline{ethem} coloca os seguintes exemplos de aplicação.
\begin{itemize}
\item Classificação\\
Em aplicações financeiras a análise de risco é parte fundamental da
manutenção de uma boa lucratividade. Podemos utilizar técnicas de
aprendizado de máquina para reconhecer um padrão em um conjunto
pré existente já classificados de aplicações problemáticas e não
problemáticas, e generalizar a partir deste conjunto para aplicações
ainda não observadas.
\item Regressão\\
A previsão de custo de um carro usado, pode exemplificar como técnicas
de aprendizado de máquina são capazes de partindo de características
desses automóveis, fornecer uma boa estimativa do custo do veiculo.
No caso essa estimativa é um valor continuo, diferentemente das
tarefas de classificação onde o objetivo é encontrar uma classe
discreta que defina a entrada. De forma semelhante à classificação é
utilizado um conjunto pré existentes para poder ensinar ao algorítimo o
comportamento da saída com relação a entrada.
\item Aprendizado não supervisionado\\
Enquanto os exemplos anteriores envolviam um conjunto de dados para
identificação do padrão do mapeamento da entrada para uma saída
, no aprendizado não supervisionado o objetivo é reconhecer na
entrada um padrão ainda desconhecido. No exemplo apresentado por
\citeonline{ethem} é realizado o agrupamento de clientes com base em
seus comportamentos, assim identificando clientes com comportamento
semelhante e permitindo criar estrategias de venda pontuais a estes
grupos.
\item Aprendizado por reforço\\
Aplicado em casos onde uma única ação não é suficiente para definir uma
solução, como em jogos eletrônicos. Definindo então uma politica de
boas ações, por exemplo, um robô encontrando um caminho, este deve
fazer varias tentativas até encontrar um caminho que seja satisfatório
e aprender como identificar a sequencia de ações que levam a ele.
\end{itemize}
Um exemplo real de uso de aprendizado de máquina é a
identificação de caracteres numéricos escritos à mão. Apresentado por
\citeonline{machineLearning}, esse exemplo é descrito como um problema de
classificação no qual uma imagem de dimensões $28 \times 28$ pixeis é dada como
entrada para um sistema que deve atribuir uma categoria que descreve qual o
número que a figura representa. Um conjunto de exemplos de tais imagens pode
ser visto na \autoref{fig:numeroClassi}. No caso o algoritimo a ser aplicado
tem base em aprendizado supervisionada, já que este dispõe de um conjunto já
classificado.
\begin{figure}[ht]
\centering
\caption{Exemplo de entrada para o algorítimo de
classificação}\label{fig:numeroClassi}
\includegraphics[width=.5\linewidth]{images/numeroClassificacao.png}
\source{\citeonline{machineLearning}}
\end{figure}
No exemplo apresentado na \autoref{fig:numeroClassi}, podemos entender a tarefa
como um sistema no qual $x$ é a entrada e $\hat{Y}$ é conjunto de saída.
Matematicamente, podemos expressar da forma vista na \autoref{eq:sisCla}. A
saída será na forma de um conjunto de números variando de 0 a 1 expressando a
probabilidade de $x$ pertencer à classe $\hat{Y}_i$ onde $i$ é o valor
expressado na imagem.
\begin{equation}
\label{eq:sisCla}
f(x) = \hat{Y}
\end{equation}
Prever o próximo valor de uma série pode ser realizado considerando o conjunto
de entrada como os valores anteriores e o de saída os valores previstos. Se
assemelhando a tarefa de regressão. Como exemplo se dermos um sistema
$f{(x_{t-1})} = x_t$ e tendo um conjunto de $n$ observações anteriores, é
possível obter um modelo com base na identificação de padrões encontrados nesse
conjunto.
Na próxima subseção é detalhado um modelo específico de aprendizado de máquina,
as redes neurais artificiais. Tal modelo, bem como as técnicas de aprendizado
utilizadas, será abordado com foco no tratamento de problemas de regressão,
visto que esse é o tipo de problema tratado neste trabalho.
\subsection{Redes Neurais artificiais}
Segundo \citeonline{haykin2009}, a pesquisa em redes neurais artificiais é
motivada pelo entendimento de que o cérebro humano realiza o processamento de
uma forma completamente diferente dos computadores convencionais. Essa forma de
processamento realizado pelo cérebro é altamente complexa, não linear e
altamente paralela. A unidade de processamento e organização básica de um
cérebro são os neurônios. O autor ainda lhe confere superior capacidade na
realização de tarefas como reconhecimento de padrões do que os computadores
digitais.
Os animais nascem com estruturas cerebrais que lhe serão úteis durante toda a
vida. Apesar disso, muitas outras estruturas se desenvolverão ao longo da vida
do individuo. O cérebro é concebido de maneira muito plástica, ou seja, ele
possui a capacidade de, na fase de aprendizado, se adaptar ao contexto em que
vai se desenvolver. Esse mesmo conceito de plasticidade também foi utilizado
para a modelagem de redes neurais artificiais~\cite{haykin2009}.
\subsubsection{\textit{Perceptron}}
Como já colocado, assim como o cérebro, as redes neurais artificiais possuem o
neurônio como elemento de processamento. Um modelo de neurônio usado em redes
artificiais é o \textit{perceptron}. Descrito primeiramente por Rosenblatt em
1962, tem sua função definida pela \autoref{eq:perceptron}, sendo dada como a
soma ponderada por $w_i$ das entradas $x_i$. Visualmente, o \textit{perceptron}
é representado segundo a \autoref{fig:perceptron}.
\begin{equation}\label{eq:perceptron}
v(x) = \sum_{i=1}^{m}{w_i x_i + b}
\end{equation}
\begin{figure}[ht]
\centering
\caption{Representação gráfica de um \textit{perceptron}}\label{fig:perceptron}
\includegraphics[width=.5\linewidth]{images/perceptron.png}
\source{\citeonline{haykin2009}}
\end{figure}
Após ponderação das entradas, é aplicada ao resultado $v$ uma função de
ativação. Classicamente, essa função é dada como uma função degrau, ou seja, se
o valor resultante da soma ponderada for maior que um valor determinado, o
resultado do processamento do neurônio artificial é 1, caso contrário, é
0~\cite{knight}.
Um exemplo da função degrau é dada da forma da \autoref{eq:funLimiar}. Nesse
exemplo, a função resulta em 1, quando o valor do \textit{perceptron} é maior
que 0, e 0, quando menor.
\begin{equation}
\label{eq:funLimiar}
o(v) = \left\{
\begin{array}{lr}
1 & :se\ v(x) > 0\\
0 & :se\ v(x) < 0
\end{array}
\right.
\end{equation}
Outras duas funções de ativação importantes são a logística e a linear
retificada, respectivamente, apresentadas em \autoref{eq:logistica} e
\autoref{eq:relu}. As duas apresentam a característica de serem continuas, no
entanto, a função logística se limita ao intervalo de 0 e 1, enquanto que a
linear retificada só é limitada inferiormente em 0.
\begin{equation}
\label{eq:relu}
o(v) = \left\{
\begin{array}{lr}
v & :se\ v(x) > 0\\
0 & :se\ v(x) < 0
\end{array}
\right.
\end{equation}
\begin{equation}
\label{eq:logistica}
o(v) = \frac{1}{1+e^{-x}}
\end{equation}
Graficamente podemos representar as funções de ativação conforme a
\autoref{fig:ativacao}.
A função degrau embora extremamente simples só tem eficacia em tarefas de
classificação, já que regressões demandam dados contínuos e esta possui saída
discretizada.
Se a aplicada a função logística na saída é necessário dimensionar o conjunto
de treinamento para o intervalo 0 e 1.
\begin{figure}[ht]
\centering
\caption{Funções de ativação}\label{fig:ativacao}
\begin{subfigure}{.3\textwidth}
\centering
\caption{Função linear retificada}
\includegraphics[width=.9\linewidth]{images/relu.png}
\end{subfigure}
\begin{subfigure}{.3\textwidth}
\centering
\caption{Função logística}
\includegraphics[width=.9\linewidth]{images/sigmoid.png}
\end{subfigure}
\begin{subfigure}{.3\textwidth}
\centering
\caption{Função degrau}
\includegraphics[width=.9\linewidth]{images/degrau.png}
\end{subfigure}
\source{Elaborado pelo autor}
\end{figure}
Ainda, segundo \citeonline{knight}, o \textit{perceptron} se caracteriza pelos
pesos e pela definição da função de ativação, enquanto o processo de
aprendizagem se caracteriza pela modificação desses pesos.
Porém, a utilização de sistemas simples com somente um \textit{perceptron} é
insuficiente na solução de muitos problemas. Segundo \citeonline{knight},
o \textit{perceptron} sozinho é incapaz de encontrar hiperplanos que
resolvam problemas de classificação não lineares. No exemplo apresentado por
\citeonline{knight}, é demonstrado que, enquanto um \textit{perceptron} é capaz
de reproduzir corretamente o comportamento de um porta logica E ou OU, o mesmo
não consegue aprender o comportamento de uma porta OU-exclusivo. Isso se
deve ao limite do \textit{perceptron} resolver apenas problemas linearmente
separáveis.
\subsubsection{Redes neurais \textit{feedforward}}
Embora um \textit{perceptron} sozinho seja incapaz de modelar algumas classes
de problemas, eles são capazes de aproximar qualquer tipo de função quando
combinados em camadas \citeonline{knight}. A essa arquitetura de organização de
neurônios se dá o nome de redes neurais de múltiplas camadas. Quando a
alimentação dela é na direção da entrada para a saída será classificada também
como \textit{feedforward}.
Uma rede neural de múltiplas camadas pode ser entendida como um conjunto de
três partes essenciais: a camada de entrada, a escondida e, por último, a
camada de saída. A camada de entrada é aquela que recebe as características do
conjunto de dados. O nome \textit{feedforward} é dado devido à entrada ser
apresentada, primeiramente, a camada de entrada e as ativações fluírem até a
camada de saída. Logo, o resultado da rede é dado pela camada de saída, após
passar por toda a rede em uma única direção. Visualmente, pode-se expressar a
rede de múltiplas camadas segundo a \autoref{fig:neuralNetwork}.
\begin{figure}[ht]
\centering
\caption{Representação da ligação entre \textit{perceptron} em uma rede
neural}\label{fig:neuralNetwork}
\includegraphics[width=.5\linewidth]{images/neuralNetwork.png}
\source{\citeonline{haykin2009}}
\end{figure}
Em uma rede neural, os parâmetros a serem aprendidos são os pesos $w_i$ das
conexões entre os neurônios das diferentes camadas. É comum que esses pesos
sejam inicializados como valores aleatórios pequenos, que serão ajustados por
correção de erro para cada exemplo apresentado à rede.
O erro calculado na camada de saída é dado por uma função de cálculo do erro.
No caso de problemas de regressão, o cálculo do erro é dado pela função de erro
quadrático médio, conforme a \autoref{eq:mse}, na qual $Y$ corresponde ao valor
real de treinamento, $\hat{Y}$ ao valor previsto e $n$ ao tamanho do conjunto
de treinamento.
\begin{equation}\label{eq:mse}
MSE = \frac{1}{n}\sum_{i=1}^{n}{{(Y_i - \hat{Y}_i)}^2}
\end{equation}
\subsubsection{Retropropagação}
A atualização dos pesos de uma rede neural ocorre a cada iteração sobre os
valores de entrada. Assim, suas saídas são comparadas com os valores reais e é
computado o valor do erro de acordo com uma função de erro. Os valores dos
erros $L$ são aplicados na \autoref{eq:backpropagation}, na qual $\alpha$
corresponde a uma taxa de aprendizado que regula o tamanho do passo utilizado
na correção dos pesos. O erro calculado na camada de saída é retropropagado
para as camadas ocultadas até chegar na camada de entrada e os pesos de todas
as camadas é atualizado de acordo com erro. Dessa forma, a cada nova iteração,
os pesos da rede neural são atualizados.
\begin{equation}\label{eq:backpropagation}
w_{n+1} = w_n - \alpha \frac{\partial L(x,w_t)}{\partial w_t}