monografia
DESCRIPTION
monografiaTRANSCRIPT
-
LEONARDONASCIMENTOFERREIRA
UMTRADINGSYSTEMAUTNOMOBASEADOEMREDESNEURAIS
ARTIFICIAIS
Monografia de Graduao apresentada aoDepartamentodeCinciadaComputaodaUniversidadeFederaldeLavrascomopartedas exigncias do curso de Cincia daComputao para obteno do ttulo deBacharelemCinciadaComputao.
Orientador
Prof.CristianoLeitedeCastro
LAVRASMINASGERAISBRASIL
2009
-
LEONARDONASCIMENTOFERREIRA
UMTRADINGSYSTEMAUTNOMOBASEADOEMREDES
NEURAISARTIFICIAIS
Monografia de Graduao apresentada aoDepartamentodeCinciadaComputaodaUniversidadeFederaldeLavrascomopartedas exigncias do curso de Cincia daComputao para obteno do ttulo deBacharelemCinciadaComputao.
APROVADAem______de________de_________.
______________________________________Prof.ThiagodeSouzaRodrigues
______________________________________Prof.WilianSoaresLacerda
_________________________________Prof.CristianoLeitedeCastro
(Orientador)
LAVRASMINASGERAISBRASIL
2009
-
Aosmeuspais,SilvanaeLudgero
-
SUMRIO
ListadeFiguras................................................ 6
ListadeTabelas................................................ 8
Resumo.....................................................
9
1.Introduo..................................................
10
2.ReferencialTerico............................................132.1AnliseTcnica.......................................13
2.1.1AteoriadeDow............................... 142.1.2Omercadodescontatudo........................142.1.3Astendnciasdemercado.......................142.1.4Tendnciasdivididaemtrsfases................. 15
2.2GrficosdeCandlesticks................................162.3Indicadorestcnicos...................................20
2.3.1ndiceestocstico..............................212.4RedesNeuraisArtificiais................................
23
2.4.1Oneurnioartificial............................252.5TreinamentodoPerceptron..............................27
2.5.1OTreinamento................................272.5.2OAlgoritmo..................................292.5.3Momento....................................30
2.6PerceptrondeMltiplasCamadas.........................322.6.1Histrico.....................................322.6.2RedesdeNeurnios............................332.6.3Topologias...................................33
2.7TreinamentodeRedesPerceptron.........................362.7.1Introduo....................................362.7.2TiposdeTreinamento...........................372.7.3Treinamentoparaperceptrondemltiplascamadas...392.7.4Definiesdearquiteturaeparmetros.............41
2.8Trabalhoscorrelatos....................................
42
4
-
3.Metodologia..................................................433.1Introduo........................................... 433.2OParser.............................................44
3.2.1Processamento................................ 443.2.2Rotulao....................................453.2.3Armazenamento...............................463.2.4Normalizao.................................473.2.5Funcionamento................................47
3.3RedeMLP...........................................483.3.1Topologia.................................... 483.3.2FunodeAtivao............................493.3.3DefiniodeParmetros........................ 503.3.4Algoritmodetreinamento....................... 503.3.5Validao.................................... 50
3.4Tecnologia........................................... 513.4.1Implementao................................513.4.2FrameworkJOONE............................
51
4.Resultados...................................................534.1TradingSystem....................................... 534.2Teste................................................ 55
5.Concluso...................................................58
6.RefernciasBibliogrficas...................................... 61
AnexoA...................................................... 63
AnexoB...................................................... 65
5
-
LISTADEFIGURAS
Figura1 Candles............................................ 17
Figura2 Exemplosdegrficodecandlesticks..................... 17
Figura3 Candlesdediferentestamanhos......................... 18
Figura4 Candlessemsombra.................................. 19
Figura5 Padresqueprevemtendnciadealta.................... 19
Figura6 Padresqueprevemtendnciadebaixa.................. 20
Figura7 Grficodetemperaturaepressoparadiashistricos,contendoaretadeseparaodeclasses........................... 24
Figura8 Funcionamentodoneurnioartificial.....................25
Figura9 Problemanolinearmenteseparvel......................28
Figura10 Tempodeaprendizadosemmomento(esquerda)ecommomento(direita).................................... 31
Figura11 Aprendizadosemmomento(direita)ecommomento(esquerda).................................. 31
Figura12 Altataxademomentopodeprejudicartreinamento.......... 32
Figura13 NomenclaturaparaascamadasdasRedesdeNeurnios......34
Figura14 Redefeedforwarddenicacamada.......................35
Figura15 Redefeedforwarddemltiplascamadas...................35
Figura16 Exemploderederecorrente............................ 36
Figura17 Aprendizadosupervisionado............................ 38
Figura18 Aprendizadonosupervisionado........................ 38
Figura19 Aprendizadocomreforo.............................. 39
Figura20 FasesdoalgoritmosBackpropagation.................... 40
Figura21 AlgoritmoBackpropagation............................ 40
Figura22 Fluxogramadefuncionamentodosistema................. 43
6
-
Figura23 Representaodajaneladetemporotuladasalvaemarquivo.. 46
Figura24 EstruturadaRNAutilizada............................. 49
Figura25 Criao,treinamentoevalidaodeumaRNAutilizandooframeworkJOONE...................................
52
Figura26 Telaprincipaldosoftwaredesenvolvido...................54
7
-
LISTADETABELAS
Tabela1 Interpretaodoarquivodehistricodepreos.............. 45
Tabela2 Rtuloparapossveisclassificaodejaneladetempo........ 47
Tabela3 Aesprocessadas.................................... 56
Tabela4 ResultadosparadiferentestopologiasdeRNAediferentes
parmetros.......................................... 56
8
-
UMTRADINGSYSTEMAUTNOMOBASEADOEMREDESNEURAIS
ARTIFICIAIS
Resumo
Existemhojenomercadoinmerossistemaseletrnicosque,apartirdegrficoshistricosedadosatuais,conseguempreveratendnciadospreosdasaes. Essestradingsystemsfazemaanlise tcnicasdospreosobservandovriosndiceseprocurandoporpadresjconhecidosemsrieshistricas.Ograndeproblemacomessessistemasquesolimitadosaoconhecimentodoespecialista o qual determinouos padres. Assim, utilizando Redes NeuraisArtificiais e grficos de Candlesticks, propemse a criao de um tradingsystemque faaa analise grfica, aprenda de formaautnomaa reconhecerpadresemsriesedetermineautomaticamentegatilhosdecompraevendadeumadeterminadaao.
Palavraschave:RedesNeuraisArtificiais;AnliseTcnica;Candlesticks.
ANAUTONOMOUSTRADINGSYSTEMBASEDONARTIFICIAL
NEURALNETWORKS
Abstract
Recently, several computational systems have used historical pricesseriesandeconomicindexestopredictsharepricesinstockmarket.Ingeneral,thesetradingsystemsarebasedontechnicalanalysistoolswhichpreprocessdatainordertofindbuyingandsellingpatterns.Theproblemofthisapproachisthatthesepatternsshouldbeindicatedbyspecialistsinstockmarket.Toovercomethis problem, we propose an autonomous trading systembased on ArtificialNeuralNetworks,candlesticksgraphsandstochasticindex.Ourtradingsystemisabletolearnpatternsbyitselfandautomaticallytopredictbuyingandsellingtriggersofaspecificshare.
Keywords:ArtificialNeuralNetwork;TechnicalAnalysis;Candlesticks;
-
1.INTRODUO
Comosurgimentodas bolsas devalores, inmerosestudos foramrealizados
afimdetentarencontrarexplicaesparaavariaodospreosdasaes,mas
especificamente, tentar obter lucro com a compra e venda das aes. A
princpio, acreditavase que esse comportamento era apenas reflexo de
acontecimentosreferentesaempresacomoporexemplo,anotciadedescoberta
deouroporumamineradoraprovavelmenteelevariaopreodopapel.Porm,a
menosqueoinvestidortenhaacessoainformaesprivilegiadas,muitodifcil
acompanhareprevernotciascomoessas.
No sculo XVIII, acreditase que um japons negociante de arroz
chamadoHommaMunehisa,inventouumgrficopararepresentaropreodas
aesconhecidocomoGrficodeCandlesticks.Essarepresentaopossibilitou
inmerosestudosmatemticos,masaindaseacreditavaquenoerapossvel,a
partirdegrficos,preverocomportamentodasaes.Pensavasequeoseventos
eramaleatrios.
NofinaldosculoXIX,ojornalistaamericanoCharlesHenryDowcriou
ateoria,quemaistardesustentouaAnliseTcnica.Essateoria,afirmaqueo
mercadodescontatudo,ouseja,emalgummomento,adescobertadeouropela
mineradoraserrefletidanosgrficosdepreo.Assim,passouseaacreditarque
todaaAnliseFundamentalista,aquelabaseadaemnotcias,estenglobadana
AnliseTcnica.
Com o passar do tempo e o avano nos estudos relacionados a
engenhariafinanceira,descobriusequeosgrficosdeCandlesticksfacilitavama
observaodepadresqueantecipavampontosdereversoouconfirmavama
-
tendncia dos preos. Alm desses padres, vrios indicadores, baseados
tambmemgrficosefrmulasmatemticas,foramcriadosparafuncionarem
como gatilhos, ou seja, para tentarem responder a pergunta que todos os
investidores gostariam de saber: Qual o melhor momento para comprar ou
venderumdeterminadopapel?
A resposta para essa pergunta ainda muito difcil de se descobrir,
pormcomosurgimentodoscomputadoreseainternet,ossistemaseletrnicos
aumentaram,deformasignificativo,ataxadeacertos.EssestradingSystems
viabilizaram o investimento almde popularizar o mercado entre pequenos
investidorestornandosepoderosasferramentasdeauxilioesuporteadeciso.
Sistemas de apoio tomada de deciso incorporam ferramentas
computacionaisparamineraodedados,previsoereconhecimentodepadres
comportamentaisdomercado.Dentreasferramentas,destacamse,noramoda
IntelignciaArtificial,asRedesNeuraisArtificiais(RNAs).RNAssomodelos
inspiradosnoaprendizadodosneurniosbiolgicosetmsidoextensivamente
utilizadasemaplicaesnareadepreviso(regresso)ereconhecimentode
padres. Especialmente, para o mercado de aes, inmeros trabalhos tm
reveladoaeficciadetalferramentacomoauxliodecisodoinvestidor.
No contexto de grficos de Candlesticks, Anlise Tcnica e RNAs,
propemseodesenvolvimentodeumtrandingsystemquefaaaanlisegrfica,
aprenda de forma autnoma a reconhecer padres em sries financeiras e
determineautomaticamenteospontosdereverso(gatilhosdecompraevenda)
paraumadeterminadaao.
Paraalcanaresseobjetivo,ser necessrioodesenvolvimentodeum
parserqueirpercorrerassriestemporaisearmazenarospadresdereverses
emumarquivoqueserutilizadocomoconjuntodetreinamentoparaumaRNA.
11
-
Aconstruodessesistemainteressantepoisaindanoseconheceum
sistema independente que utilize candlesticks. Apenas sistemas tutores e de
apoioadecisoforamimplementados.
12
-
2.REFERENCIALTERICO
Tendoemvistatodaaproblemtica,sevnecessrioumarevisobibliogrfica
abordandoosprincipaistpicoscitados.
2.1ANLISETCNICA
AAnliseTcnica,oestudodocomportamentodospreosdasaes
utilizandogrficos,porissotambmchamadadeAnliseGrfica[1].Apartir
desseestudo,muitasteoriassurgiramparatentarexplicarcomportamentoscomo
a reverso de tendncia nos preos. Vrios ndices, expressos em frmulas
matemticas, foram criados com o intuito de tentar prever e explicar
comportamentosnotadosnosgrficos.
AntesdosurgimentodaAnliseTcnica,acreditavasequesomenteera
possvel prever comportamento dos preos analisandoos fatos que ocorriam
envolvendo a empresa. Se a empresa est crescendo financeiramente
provavelmenteopreodasaes deveaumentar. Seumaempresapetrolfera
encontrarumpoodepetrleo,opreodoativodevesubir.Assim,umaanlise
interna da empresa feita estudando gastos, lucro, greves, fatores polticos,
notciasenvolvendoaempresaemgeral, afimdetentarobservarfatoresque
pudessemlevaraocrescimentoeconseqentemente,aoaumentodopreodo
papel.Esseestudo,tambmconhecidocomoAnliseFundamentalista,foiusado
durantemuitotempoeaindausado.Entretanto,tratasedeestudoespecficode
cadaempresa,sendomuitasvezesdifcildepreverouencontrarnotciascomo
essas.
-
2.1.1AteoriadeDow
OprincipalmotivoquedeuforaaAnliseTcnicaforamasteoriasdo
norteamericanoCharlesH.Dowqueapsrealizarestudosobrecomportamento
dospreosdasaesdabolsadeNovaIorque,levantoutrspontosprincipais
[1].Vejamossuasconcluses.
2.1.2Omercadodescontatudo
Issosignificaqueosndicesrefletemoconjuntodenegociaodetodos
osinvestidores,sejaesteuminvestidorleigoouumdetentordeumainformao
privilegiada. Conseqentementej estodescontadosnos ndicesinformaes
desconhecidas pelograndepblico. Voltandoaoexemplodamineradoraque
encontrou ouro, provavelmente os diretores da empresa seroos primeiros a
comprar aes da empresa, logo que possuem informao privilegiada em
relaoaosoutrosinvestidores.Issocomeaaelevarospreosantesmesmosdos
outrosinvestidoressaberemdanotcia.
Alm de informaes como essas, existem outros tipos de
acontecimentos que so imprevisveis. So exemplos as catstrofes naturais,
guerras,etc,quepodemgerarfortesoscilaesiniciaispormquecomopassar
dotempo,soabsorvidaspelomercado.
2.1.3Astendnciasdemercado
Astendnciassomovimentosnosgrficosondepredominouumadada
14
-
direo,sendoessadealtaoubaixanospreos.Elaspodemserobservadasem
diferentesespaosdetemposesoclassificadascomo:
Primrias:Sotendnciasobservadasemanos,porexemplo,1
ou2anos.
Secundrias: Esto contidas nas tendncias primrias e so
contadasemmesespodendosernotadasde2a5meses.
Tercirias: Possuem tempo menor e esto contidas nas
tendnciassecundriassendonotadasentresemanasedias.
Noexisteumnmeroexatoparadefiniroperodocorrespondentes
tendnciassendoanicaregraofatodastendnciasterciriasestaremcontidas
nassecundriaeessascontidasnasprimrias.
2.1.4Tendnciadivididaemtrsfases
Considerando uma tendncia de alta, desde o incio at o fim do
movimento,elapodeserdividaemtrsfases:
1fase:levealtanospreosdecorrentedacompradeaespor
investidores que provavelmente detm informaes
privilegiadas;
2fase:altamaisrpidarefletindoaentradasdosinvestidores
experientes;
3fase:perodoondeoinvestidorleigolevadopelaeuforiado
mercadoecompraaes.caracterizadoporgrandesaltasdo
preomasqueprovavelmenteseguidadereversodetendncia
15
-
quepercebidapeloinvestidorexperientequevendesuasaes.
Existem tambm3fases para a tendncia debaixaquenormalmente
ocorredepoisdeumatendnciadealta.Soelas:
1fase:iniciaquandooinvestidorexperientevendesuasaes;
2 fase: a incerteza do mercado faz comque os investidores
comecem a vender suas aes com receio de haver prejuzo
maior;
3fase:ondeosprejuzossoaltossendoseguidadereversode
tendncias.Nofimdessafaseoinvestidorexperientecompraa
aes.
2.2GRFICOSDECANDLESTICKS
OsgrficosdecandlestickssurgiramnoJapoduranteosculoXVIIIe
atribuise sua criaoaonegociante dearroz, Munehisa Honmaqueganhou
famarapidamentedevidoafacilidadedeobservaromovimentodospreosdas
aes[2].
OGrficoformadoporcandles,querepresentamospreosdeabertura,
mximo,mnimoefechamentodeumdadopapelduranteodia[2].Ocandle
formadoporumabarraindicandoospreosdeaberturaefechamento,podendo
tertambmumalinhavertical,chamadadesombra,querepresentaospreosde
mximoemnimo.Ocorpodo candle podeserformadoporduascores,uma
determinadiadealtaeoutrabaixanospreos.Nafigura1,podeseobservar
doiscandleseafigura3ilustraumexemplodegrficodecandlesticks.
16
-
Figura1Candles.
Figura2ExemplodegrficodeCandlesticks.Fonte:http://www.fxribafree.com/
17
DiadeAlta DiadeBaixa
AberturaFechamento
Mximo Mximo
Fechamento
MnimoMnimo
Abertura
-
Comopassardotempo,osacionistascomearamanotarpadresnos
grficos e comearam a uslos para tentar prever o comportamento das
tendncias,sejaeladequedanospreos,altaouconfirmaodequeatendncia
atualaindacontinuar. Comeouseentoatentarextrairinformaescontidas
no grfico e interpretlas para tentar entender a dinmica e motivos que
levavamquedaoualtadospreos.
Assim, vrios relaes e explicaes foram retiradas a partir das
observaeseestudos.Umadelasfoiadiferenaentreotamanhodoscandles,
observadanafigura4:
Figura3Candlesdediferentestamanhos.
Segundo[1],Osmenorescandlessignificampoucanegociaoeexibem
uma possvel estagnao do preo. Por outro lado, os candles maiores
significavam alto nmero de negociaes em um nico dia, mostrando a
instabilidadedopapelepossvelquedaoualtadopreo.
Outraconclusode[1]foirealizadaquandoobservadoosgrficossem
sombras (linhas verticais). Notouse que quando o valor de fechamento
correspondia tambmao valor de mximo, significava que os compradores
sobressaram, indicandoaltasdos preos. Afigura5exibedois candles sem
sombra.
18
-
Figura4Candlessemsombra.
Vrios outros padres foramencontrados, inclusivepadres formados
pormaisdeumcandleederamseaelesnomessugestivos,emsuamaioriade
origemjaponesa[1].Algunspadrespodemserobservadosnasfiguras6e7.
Hoje, os grficos de candlesticks ainda so muito utilizados e sua
principalfinalidadedeprevertendnciasdospreos.
Figura5Padresqueprevemtendnciadealta.Fonte:http://www.grafbolsa.com
19
-
Figura6Padresqueprevemtendnciadebaixa.Fonte:http://www.grafbolsa.com
2.3INDICADORESTCNICOS
Almdeobservaraformaouaparnciadogrficoafimdeencontrar
padres,diversospessoascriaramfrmulasmatemticasqueutilizavamdiversos
valoresdeentradapara tambmtentar prevercomportamentos. Essesvalores
geralmentesopreosdeabertura, fechamento, mximo,mnimo,volumede
negociaes,etc.Valoresestes,observadosemumadadajaneladetempo,que
serviamdeentradaparaumaequaomatemticaeresultavamemumindicador
queprincipalmentetentaprevercomportamentodospreos[3].
Essesindicadoresgeralmentevosendocalculadosnamesmafreqncia
em que o grfico de preo atualizado, ou seja, tomando o grfico de
candlestickdiriocomoexemplo,acadanovodiaumnovocandleadicionado
aogrfico,damesmaforma,ondicerecalculado,agoraincluindoessenovo
candle,obtendoassimovalordoindicadorparaaqueledadomomento.Assim,
possvelplotarumgrficocomtodosessevalores,observarocomportamentodo
20
-
indicadoreutilizlocomosuporteparatomadadedecises.Analisandoesse
grfico possvel observar que alguns ndices oscilam em uma dada faixa
numricaeporissosotambmchamadosdeosciladores[1].
Otamanhodajaneladetempoutilizadaparaesteclculotemimportante
influncia.Janelasdetemposmaiscurtassomaissensveiseprevemmais
rapidamente um acontecimento, pormesto mais sujeitas a erros logo que
percebemoscilaesacurtoprazo.Poroutrolado,janelasdetempomaislongas
so menos sensveis e mais confiveis, porm, s vezes, so perdidas
oportunidadesdecompraouvendadeumativodeixandodelucrar.
2.3.1ndiceestocstico
Dentre os indicadores, ser utilizado nesse trabalho o oscilador
estocstico.Segundo[1],essendicemedeaforadoscompradoresemlevaro
preodefechamentodeumpapelmaisprximodopreomximoalcanadono
diaedaforadosvendedoresdelevaropreodefechamentomaisprximodo
preomnimo.
Existem algumas variaes para o clculo desse indicador. Neste
trabalho,optousepeloclculodalinharpida.Essalinha,denotadapor %K ,
medearelaoentreasforasdecompraevenda.Essalinhamaissensvele
indicamaisrapidamenteumpossvelaumentodasforascompradorase,devido
asuarapidez,podeseobterfalsosresultados.
Afrmulamatemticaparaessalinha:
%K=FechhojeMinnMaxnMinn
100(1)
21
-
OndeFechhojepreodofechamentodehoje,MinneMaxnsoospreos
mximoemnimoalcanadosnajaneladetempoquegeralmentedecinco
dias.
Comomencionadoacima,aprincipalfinalidadedondiceestocstico
definirseopapelestsobrevendidoousobrecomprado.Paraisso,soutilizadas
margenssuperioreinferiorparadeterminarsituaesdecompraouvendadeum
ativo.Quandoondiceestocsticoultrapassaramargemsuperior,significaqueo
papelestsobrecomprado,indicandoumaboafaseparaavendadopapel,logo
que uma reverso de tendncia para queda est prxima. O mesmo ocorre
quandoondiceultrapassaamargeminferior.Quandoissoocorre,opapelesta
sobrevendido,ouseja,amaiorforafoidosvendedores.Issoimplicaemum
baixopreodopapeleumaboaoportunidadedecompra,logoqueumareverso
detendnciadealtanospreosdeveocorrerembreve.
Costumase utilizar 85%para definir a margemsuperior e 15%para
definir a margem inferior [4]. ndices inferiores a 15% indicam reversode
tendnciaparaalta, logodevesecompraropapel. ndicessuperioresa85%
indicamreversodetendnciaparabaixaesugeremavendadopapel.Valoresde
ndicesdentrodessafaixaindicamapermannciadopapel.
Osvaloresparaessasmargenspodemseralteradassegundooperfildo
investidor. Investidores mais ousados podem aumentar o intervalo de
permannciaeutilizarvalorescomo10%paralimiteinferiore90%paralimite
inferior.Issofazcomquepontosqueeramdereversoparamargensde15%e
85%deixemdesereconseqentementeoinvestidorpermanecermaistempo
comumpapel,dadoqueoindicadorirdemorarmaisparaapontarreversode
tendncia.
Aumentarafaixadepermannciapodetrazermaislucro.Tomandocomo
22
-
exemploumasemanaondeshouvealtanospreos.Oestocsticocommargens
de15%e85%poderiainformarnaquintafeiradessasemanaquetendnciade
baixaestprevista,fazendocomqueoinvestidorvendaseupapelnaqueledia.
Porm,seestetivessepermanecidocomopapeleleterialucradomais,logoque
na sextafeira ainda houve valorizao. Portanto, se este investidor tivesse
utilizadocomomargens10%e90%,eleterialucradomais.Issopodeparecer
umaboaprtica,pormdeveseterprecauo,poisquandoseaumentaessafaixa
depermanncia,diminuiseafaixasdesobrecompradoesobrevendido.Assim
umasituaoinversapodeocorrer.Supondoagoraquenestasemanatodosos
diasforammarcadosporbaixanospreos,oestocsticocommargensde15%e
85%indicaria naquintafeira para vender o papel. O investidor que utilizou
margensde10%e90%venderiaopapelnasextafeiraeteriaprejuzomaior.
Assim, cada investidor deve ajustar esses limites segundo seu perfil de
investimento,sejaeleprecavidoouousado.
2.4REDESNEURAISARTIFICIAIS
As Redes Neurais Artificiais (RNAs) so modelos computacionais
inspiradosnasredesdeneurniosbiolgicosexistentesnocrebrohumano.So
caracterizadasporprocessaremosdadosdeformaparaleladamesmaformaque
ocrebrofazeutilizaoneurniocomounidadebsicadeprocessamentoque
capazdeaprenderegeneralizar[5].
Sua principal caracterstica, a generalizao, permite que depois de
treinadoeaprendidoaresoluodeumproblema,sejapossvelseobteruma
resposta boa para um problema semelhante ainda desconhecido. Outra
caracterstica muito importante capacidade de aproximar qualquer funo
23
-
matemticasejaelacontnuaouno,sendooaprendizadodaRNAnadamais
queatentativadeencontraramelhorfunoqueseaproximaafunodesejada
[5].
Existem inmeras aplicaes para essa ferramenta que resolve
principalmenteproblemasdeclassificao,reconhecimentodepadres,previso
eextraodeinformaesdesconhecidas.
Tomandocomoexemplo oproblemade previsode tempo, podemos
facilmentecriarumaRNAqueprevseoprximodiairchoveroufazersol.
Parasimplificaroproblema,seroutilizadasapenasvaloresdetemperaturae
pressoparadefinirseodiachuvosoouensolarado(comcertezaoproblema
noseresume estasduasentradas), podemosplotarumgrficocomdados
histricosjclassificadoseobterumgrficodeduasdimensessemelhantea
figura8.
Figura7Grficodetemperaturaepressoparadiashistricos,contendoaretadeseparaodeclasses.
Assim,possveltreinarumaRNAcomosdadoshistricos,edepoisde
treinada, possvel apresentar um par de valores de temperatura e presso
desconhecido,queaRNAirpreverseodiaserensolaradoouchuvoso.Esse
24
-
umaaplicaosimplesedidticodeRNApodendoseraplicadasaproblemas
comnmerosmaioresdevariveisdeentradaeclasses.
2.4.1Oneurnioartificial
Aestruturadoneurnioartificialcompostadetrspartesqueformamo
neurniobiolgico.Soelas:dendritos, corpo(tambmchamadodesoma)e
axnio[5].Osdendritosrecebemosestmuloseltricosdeoutrosneurniose
solevadosaocorpoquesomaosestmulos,excitandoounooneurnio.Se
este receber estmulosuficiente, o corpoir deixar comqueoestmuloseja
transmitidopeloaxnioparaqueosoutrosneurniosligadosaelerecebamo
pulsoeltrico.Assim,oneurniosemelhanteaumafunomatemticaque
recebevaloresdepulsoeltricoedefineumasada.Afigura9mostraaestrutura
doneurnioartificial,tambmchamadodeperceptron.
Figura8Funcionamentodoneurnioartificial.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
Os dendritossoossinaisdeentrada,representadosporx1,x2, ...xm.
Estessinaissomultiplicadosporseusrespectivospesos,representadosporwk1,
25
-
wk2,...wkm.Ospesosdeterminamoquoinfluenteaentradanoprocessode
excitaodoneurnio.Almdasvariveisdeentrada,existeumaentradafixa
quedeterminaograude influncia das entradas, tambmchamadode bias.
Depoisdemultiplicartodososvaloresdeentradaporseusrespectivospesos,o
corpodoneurnio(junoaditiva)realizaasomaponderadadasvariveisde
entrada(uk)eutilizaumafunodeativaoparadefinirovalordesadado
neurnio(yk).
As funes de ativao mais utilizadas so a tangente hiperblica,
sigmoidalelimiar,conformeilustradopelasequaes2,3e4.
f=tanh soma (2)
f=1
1exp soma(3)
f=0 sesoma0 (4)
Assim, o funcionamento do perceptron pode ser expresso atravs da
seguinteexpressomatemtica:
yk= f uk= f j=1
m
wkj x jbk (5)
Ondeykasadadoneurnio, ukasomaponderada, fafunode
ativao, monmerodeentradas, wovetordepesosdaentrada, xovetorde
26
-
entradaebobias.
Voltandoaoexemplodeclassificaodediasdesolechuva,podese
observarnafigura8 quepossveltraarumaretadeseparaoentreasduas
classes. Pares de temperatura e pressoquese encontramacimadareta de
separaosodaclasse sol e pares inferiores a reta sodaclasse chuva. A
frmulamatemticaparaessaretailustradapelaequao6.
w1 x1w2w2b=0 (6)
2.5TREINAMENTODOPERCEPTRON
2.5.1Treinamento
Otreinamentodoperceptronseresumetarefadetentarencontraros
melhorespesosparasejapossveltraar melhorhiperplanodeseparaoentre
classes.
Essatarefapodesertrivialparaproblemaslinearmenteseparveis,como
oexemplodeclassificaodediasdesolechuva(introduzidonaseo2.4),
ondepossveltraarumaretaqueseparaasclasses.Porm,essatarefapodeser
muitodifcil ouat mesmoimpossvelquandooproblemanolinearmente
separvel,conformeilustradonafigura10.Supondoqueaoplotarosvaloresde
temperaturaepressodosdadoshistricos,fosseobtidoogrficodafigura10.
impossvelencontrarumaretadeseparao.
27
-
Figura9Problemanolinearmenteseparvel.
Pararealizarotreinamento necessrioquesetenhadadoshistricos
previamente rotulados. Para o problema de classificao de dias, podese
analisarosdiasdoanopassadoeclassificarcadadiacomosendochuvosoou
ensolarado.Esseconjuntodedias,tambmchamadodeconjuntodetreinamento,
soapresentadosaoneurnioqueirutilizlosparaajustarseusparmetros.
O conjunto de treinamento tem papel fundamental no aprendizado.
Assim, quanto maior o nmero de amostras analisadas, melhor ser a
generalizaodomodelo.Outrocuidadocomdisposiodosdadosdentrodo
espaode entradas possveis. Se utilizarmos apenas dias com temperatura e
pressoaltascomoconjuntodetreinamento,operceptronprovavelmentenoir
aprenderaclassificardiascomtemperaturabaixa.Paraqueoaprendizadoseja
eficiente,devesetentarapresentaraoperceptrondiascomomaiornmerode
combinaesdetemperaturaepressopossveis.
Segundo[7],oalgoritmodetreinamentodoperceptronsempreencontra
umbomhiperplano de separaopara problemas linearmente separveis em
28
-
tempofinito.interessanteressaltarqueumbomhiperplanodeseparaono
precisanecessariamentedividirexatamenteasclasses,sendoquepequenoserros
declassificaopodemocorrer.
2.5.2OAlgoritmo
Oalgoritmodetreinamentodoperceptronsegueosseguintepassos[6]:
1. Apresentartodososdadosdoconjuntodetreinamentoparao
perceptron.Esseperodochamadodepoca;
2. Paracadadadodapoca,ajustarospesosutilizandoaregra
delta;
3. Oconjuntodetreinamentoapresentadonovamenteatque
setenhaalcanadoonmerodepocasdesejadasouatque
oerrosejamenorouigualaoerrodetolerncia.
Aregradelta umaexpressomatemticaqueatualizacadapesode
entrada com base no erro atual da poca e a taxa de aprendizado, sendo
calculadapelaseguinteequao:
w n1=w ne x n(7)
Onde: w(n+1)opesoatualizado;
w(n),opesoatual;
, ataxadeaprendizado,queindicaavelocidadecomqueovetordepesoseratualizado.
29
-
e, o erro atual, que a diferena entre a sada atual do
perceptroncomasadadesejada,conformeequao8;
x(n),ovalordeentrada.
e=yesperadoyobtido (8)
A princpio, o vetor de pesos e o bias so iniciados com valores
aleatrios e costumase utilizar valores entre 0,2 e 0,8 para a taxa de
aprendizado.Noexisteumafrmulaparacalcularosmelhoresparmetrospara
oalgoritmodetreinamento1. Utilizarvalormuitoaltodetaxadeaprendizado
podefazercomqueopassosejatoalto,queoalgoritmonuncaencontraruma
boasoluo.Assim,testesdevemserrealizadosparatentarencontraramelhor
combinaoparatentardiminuirotempodeaprendizado.
2.5.3Momento
Umatcnicaqueaceleraotempodeaprendizadochamadademomento
econsisteemadicionarumfatoraoclculodeatualizaodospesosdaregra
delta[6].Fazendoumaanalogiaaosistemasmecnicos,omomentofunciona
comoainrciaquefazcomqueumaesferaquedeslizesobreumasuperfcie
inclinadaecontinueseucaminhoatqueoatritofaacomqueaesferapare.De
formaanloga,ocircuitoondeaesferacaminhapodeserogrficodeerropara
umperceptrondenicaentradaeaposiodaesfera,oerroquadrticodapoca
atual.
1 NoAnexoIencontraseaimplementaodoalgoritmodetreinamentoemformadescriptparaserexecutadonoAmbienteScilab.
30
-
Figura10Tempodeaprendizadosemmomento(esquerda)ecommomento(direita).
Nafigura11,podemosnotarqueoaprendizadocommomentotendea
levarmenospocasparaencontraropontodemenorerro.
Omomentotambmtilpararesolveroproblemadosmnimoslocais.
Esse problema ocorre quando a funo de custo possui mnimos locais,
tornandose armadilhas para o algoritmo de treinamento. Assim, tomando
comoexemploafigura12aseguir,podeserquearegradeltaficarpresano
mnimo local, onde o gradiente da funo de custo nulo. Pormse fosse
utilizadomomento,aregradeltaalcanariaomnimoglobal.
Figura11Aprendizadosemmomento(direita)ecommomento(esquerda).
31
-
Ousodemomentoaconselhadoparadiminuirotempodetreinamento
esolucionaroproblemadosmnimoslocaisecostumaseutilizarvaloresentre
0,1 e 0,5. Altas taxas de momento podem fazer com que o algoritmo de
treinamentopassepelomnimoglobal, prejudicandootreinamento,conforme
mostradopelafigura13.
Figura12Altataxademomentopodeprejudicartreinamento.
2.6PERCEPTRONDEMLTIPLASCAMADAS
2.6.1Histrico
Em1969,MinskyePapertprovaramqueoperceptronsimples(deuma
camada)scapazderesolverproblemaslinearmenteseparveis,logoques
consegue traar hiperplanos. Afirmaram tambmque por mais que j fosse
provadoqueotreinamentodeperceptronsimplesconverge,omesmonoocorre
pararedesperceptrondemaisdeumacamada.Essetrabalhoteverepercusso
negativaedesanimouospesquisadoresacontinuarnessarea.Contudo,alguns
pesquisadores continuaram com seus trabalhos e mostraram mais tarde que
32
-
MinskyePapertforampessimistas[5].
Em 1974, Paul Werbos props o algoritmo backpropagation, porm
somenteem1986oalgoritmoganhoureconhecimentoatravsdotrabalhode
DavidE.Rumelhart,GeoffreyE.HintoneRonaldJ.Williams.Acriaodesse
algoritmomarcouaretomadanosestudosemRNAs[5].
2.6.2RedesdeNeurnios
As Redes de neurnios so arquiteturas onde vrios neurnios esto
conectadosentresi.Asligaesentreosneurniossochamadasdesinapses
quetransferemasadadeumneurnioentradadoneurnioseguinte.Possuem
asmesmasqualidadesdeumnerniosimples,pormsomaispoderosasemais
eficientespodendoaproximarfunescomplexas[6].
2.6.3Topologias
Existemtrstiposprincipaisdearquitetura,sendoelas:
Feedforwarddenicacamada;
Feedforwarddemltiplascamadas;
Redesrecorrentes.
As redes Feedforward, socaracterizadas pelo seu funcionamento de
alimentaoparafrente,ouseja,nenhumasadadeumneurniovoltaparasua
entradaouparaaentradadeneurniosanteriores.Podempossuirumaoumais
camadassendoaprimeirachamadadecamadadeentrada,asseguintessoas
intermedirias(tambmchamadasdecamadasescondidas)eltimaacamadade
33
-
sada.interessanteressaltarque,diferentedoperceptronsimples,aredepode
terumvetordevaloresdesada,logoqueformadadevriosneurnios.
Figura13NomenclaturaparaascamadasdasRedesdeNeurnios.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
Ofuncionamento simples. Inicialmente, soapresentadasosvalores
para os neurnios da camada de entrada (neurnios sensoriais). Esses
simplesmenterepassamainformaoparaosneurniosdacamadaescondida,
queirodefatoprocessaraentrada.Assim,paracadacamadaescondida,os
valoressoreprocessadoseenviadosparaprximacamada.Seestaforaltima
camada, entoser realizadooltimoprocessamentoequeresultar emum
vetordesadasdetamanhoigualaonmerodeneurniosdaltimacamada.
Paraasredesfeedforwarddenicacamada,osdadossoprocessadossomente
umavezresultamnovetorderespostas.
34
-
Figura14Redefeedforwarddenicacamada.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
Figura15Redefeedforwarddemltiplascamadas.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
Asredesfeedforwarddemltiplascamadas,tambmconhecidascomo
perceptrondemltiplascamadas(doinglsMultiLayerPerceptronMLP),so
asmaisconhecidasemaisutilizadas.Podemterqualquernmerodecamadas
escondidas. Entretanto, segundoCybenkon[8], umaredeMLPquecontenha
umacamadaescondidapodeaproximarqualquerfunomatemticacontnuae
sehouveremduascamadasescondidas,aredepodeaproximarqualquerfuno
35
-
contnuaoudescontnua. Assim,nosonecessriasmaisqueduascamadas
escondidaspararesolverumproblema.
Redes recorrentes [5], ao contrrio das redes feedforward, utilizama
sadadoneurniocomoentradadeneurniosdamesmacamadaoucamadas
anteriores.Existemvriastopologiasparaessetipoderede,pormnoobjeto
deestudodestetrabalho.
Figura16Exemploderederecorrente.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
2.7TREINAMENTODEREDESPERCEPTRON
2.7.1Introduo
Otreinamentodeumaredeneuralconsisteemtreinartodososneurnio
da mesmapara tentar aproximar a umadada funo, sendoconsideradosua
principalfuncionalidade[6].Esseprocessocaracterizadoportentarencontrar
36
-
osmelhorespesosparatodososneurniospodendoserfinalizadoquandoarede
provumaboageneralizao.
Existemvrios algoritmos de treinamento para vrios tipos de redes
neuraisdiferenciandoapenasemcomoseroatualizadosospesos.Sendoassim,
deformagenrica,oalgoritmodetreinamentonadamaisdoqueabuscapelos
pesoscorretos.
2.7.2TiposdeTreinamento
Existemtrstiposprincipaisdetreinamento[6],sendoeles:
supervisionado;
nosupervisionado;
comreforo.
Noaprendizadosupervisionadoexisteopapeldoprofessor,queconhece
asrespostas.Paraoproblemadeclassificaodediasdesolechuvapropostona
introduo da seo 2.4, o professor conhece todos os pares de entrada
(temperaturaepresso)esuasrespectivassadas.Eleresponsvelemguiaro
aprendizado,corrigindoospesosseestesestiveremerrados.
37
-
Figura17Aprendizadosupervisionado.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
Na figura 18, podese observar que o ambiente fornece os dados
conhecidos (conjunto de treinamento). Cada amostra desse conjunto
apresentadaaoprofessor,queconhecearesposta,eparaosistemaquedeseja
aprender.Arespostadosistemadeaprendizadocomparadacomasadado
professoresehouverdivergncia,lanadoumsinaldeerroparaosistemade
aprendizadoqueatualizaseuspesos.Istoocorreatqueoerrosejaconsiderado
tolervelouatatingirnmeromximodepocasdetreinamento[6].
Esse tipode treinamento utilizado quandose temmuitos dados de
treinamentoeseconheceseusvaloresdesada,porm,existemsituaesonde
noseconheceessesvalores,logonohopapeldoprofessor.Paraessecaso
utilizado o aprendizado no supervisionado. O funcionamento deste tipo de
aprendizadorealizadoatravsdaapresentaodosdadosdoambienteeaRNA
aprendeadisposiodosdados.
Figura18Aprendizadonosupervisionado.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
38
-
O aprendizado no supervisionado [5] aplicado principalmente a
problemasondesedesejaextrairinformaesestatstica,aindadesconhecidas,
relacionadoaosdados,sendotilparaproblemasdeclassificao.
Existe um terceiro tipo de aprendizado chamado de aprendizado por
reforo que muitas vezes considerado na literatura como um subtipo do
aprendizadosupervisionado.Nesteesquemanoexisteopapeldoprofessor,mas
sim o papel de um crtico que valida a sada do sistema de aprendizado
informandoseestboaouruim[5].
Segundo[9], se a ao tomadapelosistemadeaprendizado for boa,
entoosistematendeafortalecerestao,casocontrrio,osistematendea
enfraquecer e buscar novas solues. Esse tipo de aprendizado utilizado
principalmenteemsistemasondepermitidoquehajamerros.
Figura19Aprendizadocomreforo.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
2.7.3Treinamentoparaperceptrondemltiplascamadas
O funcionamento do algoritmo de treinamento de MLPs,
Backpropagation, composto por duas etapas. A primeira, chamada de
propagao(forward),caracterizadapelaapresentaodosdadosredeque
processa os dados e emite uma sada. A segunda etapa, chamada de
39
-
retropropagao (backward), realiza a comparao da sada obtida com a
desejada[6]. Sehouvererro, ele retropropagadodacamadadesadaat a
camadadeentrada,fazendocomquecadaneurnioatualizeseuspesos.Esse
processorepetidoatqueoerrosejamenorouigualaovalordetolernciaou
quandoonmerodepocasmximodesejadoforatingido.
Figura20FasesdoalgoritmosBackpropagation.Fonte:SlidesdeauladadisciplinadeRNAUFLA,2009[6]
Assim,oalgoritmoBackpropagation,podeserdescritoresumidamente
atravsdopseudocdigocontidonafigura22.
Inicializapesos(geralmentedeformarandmica)faa
Paracadaamostra"a"doconjuntodetreinamentos=sada_da_rede(RNA,a);t=sada_do_professos(a);erro=ts;Calcula,atravsdaregradelta,ospesosdosneurniosdascamadasescondidas;Calcula,atravsdaregradelta,ospesosdosneurniosdacamadadeentrada;AtualizaospesosdaRNA;
fimdapocaat quetodososexemplosestejamsendoclassificadoscorretamenteouatinjacritriodeparada;
Figura21AlgoritmoBackpropagation
40
-
OalgoritmoBackpropagationutilizaosmesmoparmetrosutilizadosno
treinamento do perceptron simples. So eles: taxa de aprendizado, bias,
momento,nmeromximodepocaseerrodetolerncia,sendoosdoisltimos
utilizadoscomocritriodeparadadoalgoritmo.
2.7.4Definiesdearquiteturaeparmetros
Umadasprincipaisquestesquesurgemdurantea implementaode
umaRNAcomrelaoaonmerodeneurniosnascamadasescondidas.Esse
problema geralmente no ocorre para a camada de entrada pois sabemos o
nmerodecaractersticasquecompemasamostrasdoconjuntodetreinamento.
Omesmono ocorre para a camada de sada pois conhecemos o resultado
esperado para o tipo de problema em questo. Assim, o problema est na
definio da quantidade de neurnios que ir melhor aproximar a funo
desejada.
Onmerodeneurniosdascamadasescondidas definidodurantea
construodarede,porm,noexisteumaformadesaberexatamentequantos
neurniossonecessrios.Asoluoparaesseproblemaemprica,ouseja,
testesdevemserfeitostreinandoredesdevriastopologiasecomparandosuas
sadasafimdeobtermelhorgeneralizao.
Omesmoproblemaocorreparaosparmetrosdetreinamento.Costuma
seutilizarfaixasdevaloresparaataxadeaprendizadoeparaomomento.Porm
no se sabe uma forma de obter os parmetros que treinarama RNAmais
rapidamente. Da mesma forma, so necessrios testes com diferentes
combinaesdeparmetrosafimdeminimizarotempodeaprendizado.
41
-
2.8TRABALHOSCORRELATOS
UmdosprimeirostrabalhosfoideKimotoetal [11]queutilizouRNA
paratentarpreverondicedabolsadevaloresdeTquio.Maistarde,Mizunoet
al[12]utilizounovamenteRNAparatentarpreversinaisdecompraevendade
umpapel.Phuaetal [13] utilizouRNAjuntamentecom algoritmoGentico1
para tentar prever a tendncia do mercado. Lee [14] utilizou sistemas
especialistasparatreinaromodeloareconhecerpadresdecandlesticks.
OtrabalhodeLee[14]apresentouumgrandeproblemanomomentode
treinamento. O aprendizado foi limitado ao especialista que determinou os
padresdeCandlesticks,ouseja,nenhumnovopadronotado.
1 Modelocomputacionalbaseadonocomportamentoevolutivobiolgico.
42
-
3.METODOLOGIA
3.1INTRODUO
Neste Captulosoapresentadosos mtodose as ferramentas usadospara o
desenvolvimentodo sistemaproposto.Afigura22aseguir,correspondeaum
fluxogramaquemostratodasasetapasdosistemaepermiteterumavisogeral
dofuncionamentodomesmo.
Figura22Fluxogramadefuncionamentodosistema
Inicialmente,oparserrealizaoprocessamentodassrieshistricasde
preos,utilizandoasconfiguraesdousurioparaclassificarcadajanelade
ParserDados
Histricos
ConjuntodeTreinamento
RNA
Configuraesdousurio
Compra Venda Permanncia
-
tempo como padres de compra, venda ou permanncia de uma papel. Ao
mesmotempo,oparsergravaemumarquivotextocadajanelaanalisadaeseu
respectivortulo.Essearquivoentousadocomoconjuntodetreinamentopara
aRNA.Apsaetapadetreinamento,aRNApodegeneralizaroconhecimento
obtido classificando novos padres que no faziam parte do conjunto de
treinamento.
3.2OPARSER
3.2.1Processamento
Como citado na introduo, o parser tem a funo de processar os
arquivosdepreos,classificandoasjanelasdetempo.Paraisso,estabeleceuse
quecadajaneladetempodeveriacontercincodias.Essaescolhafoifeitadevido
aofato de queos padresconhecidos emgrficosde candlesticks possuem
tamanhomximodecincodias.
Ofuncionamentodoparserconsisteumextrairosvaloresdeabertura,
mximo, mnimo e fechamento dos arquivos histricos obtidos no site da
BOVESPA [17]. Este arquivo possui vrias informaes, e nesse trabalho
somenteasinformaesnecessriasparamontaroscandlesforamextradas.
O arquivos histricos disponibilizados gratuitamente pela BOVESPA
possuemformatotxtecontmtodasastransaesocorridasaolongodeum
ano. A interpretaodeste arquivo realizada segundo as determinaes da
BOVESPAeasinformaesteisparaestetrabalhosoextradasdeacordocom
atabela1.
44
-
Tabela1Interpretaodoarquivodehistricodepreos
Informao Seqnciade
Caracteres
Casasdecimais
CdigodaAo
12a23
Abertura 56a66 67a68
Mximo 69a79 80a81
Mnimo 82a92 93a94
Fechamento 108a118 119a120
Cadalinhadoarquivodehistricodepreoscorrespondesinformaes
relativasaumdadoativoduranteumdia.AcolunaSeqenciadeCaracteres,
da tabela 1, informa o intervalo de caracteres da linha, que corresponde a
informaodesejada.Se,estevalorreferenteumdadopreo,acolunaCasas
decimais informa a seqncia de caracteres que correspondem as casas
decimaisparacomporovalordopreo.
Assim,cadalinhalidaeverificaseseoseucdigocorrespondeao
desejadopelousurio.Casoissoocorra,esse candle entoarmazenadoem
memria, segundo a ordem que foi lido. O perodo desejado para esse
processamentoinformadopelousurio.
3.2.2Rotulao
Aps o processamento dos arquivos histricos e armazenamento em
memriados candles desejados,realizadaaetapaderotulao. Essaetapa
consiste em processar janelas de tempo de cinco dias a partir dos candles
45
-
obtidos.
Para cada janela de tempo, calculase o ndice estocstico utilizando
como faixa de permanncia os valores entre 15% e 85%, ou seja, valores
menoresque15%serorotuladoscomocompra,valoressuperioresa85%sero
rotuladoscomovendaedentrodessafaixaserorotuladoscomopermannciade
estadodopapel.
3.2.3Armazenamento
Aps a da fase de rotulamento, cada janela de tempo gravada em
arquivotexto(formato.txt)seguindoaordemdedisposiodoscandles.So
salvos todososquatrovaloresdecada candle. Cadapadrocontmportanto
vintevalorespois,cada janelaformadaporcincodias.Almdo candle, o
rtulotambmgravado.Aordememqueos candles eortulososalvos
ilustradanafigura23.
Figura23Representaodajaneladetemporotuladasalvaemarquivo.
Ortulocompostoportrsvaloresesorepresentadosseguindoas
possveissadasdaRNA2sendoilustradasnatabela2.
2 AspossveissadasdaRNAserodetalhadasnaseo3.3.1
46
-
Tabela2Rtuloparapossveisclassificaodejaneladetempo.
Classificao Rtulo
Compra 1;0;0
Venda 0;1;0
Permanncia 0;0;13.2.4Normalizao
Antesderealizaroprocessodearmazenamentodospadresnoarquivo
texto,feitaanormalizaodecadajaneladetempo.Issoconsisteemrealizar
umaoperaomatemticasobreosdadosafimderepresentlosutilizando a
mesmafaixadevalores.
Optouse por realizar a diviso de todos os preos que compe os
candles dajanelapelomaiorvalor.Issopossibilitoutransformarospreosem
valoresreaisentre0e1.Anormalizaodospreosfoirealizadaparapadronizar
osvaloresdeentradadaRNAfacilitandooaprendizadodamesma.
3.2.5Funcionamento
Oprocessodefuncionamentocompletodoparserpodeserdescritopelos
seguintespassos:
1Usurio informa perodo histrico para que o conjunto de
treinamentosejagerado;
2Usurio informa o conjunto de cdigos de papis que sero
processados;
3Oparser,ltodosarquivosdepreoearmazenaemmemriaos
47
-
candlesrelevantes;
4Rotulaajanela;
4.1Obtmajaneladetempo;
4.2Obtmmaiorvalordepreodajanela;
4.3Normaliza
4.4Calculaseondiceestocsticoparaajanela;
4.5Classificasegundooestocstico;
5Salvaemarquivoajanelanormalizadajuntamentecomseurtulo
segundoaclassificaodatabela2;
6Repete os passos 4 e 5 at que todas as janelas tenham sido
rotuladas.
7Oconjuntodetreinamentogerado.
3.3REDEMLP
3.3.1Topologia
A topologia da rede perceptron de mltiplas camadas utilizada neste
trabalhopossui vinte unidades deentrada, quecorrespondemaos valores de
preoscontidonajaneladetempo,umacamadaescondidadeneurnioseuma
camadadesada.
Assinapses que ligamas camadassocompletas, ouseja, todosos
neurnios deumacamadaestoligadoscomtodosos neurniosdaprxima
camada.AestruturadaRNApodeserobservadanafigura24.
48
-
Figura24EstruturadaRNAutilizada.
AcamadadesadadaRNApossuitrsneurniosquecorrespondemaos
possveis rtulos da janela de tempo. O primeiro neurnio (sada y1),
responsvel por detectar padres de compra, o segundo (sada y2) detecta
padresdevendaeoterceiro(saday3),sinalizapermannciadopapel.
Onmerodeneurniosdacamadaescondidainformadopelousurio
antesderealizarotreinamento.
3.3.2Funodeativao
Foi utilizada a funo de ativao sigmoidal para os neurnios das
camadasescondidaedesada.Asadalineardosneurniosdacamadadesada
portanto psprocessada por uma funo para que seja transformada em
valoresbinrios. Essafuno3 transformaasadadoneurnioem1casoseu
valorlinearsejamaiorouiguala0.5ouem0,casocontrrio.
3 Funoquedeterminaosrtulosdeclassificaoparaatabela2
49
.
.
.
x2
x20
x1
x3
Camadadeentrada
Camadadesada
y1
y2
y3
Camadaescondida
-
3.3.3Definiodeparmetros
Comovistoanteriormente,algunsparmetrosdetreinamentodevemser
definidos. Para amaioria deles, o usurio deve informar, antes de realizar o
treinamento, as configuraes desejadas. So elas: taxa de aprendizado,
momentoenmeromximodepocas.
3.3.4Algoritmodetreinamento
OalgoritmoutilizadoparaotreinamentodaRNAoBackpropagation
sendoimplementandopelo framework JOONE4.Paracadalinhadoarquivodo
conjuntodetreinamento,utilizaseosvinteprimeirosvalores(separadospor;)
comoentradadaRNA.Asada comparadacomaclassificaocontidano
arquivo(ostrsltimosvaloresdalinhaatual)e,emcasodeerro,atualizaseos
pesossegundooalgoritmobackpropagation.
Umapocade treinamento finalizadaquandooalgoritmoprocessa
todosospadres.Ocritriodeparadaadotadofoionmeromximodepocas,
quedeveserpassadopelousurio.
3.3.5Validao
Utilizando a mesma metodologia para a gerao do conjunto de
treinamento, foi gerado um conjunto para realizar a validao da RNA. O
procedimentodevalidaosegueosseguintespassos:
1Criaseumconjuntodevalidao;
2ApresentaseesseconjuntoumaRNAjtreinada;
4 Serintroduzidonaseo3.3.2.
50
-
3Paracadavalordesseconjunto;
3.1Compara sada da RNA com a contida no conjunto de
validao;
3.2Sesoiguais,incrementacontadordeacertos;
3.3Casocontrrio,incrementacontadordeerros;
4Calculaporcentagemdeacerto;
3.4TECNOLOGIA
3.4.1Implementao
ParaaimplementaodoparseredaRNA,utilizousealinguagemde
programaoJavacomoparadigmadeorientaoaobjetos.Aversodokitde
desenvolvimentojavadaSunMycrosystems[18](emingls,SunJavaDeveloper
KitSunJDK)a1.6.Utilizousetambmcomoambientededesenvolvimento
integrado(emingls,IntegratedDevelopmentEnvironmentIDE)oNetbeans
verso 6.5.1 [19]. Utilizouse tambmum framework de cdigo aberto para
manipulaodeRNAs,oJOONE[20].
3.4.2FrameworkJOONE
Em ingls, Java Object Oriented Neural Engine JOONE, um
frameworkparaconstruir, treinarevalidarRNAutilizandoatecnologiaJava.
Escolheusesuautilizaopelafacilidadedeimplementao,porserrobusto,de
cdigo aberto e principalmente por atender todas necessidades provenientes
51
-
destetrabalho.
Entresuasprincipaisfuncionalidades,podemoscitar:
Aprendizadosupervisionado:
RedesFeedForward;
Redesrecursivas;
AlgoritmoBackpropagationclssico;
AlgoritmoBackpropagationcomvariaes;
Aprendizadonosupervisionado;
Possuiambientegrficoondesepodecriar,treinaretestarRNAsde
formavisual;
Umexemplo5 interessanteretiradodadocumentaodo framework o
cdigoaseguirquecria,treinaevalidaumaRNAutilizandoapenastrslinhas
decdigo:
//CriaumaredeMLPcom3camadaspossuindodoisneurniosnas//camadasdeentradaeescondida,eumneurniodesadautilizando//funologsticacomoativaoNeuralNetnnet=JooneTools.create_standard(newint[]{2,2,1},
JooneTools.LOGISTIC);//TreinaaRNApor5000pocasouatqueoerrosejamenorque//0.01.Bastaapenasinformarovetordeentradaeovetordesejado.doublermse=JooneTools.train(nnet,inputArray,desiredArray,5000,
0.01,0,null,false);//RealizavalidaodaRNApassandoumvetordetestedouble[]output=JooneTools.interrogate(nnet,testArray);
Figura25Criao,treinamentoevalidaodeumaRNAutilizandoframeworkJOONE
5 NoanexoBencontraseoexemplodeimplementaoumaRNApararesolveroproblemadaportalgicaOUexclusivo,utilizandooJOONE.
52
-
RESULTADOS
4.1TradingSystem
OTradingSystemdesenvolvidocontmoparserparaprocessamentodosdados
histricosetodaapartequeenvolveRNA.Atelaprincipaldestesoftwarepode
serobservadanafigura25.
Ospassosparageraroconjuntodetreinamentoso:
1.Configurar a pasta onde se encontram os arquivos de dados
histricos.Paraisto,bastaclicarnoprimeiroboto...quese
encontranacaixadegrupoCaminhosdeArquivo,aoladoda
caixadeediodaconfiguraodeHistricodepreos;
2.Usurio deve informar suas configuraes para o ano inicial e
final,sendoestesoperodooqualserprocessadoosdados.
3.Usurio tambmdeve informaros nomesdos papis desejados,
separados por vrgula, na caixa de edio Nomes que se
encontranogrupoPapel;
4.ClicarnobotoGerarConjunto.
-
Figura26Telaprincipaldosoftwaredesenvolvido.
54
-
OspassosparatreinarumaRNAso:
1.Configurarapastaondesersalvooarquivodetreinamento.Para
isto,bastaclicarnosegundoboto...queseencontranacaixa
degrupoCaminhosdeArquivo,aoladodacaixadeedioda
configuraodeConjuntodeTreinamento;
2.Ousuriodeveinformartodososparmetroscontidosnogrupo
Treinamento;
3.ClicarnobotoTreinar;
ParasevalidaraRNAtreinada,bastarealizarosseguintespassos:
1.Gerarconjuntodevalidaoqualquer;
2.Configurarcaminhodoarquivogeradoatravsdoboto...que
seencontranogrupoCaminhosdeArquivos,aoladodacaixa
deediodaconfiguraodeConjuntodeTeste;
3.ClicarnobotoTestareobservarataxadeerro.
4.2Testes
Paragerar o conjuntode treinamento, foramutilizadosos papis que
obtiverammaiorvolumedenegociaonoperodode2000at2006.Noforam
utilizadas negociaes muitoantigas, pois ao longodotempo, algunspapis
mudaramdenomeouforampoucorepresentativosdurantealgumperodo.Os
ativosutilizadossoapresentadosnatabela3.
55
-
Tabela3Aesprocessadas
Ao Cdigo
AMBEV AMBV4
ARACRUZ ARCZ6
CEMIG CMIG3
ITAUBANCO ITAU4
Utilizouse o conjunto de treinamento gerado para treinar diferentes
RNAscomnmerosdiferentesdeneurniosnacamadaescondida.Almdisso,
para a mesma topologia de RNA, foram realizados testes para diferentes
parmetrosdetreinamento.Osresultadosobtidossoilustradosnatabela4.
Tabela4ResultadosparadiferentestopologiasdeRNAediferentesparmetros
Neurniosna
camadaescondida
TaxadeAprendiza
doMomento pocasdeTreinamento
ErrodeTreinamento
Acurciaparaconjuntode
teste
1 0,2 0,1 100 43,05% 56,00%
1 0,5 0,3 100 45,43% 56,00%
1 0,8 0,5 100 43,72% 56,00%
5 0,2 0,1 100 24,74% 97,00%
5 0,5 0,3 100 24,71% 93,00%
5 0,8 0,5 100 25,96% 93,00%
10 0,2 0,1 100 23,22% 93,00%
10 0,5 0,3 100 23,44% 97,00%
10 0,8 0,5 100 25,18% 93,00%
15 0,2 0,1 100 22,94% 94,00%
15 0,5 0,3 100 23,29% 93,00%
56
-
15 0,8 0,5 100 24,03% 92,00%
20 0,2 0,1 100 22,88% 92,00%
20 0,5 0,3 100 22,71% 94,00%
20 0,8 0,5 100 24,21% 94,00%
Utilizouse o perodo de 2006 at 2007para se gerar o conjunto de
validaoetestaracapacidadedegeneralizaodaRNA.
57
-
5.CONCLUSOETRABALHOSFUTUROS
Observando os objetivos propostos no inicio do trabalho e os resultados
alcanados, concluise que o trading system desenvolvido atendeu s
espectativas,podendoserutilizadocomoferramentadeinvestimentoembolsas
devalores.
Osmelhoresresultadosforamobservadosquandoutilizousededeza
vinteneurniosnacamadaescondidadaRNA,taxadeaprendizadoiguala0,2e
0,1paraomomento.Estacombinaodeparmetromostrouseeficientemesmo
paraotreinamentocompoucaspocas.
Algunspontospositivosdestetradingsystemso:
BonsresultadosparaRNAbemtreinadas;
Anlise Tcnica realizada de forma automtica, sendo
desnecessrio realizar clculos de ndices todos os dias,
eliminandootrabalhorepetitivo;
Ageneralizao permite que uma RNA, depois de treinada,
apontereversesdetendnciasparaqualquerativo;
O investidor no precisa conhecer como funciona a anlise
tcnicaparaoperarosistema;
Ospontosnegativos:
Ousurio deve possuir algumconhecimento de RNAs. Seria
interessanteseofuncionamentodosoftwarefossetransparente
aousurio,ouseja,oprpriosoftwaredeterminasseosmelhores
parmetrosdetreinamentodaRNA;
-
Muitostestesdevemserrealizadosparasedescobrirmelhores
parmetros de treinamento. Assim, se perde muito tempo
tentandoencontrlos,logoqueotreinamentoumprocessode
altocustocomputacional.
Muitas melhorias podemser adicionadas a este trabalhoa fimde se
construirumtradingsystemcommaisrecursos.Asprincipaisso:
Utilizaroutrosndicesdaanalisetcnica.Seriainteressanteseo
investidor pudesse escolher o ndice que deseja escolher at
mesmoparacompararqualdelesclassificamelhorospadresde
reversoepermannciadeativo;
Utilizar outros algoritmos de treinamento e previso, sendo
possvel descobrir qual melhor tcnica de aprendizado de
mquinaoutcnicadepreviso;
Realizarperiodicamentedownloaddascotaesdepreosdirio
einformaraoinvestidorquaisdecisesdevemsertomadas;
As configuraes dos parmetros de treinamento da RNA
poderiamsercamufladadetalformaqueumusurioleigoem
RNApossaoperarosistema;
Poderiamexistirconfiguraesquantoaoperfildosinvestidores,
fazendocomqueo tradingsystem seja mais ousadooumais
cuidadosoemsuasdecises;
Desenvolverdiferentesinterfaces,permitindoqueosinvestidores
acessemosistemaviainternetousistemasmveis;
Proverinformaesemtemporealdeativosnabolsadevalores,
ondeusuriopoderiaacompanharcomportamentodabolsasde
59
-
valores.
SeriainteressanteutilizarRNAparacatalogarnovospadresnos
grficosdecandlesticks,contribuindocomaanlisetcnica.
De forma geral, foi possvel concluir que RNA uma poderosa
ferramenta para resoluo de problemas de previso onde esto disponveis
dadoshistricos, sendopossvel obter bons resultados, se utilizadade forma
correta.
60
-
6.REFERNCIASBIBLIOGRFICAS
[1]NELOGICA,novembro2008.http://www.nelogica.com
[2]C.A.Debastiani.Candlestick.Novatec,2007.
[3]C.A.Debastiani. AnliseTcnicadeAesIdentificandoOportunidades decompraevenda.Novatec,2008.
[4]CONEXODINHEIRO,fevereiro2009.http://www.conexaodinheiro.com
[5]A.P.Braga,T.B.Lurdemir,andA.C.P.L.F.Carvalho. RedesNeuraisArtificiais:teoriaseaplicaes.LTC,2000.
[6] Lacerda, W.S. NotasdeauladadisciplinadeRedesNeuraisArtificiais.2009
[7]F.Rosenblatt.Theperceptron:Aprobabilistcmodelforinformationstorageandorganizationinthebrain.Psychol.Rev.,65:386408,1958.
[8] G. Cybenkon. Approximation by superpositions of a sigmoid function.MathematicsofControl,SignalsandSystems,2:303314,1989
[10]R. S. Sutton, A.G.BartoandR. J. Willians. Reinforcementlearningisdirectadaptiveoptimalcontrol.In. Proc.oftheAmericanControlConference,pp.21432146,1991.
[11]Kimoto,T.,Asakawa,K.,Yoda,M.,andTakeoka,M.(1990),Stockmarketprediction system with modular neural network, in Proceedings of theInternationalJointConferenceonNeuralNetworks,16.
[12]Mizuno,H.,Kosaka,M.,Yajima,H.andKomodaN.(1998),ApplicationofNeuralNetworktoTechnicalAnalysis ofStockMarketPrediction, StudiesinInformaticandControl,Vol.7,No.3,pp.111120.
[13] Phua, P.K.H. Ming, D., Lin, W. (2000), Neural Network With GeneticAlgorithmsForStocksPrediction,FifthConferenceoftheAssociationofAsian
-
PacificOperationsResearchSocieties,5th7thJuly,Singapore.
[14]ChiungHonLeonLee,WenSungChen,andAlanLiu.Animplementationofknowledgebasedpatternrecognitionforfinicialprediction.CyberneticsandIntelligentSystemsIEEEConference,1:218223,2004.
[15]SimonHaykin.RedesNeurais:Princpioeprtica.Bookman,2001.
[16]GRAFBOLSA,maio2009.http://www.grafbolsa.com/
[17]BOVESPA,outubro2008.http://www.bovespa.com.br.
[18]SUNMICROSYSTEMS,maio2009.http://www.sun.com/
[19]NETBEANS,maio2009,http://www.netbeans.org/
[20]JOONE,maio2009,www.jooneworld.com/
-
ANEXOA
SCRIPTDOALGORTMODETREINAMENTODOPERCETRON
A seguir, encontrase a implementao do algoritmo de treinamento do
perceptronutilizandoalinguagemdoScilab.Afunotreina_perceptronrecebe
ovetordepesosinicial(w),obiasinicial(b),osdadosdetreinamento(xin),as
sadasesperadasparaaentrada(yin),onmeromximodepocas(maxepocas)
eerrodetolerncia.Retornaovetordepesos,obiaseoerrodaltimapoca.
Logoapsaimplementaodafuno,apresentaseaoperceptroncomo
dadosdetreinamentoatabelaverdadedaportalgicaANDeutilizaafunode
treinamentoparatreinarneurnioaclassificarparesdevaloresbinrios.
function[w,b,erroepoca]=treina_perceptron(w,b,xin,yin,alfa,maxepocas,tol)//contadordepocast=1;//NumerodeentradasNsize=size(xin);//incializaerrocominfinitoE=9999;//enquantonopercorrertodasasepocaseoErrofoimaiorqueatolernciawhile((ttol))
//paracadapadrodeentradafori=1:Nsize(2)
//guardasaday(1,i)=yperceptron(xin(:,i),w,b);//guardaerrodasaida=desejadoencontradoerroepoca(1,i)=yin(1,i)y(1,i);//atualizavetordepesosw=w+(alfa*erroepoca(1,i)*xin(:,i)');
-
//atualizaobiasb=b+alfa*erroepoca(1,i);
end;//elevaerrosaoquadradoparaficarempositivosesomaE=sum(erroepoca^2);//passapraprximapocat=t+1;
end;endfunction
//padresdeentradaxin=[0101;0011];//saidasesperadasyin=[0001];//taxadeaprendizadoalfa=1.2;//nmeromximodepocasmaxepocas=10;//tolernciaparaoerrotol=0.001;//iniciapesos(costumaseutilizarvaloresrandmicos)w=[1.20.8];//iniciabias(costumaseutilizarvalorrandmico)b=0.3;//chamafunodetreinamento[w,b,e]=treina_perceptron(w,b,xin,yin,alfa,maxepocas,tol)
64
-
ANEXOB
EXEMPLOJOONEPARAOPROBLEMADAPORTALGICAXOR
AclasseaseguirrealizaotreinamentodeRNApararesolveroproblema
da porta lgica XOR, utilizandoo framework de RNAJOONE. Primeira,
necessriofazerodownloaddoenginenoJOONEnosite[20]doframeworke
adicionaraoprojeto.Paraexecutaroprogramabastaalterarosdoisatributos,
inputDataeoutputFile,comocaminhodosarquivosdoconjuntodetreinamento
eerro,respectivamenteecompilar.
/**XOR.java*SampleclasstodemostratetheuseoftheJoone'scoreengine*seetheDeveloperGuideformoredetails**VersoadaptadaaoportugusporLeonardoNascimentoFerreira*/
/**JOONEJavaObjectOrientedNeuralEngine*http://joone.sourceforge.net*/
importjava.io.File;importorg.joone.engine.*;importorg.joone.engine.learning.*;importorg.joone.io.*;importorg.joone.net.NeuralNet;
publicclassXORimplementsNeuralNetListener{//pathdoarquivocontendooconjuntodetreinamentoprivatestaticStringinputData="/media/sda1/Instaladores/"+"FrameworkJava/JOONE/jooneengine2.0.0RC1/samples/engine/xor/xor.txt";//pathdoarquivodesaidacontendoevoluodoerrodetreinamentoprivatestaticStringoutputFile="/media/sda1/Instaladores/"+"FrameworkJava/JOONE/jooneengine2.0.0RC1/samples/engine/xor/error.txt";
-
/***Construtordaclasse*/publicXOR(){}/***Mtodoprincipal*@paramargsosargumentosdelinhadecomando*/publicstaticvoidmain(Stringargs[]){//criaobjetodotipoXORXORxor=newXOR();//criaRNApassandopathdoconjuntodetreinamentoepathdoarquivo//desada,queirconteraevoluodoerroxor.Go(inputData,outputFile);}
/***MetodoquecriaetreinaRNA*@paraminputFile*@paramoutputFile*/publicvoidGo(StringinputFile,StringoutputFile){//Inicialmente,criatrscamadasLinearLayerinput=newLinearLayer();SigmoidLayerhidden=newSigmoidLayer();SigmoidLayeroutput=newSigmoidLayer();//danomescamadasinput.setLayerName("input");hidden.setLayerName("hidden");output.setLayerName("output");//configuraonmerodeneurniosquecadacamadairpossuirinput.setRows(2);hidden.setRows(3);output.setRows(1);//CriasinapsequeirligarcamadadeentradacomcamadaescondidaFullSynapsesynapse_IH=newFullSynapse();//CriasinapsequeirligarcamadaescondidacomcamadadesadaFullSynapsesynapse_HO=newFullSynapse();
66
-
//danomessinapsessynapse_IH.setName("IH");synapse_HO.setName("HO");//conectaascamadasdeentradaeescondidainput.addOutputSynapse(synapse_IH);hidden.addInputSynapse(synapse_IH);//conectaacamadaescondidacomacamadadesadahidden.addOutputSynapse(synapse_HO);output.addInputSynapse(synapse_HO);//CriaobjetodeleituradearquivoFileInputSynapseinputStream=newFileInputSynapse();//asduasprimeirascolunasdoarquivoiroconterospadresinputStream.setAdvancedColumnSelector("1,2");//associaaopathdoarquivoinputStream.setInputFile(newFile(inputFile));input.addInputSynapse(inputStream);//criaobjetoquequerepresentaoprofessorTeachingSynapsetrainer=newTeachingSynapse();//CriaobjetodeleituradearquivoFileInputSynapsesamples=newFileInputSynapse();samples.setInputFile(newFile(inputFile));//asadadesejadadospadresestonacoluna3samples.setAdvancedColumnSelector("3");//informaoprofessorqueassadasdesejadasestonaterceiracolunatrainer.setDesired(samples);//CriaobjetoqueirconteroerroFileOutputSynapseerror=newFileOutputSynapse();error.setFileName(outputFile);//informaaoprofessorqualseroarquivodeerrotrainer.addResultSynapse(error);//conectaoprofessorcamadadesadadaRNAoutput.addOutputSynapse(trainer);//CriaRNANeuralNetnnet=newNeuralNet();//inserecamadadeentradannet.addLayer(input,NeuralNet.INPUT_LAYER);//inserecamadaescondidannet.addLayer(hidden,NeuralNet.HIDDEN_LAYER);//inserecamadadesadannet.addLayer(output,NeuralNet.OUTPUT_LAYER);//indicaRNAseuprofessornnet.setTeacher(trainer);
67
-
//criamonitorqueirconfigurarparmetrosdeaprendizadoMonitormonitor=nnet.getMonitor();//configurataxadeaprendizadomonitor.setLearningRate(0.8);//configuramomentomonitor.setMomentum(0.3);//Aaplicaoregistraelamesmacomolistenerparareceber//notificaesdaRNAmonitor.addNeuralNetListener(this);//defineonmerodepadres(linhas)queseencontramnoconjuntode//treinamentomonitor.setTrainingPatterns(4);//defininmerodepocasmonitor.setTotCicles(2000);//sinalizaqueaRNAirsertreinadamonitor.setLearning(true);//iniciatreinamentonnet.go();}
/***Mtodoexecutadoquandotreinamentofinalizado*@parame*/publicvoidnetStopped(NeuralNetEvente){//informaquearedefinalizoutreinamentoSystem.out.println("Treinamentofinalizado!");}
/***Mtodoexecutadoquandoumapocatermina*@parame*/publicvoidcicleTerminated(NeuralNetEvente){
}
/***Mtodoexecutadoquandoiniciatreinamento*@parame*/publicvoidnetStarted(NeuralNetEvente){
68
-
//informausuriosobreiniciodotreinamentoSystem.out.println("Iniciandotreinamento...");}
/***Mtodoexecutadoquandooerrodetreinamentoalterado*@parame*/publicvoiderrorChanged(NeuralNetEvente){//obtmmonitordaRNAMonitormon=(Monitor)e.getSource();//acada200pocasif(mon.getCurrentCicle()%200==0)//informaaousurioonmerodepocasrestantesparaofimdo//treinamentoeerroSystem.out.println("Epocasparaofim:"+mon.getCurrentCicle()+"Errodetreinamento="+mon.getGlobalError());}
/***@parame*@paramerror*/publicvoidnetStoppedError(NeuralNetEvente,Stringerror){
}}
Oarquivo do conjunto de treinamento possui extenso .txt e deve
conteroseguintetexto:
0;0;0
1;0;1
0;1;1
1;1;0
69