BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Artigos Deep Learning online: um resumo do novo livro gratuito do MIT

Deep Learning online: um resumo do novo livro gratuito do MIT

O livro Deep Learning, concebido por uma equipe do MIT formada por Ian Goodfellow, Yoshua Bengio e Aaron Courville, e criado para auxiliar estudantes e praticantes de computação a entrar no campo de aprendizado de máquina e em particular no mundo de Deep Learning. Disponibilizado pelo MIT, o livro está disponível para download ou leitura online.

Yoshua Bengio, conhecido por seu trabalho em pesquisas sobre redes neurais artificiais, é professor e pesquisador em Ciência da Computação na Universidade de Montreal. Em especial suas pesquisas nos últimos anos tem focado em Deep Learning em conjunto com outros pesquisadores conhecidos nesta área, como: Yann LeCun e Geoffrey Hinton, no qual publicaram um artigo importante sobre o assunto na revista Nature.

Aaron Courville é professor assistente e pesquisador no departamento de Ciência da Computação da Universidade de Montreal e também é membro do Laboratório de Informática para Sistemas Adaptáveis. Desenvolveu algumas atividades na Google Scholar, unidade da Google que fomenta pesquisas e recrutamento com estudantes para atuar no campo de Deep Learning entre outras áreas de pesquisa.

Ian Goodfellow é pesquisador sênior, parte integrante da equipe Google Brain e que atualmente trabalha para a OpenAI, ele estuda novos métodos para melhorar redes neurais. Goodfellow possui vários artigos publicados na área e foi um dos editores responsáveis pela publicação do livro.

Uma nova tecnologia

Quando uma nova tecnologia surge e consegue responder, ou é capaz de auxiliar a responder, muitos dos questionamentos existentes para problemas matemáticos não trivialmente resolvidos por meio de métodos tradicionais de resolução de problemas computacionais, uma grande euforia toma conta da comunidade de tecnologia. Seja pela relevância que esta nova tecnologia pode retornar, em termos de ganhos financeiros para muitas empresas, ou por razão da resolução de problemas antes inimagináveis de serem solucionados com os métodos tradicionais.

Além destes fatos, em relação a resolução de problemas e ganhos financeiros, uma batalha é iniciada visto a concordância e discordância entre especialistas que atuam nesta área. A disponibilização do livro gerou centenas de comentários, tanto no Hacker News como no Reddit, sobre o grau e a qualidade da informação transmitida em relação ao seu conteúdo.

O aprendizado de máquina é uma das subáreas que atualmente mais crescem dentro da inteligência artificial. Esta subárea dedica-se a resolver problemas matemáticos complexos como: o reconhecimento de voz e reconhecimento facial, conforme descrito na introdução do livro:

Quando os primeiros computadores foram concebidos, as pessoas perguntavam-se se, em algum dia poderiam tornar-se inteligentes. Isto ocorreu a mais de cem anos, antes que o primeiro código computacional fosse construído (Lovelace, 1842). Hoje, a inteligência artificial (AI) é um campo em expansão, com muitas aplicações práticas e temas de pesquisas ativos. Com o objetivo de automatizar tarefas rotineiras, são utilizados softwares inteligentes para fazer reconhecimento de voz, facial ou imagens, fazer diagnósticos médicos e servir de base para investigações científicas.

Nos primeiros dias da inteligência artificial, este campo de pesquisa rapidamente ajudou a resolver problemas que de uma forma comum, são intelectualmente difíceis para os seres humanos, mas relativamente simples para os computadores - problemas que podem ser descritos por uma lista de regras formais ou matemáticas.

O verdadeiro desafio para a inteligência artificial é provar ser capaz de resolver tarefas que são fáceis de executar por uma pessoa, mas difíceis para que estas pessoas possam descrever formalmente como resolvem estes problemas - estes problemas referem-se aos casos em que seres humanos resolvem de forma intuitiva e automática, como por exemplo o entendimento da fala ou a capacidade de uma pessoa simplesmente reconhecer outra olhando para seu rosto.

