13.07.2015 Views

Uma comparação entre a implementação de uma Rede Neural ...

Uma comparação entre a implementação de uma Rede Neural ...

Uma comparação entre a implementação de uma Rede Neural ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong><strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong> Induction Decision Tree(ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados bináriosCarolina Dorta 1 , Diego Cardona 11Escola Politécnica da USP - Av. Prof. Luciano Gualberto, travessa 3 nº 380,São Paulo - SP, Brasil[caroldorta, dacadas]@gmail.comResumo. Este artigo trata da <strong>comparação</strong> da <strong>implementação</strong> da classificação <strong>de</strong> umconjunto <strong>de</strong> dados binários utilizando dois algoritmos. O primeiro <strong>de</strong>les se trata <strong>de</strong><strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> <strong>de</strong> 1 camada (Perceptron). O outro se refere ao algoritmo InductionDecision Tree (ID3).Keywords: Perceptron, Re<strong>de</strong>s Neurais, ID3, Aprendizado Supervisionado.1 IntroduçãoOs dois métodos <strong>de</strong> aprendizado estudados no presente artigo têm <strong>uma</strong> característica emcomum: supervisionamento. Isso quer dizer que estes métodos apren<strong>de</strong>m através <strong>de</strong> umconjunto <strong>de</strong> exemplos que lhes são apresentados antes <strong>de</strong> eles atuarem <strong>de</strong> fato. Fazendoum paralelo com a forma através da qual os seres h<strong>uma</strong>nos apren<strong>de</strong>m, é possível notar queeste método é baseado na forma como os seres h<strong>uma</strong>nos apren<strong>de</strong>m através <strong>de</strong> experiênciase exemplos e são capazes <strong>de</strong> <strong>de</strong>sempenhar um papel satisfatório em situações que seassemelham a estas expostas por estes exemplos a posteriori. Este método se tornainteressante quando é necessário tomar <strong>de</strong>cisões em ambientes totalmente observáveis. Emambientes parcialmente observáveis o problema se torna mais difícil <strong>de</strong> ser resolvido,porque os efeitos imediatos po<strong>de</strong>m ser invisíveis (RUSSEL, 2003).2 ProblemáticaO seguinte exercício foi apresentado como motivação para este trabalho:Fig. 1. Apresentação do problema que motivou este trabalho.


2 <strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong>Induction Decision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários3 Perceptron3.1 Aspectos Conceituais3.1.1 Re<strong>de</strong>s NeuraisUm neurônio é um tipo <strong>de</strong> célula. Sua principal função é coletar, processar a disseminarsinais elétricos. Assim sendo, um cérebro é capaz <strong>de</strong> processar informações porque éformado por <strong>uma</strong> re<strong>de</strong> <strong>de</strong> muitos neurônios.Esta é a motivação por trás da mo<strong>de</strong>lagem <strong>de</strong> re<strong>de</strong>s neurais artificiais. A figura a seguirilustra a primeira concepção <strong>de</strong>ste mo<strong>de</strong>lo, realizada por McCullock e Pitts em 1943.Fig. 2.Um simples mo<strong>de</strong>lo matemático para um neurônio. A soma pon<strong>de</strong>rada <strong>de</strong> cada a(saída <strong>de</strong> ativação das unida<strong>de</strong>s anteriores) com W i,j <strong>de</strong>fine a saída <strong>de</strong> ativação da presenteunida<strong>de</strong>, e assim consecutivamente.Re<strong>de</strong>s neurais são compostas por unida<strong>de</strong>s, conectadas por links. A figura anteriorrepresenta <strong>uma</strong> unida<strong>de</strong> cujas setas <strong>de</strong> entradas representam links <strong>entre</strong> ela e as unida<strong>de</strong>sconectadas anteriormente a ela. Além disso há a representação <strong>de</strong> <strong>uma</strong> conexão <strong>de</strong> saída,que permite que os resultados da presente unida<strong>de</strong> sejam utilizados como entradas emoutras unida<strong>de</strong>s. Cada unida<strong>de</strong> tem pon<strong>de</strong>rações <strong>de</strong> consi<strong>de</strong>ração <strong>de</strong> suas entradas,representadas na figura por W i,j , ou seja, o peso da conexão <strong>de</strong> saída da unida<strong>de</strong> i napresente unida<strong>de</strong> j. Além disso, há <strong>uma</strong> função que <strong>de</strong>fine quando a presente unida<strong>de</strong>dispara um sinal em sua saída (ativa-se): = ( Wj, i aj A função <strong>de</strong> ativação g tem dois propósitos: primeiramente, ela garante que a unida<strong>de</strong>dispare (saída perto <strong>de</strong> +1) quando as entradas a<strong>de</strong>quadas foram fornecidas, e que quandoas entradas erradas foram fornecidas a saí<strong>de</strong> esteja <strong>de</strong>sativada (perto <strong>de</strong> 0). Além disso, ointeressante é que g seja não linear, ou então toda a re<strong>de</strong> neural se limita a <strong>uma</strong> simplesfunção linear. Duas possíveis escolhas para g são 1) a função threshold e 2) a funçãosigmoi<strong>de</strong> )


<strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong> InductionDecision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários 3Fig. 3. a) função threshold e b) função sigmoi<strong>de</strong>.3.1.2 PerceptronO Perceptron é <strong>uma</strong> re<strong>de</strong> neural <strong>de</strong> 1 nível alimentada <strong>de</strong> forma direta, ou seja, não háretroalimentação <strong>entre</strong> as unida<strong>de</strong>s.Perceptrons representam funções booleanas quando sua função <strong>de</strong> ativação é baseada nafunção thereshold. O a função threshold do Perceptron retorna 1 se a somapon<strong>de</strong>rada <strong>de</strong> suas entradas for positiva, e retorna 0 se essa soma for zero ou negativa. Issosignifica que as entradas são classificada em duas classes distintas, o que faz doPerceptron um separador linear.1 se Wj, i aj > 00 se Wj, i aj ≤ 0Fig. 4. a) função <strong>de</strong> ativação g do Perceptron3.2 ImplementaçãoHá duas rodadas <strong>de</strong> cálculo <strong>de</strong> erro para avaliar a condição <strong>de</strong> parada <strong>de</strong> ajuste dospesos. Basicamente, o algoritmo é o seguinte:Fig. 6. Algoritmo utilizado na classificação por Perceptron.


4 <strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong>Induction Decision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados bináriosO GlobalError equivale ao erro calculado para <strong>uma</strong> Época, ou seja, cada conjunto <strong>de</strong> 14micro-iterações na qual os 14 exemplos são utilizados para a calibração dos pesos.O LocalError é calculado como a diferença <strong>entre</strong> a some pon<strong>de</strong>rada das entradas e asaída fornecida no enunciado para aquele exemplo.A função g é a função threshold. Ela é calculada junto com as pon<strong>de</strong>rações, da seguinteforma:private static int Output(double[] weights, int x1, int x2,int x3, int x4, int x5, int x6){double sum = x1 * weights[0] + x2 * weights[1] +x3 * weights[2] + x4 * weights[3] + x5 * weights[4] + x6 *weights[5];}return (sum >= 0) ? 1 : 0;3.3 ResultadosPrimeiramente, os pesos finais obtidos com <strong>uma</strong> taxa <strong>de</strong> aprendizado igual a 1,0 éexibida na tabela abaixo:w1 3,04248806w2 -0,994107114w3 2,187279098w4 -2,965049837w5 -4,086652491w6 2,203299659Tab. 1. Pesos obtidos com <strong>uma</strong> taxa <strong>de</strong> aprendizado <strong>de</strong> 1,0.Cada macro-iteração, com 14 exemplos computados, é chamada <strong>de</strong> Época. Para 10000vezes que o algoritmo foi executado, foi obtida a convergência dos pesos <strong>de</strong> forma queGlobalError fosse zero nos seguintes número <strong>de</strong> Épocas:1500Quantida<strong>de</strong> <strong>de</strong> Épocas100050007 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25Fig. 7. Em 10000 vezes que o algoritmo foi executado, o número <strong>de</strong> vezes em que eleconvergiu por número <strong>de</strong> Épocas. Por exemplo, o algoritmo convergiu 1260 vezes em 17Épocas. A taxa <strong>de</strong> aprendizado utilizada foi <strong>de</strong> 1.


<strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong> InductionDecision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários 5Ou seja, temos que o algoritmo converge, em média, em aproximadamente 16 Épocasse a taxa <strong>de</strong> aprendizado é igual a 1.Além disso, há <strong>uma</strong> taxa <strong>de</strong> aprendizado relacionada à calibração dos pesos. Po<strong>de</strong>-seobservar que o número <strong>de</strong> Épocas que o algoritmo <strong>de</strong>mora para convergir <strong>de</strong>pen<strong>de</strong> da taxa<strong>de</strong> aprendizado na seguinte função:3020100Erro total final em função da taxa <strong>de</strong> aprendizado0 0.2 0.4 0.6 0.8 1 1.2Fig. 8. Para cada taxa <strong>de</strong> aprendizado <strong>de</strong> 0,1 a 1,0 com variação <strong>de</strong> 0,1, calculou-se asoma dos error totais finais obtidos para os 14 exemplos. Os resultados estão no gráficoacima.Abaixo é apresentado o resultado <strong>de</strong> <strong>uma</strong> análise na qual procurou-se saber se o número<strong>de</strong> vezes que os pesos eram atualizados variava com a taxa <strong>de</strong> aprendizado aplicada:600Número <strong>de</strong> vezes que os pesos são atualizados emfunção da taxa <strong>de</strong> aprendizado40020000 0.5 1 1.5 2 2.5Fig. 10. Número <strong>de</strong> vezes que os pesos foram atualizados em função da taxa <strong>de</strong>aprendizado aplicada.Conclui-se então que a variação na taxa <strong>de</strong> aprendizado não tem correlação forte com aquantida<strong>de</strong> <strong>de</strong> vezes que os pesos são atualizados.


6 <strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong>Induction Decision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários4 Induction Decision Tree (ID3)4.1 Aspectos ConceituaisConsi<strong>de</strong>re um conjunto <strong>de</strong> objetos que são <strong>de</strong>scritos em termos <strong>de</strong> <strong>uma</strong> coleção <strong>de</strong>atributos. Esses objetos po<strong>de</strong>m pertencer a diferentes classes. Cada atributo me<strong>de</strong> alg<strong>uma</strong>característica importante <strong>de</strong> um objeto.Agora consi<strong>de</strong>re um conjunto <strong>de</strong> treinamento, cuja classe <strong>de</strong> cada objeto é conhecida.Se o conjunto <strong>de</strong> treinamento contém dois objetos que têm valores idênticos para dadoatributo e mesmo assim pertencem a classes diferentes, é impossível diferenciar essesobjetos somente consi<strong>de</strong>rando tal atributo. Neste caso, consi<strong>de</strong>ra-se que este atributo éina<strong>de</strong>quado para o conjunto <strong>de</strong> treinamento e também para a tarefa <strong>de</strong> indução. A tarefa <strong>de</strong>indução é <strong>de</strong>senvolver <strong>uma</strong> regra <strong>de</strong> classificação que po<strong>de</strong> <strong>de</strong>terminar a classe <strong>de</strong>qualquer objeto a partir dos valores dos seus atributos. Tal regra <strong>de</strong> classificação po<strong>de</strong> serexpressa como <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão (RUIZ, 2008).<strong>Uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão é <strong>uma</strong> estrutura simples em que as folhas contêm as classes, osoutros nós representam atributos baseados em testes com um ramo para cada possívelsaída. Para classificar um objeto, começa-se com a raiz da árvore, aplica-se o teste e tomaseo ramo apropriado para aquela saída. O processo continua até <strong>uma</strong> folha ser encontrada.Em tal caso garante-se que o objeto pertence a classe nomeada pela folha.Se os atributos são a<strong>de</strong>quados é sempre possível construir <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão queclassifica corretamente cada objeto no conjunto <strong>de</strong> treinamento e normalmente existemmuitas árvores <strong>de</strong> <strong>de</strong>cisão corretas. A essência da indução é ir além do conjunto <strong>de</strong>treinamento, isto é, classificar corretamente outros objetos. Para conseguir isto a árvore <strong>de</strong><strong>de</strong>cisão <strong>de</strong>ve capturar alg<strong>uma</strong> relação significativa <strong>entre</strong> a classe do objeto e os valores <strong>de</strong>seus atributos. Quando tem-se duas árvores <strong>de</strong> <strong>de</strong>cisão que classificam corretamente umconjunto <strong>de</strong> treinamento, <strong>de</strong>ve-se escolher a mais simples, <strong>uma</strong> vez que, ela é maisa<strong>de</strong>quada para capturar a estrutura inerente do problema e assim, vai classificarcorretamente mais objetos fora do conjunto <strong>de</strong> treinamento.O algoritmo ID3, <strong>de</strong>senvolvido por (QUINLAN, 1985), é um dos algoritmos maispopulares na área da indução <strong>de</strong> árvore <strong>de</strong> <strong>de</strong>cisão.A idéia básica do ID3 é iterativa. Um subconjunto do conjunto <strong>de</strong> treinamento chamadojanela é escolhido aleatoriamente e <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão é formada a partir <strong>de</strong>le. Todosos outros objetos do conjunto <strong>de</strong> treinamento são classificados usando a árvore. Se estaárvore fornecer a resposta correta para todos os objetos o processo termina, se não, <strong>uma</strong>seleção dos objetos classificados incorretamente é adicionada a janela e o processocontinua (RUIZ, 2008).O cerne do problema é como formar <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão para <strong>uma</strong> coleção arbitrária<strong>de</strong> C objetos. Se C é vazio ou contém somente objetos <strong>de</strong> <strong>uma</strong> classe, a árvore <strong>de</strong> <strong>de</strong>cisãomais simples é justamente <strong>uma</strong> folha classificada com aquela classe. Caso contrário, seja Tqualquer teste sobre um objeto que tem os possíveis resultados O1, O2, ... , Ow. Cadaobjeto em C dá um <strong>de</strong>sses resultados para T, portanto T produz <strong>uma</strong> partição {C1, C2, ... ,Cw}, <strong>de</strong> C, com Ci contendo aqueles objetos que tem saída Oi. No pior caso essaestratégia fornecerá subconjuntos <strong>de</strong> um único objeto, que satisfaz a exigência <strong>de</strong> <strong>uma</strong>classe por folha. Assim, <strong>uma</strong> vez que um teste po<strong>de</strong> sempre ser encontrado <strong>de</strong> <strong>uma</strong> divisãonão trivial <strong>de</strong> qualquer conjunto <strong>de</strong> objetos, este procedimento sempre permite obter <strong>uma</strong>árvore <strong>de</strong> <strong>de</strong>cisão que classifique corretamente os objetos em C[1].


<strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong> InductionDecision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários 7A escolha do teste é crucial para a árvore <strong>de</strong> <strong>de</strong>cisão ser simples. O ID3 adota <strong>uma</strong>informação baseada no método que <strong>de</strong>pen<strong>de</strong> <strong>de</strong> duas hipóteses:H1: Toda árvore <strong>de</strong> <strong>de</strong>cisão correta para C classificará objetos na mesma proporção quesua representação em C. No caso <strong>de</strong> <strong>uma</strong> amostra <strong>de</strong> objetos que pertencem somente aduas classes, por exemplo, P e N, um objeto qualquer pertencerá a classe P comprobabilida<strong>de</strong> p/(p+n) e a classe N com probabilida<strong>de</strong> n/(p+n) (RUIZ, 2008).H2: Quando <strong>uma</strong> árvore <strong>de</strong> <strong>de</strong>cisão é usada para classificar um objeto, ela retorna <strong>uma</strong>classe. Árvore <strong>de</strong> <strong>de</strong>cisão po<strong>de</strong> assim ser consi<strong>de</strong>rada como <strong>uma</strong> fonte <strong>de</strong> mensagem P ouN com a informação necessária prevista para gerar a mensagem dada por:(, ) = − + + − + ( + )Se o atributo A com os valores [A1, A2, ... , Av] é usado para a raíz da árvore <strong>de</strong><strong>de</strong>cisão, ela dividirá C [C1, C2, ... , Cv], on<strong>de</strong> Ci contém aqueles objetos em C que temvalores Ai <strong>de</strong> A. Consi<strong>de</strong>re Ci contendo pi objetos da classe P e ni da classe N. Ainformação prevista necessária para a sub-árvore para Ci é I(pi, ni). A informação previstanecessária para a árvore com A como raiz é obtida com a média pon<strong>de</strong>rada:() = + (, ) + em que o peso para o i-ésimo ramo é proporcional aos objetos em C que pertencem Ci.A informação ganha pela ramificação sobre A é, <strong>de</strong>sta forma:G(A) = I ( p, n) − E(A)O algoritmo ID3 examina todos os atributos candidatos e escolhe A para maximizar oganho <strong>de</strong> A, forma as árvores como acima e então usa o mesmo processo recursivamentepara formar a árvore <strong>de</strong> <strong>de</strong>cisão para os subconjuntos restantes, C1, C2, ... , Cv.4.2 ImplementaçãoFig. 11. Algoritmo ID3


