Baixe o app para aproveitar ainda mais
Prévia do material em texto
MACHINE LEARNING E DEEP LEARNING Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. RESUMO DA UNIDADE Esta unidade analisará os princípios do Aprendizado de Máquina e do Aprendizado Profundo, inicialmente, analisando o importante histórico da Inteligência Artificial, bem como os principais algoritmos na ocasião, sendo trazida ao aluno a visão geral do que é, na prática, o Aprendizado de Máquina. No decorrer do curso também serão vistos, então, mais detalhes sobre alguns dos algoritmos clássicos, observações importantes acerca de características e parâmetros fundamentais para o correto desenvolvimento destes algoritmos, como a análise da capacidade e as relações de overfitting e underfitting, além de especificações acerca do uso de hiperparâmetros e dos possíveis processos de validação. Em seguida serão vistos os principais processos praticados para análise estatística no contexto, bem como para a realização de estimativas até que, por último, apresentam-se exemplos comuns de modelos com e sem supervisão, incluindo o método do gradiente descendente no contexto, com as principais premissas por trás do desenvolvimento de algoritmos dentro do Aprendizado de Máquina e os principais motivacionais destas estratégias. Palavras-chave: Machine Learning; Aprendizado de Máquina; Deep Learning; Aprendizado Profundo; Algoritmos Supervisionados; Inteligência Artificial. Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. SUMÁRIO RESUMO DA UNIDADE ............................................................................................. 2 APRESENTAÇÃO DO MÓDULO ............................................................................... 4 CAPÍTULO 1 - INTRODUÇÃO E VISÃO GERAL DO PROCESSO DE MACHINE LEARNING ................................................................................................ 5 1.1 INTRODUÇÃO E HISTÓRICO ....................................................................... 5 1.2 VISÃO GERAL DO PROCESSO DE MACHINE LEARNING ....................... 12 1.3 PRINCIPAIS APLICAÇÕES ......................................................................... 18 CAPÍTULO 2 - ALGORITMOS DE APRENDIZADO, CAPACIDADE, OVER E UNDERFITTING, HIPERPARÂMETROS E VALIDAÇÃO ........................................ 20 2.1 ALGORITMOS DE APRENDIZADO............................................................. 20 2.2 CAPACIDADE, OVERFITTING E UNDERFITTING ..................................... 26 2.3 HIPERPARÂMETROS E VALIDAÇÃO ........................................................ 29 CAPÍTULO 3 - ESTATÍSTICA E ESTIMATIVAS, MODELOS COM E SEM SUPERVISÃO, VISÕES PRÁTICAS E MOTIVACIONAIS ....................................... 36 3.1 VISÃO GERAL DE ESTATÍSTICA E ESTIMATIVAS ................................... 36 3.2 MODELOS SUPERVISIONADOS E NÃO SUPERVISIONADOS E MÉTODO DO GRADIENTE DESCENDENTE ........................................................................... 44 3.3 CONSTRUINDO O ALGORITMO E MOTIVACIONAIS ................................ 50 REFERÊNCIAS ......................................................................................................... 52 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. APRESENTAÇÃO DO MÓDULO O Aprendizado de Máquina, assim como o Aprendizado Profundo, vem da Inteligência Artificial e dadas as relevâncias das temáticas foram tomados como áreas distintas dentro da IA, com diversos tipos de avanços especialmente nos últimos anos. Assim, a este ponto o(a) estudante irá entender inicialmente uma visão geral do que é o Aprendizado de Máquina e, com isto, verá primeiro um histórico da área e também fatos históricos importantes da Inteligência Artificial como um todo, para que, em seguida, possa ver de forma geral o funcionamento dos algoritmos e as principais aplicações, denotando o quão interdisciplinar pode ser esta área. Em seguida são apresentados os principais algoritmos de aprendizado utilizados na prática, que podem ser classificados basicamente a partir do tipo do cenário no qual o aprendizado para o computador é desenvolvido. Tem-se então os algoritmos supervisionados, nos quais o processo ocorre considerando possíveis “direcionamentos”, a partir de informações classificatórias importantes dos dados; os algoritmos de aprendizado não supervisionados, onde torna-se também possível englobar outros tipos de estratégias e conjuntos de dados de diferentes características, ou nos quais não está disponível a informação correspondente à saída e, por último, tem-se os algoritmos de aprendizado semissupervisionados, nos quais este ocorre de forma combinada a partir das estratégias traçadas, para bancos de dados mistos. Outros pontos importantes que serão abordados são as capacidades acerca da ocorrência de overfitting e underfitting, de possíveis ajustes intrínsecos aos processos e indesejados e como lidar nestes casos. Além disso, serão tratados os principais mecanismos de validação, para a realização de estimativas e, por fim, abordar-se como pode ser construído o algoritmo e as principais etapas em geral, comuns à grande parte de algoritmos de aprendizado. 5 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. CAPÍTULO 1 - INTRODUÇÃO E VISÃO GERAL DO PROCESSO DE MACHINE LEARNING 1.1 INTRODUÇÃO E HISTÓRICO O Aprendizado de Máquina ou Aprendizado Automático, embora por vezes também seja referido pelo seu termo inglês, como Machine Learning, é um subcampo de grandes áreas como a Engenharia e a Ciência da Computação, sendo resultado da evolução de estudos de reconhecimento de padrões, a partir de análises e técnicas acerca do aprendizado computacional, dentro da grande e interdisciplinar área de Inteligência Artificial. O termo Aprendizado de Máquina, por si só, foi definido no final da década de 50, mais precisamente em 1959, pelo cientista da computação Arthur Samuel, como um campo de estudo para estipular- se aos computadores a habilidade de aprendizado sem a necessidade de programação explícita. Antes então de introduzirmos o tema, vamos compreender o histórico por trás da Inteligência Artificial (IA), que possui ligação direta com os primórdios do Aprendizado de Máquina. Assim, é importante salientar que esta grande área interdisciplinar teve e continua sendo atribuída a vários falsos começos, bem como ações de interrupções e um dos principais possíveis motivos é que boa parte das pessoas não compreendem, de fato, o que é a IA e qual o seu papel interdisciplinar. Ora representada pela cultura em filmes, programas de TV ou até mesmo na literatura, a IA ganhou certas tendênciasde antropomorfização que contribuíram para tal histórico apresentado (MUELLER & MASSARON, 2018). IMPORTANTE! Áreas de estudo e análise importantes se beneficiam das técnicas de IA, como a detecção de fraudes, o agendamento de recursos, análises complexas como a realização de diagnósticos médicos, aplicações de automação em geral, serviços de atendimento ao cliente, sistemas de segurança e a melhoria na eficiência de equipamentos e máquinas. 6 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. Adicionalmente, a relação de antropomorfização também pode ser explicada por outros dados importantes do contexto histórico da IA, como o fato de que desde a Grécia Antiga se discute a possibilidade de colocar um cérebro dentro de um corpo mecânico, o que derivou em mitos como o homem mecânico Talos, por exemplo. Além disso, somam-se a isso dispositivos gregos antigos ainda existentes como o Antikythera, acerca da construção de sonhos e foi então que durante o primeiro milênio todo, praticamente, povos gregos, indianos e chineses representados pela grande área da Filosofia, trabalharam em busca de tornar possível o pensamento mecanizado. Mais adiante, no século XVII Leibniz, Hobbes e Descartes discutiram a possibilidade da interpretação de todo tipo de pensamento através da simbologia matemática, algo ainda sonhado até os dias de hoje para uma série de aplicações práticas (MUELER & MASSARON, 2016). Por fim, ressalta-se que um dos grandes marcos do nascimento da IA, sobretudo, do ponto de vista do que hoje esta grande área representa, é a publicação de Alan Turing em 1950, nomeada como “Computing Machinery and Intelligence”, na qual explorou-se a ideia de determinar que as máquinas podem pensar chegando, posteriormente, à clássica teoria do “Jogo da Imitação”. SAIBA MAIS: Filme sobre o assunto: O Jogo da Imitação (The Weistein Company, 2014) Observação: Sobre a temática, é retratada a história de Alan Turing, considerado como o pai da Inteligência Artificial, responsável por diversos trabalhos de enorme relevância mundial, entre eles o artigo que levou ao Jogo da Imitação. Além disso, um dos possíveis pontos de partida do contexto histórico da IA se dá a partir da Lógica Simbólica em Dartmouth, no qual considerou-se que os primeiros computadores eram de fato dispositivos apenas para computar. Este fato histórico decorre de um período entre as décadas de 50 e 60, para que assim cheguemos ao ponto onde as máquinas conseguem realizar os raciocínios lógico e matemático, de forma tão eficaz quanto os humanos, incluindo fatores importantes como a evolução suficiente do ponto de vista de hardware das máquinas. Esta última ressalta a recente potência suficiente atingida para que a máquina suporte o 7 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. número exigido de cálculos nos processos desejados (MUELER & MASSARON, 2018). Mais adiante na linha cronológica, na década 70 e do ponto de vista geral da IA, é importante ressaltar o surgimento dos sistemas especialistas, que também ressurgiram nos anos 80 como forma de redução de requisitos computacionais, impostos pela IA (MUELER & MASSARON, 2018). Assim, surgem na ocasião diversos tipos de sistemas especialistas, geralmente baseados em regras na lógica “se... então” para a tomada de decisão, baseados em enquadramentos dos dados, de forma que estes estariam no contexto organizados em estruturas hierárquicas e, por último, sistemas baseados em lógica, onde as relações e a tomada de decisão se baseiam no estabelecimento de relações a partir da teoria de conjuntos. Por fim, com relação ainda a esta época, ressalta-se que foi nesta ocasião que foram obtidas as primeiras implementações de sucesso e úteis dentro da IA. IMPORTANTE! Embora não se fale atualmente em sistemas especialistas, de fato, estes sistemas ainda estão presentes na forma de ferramentas como o corretor gramatical do seu editor de texto. Ademais, atualmente a IA está em uma nova fase de evolução tecnológica, mas também em uma nova fase de “evolução sensacionalista”, por conta da evidência do Aprendizado de Máquina, área esta que envolve o aprendizado do computador por parte dos dados. Assim, após compreender o papel do contexto histórico na área de IA no contexto do Aprendizado de Máquina, serão vistos os principais fatos históricos relacionados a este tipo de aprendizado. Desta forma, entende-se que de fato o Aprendizado de Máquina evoluiu a partir da própria busca pela Inteligência Artificial, do ímpeto de pesquisadores em fazer com que as máquinas aprendessem a partir dos dados que manipulavam em seus processos. Entre tais formas de se fazer isto na prática, é possível citar métodos simbólicos como as redes neurais artificiais, além do uso de áreas como a Lógica Probabilística, embora tenham sido vistos problemas acerca da aquisição e representação dos dados dentro de sistemas probabilísticos, e é a este ponto da 8 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. linha cronológica também que os sistemas especialistas surgem e ganham força, já mencionados no histórico da grande área de IA (LANGLEY, 1996; 2011). Um exemplo importante, também dentro do desenvolvimento da área de Aprendizado de Máquina, é o livro Learning Machines dos anos 60, de Nilsson, no qual relata-se experiências iniciais de classificação de padrões. Já na década de 70, o reconhecimento e a classificação de padrões continuam em evolução, como pode ser visto em trabalhos como o que fora proposto por Duda e Hart em 1973, e nos anos 80 é possível citar relatos da bibliografia, como o caso em que as estratégias de ensino foram utilizadas no contexto do aprendizado, por parte de uma rede neural, no reconhecimento de 40 caracteres em um computador terminal (BOZINOVSKI, 1981). Além disso, em contrapartida e continuando avançando na linha cronológica da IA, mas com foco no Aprendizado de Máquina, é possível perceber que foi nos anos 90 que, de fato, o Aprendizado de Máquina consolidou-se e reafirmou-se como uma área separada dentro da IA, através de ocorrências como a mudança para a abordagem de problemas solucionáveis na prática, por exemplo, por meio de métodos estatísticos e derivados de teorias da probabilidade (LANGLEY, 2011). Observa-se que efeitos positivos ainda neste período foram vistos, por conta de avanços na digitalização das informações, além do próprio uso da internet e sua influência no compartilhamento não só de dados, mas também de estratégias. Assim, antes de analisarmos agora mais especificamente aspectos do Aprendizado de Máquina, torna-se necessário definir de forma conceitual e prática a IA, para que a área como um todo torne-se significativa e útil, como algo palpável. Uma destas possibilidades é formular que a inteligência está, de fato, relacionada a atividades como o aprendizado, raciocínio, compreensão, apreensão de verdades, visualização de relações, consideraçõesacerca de significados e separação entre fatos e crenças. Logo, é possível definir alguns passos gerais que são seguidos pela inteligência e que poderão ser imitados pelo computador, em um processo na simulação, por exemplo (Mueller & Massaron, 2018): Estabelecimento de objetivos com base nas necessidades e/ou desejos atribuídos; 9 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. Avaliação do valor de qualquer informação conhecida no momento, de forma a suportar o(s) objetivo(s); Coleta de informações adicionais que também poderão apoiar o(s) objetivo(s); Manipulação dos dados, para que estes adquiram um formato consistente, considerando as informações já existentes; Definição de relações e valores verdade, entre informações já existentes e novas que possam surgir; Determinação se o objetivo foi alcançado; Modificação do objetivo a partir de informações trazidas por novos dados, considerando o efeito na probabilidade de sucesso do processo como um todo; Possível repetição dos passos de 2 a 7, mediante necessidade ao longo do processo, até que o objetivo seja alcançado ou até que as possibilidades existentes para alcançá-lo tenham sido esgotadas Além disso, um ponto importante a se ressaltar com relação aos passos gerais da inteligência é que, considera-se pela lógica booleana como verdadeiro o alcance do objetivo e como falso o esgotamento de possibilidades. Agora, após compreender as regras gerais da inteligência, meios possíveis de implementação prática, vamos entender o papel do Aprendizado de Máquina, propriamente dito, na Inteligência Artificial. Assim, de antemão é importante salientar que há, de fato, uma enorme quantidade de algoritmos para analisar os mais diversos tipos de conjuntos de dados, independente da dimensão destes conjuntos, sendo esta última característica conseguida especialmente nos últimos anos. Por outro lado, é importante também ressaltar que mesmo os melhores e mais desenvolvidos algoritmos não são capazes de expressar sentimentos e ações típicas do ser humano, tornando não executáveis na prática ações como pensar, sentir, apresentar autoconhecimento e também o exercício do livre-arbítrio. Desta forma, nota-se a tendência mais recente de se realizar análises, embora o ser humano ainda seja convocado à tomada de decisões éticas e morais, consolidando que, de fato, o aprendizado proporcionado não está nem perto ainda do que é relatado na antropomorfização (MUELLER & MASSARON, 2016). É necessário ressaltar ainda que, uma das principais confusões relacionadas ao aprendizado e à inteligência é que, por diversas vezes, as pessoas supõem que o 10 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. fato de uma máquina ser melhor em seu trabalho também está ligado à melhor inteligência (consciência), algo errôneo, visto que não há nada suficientemente conclusivo que apoie tal visão do aprendizado de máquina (MUELER & MASSARON, 2016). Desta forma, é possível dizer que a verdadeira inteligência artificial estará executável na prática ao passo que áreas como a genética, o ensino e a exploração (no sentido do aprendizado espontâneo) sejam alcançados. Então, traça-se que atualmente a IA está, de fato, baseada no Aprendizado de Máquina e embora o aprendizado tenha base estatística é importante relacionar corretamente os diferentes objetivos, como mostra o quadro adiante, com alguns exemplos comuns: Quadro 1 - Comparações entre técnica, ações do aprendizado de máquina e ações da estatística Técnica Aprendizado de Máquina Estatística Entrada de dados Amostragem, randomização e transformação destes para aumentar a precisão (especialmente em casos novos ou fora da amostra). São parâmetros que interpretam fenômenos do mundo real e fornecem uma ênfase, com relação à magnitude por exemplo. Manipulação de dados Exemplos: big data, dados de rede, gráficos, dados brutos de sensores, textos da web. Divisão mais comum: dados de treinamento e dados de teste. Certos modelos serão utilizados para criar certo poder preditivo, mesmo em pequenas amostras. Resultado Leva-se em conta aspectos como a probabilidade, para que assim seja possível comparar qual a melhor conjectura e/ou decisão no contexto analisado. A saída do sistema será capaz de capturar tanto a variabilidade quanto a incerteza do(s) parâmetro(s) Suposições Aprendizado do cientista a partir dos dados. Ato de se imaginar certa saída e tentativa de prová-la. Distribuição Desconhecida ou então ignorada, antes de se ter o conhecimento acerca dos dados do contexto Presume-se normalmente uma distribuição bem definida. Ajuste Criação de um modelo mais adequado, com boa capacidade de generalização Resultado obtido estará mais adequado para a distribuição dos dados atual deste sistema. Fonte: Adaptado de MUELER & MASSARON, 2016. Adicionalmente, como já brevemente citado, é primordial ter em mente os possíveis limites do Aprendizado de Máquina, definíveis a partir de características 11 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. importantes da máquina como o hardware, sendo que em certos casos uma boa solução fornecida poderá demorar dias, por exemplo, e este tempo não poderá ser utilizado na prática. Assim, considerando tais possíveis problemas tem-se algumas sugestões, possivelmente genéricas, que podem ser levadas em conta para que a capacidade de hardware do sistema em questão não seja um empecilho, como: Optar pela obtenção de um resultado útil; Realização da pergunta correta; Contar com a intuição; Estas sugestões implicam, na prática, em que o primeiro passo de qualquer algoritmo de Aprendizado de Máquina será fornecer um resultado útil, que será posteriormente refinado e, por outro lado, do ponto de vista prático é importante ressaltar a possibilidade de obtenção de um resultado mais frágil, após extensivos ajustes no programa, levando a soluções inúteis fora de um certo conjunto de dados específicos, algo indesejável. Além disso, fazer a pergunta correta implica retornar ao que já fora feito no algoritmo, muitas vezes, e recuar a ação desejada, visto que em muitos casos nem mesmo um poderoso hardware poderá realizar a entrega de uma solução plausível para certos problemas práticos. Ademais, contar com a intuição no contexto significa, na prática, de que todas as pergunta feita em algoritmos de Aprendizado de Máquina começam com uma hipótese e geralmente assim o cientista responsável utilizará a intuição para a criação do ponto de partida para a descoberta da resposta da pergunta. Por outro lado, deve-se considerar ainda que suposições erradas, obviamente, levarão a soluções erradas. A seguir você terá uma visão geral do que é o Aprendizado de Máquina, também estudando a este ponto, exemplos de alguns dos principais algoritmos utilizados ao longo do tempo e o estado da arte atual, para que, ao fim do capítulo,entenda quais são as possíveis principais aplicações desta grande área do conhecimento, considerada por muitos autores hoje a principal dentro da grande área interdisciplinar de Inteligência Artificial. 12 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. 1.2 VISÃO GERAL DO PROCESSO DE MACHINE LEARNING Começamos então partindo de uma possível definição, apontada pela literatura, na qual considera-se que o Aprendizado de Máquina pode ser definido como métodos computacionais que usam a experiência para promover a melhoria de performance ou então fazer predições bem assertivas, de forma que o Aprendizado de Máquina consistirá então no desenvolvimento de algoritmos de acurácia e eficiência na predição (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). Além disso, embora exista uma grande variabilidade de aplicações, a literatura em geral sugere quatro objetivos básicos principais, cada qual em suas próprias perspectivas metodológicas, bem como aproximações até avaliações e casos de algoritmos de sucesso. Um destes objetivos envolverá a modelagem de mecanismos que estão envolvidos no aprendizado humano, sendo possível citar o desenvolvimento de algoritmos de aprendizado consistentes com o conhecimento da arquitetura cognitiva humana, além de algoritmos desenvolvidos para explicar comportamentos específicos de aprendizado. É este tipo de aproximação que permitiu a existência de uma série de modelos computacionais, incluindo áreas como a resolução de problemas, o uso da linguagem natural, percepção e o controle motor (Langley, 1996). Adicionalmente, há uma outra vertente cujo objetivo principal é o estudo empírico, descobrindo-se princípios gerais que relacionam as características de algoritmos de aprendizado e do próprio domínio no qual estes operam, como o comportamento de aprendizado. Desta forma, neste caso existirão aproximações padrões que envolverão experimentos que variarão tanto o algoritmo, quanto o domínio, observando os impactos de tal manipulação realizada no aprendizado. Além disso, é possível citar certos estudos e algoritmos desenvolvidos que tratam o Aprendizado de Máquina como uma área de estudo da Matemática, formulando-se e provando teoremas acerca da tratabilidade de classes inteiras problemas de Aprendizado de Máquina e de algoritmos para resolvê-los. Um exemplo típico de tal tipo de abordagem envolverá realizar a definição do problema de aprendizado, conjecturando se este pode ou não ser resolvido com um número razoável de treinamentos e, após isso, provar que tais conjecturas também são válidas em 13 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. condições gerais. Desta forma, perceba que neste caso o Aprendizado de Máquina se relacionará ao uso de ferramentas e conceitos de Estatística e Ciência da Computação (Langley, 1996). Por último, ressalta-se ainda que há um outro grande grupo de pesquisadores que focou na resolução de problemas do mundo real, através de técnicas de Aprendizado de Máquina, sendo conhecido pela própria literatura, em geral, que a maior parte de sistemas de IA aplicada, até o fim da década de 90, se referia a sistemas especialistas, por exemplo. Assim, com a evolução tecnológica atual entende-se que tal vertente de objetivos do Aprendizado de Máquina vem tomando força e sabe-se que, normalmente, existem alguns passos típicos como a formulação de um problema de interesse (prático) em termos do Aprendizado de Máquina, desenvolvimento da representação dos casos do treinamento e também do conhecimento adquirido nesta etapa do aprendizado. Além disso, deve-se realizar a coleta dos dados de treino, utilizar o algoritmo de Aprendizado de Máquina para gerar uma base de conhecimento e estruturar a base completa de conhecimentos acerca do sistema (Langley, 1996). FIQUE LIGADO! A aproximação do Aprendizado de Máquina, cujo objetivo centra-se na resolução de problemas reais, está diretamente relacionada a problemas práticos, como a realização de diagnósticos, o controle de processos industriais, problemas de cronograma, entre várias outras áreas do conhecimento e envolvendo diversos tipos de problemas práticos. Assim, ressalta-se que tais objetivos estarão, por vezes, associados a algoritmos de aprendizado em geral devido ao fato de que o Aprendizado de Máquina é um campo que realmente se fundamenta em algoritmos desenvolvidos e, desta forma, os estudos nesta área e, inclusive, ao longo de todo este curso, permearão em modelos psicológicos, modelos empíricos, teoremas matemáticos e aplicações de campo (práticas). Agora, dando continuidade à visão geral do Aprendizado de Máquina, existem ainda importantes conceitos a serem definidos para a área, que nos auxiliarão 14 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. inclusive nos próximos passos, acerca das aplicações e dos estudos dos algoritmos propriamente ditos. Assim, o quadro a seguir apresenta alguns destes principais conceitos: Quadro 2 - Principais conceitos dentro do Aprendizado de Máquina Exemplo Item ou instância dos dados, usado para aprendizado ou avaliação. Características Seleção de atributos, geralmente representada como um vetor, associada ao exemplo. Label Valor ou categoria do exemplo. Hiperparâmetro Parâmetro livre, que não é determinado pelo algoritmo de aprendizado, mas sim especificado como entrada deste. Amostra de treinamento Exemplo usado para treinar o algoritmo de aprendizado. Amostra de validação Exemplo usado para testar o algoritmo de aprendizado e é neste caso que se ajustam os parâmetros deste, para um algoritmo de aprendizado livre de parâmetros (hiperparâmetros) Amostra de teste Exemplo usado para avaliar a performance do algoritmo de aprendizado, sendo uma amostra separada da de treinamento e da de validação. Função de perda Função responsável pela medição da diferença (ou perda) entre o label previsto e o label real. Seleção de hipóteses Conjunto de funções mapeadas de características, frequentemente representadas como vetores de características do conjunto de labels. Fonte: Elaborado pela própria autora, baseado em (Langley, 1996). Considere alguns exemplos práticos então para compreender, na prática, o que representa cada um dos conceitos apresentados. Assim, tem-se problemas como a detecção de spam, que pode ser modelada como um problema de aprendizado onde um determinado algoritmo irá selecionar da caixa de e-mails o que é ou não spam. Neste contexto os exemplos seriam e-mails, a serem usados como aprendizado ou teste do algoritmo; possíveis características seriam o comprimento da mensagem do e-mail, o nome de quem enviou, a presença de certas palavras-chave, entre outras. Adicionalmente, quanto às labels observa-se que em problemas de classificação elegem-se categorias possíveis, por exemplo, no caso do problema de detecção de spam teria uma classificação binária, entre spam e não spam, embora ressalta-seque em problemas de regressão, por exemplo, os itens normalmente são designados por labels com valores reais. O conjunto de treinamento, por sua vez, seria uma seleção de e-mails já com as labels e o de 15 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. testes, um conjunto de e-mails, no qual o algoritmo deverá realizar a predição e comparar o resultado deste processo com as labels corretas, já previamente obtidas. Agora vamos analisar, por último, a função de perdas e o conjunto de hipóteses. Para isto, considere que o conjunto de todas as labels em um dado problema genérico é denominado como Y e o conjunto das possíveis predições como 'Y , de forma que uma função de perdas ( L ) irá mapear tal como apresenta-se matematicamente adiante, dentro do conjunto dos números reais (Mohri, Rostamizadeh & Talwalkar, 2018): ': YYL (1) Na maior parte dos casos tem-se que o conjunto das labels e das possíveis predições será igual, ou seja 'YY , logo a função de perdas é limitada, entretanto, é importante salientar que isto não representa sempre a realidade da predição, em problemas práticos, levando à seguinte formulação yyyyL '1)',(}1,1{}1,1{ (2) ou, ainda (Mohri, Rostamizadeh & Talwalkar, 2018): )²'()',( yyyyL (3) Sendo que na relação da Equação 3 define-se para , com um intervalo tipicamente limitado. Já com relação ao conjunto de hipóteses, por sua vez, entende-se que existe um conjunto de funções capazes de mapear características para um conjunto diferente, definido por 'Y , que pode ser formado por funções lineares ou até números reais, caso interprete-se os labels através de scores, por exemplo, onde scores mais altos seriam maiores indicativos de spam e o contrário não: 'Y (4) 16 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. Outra definição importante, do ponto de vista geral do Aprendizado de Máquina, é entender os diferentes conceitos dos cenários de aprendizado. Desta maneira, o quadro adiante apresenta, de forma breve tais cenários, que serão explorados ao longo dos exemplos apresentados neste curso, assim como nos algoritmos apresentados, com referências à literatura: Quadro 3 - Os possíveis cenários de aprendizado Aprendizado supervisionado O aprendiz recebe um conjunto de exemplos com labels, como dados de treinamento e faz as predições para todos os pontos não vistos. Aprendizado não supervisionado O aprendiz recebe, exclusivamente, dados de treinamento sem label e faz as predições para todos os pontos não vistos. Aprendizado semissupervisionado O aprendiz recebe uma amostra de treinamento com dados com ou sem label e faz a predição em todos os pontos não vistos. Inferência transdutiva Como em um cenário semissupervisionado, entretanto recebe-se dados de treinamento com label e de teste sem, sendo que o objetivo neste caso é prever labels somente para estes pontos de teste, em particular. Treinamento on-line Múltiplas etapas nas quais as fases de treinamento e de teste estarão misturadas. A cada fase o aprendiz recebe um ponto de treinamento sem label, faz a predição, recebe a label correta e executa a função de perdas. Aprendizado de reforço Neste caso, os dados de treinamento e de teste também estão misturados e, para coletar informação o aprendiz interage de forma ativa com o ambiente, sendo inclusive que em certos casos esta interação afeta o ambiente e pode-se receber uma recompensa imediata por esta interferência, em certos casos. Aprendizado ativo O aprendiz coleta, de forma adaptativa ou interativa, exemplos de treinamento, sendo que o objetivo neste tipo de cenário é alcançar um certo desempenho, comparável ao cenário padrão supervisionado de aprendizado, embora utilize-se neste caso menos amostras com label Fonte: Elaborado pela autora, baseado em (Langley, 1996). O cenário de aprendizado supervisionado é o mais comum, na classificação, regressão e problemas de ranking. Tomando novamente como exemplo o problema de detecção de spam, para analisarmos mais alguns exemplos práticos no contexto dos diferentes tipos de cenários, observa-se que este tipo de problema poderia ser tranquilamente estruturado em um cenário de aprendizado supervisionado, por exemplo (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). Por outro lado, analisando o cenário de aprendizado não supervisionado é importante ressaltar que, como geralmente exemplos sem label estão disponíveis, pode se tornar difícil avaliar de forma quantitativa como foi a performance do aprendiz do contexto. 17 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. Adicionalmente, no aprendizado semissupervisionado observa-se que é comum nesses tipos de configurações que dados sem label são bem mais fáceis de se acessar, enquanto, por outro lado, as labels, normalmente, só podem ser obtidas através de processos dispendiosos para o algoritmo. Além disso, observa-se que neste caso, a maior esperança para o sucesso do algoritmo é vista no cenário em que a distribuição de dados sem label acessível ao aprendiz poderá auxiliá-lo a melhorar sua performance, melhor do que o que ocorreria em um cenário supervisionado, em boa parte dos casos práticos (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). IMPORTANTE! Observa-se que a análise das condições que estão por trás dessa relação de melhoria de performance no cenário semissupervisionado é um dos principais assuntos de pesquisas aplicada e teórica dentro do cenário de Aprendizado de Máquina. Com relação agora à inferência transdutiva é possível ressaltar que, embora este tipo de cenário pareça ser mais adaptável para a maior parte das aplicações modernas, como em um cenário semissupervisionado tem-se que a melhoria de performance poderá não ser uma realidade no contexto e inviabilizar a aplicação. Em contrapartida, no cenário on-line o principal objetivo é minimizar o valor acumulativo da perda em todas as etapas ou então minimizar o que se denomina como regret, um valor para estimar a diferença da perda acumulativa e do melhor expert em caso de incurácia (ausência de predição). O treinamento de reforço, por sua vez, possui como objetivo principal que o aprendiz maximize sua recompensa através de uma série de ações e interações com o ambiente. Contudo, não há retorno a longo prazo da recompensa para o ambiente e, com isto, o aprendiz geralmente irá se deparar com um dilema clássico da computação, de “exploration versus exploitation”. Isto ocorre pensando-se que o algoritmo deverá se decidir entre explorar ações desconhecidas em prol de ganhar mais informações, ou então explorar as informações já coletadas. Por último, quanto ao aprendizado ativo, observa-se que o algoritmo atua normalmenteconsultado uma espécie de oracle 18 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. (oráculo) para buscar informações acerca de labels requisitadas, para novos pontos em avaliação (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). Adiante você verá, para encerrar esta parte introdutória, quais são os principais cenários de aplicação do Aprendizado de Máquina, entendendo o papel do algoritmo e qual ou quais são usados no contexto. 1.3 PRINCIPAIS APLICAÇÕES Tomando como exemplo novamente os diferentes cenários de aprendizado, tem-se que, como já mencionado, o cenário supervisionado normalmente está relacionado a problemas que envolverão a classificação de padrões, como é o caso de problemas reais de reconhecimento de padrões, por exemplo. Além disso, observou-se ainda que o cenário supervisionado também estará, na prática, relacionado a problemas de ranking, onde torna-se necessário elencar um dado conjunto de dados para organização destes ou em problemas de regressão, por exemplo. Adicionalmente, normalmente problemas como a clusterização e a redução de dimensionalidade estão relacionados a cenários de aprendizado não supervisionado e semissupervisionado, podem ser observados também vários tipos de aplicações práticas, semelhantes às práticas do cenário supervisionado, como classificação, regressão e tarefas de ranking. Por último, ainda com relação aos cenários, observa-se que o cenário de aprendizado ativo frequentemente está relacionado a aplicações nas quais os labels são difíceis de se obter, em processos dispendiosos para o algoritmo, como é o caso de aplicações de Biologia Computacional. Além disso, é importante se ter em mente que existem dois aspectos fundamentais dos problemas práticos em geral, cuja experiência e melhoria proporcionadas pelo algoritmo de aprendizado poderão atuar de forma a entregar resultados ainda mais completos e de forma eficiente, pela complexidade do problema e a necessidade de adaptação. Entre estas duas vertentes principais, destacam-se as tarefas que podem ser executadas por animais e humanos e aquelas que estão além da capacidade humana, como é o caso de tarefas 19 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. executadas de forma rotineira e a análise de complexos conjuntos de dados, respectivamente (SHALEV-SHWART & BEN-DAVID, 2014). Ademais, pode-se citar outras aplicações práticas como o reconhecimento óptico de caracteres (popularmente conhecido como OCR), processamento de linguagem natural, realização de diagnósticos médicos, reconhecimento e processamento da fala, reconhecimento e processamento da escrita, visão computacional, utilização de motores de busca, locomoção robótica, entre outras. 20 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. CAPÍTULO 2 - ALGORITMOS DE APRENDIZADO, CAPACIDADE, OVER E UNDERFITTING, HIPERPARÂMETROS E VALIDAÇÃO 2.1 ALGORITMOS DE APRENDIZADO Como já apontado anteriormente, o Aprendizado de Máquina promove, de forma resumida, que o computador aprenda através dos dados e este aprendizado é feito pelo algoritmo de aprendizado (LANGLEY, 1996; 2011; MOHRI, ROSTAMIZADEH e TALWALKAR, 2018). O filtro de spam de e-mails, como também já citado no começo, envolve o uso de um algoritmo de aprendizado para o reconhecimento automático de possíveis ameaças à integridade não só do e-mail, dos dados pessoais, mas do computador como um todo. Por outro lado, considere agora o seguinte exemplo: você baixa uma cópia de um artigo científico e, com isto, logicamente seu computador terá mais dados. Pois bem, entretanto como estes dados não foram “trabalhados” com a máquina não haverá nenhuma melhoria repentina de desempenho, em nenhum tipo de tarefa executada por ela e, assim, não se trata de uma situação de aplicação de Aprendizado de Máquina. Além disso, antes de analisarmos mais especificamente os algoritmos relembraremos o porquê de se utilizar o Aprendizado de Máquina, como em casos já citados, de problemas mais complexos, especialmente quando consideramos as abordagens tradicionais já existentes. Uma outra possibilidade é utilizar o Aprendizado de Máquina para algoritmos não conhecidos ou, ainda, para auxiliar aos seres humanos a aprender algo, além de possibilidades como a descoberta de padrões que até então não eram aparentes ou que podiam ser identificados mas para automatizar tal identificação (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018; SEJNOWSKI, 2020). Ademais, ressalta-se que o Aprendizado de Máquina é ótimo para (GÉRON, 2019): - Problemas nos quais as soluções exigirão mais configurações manuais ou listas extensas de regras; - Problemas mais complexos, que não possuem soluções efetivas por abordagens tradicionais; 21 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. - Ambientes flutuantes, visto que o sistema com Aprendizado de Máquina poderá se adaptar aos novos dados; - Compreensão de problemas de maior complexidade e que utilizem grandes quantidades de dados. A Figura 1 a seguir traz um exemplo de representação da capacidade de adaptação geral de um algoritmo de Aprendizado de Máquina: Figura 1 - Capacidade de adaptação do algoritmo de aprendizado Fonte: GÉRON, 2019. p. 6. No caso de listas extensas de regras ou de configurações manuais estima-se que o Aprendizado de Máquina normalmente será capaz não só de simplificar o código, mas também de melhorá-lo. Assim, também é importante relembrarmos antes de analisar exemplos de algoritmos de aprendizado e estruturas gerais destes, que o Aprendizado de Máquina pode ser ainda dividido do ponto de vista prático do algoritmo, em algumas categorias distintas que poderão inclusive combinar entre si (GÉRON, 2019): - Treinamento com ou sem supervisão humana; - Aprendizado rápido ou não, de forma incremental; - Funcionamento por comparação de novos pontos dos dados com outros já conhecidos ou pela detecção de padrões a partir de dados de treinamento e criação de um modelo preditivo. Com relação ao treinamento com e sem supervisão tem-se, como já apresentado, os algoritmos supervisionados, não supervisionados, semissupervisionados e com aprendizado por reforço. Por outro lado, com relação à incrementação e agilidade de aprendizado tem-se os algoritmos de aprendizado 22 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do GrupoProminas. online ou de aprendizado por lotes. Por último, quanto à comparação ou à detecção tem-se os algoritmos de aprendizado baseados em instâncias ou aqueles baseados em modelos. A Figura 2 a seguir traz um exemplo de como o Aprendizado de Máquina poderá contribuir no ensino dos humanos: Figura 2 - Papel do Aprendizado de Máquinas no ensino de humanos Fonte: GÉRON, 2019. p. 7. Assim, especificamente com relação aos diferentes tipos de algoritmos, tem-se que os que são classificados conforme o tipo de supervisão realizado, serão inclusive melhor explorados adiante, no capítulo 3, entretanto, a este ponto você verá alguns detalhes importantes destes. Começando então pelos algoritmos de aprendizado supervisionado, observa-se que, como já brevemente mencionado no começo, possuirá dados de treinamento com as soluções desejadas (labels, que também são comumente chamadas pelo termo em português rótulos). A classificação, por sua vez, é um exemplo típico de tarefa que normalmente utiliza-se o aprendizado supervisionado, assim como a previsão de um alvo de valor numérico, por exemplo, que é comumente referida como tarefa de regressão (SHALEV-SHWARTZ & BEN-DAVID, 2014; MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). A previsão de um preço de um carro, dado um conjunto de características como quilometragem, idade, marca, entre outros, é possível fornecendo dados de outros carros e também incluindo os labels (que no contexto são os preços). Além disso, observa-se que certos tipos de algoritmos de regressão também podem ser utilizados em problemas de classificação e vice-versa. Um 23 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. exemplo disso é o algoritmo de Regressão Logística e além deste tem-se o k- Nearest Neighbours, a Regressão Linear, a Máquina de Vetores de Suporte (mais conhecida pela sigla em inglês SVM - Suport Vector Machine), a Árvore de Decisão e Florestas Aleatórias (também conhecidas como Decision Tree e Random Forest, respectivamente) e, por último, tem-se ainda as famosas Redes Neurais (Géron, 2019). Tomando como exemplo agora a implementação de algoritmos supervisionados, vamos analisar como isto pode ser feito, através de alguns exemplos e utilizando o MATLAB. Maiores detalhes também serão vistos acerca dos modelos, no capítulo 3. Nos algoritmos de aprendizado não supervisionado tem-se o “aprender autodidata”, visto que não haverá os rótulos dos dados no treinamento. Alguns dos principais exemplos destes algoritmos são divididos em algoritmos de clustering, de visualização e redução da dimensionalidade dos dados e de aprendizado da regra da associação, como mostra o quadro a seguir: Quadro 4 - Tipos de algoritmos de aprendizado não supervisionado Clustering k-Means Clustering Hierárquico Maximização de expectativa Visualização e redução de dimensionalidade Análise de componentes principais (mais conhecido pelo termo inglês PCA - Principal Component Analysis) Kernel PCA Locally-Linear Embedding (LLE) t-distributed Stochastic Neighbour Embedding (t-SNE) Aprendizado da regra da associação Apriori Eclat Fonte: elaborado pela autora, adaptado de GÉRON (2019) Na realização de clustering o principal objetivo é detectar grupos semelhantes entre si, ou não e realizar a separação. No caso do Clustering Hierárquico, mais especificamente, tem-se a possibilidade ainda de dividir cada grupo em outros grupos menores. Já nos algoritmos de visualização de dados tem-se a máxima preservação da estrutura destes, para a identificação de padrões ignorados e para que possa ser compreendida, de fato, a organização destes dados. Por outro lado, a 24 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. redução da dimensionalidade tem como principal objetivo simplificar uma grande massa de dados sem perder uma parte expressiva das informações contidas, como na mesclagem de características correlacionando-as em uma única. Assim, perceba que para este tipo de análise do algoritmo de aprendizado é fundamental a extração de características. A detecção de anomalias, como o processo de detecção de transações incomuns para a visualização de possíveis fraudes em cartões de crédito, por exemplo, é um tipo de tarefa não supervisionada (GÉRON, 2019). Por último, com relação ainda ao aprendizado não supervisionado tem-se a classe do aprendizado de regras de associação, que é feito basicamente pelo aprofundamento em grandes quantidades de dados e busca de relações entre estes para a visualização de possíveis atributos existentes, apontando tendências existentes. Agora vamos analisar como implementar alguns destes algoritmos tomando como base o MATLAB. Assim como para os algoritmos de aprendizado supervisionado, maiores detalhes serão vistos no capítulo 3, onde analisaremos com maior aprofundamento as principais premissas do modelo não supervisionado. Tomando como exemplo então o algoritmo k-means, é possível utilizar a função já pronta k-means, introduzida antes da versão do software 2006a. Neste caso é possível implementar o processo de clusterização e partições de uma dada matriz x n por p em um número k de clusters diferentes, sendo que a função em sua configuração mais básica retorna um vetor (idx) contendo os índices dos clusters para cada observação. Este vetor terá a dimensão n por 1. Continuando nossos exemplos acerca da codificação dos algoritmos e possíveis implementações com o MATLAB, um outro algoritmo não supervisionado que possui função pronta é a análise de componente principal. Para tal implementa- se a função pca, disponível desde antes da versão 2012b do programa, que retornará os coeficientes das componentes principais, também conhecidos na prática como cargas, a partir de uma entrada que será uma matriz de dados de ordem n por p, seguindo o seguinte padrão: 1) as colunas de x corresponderão às observações e 2) as linhas corresponderão às variáveis. A matriz de coeficientes retornada pela função é quadrada e de dimensão p, sendo que cada coluna desta contém os coeficientes para um componente principal e as colunas estarão em ordem decrescente da variância do componente. Além disso, imposto como padrão 25 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. da função pca, observa-se que esta centrará os dados e utilizará um algoritmo de decomposição em valores únicos (também conhecido como algoritmo SVD, de Single Value Decomposition). IMPORTANTE! Assim como para a função kmeans, existe uma página com uma série de dicas e exemplos acerca da função PCA no MATLAB, a partir da central de ajuda do programa. “Auxílio de como utilizar a função PCA no MATLAB”: Disponível em: <https://www.mathworks.com/help/stats/pca.html>. Acesso em: 17 de set. 2020 Tomando agora por último, como exemplo nesta parte os algoritmos de aprendizado semissupervisionado, tem-se o treinamento a partir de uma grande quantidade de dados sem labels contra outra pequenade dados rotulados. A Figura 3 adiante ilustra como pode funcionar na prática tal tipo de estratégia para a estruturação do algoritmo: Figura 3 - Aprendizado semissupervisionado Fonte: GÉRON, 2019. p. 14. Desta forma como é estabelecido, o algoritmo semisupervisionado será fruto da combinação de algoritmos supervisionados e não supervisionados, além de ser possível citar as redes neurais de crenças profundas (mais conhecidas pelo termo em inglês DBNs - deep brain networks), que se baseiam em componentes como a máquina restrita de Boltzmann. Neste caso, treina-se as RBMs de forma sequencial https://www.mathworks.com/help/stats/pca.html 26 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. e não supervisionada e o ajuste do sistema é feito por técnicas do aprendizado supervisionado (GÉRON, 2019). Assim como foi feito para os algoritmos de aprendizado supervisionado e não supervisionado, analisaremos a este ponto que há de instruções acerca de algoritmos semisupervisionados para o MATLAB. Desta forma, em uma rápida busca percebe-se que existem dicas dos próprios usuários do software sobre implementações de algoritmos como DBN e demais algoritmos de Aprendizado Profundo. Para isto, sugere-se ao aluno(a) utilizar uma toolbox do MATLAB, que é estabelecida como um conjunto de funções e ferramentas específicas, desenvolvidas dentro de uma temática e, neste caso, sugere-se a toolbox DeepLearn. IMPORTANTE! Outro possível exemplo de algoritmo de aprendizado profundo e também de algoritmos de aprendizado semissupervisionado poderá ser explorado através do link que permite inclusive implementações do algoritmo DBN, instalando-se este pacote desenvolvido à parte, que suporta a partir da versão 2012a: Link: https://www.mathworks.com/matlabcentral/fileexchange/42853-deep-neural- network Acesso em: 17 de set. 2020 A seguir você verá aspectos importantes para os algoritmos de aprendizado em geral, antes de ver maiores detalhes sobre os modelos obtidos, no capítulo 3. Começaremos esta parte do estudo então pela análise do papel da capacidade e compreendendo o que é o overfitting e o underfitting. 2.2 CAPACIDADE, OVERFITTING E UNDERFITTING A capacidade está, neste contexto, diretamente relacionada a parâmetros como a visualização de erros entre o modelo e o que se espera de obtenção, ao final do algoritmo de aprendizado. Desta forma, a capacidade possui relação direta com o que o modelo é capaz de fornecer para o problema (GOODFELLOW, BENGIO & COURVILLE, 2016; MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). Pode-se https://www.mathworks.com/matlabcentral/fileexchange/42853-deep-neural-network https://www.mathworks.com/matlabcentral/fileexchange/42853-deep-neural-network 27 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. controlar o tempo através de um dado modelo a partir da alteração de sua capacidade, por exemplo, sendo que formalmente é possível definir a capacidade de um dado modelo como a habilidade de conter/caber uma grande variedade de funções. Com isto, modelos com baixa capacidade poderão de fato “lutar” para caber dentro de um dado conjunto de dados de treinamento e, por outro lado, um modelo com alta capacidade poderá se sobreajustar, além do esperado, realizando assim na verdade a memorização do conjunto de dados, memorizando as principais propriedades deste conjunto de treinamento. Assim, este modelo não servirá e nem se ajustará de forma efetiva aos dados do conjunto de teste (GOODFELLOW, BENGIO & COURVILLE, 2016). É a partir destas colocações acerca da capacidade que surgem os conceitos de underfitting e overfitting, essenciais para o bom desenvolvimento de um algoritmo de aprendizado. Por outro lado, uma maneira de se controlar a capacidade de aprendizado do algoritmo é delegar um dado espaço de hipóteses, uma seleção de funções que o algoritmo de aprendizado é permitido de selecionar como uma possível solução do problema (GOODFELLOW, BENGIO & COURVILLE, 2016). Considere como exemplo o algoritmo de Regressão Linear, que possui um conjunto de funções lineares como entrada, em seu espaço de hipóteses e o que pode ser feito é generalizar a regressão para a inclusão de polinômios, ao invés de somente funções lineares e, com isto, aumentando-se a capacidade do modelo. O que ocorre no Aprendizado de Máquina na prática é que geralmente os algoritmos irão performar melhor quando sua capacidade é apropriada para a real complexidade da tarefa que estes precisarão realizar, além da relação adequada de preparo do algoritmo, mediante o conjunto de treino fornecido para a obtenção do modelo. Modelos de capacidade insuficiente serão incapazes de resolver tarefas mais complexas e já os modelos de capacidade maior poderão resolver tais tarefas mas também, como já mencionado, sua capacidade poderá ser maior quando eles precisam resolver estas tarefas e o modelo poderá sobreajustar (ou overfit, como é comumente referido em inglês) (GOODFELLOW, BENGIO & COURVILLE, 2016). Ademais, ressalta-se que há uma infinidade meios de se alterar a capacidade de um dado modelo, intencionalmente ou não e a capacidade de predição, por outro lado, não é determinada somente pela escolha do tipo de modelo, visto que o 28 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. modelo especifica geralmente uma possível família de funções que o algoritmo de aprendizado poderá escolher para quando variam-se os parâmetros, reduzindo-se o objetivo do treinamento. Isto é chamado de capacidade representacional e em muitos casos encontrar a melhor função desta família torna-se um difícil problema de otimização (GOODFELLOW, BENGIO & COURVILLE, 2016). Agora vamos analisar de fato o que é o underfitting e o overfitting. Assim, traduzindo-se literalmente observa-se que underfit significa subajustar algo e overfit sobreajustar e trazendo para a realidade do Aprendizado de Máquina tais situações poderão configurar em problemas para a obtenção do modelo e também no funcionamento do algoritmo em si, como já brevemente mencionado. Como um possível exemplo prático de como controlar a tendência do modelo de subajustar ou sobreajustar, tem-se a técnica de decaimento de pesos, onde demonstra-se a possibilidade de treinar um modelo de regressão expresso por um polinômio de grau alto com diferentes valores de . Além disso, de forma mais genérica é possível ajustar o modelo que aprende uma dada função ),( xf adicionando-se uma penalidade chamada de regularizador, referente à função de custo. No caso de o peso diminuir, o regularizador será definido como: www T )( (5) A Figura 4 adiante mostra como estas diferentes relações de pesos expressam o comportamento do modelo, sendo que um valor excessivo de representa o underfitting, um valor médio deste o decaimento apropriado do peso e um valor de tendendo a zero implica em overfitting: Figura 4 - Relaçõesentre os diferentes tipos de peso e a ocorrência de underfitting, overfitting ou comportamento desejável Fonte: GOODFELLOW, BENGIO & COURVILLE, 2016. p. 116. 29 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. Adiante você verá o principal papel dos hiperparâmetros no contexto e como a validação do modelo obtido é feita, na maior parte dos casos. 2.3 HIPERPARÂMETROS E VALIDAÇÃO A maior parte dos algoritmos de Aprendizado de Máquina possui hiperparâmetros, que são configurações utilizadas para o controle do comportamento do algoritmo, basicamente. Além disso sabe-se que os valores destes não são adaptáveis pelo processo de aprendizado do algoritmo, o que significa na prática que, normalmente, possa se projetar algoritmos aninhados, em um cenário no qual um dado algoritmo de aprendizagem aprenderá quais são os melhores hiperparâmetros para o outro (GOODFELLOW, BENGIO & COURVILLE, 2016). Para compreender melhor como isto é estabelecido na prática considere novamente o exemplo do algoritmo de Regressão Linear, implementado para a regressão polinomial. Este algoritmo possui apenas um único hiperparâmetro: o degrau do polinômio. No contexto, este hiperparâmetro age ainda como um hiperparâmetro de capacidade. Além disso, o valor de poderá ser usado para controlar a força do decaimento de peso e, neste contexto, funciona ainda como outro exemplo de hiperparâmetro para o problema. Adicionalmente, observa-se que às vezes uma configuração do algoritmo é escolhida para ser um hiperparâmetro e, então, o algoritmo não consegue implementar, de fato, o aprendizado porque este hiperparâmetro escolhido é de difícil otimização e ajuste. Assim, com frequência tem-se que se o aprendizado foi efetivo no conjunto de treinamento, tais hiperparâmetros obtidos poderão ser sempre escolhidos, resultando em um problema, visto que a máxima possibilidade de capacidade resultará em um overfitting (GOODFELLOW, BENGIO & COURVILLE, 2016). Um exemplo prático disso é que sempre é possível ajustar o conjunto de treinamentos de forma mais efetiva com um grau polinomial maior e uma configuração de decaimento de peso igual a zero do que poderia ser feito para um modelo, cuja função polinomial possui grau menor e, ainda, um possível positivo decaimento de peso. 30 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. Além disso, vamos analisar agora mais uma dica prática através de um exemplo, para a compreensão especialmente das diferenças entre os parâmetros e hiperparâmetros no Aprendizado de Máquina, lembrando que ambos fazem parte dos algoritmos de aprendizado em geral, incluindo técnicas do Aprendizado Profundo. Assim, imagine a seguinte situação: você estava em casa e resolveu que queria aprender a tocar violão. Neste contexto simples de análise, os hiperparâmetros poderiam ser quantas horas você poderá praticar, se você terá ou não um(a) professor(a) para auxiliá-lo no processo, entre outros. Por outro lado, os parâmetros neste contexto seriam os aspectos com relação à adaptação do seu próprio corpo no processo de aprendizado desejado, como o fortalecimento de certos músculos envolvidos, por exemplo. Assim, perceba que à medida que se altera as horas e/ou a qualidade do aprendizado (como contratar uma boa professora para auxiliá-lo, por exemplo) torna- se possível mudar, de fato, o seu aprendizado. Ou seja, caso sua professora seja ótima e você também se adapte à forma como ela ensina, você poderá aprender mais rápido, embora a este ponto seja necessário reforçar que, assim como também ocorreria com um computador, o aprendizado varia de “pessoa para pessoa”. A conclusão que se tira com este exemplo simples é: dependendo de como são estabelecidos os hiperparâmetros do seu problema, o aprendizado poderá ocorrer de forma mais fácil ou não. Quanto aos parâmetros, o que ocorre na prática é que estes são ajustados pelas máquinas de formas adversas (ou por você, como você pôde perceber no exemplo). Mais ainda, considerando o exemplo dado e transportando este de fato para o aprendizado computacional, é constantemente apontado por diversos projetistas e pesquisadores da área que, raramente os hiperparâmetros ideais para o contexto/problema analisado são conhecidos, independente da importância (maior ou menor) destes na resolução do problema. Além disso, como você pode imaginar, independentemente de ser fácil ou não obter os hiperparâmetros, tal obtenção envolverá pesquisas e análises menos ou até mais avançadas. Em contrapartida, existem ferramentas que permitirão encontrar com maior facilidade os hiperparâmetros do problema, como as próprias técnicas de otimização, que poderão ser implementadas através de algoritmos em prol da obtenção dos 31 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. hiperparâmetros, algo que traz como crucial vantagem a diminuição do tempo total gasto na obtenção do modelo final. Mas, caso tal algoritmo de auxílio, por alguma forma, não seja necessário ou mesmo caso o projetista desconheça tal solução, é importante salientar que, de fato, é possível encontrar os hiperparâmetros por tentativa e erro, mesmo que isto seja bem mais oneroso na maior parte dos casos. Ademais, na prática orienta-se a divisão do conjunto de dados de treinamento em dois conjuntos distintos e um destes será utilizado para o aprendizado de parâmetros, ao passo que o outro será utilizado para a validação, sendo usado para estimar a generalização do erro durante ou após o treinamento, permitindo que os hiperparâmetros sejam atualizados de acordo com isto (GOODFELLOW, BENGIO & COURVILLE, 2016; MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). O subconjunto de dados de treinamento utilizado para o aprendizado de parâmetros é ainda assim frequentemente chamado de conjunto de treinamento, embora possa ser confundido com a grande quantidade de dados disponíveis para tal. Por outro lado, é o subconjunto de dados de treinamento utilizados nos hiperparâmetros que é denominado de conjunto de validação. Tipicamente utiliza-se 80% dos dados totais para o treinamento e 20% para a validação e usando-se o treino de hiperparâmetros o erro de validação irá subestimar o erro de generalização, algo semelhante ao que é feito durante o treinamento propriamente dito. Entretanto, depois de completar-se a otimização dos hiperparâmetros a generalização do erro poderá ser estimada através do conjunto de dados de teste (GOODFELLOW, BENGIO & COURVILLE, 2016). Antes ainda de entender processos de validação largamente utilizados, vamos compreender como pode ser calculado o erro de generalização do modelo obtido a partir de um dado algoritmo de aprendizado. Assim, dada a hipótese de que Hh , um alvo conceito é definido tal que Cc e tem-se ainda uma distribuição subjacente D, o erro de generalização (ou risco) de h é definido como ]1[)]()([Pr)( )()( ~~ xcxh DxDx ExcxhhR (6) sendow1 um indicador de função do evento w² (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). Além disso, com relação ainda a este importante parâmetro 32 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. ressalta-se que a generalização do erro vinculado a uma dada hipótese não está diretamente acessível para o aprendiz, caso tanto a distribuição D, quanto o alvo conceito c sejam desconhecidos. Contudo, o aprendiz poderá mensurá-lo, através de um erro empírico de uma hipótese, analisado no conjunto de amostras com label S. Este erro empírico pode ser calculado como, considerando uma hipótese Hh , similarmente um alvo conceito Cc e um conjunto de amostras dado por mxxxS ...21 , tem-se que este erro é (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018): m i xcxh iim hR 1 )()(1 1 )(ˆ (7) Assim, perceba que o erro empírico da hipótese h, sendo Hh como previamente fora considerado, tem-se o erro médio em torno das amostras S, ao passo que a generalização do erro é um erro esperado com base na distribuição D. Ademais, fazendo algumas considerações acerca destes dois erros e comparando- se as equações anteriores, ao final, obtém-se a seguinte relação: )(]1[]1[)](ˆ[ )}()({ ~ )}()({ ~~ hREEhRE xcxh Dx xcxh DSDS mm (8) Agora vamos analisar as possibilidades, de fato, de validação do modelo. Entre estas, destaca-se a validação cruzada, por exemplo, que pode ser expressa em função de um parâmetro de erro, neste caso definido como erro de validação cruzada, cuja quantidade é calculada conforme visto adiante (GOODFELLOW, BENGIO & COURVILLE, 2016; MOHRI, ROSTAMIZADEH & TALWALKAR, 2018): n i m j ijiji i CV i yxhL mn R 1 1 )),(( 11 )(ˆ (9) A escolha adequada de n, por exemplo, é um dos principais objetivos de pesquisa dentro do Aprendizado de Máquina. Por outro lado, observa-se que em 33 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. várias situações práticas de aplicação de técnicas de Aprendizado de Máquina tem- se que o parâmetro n é tipicamente escolhido para ser 5 ou 10, além do fato de que a validação cruzada n-fold (que recebe este nome por dividir os dados em n conjuntos) é usada como seguimento em uma seleção de modelo. Os dados com label são primeiramente divididos em um conjunto de treino e outro de teste, sendo que o de treino tem tamanho m e é usado para computar o erro de validação cruzada n-fold, apresentado na Equação 6, para um número pequeno de possibilidades de valores de . Além disso, é o próximo conjunto até o valor de 0 , para o qual o erro é o menor e o algoritmo é treinado com o parâmetro de ajuste 0 ao longo de todo o conjunto de dados de treinamento, de tamanho m. Por último, esta performance é avaliada no conjunto de dados de teste (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). Já no caso particular, no qual a validação apresentada ocorre onde n = m, tem- se o caso especial denominado como validação cruzada “leave-one-out”, desde que a cada iteração exatamente uma instância é retirada do treinamento. Neste caso ainda se observa que o erro médio correspondente será um estimador aproximadamente imparcial do erro médio de um algoritmo e, neste contexto, pode ainda ser utilizado para entregar algumas garantias simples por parte de certos tipos de algoritmos (MOHRI, ROSTAMIZADEH & TALWALKAR, 2018). Entretanto, ressalta-se ainda que, no geral, este tipo de situação leva a um processo de validação difícil de ser computado pela máquina, visto que é requerido um tempo de treinamento n em amostras de dimensão m - 1, embora de fato existam algumas exceções. Por outro lado, como você pode imaginar, existem outras técnicas e estratégias dentro da Estatística que possibilitam, como desejado, analisar o comportamento do modelo diante do “ideal” de predição, por exemplo, inclusive de maneiras mais simplistas. Assim, mais especificamente, com relação a modelos de predição, é comum o uso de ferramentas como a Curva ROC (do inglês Characteristic Operator Receptor, ou curva Característica de Operação do Receptor). Esta curva permite a análise do desempenho de um sistema classificador binário, considerando-se ainda como parâmetro de análise a variação de um limiar de discriminação (FAWCETT, 2006; KRZANOWSKI & HAND, 2009). Pode-se analisar a curva em si e também 34 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. parâmetros escalares desta, como a área sob a curva, que expressará uma média de acertos, basicamente. Tomando como exemplo um dado classificador, um possível meio de obter a curva ROC é calcular as quantidades de falsos positivos da predição e a quantidade de predições feitas corretamente (denominadas como verdadeiros positivos no contexto). Tais medidas são tomadas pela matriz de confusão, que pode ser vista na figura adiante: Figura 5 - Matriz de confusão Fonte: Elaborado pela autora, 2020. A curva ROC é traçada então a partir do espaço ROC, considerando-se um classificador padrão, também conhecido como “flip a coin”, visto que a chance de acerto é de 50% e de erro também (FAWCETT, 2006). A curva ROC será traçada a partir do espaço, como mostra a figura a seguir: Figura 6 - Espaço ROC Fonte: Elaborado pela autora, baseado em (Langley, 1996). 35 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações, ou, por sistemas de armazenagem e recuperação de dados – sem o consentimento por escrito do Grupo Prominas. Além disso, como já mencionado, caso deseje-se analisar a área sob a curva (mais conhecida como AUC por Area Under the Curve), deve-se calcular a área aproximada da curva ROC obtida, com ferramentas como o método trapezoidal. No MATLAB este tipo de cálculo é inclusive facilitado, por conta de funções que permitem aproximações. A área do classificador “flip a coin” resulta em 0,5, ao passo que um classificador com AUC acima deste valor pode ser considerado um bom preditor e abaixo deste como ruim, de maneira geral. IMPORTANTE! Para calcular a área sob a curva no MATLAB é possível baixar uma função, separadamente, que realiza este cálculo aproximado de forma automática. Esta função pode ser baixada pelo link e está disponível a partir do MATLAB 2014b. Link: https://www.mathworks.com/matlabcentral/fileexchange/50962-fast-auc Acesso em: 17 de set. 2020 https://www.mathworks.com/matlabcentral/fileexchange/50962-fast-auc 36 Todos os direitos são reservados ao Grupo Prominas, de acordo com a convenção internacional de direitos autorais. Nenhuma parte deste material pode ser reproduzida ou utilizada, seja por meios eletrônicos ou mecânicos, inclusive fotocópias ou gravações,
Compartilhar