Deep Learning é a subárea de aprendizado de máquina que estuda como solucionar problemas intuitivos. Este tipo de solução permite que computadores aprendam a partir de experiências anteriores e compreendam o mundo em termos de uma hierarquia de conceitos, no qual os conceitos mais complexos são definidos e compreendidos em termos de sua relação com conceitos mais simples e já conhecidos.

Ao ganhar conhecimento por meio de experiências, esta abordagem evita a necessidade de operadores humanos para especificar formalmente todo o conhecimento necessário ao computador - não há a necessidade de programadores criarem estruturas de dados complexas para resolver problemas previamente conhecidos, mesmo que estes problemas tenham um grau de dificuldade alto. A hierarquia de conceitos permite que o computador aprenda conceitos mais complexos a partir de conceitos mais simples.

Como o livro é composto

O livro é dividido em três partes conforme descrito no índice:

  1. O básico de matemática aplicada e aprendizado de máquina
  2. Deep Networks: Práticas Modernas
  3. Pesquisa em Deep Learning

Subdivide-se em assuntos que abordam temas pertinentes a cada uma destas áreas de conhecimento, conforme a experiência dos autores em suas pesquisas e projetos. O livro aborda temas como por exemplo:

Algebra linear

Álgebra linear é um ramo da matemática amplamente utilizado em ciência e engenharia. No entanto, devido ao fato de a álgebra linear estar presente de forma contínua na vida de um pesquisador em Ciência da Computação, muito mais que a matemática discreta, incluímos este assunto pois muitos cientistas da computação têm pouca experiência com ela.

Um bom entendimento de álgebra linear é essencial para compreender e trabalhar com muitos dos algoritmos de aprendizado de máquina, especialmente algoritmos de Deep Learning. Por este motivo, decidimos iniciar a introdução ao Deep Learning com uma apresentação focada nos principais pré-requisitos de álgebra linear.

Teoria da probabilidade

A teoria da probabilidade é uma ferramenta fundamental para muitas disciplinas de ciência e engenharia. Criamos este capítulo para certificar que os leitores, que possuem conhecimento base apenas em engenharia de software, possam se familiar com a teoria da probabilidade e serem capazes de compreender o material deste livro.

Computação numérica

Algoritmos para aprendizado de máquina normalmente exigem uma grande quantidade de processamento numérico. Este alto consumo de processamento, normalmente refere-se a algoritmos que resolvem problemas matemáticos por métodos que atualizam as estimativas de uma solução por meio de um processo iterativo, ao invés de utilizar uma abordagem analítica derivada de uma fórmula que fornece uma expressão simbólica para a solução correta.

O básico de aprendizado de máquina

Redes que aprendem a partir de experiências anteriores são de extrema importância para praticantes de aprendizado de máquina. Elas formam a base de muitas aplicações comerciais importantes. Por exemplo, as redes convolucionais utilizadas para reconhecimento de objetos em fotografias são um tipo especializado de redes que aprendem a partir de experiências anteriores. Estas redes são um degrau conceitual no caminho para redes recorrentes, o qual dá a força necessária para muitos aplicativos de linguagem natural.

Regularização para Deep Learning

Um problema comum em aprendizado de máquina diz respeito a como implementar um algoritmo que não apenas se comporte bem com dados previamente treinados, mas também com novos tipos de dados.

Muitas estratégias utilizadas em aprendizado de máquina são explicitamente projetadas para reduzir a quantidade de erros durante os testes, possivelmente em detrimento do aumento da quantidade de erros durante um treinamento. Estas estratégias são conhecidas coletivamente como regularização. Existe um grande número de formas de aplicar regularização disponíveis para estudiosos em Deep Learning. Na verdade, criar formas mais efetivas de estratégias de regularização é um dos maiores esforços de pesquisa neste campo.

Técnicas de otimização para treinar modelos