8 <strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong>Induction Decision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários4.3 ResultadosA árvore gerada é a seguinte:Fig. 11. Árvore no console, impressa pela aplicação.De forma simplificada, a árvore é a seguinte:Fig. 12. Árvore obtida com o algoritmo ID3 e conjunto <strong>de</strong> treinamento <strong>de</strong>scrito naProblemática. Po<strong>de</strong>-se observar que todos os exemplos são classificados corretamente porela.5 ConclusõesPo<strong>de</strong>-se concluir primeiramente que o Perceptron, apesar <strong>de</strong> parecer um método <strong>de</strong>aprendizado supervisionado mais complexo que o ID3, é <strong>de</strong> <strong>de</strong>senvolvimento maissimples que este último.


<strong>Uma</strong> <strong>comparação</strong> <strong>entre</strong> a <strong>implementação</strong> <strong>de</strong> <strong>uma</strong> Re<strong>de</strong> <strong>Neural</strong> Perceptron e <strong>de</strong> <strong>uma</strong> InductionDecision Tree (ID3) na classificação <strong>de</strong> um conjunto <strong>de</strong> dados binários 9Com relação a tempo <strong>de</strong> execução po<strong>de</strong>-se dizer que o Perceptron apresenta, para <strong>uma</strong>taxa <strong>de</strong> aprendizado igual a 1,0 e <strong>de</strong>mais proprieda<strong>de</strong>s aplicadas <strong>de</strong> forma padrão, um<strong>de</strong>sempenho mais favorável que o ID3. Mas é possível afirmar que a calibração <strong>de</strong>stesparâmetros é essencial para ter <strong>uma</strong> resposta <strong>de</strong> convergência em tempo satisfatório. Já oID3 não apresenta parâmetros <strong>de</strong> refinamento, o que o torna um algoritmo <strong>de</strong>comportamento mais <strong>de</strong>terminístico que o Perceptron.Ambos os métodos, como já explicitado, são <strong>de</strong> aprendizado supervisionado, ou seja, énecessário apresentar um conjunto <strong>de</strong> informações para seu treinamento, e após esta etapao algoritmo terá moldado seu mo<strong>de</strong>lo para ser aplicado em <strong>de</strong>mais conjuntos <strong>de</strong> dados.Métodos <strong>de</strong>ste tipo são interessantes por serem capazes <strong>de</strong>, após treinados, tomarem<strong>de</strong>cisões <strong>de</strong> forma simples. Além disso eles têm capacida<strong>de</strong> <strong>de</strong> a<strong>de</strong>quar-se ao contexto emque são aplicados. Como um ponto a se observar com cautela nesta última vantagem po<strong>de</strong>seapontar o risco <strong>de</strong> overfit, fenômeno no qual o mo<strong>de</strong>lo apresenta resultadosextremamente satisfatórios para seu conjunto <strong>de</strong> dados <strong>de</strong> treinamento e resultadosin<strong>de</strong>sejados nos <strong>de</strong>mais conjuntos <strong>de</strong> dados analisados através <strong>de</strong>le.6 Referências1. Russell, S.; Norvig, P..: Artificial Intelligence - A Mo<strong>de</strong>rn Approach 2ed. Prentice Hall (2003)2. Costa, A. H. R.: Notas <strong>de</strong> Aula <strong>de</strong> PCS 2059 – Inteligência Artificial (2010)3. Quinlan, J. R.: Induction of Decision Trees. C<strong>entre</strong> for Advanced Computing Sciences, NewSouth Wales Institute of Technology, Sydney 2007, Australia4. Ruiz, R. S. R.; Velho, H. F. C.; Santos, R. D. C.; Trevisan, M.: Árvores <strong>de</strong> Decisão emclassificação <strong>de</strong> dados Astronômicos. Departamento <strong>de</strong> Astronomia, IAG – USP / Laboratório <strong>de</strong>Computação e Matemática Aplicada, LAC, INPE.


10 ANEXO I – Erros totais do Perceptron em função da taxa <strong>de</strong> aprendizadoANEXO I – Erros totais do Perceptron em função da taxa <strong>de</strong>aprendizado

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!