Algoritmos para Deep Learning envolvem otimização em vários contextos. Por exemplo, realizar inferência em modelos como PCA, envolve resolver problemas de otimização. É comum fazer otimização analítica para escrever provas de conceito ou projetar novos algoritmos. De todos os inúmeros problemas com otimização existentes em Deep Learning, o com maior grau de dificuldade é referente ao treinamento de redes neurais.

É muito comum investir dias ou mesmo meses em centenas de servidores para resolver uma instância simples de treinamento de uma rede neural. Devido a importância e o custo (hardware, memória e tempo) deste tipo de problema, um conjunto de técnicas de otimização especializada foi desenvolvido para resolver este tipo de problema.

Redes convolucionais

Redes convolucionais (LeCun, 1989), também conhecidas como redes neurais ou CNN, são um tipo especializado de rede neural para processamento de dados já conhecidos, normalmente construídas em uma topologia matricial. Exemplos deste tipo de rede incluem as série de dados temporais, o qual podem ser pensados como uma matriz de uma única dimensão que coleta amostras em intervalos de tempo regulares, ou dados de imagens, que podem ser pensados como uma matriz de duas dimensões ou pixels.

Redes convolucionais são bem sucedidas na resposta para aplicações práticas que fazem reconhecimento de objetos por meio de imagens, como por exemplo pessoas nuas em imagens fotográficas para combater pornografia. O nome "rede neural convolucional" indica que a rede aplica uma operação matemática denominada convolução. Convolução é um tipo especializado de operação linear. Redes convolucionais são redes neurais simples que utilizam convolução no lugar de multiplicação geral de matrizes em pelo menos uma das camadas.

fig1.png

Exemplo de Rede Neural Convolucional (fonte: Deep Learning Concepts, Nvidia)

Modelagem Sequencial: Redes recorrentes e recursivas (RNN)

Redes neurais recorrentes ou RNN (Marten e Sutskever, 2011), dizem respeito a uma família de redes neurais para processamento de dados sequenciais. Muito de uma rede convolucional contém uma rede neural especializada no processamento de uma matriz de valores X como por exemplo uma imagem, uma rede neural recorrente é uma rede neural especializada no processamento de uma sequencia de valores x(1), . . . , x(τ).

Assim como redes convolucionais podem facilmente escalar imagens com grande largura e altura, e algumas redes convolucionais podem processar imagens de tamanho variável, redes recorrentes podem ser dimensionadas para sequências muito mais longas do que seria prático para redes sem uma especialização baseada em sequência. A maioria das redes recorrentes também podem processar sequências de comprimento variável.

Modelos práticos

Aplicar técnicas de Deep Learning com sucesso exige mais que simplesmente um bom conhecimento sobre quais tipos de algoritmos existem e entender os princípios de como cada um deles funciona. Um bom estudioso em aprendizado de máquina também precisa saber como escolher o algoritmo adequado para uma aplicação em particular e como monitorar e responder às respostas dos experimentos que realiza, e assim melhorar o sistema de aprendizado de máquina.

Durante o período de desenvolvimento de sistemas de aprendizado de máquina, um estudioso do assunto precisa decidir quando recolher mais dados, quando aumentar ou diminuir a capacidade do modelo proposto, quando adicionar ou remover funcionalidades de regularização, quando melhorar a otimização de um modelo, quando melhorar a inferência de aproximação de um modelo, ou mesmo analisar a implementação em software do modelo proposto.

Todas estas operações são, pelo menos, demoradas para testar, por isso, é importante ser capaz de determinar o momento certo para tomar uma ação direita ao invés de ficar cegamente supondo. Muito do material contido neste livro descreve diferentes modelos de aprendizado de máquina, algoritmos de treinamento e quais os objetivos de algumas funções.

Aplicações para Deep Learning

Neste capítulo, descrevemos como utilizar Deep Learning para resolver problemas em visão computacional, reconhecimento de voz, processamento de linguagem natural e outras aplicações de interesse comercial. Iniciamos discutindo implementações em larga escala de redes neurais necessárias para muitas aplicações de inteligência artificial reconhecidamente sérias. Depois são revisadas áreas específicas onde Deep Learning é aplicada para resolver problemas. Uma vez que um dos objetivos de Deep Learning é o de projetar algoritmos capazes de resolver uma grande variedade de tarefas, é necessário um bom grau de conhecimento e especialização.

A parte três do livro descreve as abordagens mais ambiciosas e avançadas em Deep Learning atualmente empregadas e investigadas por pesquisadores em geral.

Aprendizado de representação

Deep Learning baseia-se em muitos modelos formais o qual pesquisadores utilizam para orientar seus esforços de projeto e descrever seus algoritmos. Um destes formalismos é a ideia de modelos probabilísticos estruturados. Modelos probabilísticos estruturados são o ingrediente chave para muitos dos tópicos mais importantes de pesquisa em Deep Learning. Este capítulo visa descrever os modelos probabilísticos estruturados em detalhes.

Métodos de Monte Carlo

Muitos problemas em aprendizado de máquina são tão difíceis que não é possível obter respostas precisas para eles. Estes problemas são tão difíceis que excluem algoritmos determinísticos e os algoritmos de Las Vegas. Neste caso, deve-se usar algoritmos determinísticos de aproximação ou aproximações de Monte Carlo. Ambas as abordagens são onipresentes em aprendizagem de máquina.

Inferência Aproximada

Muitos modelos probabilísticos são difíceis de treinar devido a dificuldade de realizar inferência. No contexto de Deep Learning, normalmente se tem um conjunto de variáveis visíveis v e um conjunto de variáveis latentes h. O desafio da inferência normalmente refere-se a dificuldade em processar um problema da ordem p(h | v) ou ter expectativas em respeito a este tipo de problema. Estas operações são muitas vezes necessárias para tarefas como por exemplo a aprendizagem de uma probabilidade máxima.

Como a comunidade recebeu o livro

Em um dos principais comentários sobre o livro na rede de notícias Hacker News, Jeremy Kun, estudante Ph.D. em matemática estatística e pesquisador na Universidade de Ilinois em Chicago, o qual mantém um blog ativo sobre este assunto, descreve sua percepção como pesquisador matemático para o conteúdo disponibilizado:

O principal problema que identifiquei no livro é que ele informa tudo sobre diferentes tipos de ajustes finos possíveis, mas passa pouco conhecimento concreto para o leitor sobre o tema. Ele não faz distinção entre pressupostos de modelagem computacional, e substitui explicações muito simples de conceitos com parágrafos complicados que não fazem muito sentido.

Na réplica recebida, vários outros usuários da rede de notícias rebatem os argumentos utilizados por Jeremy Kun, argumentando na maioria das vezes que o trabalho desenvolvido, apesar de não abordar em profundidade o assunto, é significante por tentar passar o conhecimento e a experiência dos pesquisadores envolvidos no tema.

A linguagem do livro é voltada para iniciantes ou mesmo usuários, não é necessário ser um especialista em matemática para compreender os assuntos abordados no livro, porém os autores conseguem abordar assuntos mais complexos e que talvez necessitem de uma compreensão e conhecimento maior.

Já no Reddit, Ian Goodfellow, um dos autores, respondeu a muitos questionamentos feitos por usuários desta rede, explicando inclusive sua motivação para escrever o livro.

Quando comecei a trabalhar com Deep Learning, não havia uma única fonte de informação capaz de explicar todos os diferentes algoritmos com uma mesma terminologia. Lembro-me de passar muito tempo tentando descobrir o que eram as máquinas de Boltzmann, e depois eventualmente perceber que elas nada mais eram que redes de Markov que eu já havia estudado nas aulas de Daphne Koller.

Depois de ter gasto muito tempo e esforço lendo tudo sobre Deep Learning, eu senti que poderia ajudar a próxima geração de estudantes escrevendo conteúdo a respeito do que eu havia aprendido. Esta tarefa terminou por ser um projeto muito mais difícil do que eu jamais esperava que fosse no início, mas meus colegas da Google, especialmente Geoffrey Hinton e Michaela Rosca, me incentivaram a continuar trabalhando. Cada um de meus co-autores tem a sua própria história nesta área, mas estou confiante de que nenhum de nós fez isso como uma forma de renda extra.

Conclusão

O livro cobre a maior parte das teorias básicas e técnicas práticas, mas a implementação é neutra. Para fazer testes, é possível seguir tutoriais para aplicações conhecidas como Theano e TensorFlow por exemplo. Os autores procuraram escrever um livro para ser razoavelmente acessível para iniciantes, e estão acrescentando exercícios no site afim de tornar o conteúdo mais útil.

A atual onda sobre Deep Learning esbarrou nas fronteiras da linguística computacional durante vários anos, mas desde 2013 como a força de um tsunami vem atingindo grandes conferências a respeito de Processamento de Linguagem Natural (PLN).

Screen Shot 2016-04-09 at 17.44.37.png

Google Trends para Machine Learning e Deep Learning

Grandes e pequenas empresas estão desenvolvendo produtos e entrando nesta área para ganhar dinheiro. É um tópico quente e que requer dedicação e estudo para colocar em prática. Como arquiteto de solução ou arquiteto empresarial, devemos sempre estar antenados com o que há de mais atual em termos de tecnologia, com o objetivo de trazer para nossos locais de trabalho a indicação de soluções que possam resolver problemas significativos de forma assertiva e viável.

Um bom exemplo que pode ser citado no mundo aerospacial, é a análise de dados de voo de uma aeronave baseado nas centenas de milhares de linhas de log reportadas durante os ensaios de testes em um primeiro voo, auxiliando a equipe de engenheiros e pilotos a garantir a segurança dos futuros voos, que pode ser otimizada com o auxílio de Deep Learning apontando informações importantes sem que um ser humano se debruce por horas analisando ou criando planilhas para auxiliar sua análise. Outro exemplo que podemos citar nesta mesma área, é a utilização do filtro de Kalman para rastrear mísseis em voo e prever seu destino final futuro e com isto, orientar mísseis para interceptá-los.

O campo de Deep Learning aborda uma série de temas complexos de aprendizagem de máquina, estatística, otimização, geometria e assim por diante. Portanto, sendo um novo campo de estudo e pesquisa, é importante olhar para além da superfície, e escolher alguns dos conceitos mais difíceis de dominar se o desejo for realmente se aprofundar nesta área.

Se seu objetivo não é de se aprofundar nesta área, mas de apenas riscar a superfície e entender o que trata este assunto, este livro é uma boa referência para balizar seu conhecimento e então poder contratar um profissional adequado que lhe ajude a implementar. Profissionais desta área, em geral, são pesquisadores com mestrado ou doutorado e que passaram muitos anos de suas vidas estudando e se aprofundando no assunto. Diante disso, são capazes de lhe auxiliar a escolher os melhores algorítimos e fazer inferência em testes para entregar o melhor resultado.

Sobre o autor

Marcelo_oculos.JPG

Marcelo Costa (LinkedIn, Twitter) é pós-graduado em Engenharia de Software pela UNICAMP. Atua em sistemas de alta complexidade desde 2002, coordenando equipes multidisciplinares no desenvolvimento de soluções de software nas áreas de educação, saúde, finanças e logística rodoviária e aeroespacial. Especializa-se na coleta inteligente de informações na internet e de conteúdo eletronicamente disponível; atualmente é Arquiteto de Soluções na EMBRAER. Possui experiência com Java, PHP, HTML5, Lean, Kanban, Scrum, SOA, ALM, Oracle, PostgreSQL e Shell Script.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT