Deep Learning: do Conceito às Aplicações

O que é, como surgiu e quando usar Deep Learning.

Marlesson Santana
Data Hackers
9 min readJul 19, 2018

--

Estamos vivendo uma revolução na área de Inteligência Artificial nos últimos anos, e o principal motor dessa revolução são tecnologias baseadas em Deep Learning por vários motivos.

O objetivo desse artigo é apresentar alguns conceitos em relação à tecnologia e situar o leitor sobre os principais motivos desse hype em volta de Deep Learning nos últimos anos. Por fim, apresentar algumas aplicações reais de como essa tecnologia tem mudado o mercado e o que esperar para os próximos anos.

Tópicos:

  • Inteligência Artificial, Machine Learning e Deep Learning
  • Outros métodos de Machine Learning X Deep Learning
  • Flexibilidade na estrutura das redes neurais e Deep Learning
  • Algumas aplicações

Inteligência Artificial, Machine Learning e Deep Learning

são três termos que muitas vezes são confundidos entre si. Antes de falar exclusivamente sobre Deep Learning, é importante contextualizar a hierarquia dessa área de estudo e as diferenças entre os termos, que muitas vezes são utilizados de forma indiscriminada e generalizada.

O gráfico do Google Trends mostra o crescimento nas buscas nos últimos 5 anos sobre os termos relacionados a inteligência artificial, reforçando a percepção sobre o crescimento e revolução na área que vem acontecendo. De forma resumida, é possível definir cada termo como:

Hierarquia das áreas de estudo Artificial Intelligence, Machine Learning e Deep Learning.

A área de estudo da Inteligência Artificial é o estudo e projeto de agentes inteligentes. E “inteligência” pode ser desde escolher uma melhor rota (como o Google Maps faz por você) até dirigir um carro autônomo nessa rota (como o Tesla faz). Ou seja, qualquer sistema que consiga tomar uma decisão baseado em uma heurística pode ser considerado “inteligente”.

Dentro da inteligência artificial existem diversas técnicas diferentes que modelam essa “inteligência”. Algumas técnicas podem ser classificadas na área de Machine Learning (ML), que de forma geral, “aprendem” a tomar uma decisão baseadas em exemplos de um problema, e não de uma programação específica. Os algoritmos de machine learning necessitam de dados para extrair características e aprendizado que podem ser utilizados na tomada de decisões futuras.

Um subgrupo específico de técnicas de ML são chamadas de Deep Learning (DL), geralmente utilizam redes neurais profundas e dependem de muitos dados para o treinamento. Existem muitos fatores que as diferenciam das técnicas clássicas de machine learning, e alguns desses fatores favorecem a utilização dessas técnicas em áreas como visão computacional e processamento de linguagem natural. Vamos falar especificamente dessa diferença entre técnicas clássicas e DL para entender esse “hype”, dificuldades, benefícios e entender principalmente porque estamos em um momento favorável para DL.

Outros métodos de Machine Learning X Deep Learning

Existem alguns pontos importantes que diferem as técnicas clássicas de ML dos métodos de DL, os principais são: a necessidade e o efeito de muitos dados, poder computacional e a flexibilidade na modelagem dos problemas.

Muitos dados

Uma verdade absoluta sobre machine learning é:

Não existe Machine Learning se não existir dados.

Sem dados não há o que aprender ou sobre o que descobrir padrões. Embora os dados sejam o “combustível” das técnicas de ML, existem dois problemas que afligem as técnicas clássicas com relação aos dados, a maldição da dimensionalidadee a estagnação da performance ao adicionar mais dados após um certo limite.

Imagem relacionada
Performance de um algoritmo clássico de ML ao adicionar características

Uma analogia é a melhor forma de explicar a “maldição da dimensionalidade”, até porque o ser humano sofre do mesmo mau.

Pense que você está querendo comprar um carro, e seu objetivo é escolher um carro com melhor custo benefício. Inicialmente você só pode escolher o carro pelo ano e preço, creio que seja uma tarefa bem simples escolher o melhor carro.

Agora, pense que você tem que escolher o carro baseado no ano, preço, marca, modelo, cor, assessórios, estofado, tamanho do tanque… etc. São tantas características, ou seja, tantas informação sobre o problema que uma pessoa acabaria se prendendo aos detalhes e perdendo o foco principal. É isso que acontece com a maioria das técnicas clássicas ao adicionar dimensionalidade ao problema. Existe uma área de pesquisa focada apenas na redução de dimensionalidade, os métodos de ML utilizam essas técnicas para minimizar esse problema.

Comparação de DL com outros algoritmos com relação a quantidade de dados.

Outra questão, é que as técnicas clássicas chegam a um ponto de saturação com relação a quantidade de dados, ou seja, chegam no limite máximo que conseguem extrair de informação dos dados. O mesmo não acontece facilmente com DL, que são preparadas para trabalhar com uma maior quantidade de dados.

Esses dois problemas dos algoritmos clássicos de ML reforçam um dos principais benefícios do uso de DL, que é:

Quanto mais dados, melhor.

Poder computacional para DL

Quem trabalha com DL tem que agradecer muito aos Gamers e as pesquisas em computação paralela com CUDA.

Arquiteturas de Deep Learning geralmente são complexas e necessitam de muitos dados para seu treinamento. Dessa forma, é inevitável a dependência de muito poder computacional para aplicar essas técnicas. Embora alguns métodos clássicos utilizem muito poder computacional como memória ou CPU, as técnicas de DL estão em outra escala.

https://www.digitaltrends.com/computing/nvidia-announces-volta-and-tesla-v100-gpu-for-ai-computing/

Se não fossem as pesquisas relacionadas a computação paralela e utilização de GPUs com CUDA, não existiria Deep Learning, pelo simples fato de ser algo inviável utilizando apenas CPU.

A imagem ao lado faz um comparativo do treinamento de uma Rede Neural Profunda (DL) utilizando apenas CPU e utilizando duas outras placas da NVidia. Ao rodar na Tesla V100 o treinamento da rede fica 30x mais rápido em comparação com o CPU, se levarmos isso a utilização real, em que uma rede dessas pode treinar por semanas, utilizando apenas CPU seria algo impossível de se obter resultados.

Outras arquiteturas de hardware com GPUs chegam a uma melhoria de 100X em relação a CPU (NVidia DGX-1).

Isso tudo não chega a ser exagero, pois, acompanha a complexidade das redes profundas e dos problemas solucionados. Sem contar que uma rede complexa pode demorar semanas treinando em um hardware de ponta, o que levaria anos em uma CPU.

Obrigado Gamers por buscarem sempre jogos com melhores gráficos…

Flexibilidade na estrutura das redes neurais e Deep Learning

Embora existam diversas técnicas clássicas e sejam de propósito geral, a estrutura de Deep Learning e sua unidade mais básica, o neurônio, consegue ser o mais genérico e flexível possível.

A formulação matemática de um neurônio (esse mesmo que tem ai na sua cabeça) é o mais simples possível, e fazendo um paralelo nós temos que:

Baseado em “A Logical Calculus of the ideas Immanent in Nervous Activity” McCulloch and Pitts, 1943

De forma resumida, o neurônio é composto por entradas (os dendritos), um núcleo de processamento (o núcleo) e saídas (o axônio). Dessa forma um sinal entra, é processado e sai diferente.

Matematicamente, o neurônio pode ser modelado como um somatório das entradas multiplicado por pesos, em que esse valor passa por uma função de ativação. Essa proposta foi feita por McCulloch em 1943 e posteriormente refinada por Rosenblatt em 1950.

Uma breve história das redes neurais artificiais — http://deeplearningbook.com.br/uma-breve-historia-das-redes-neurais-artificiais/

Ao olhar essa timeline pela primeira vez, me fiz uma pergunta simples que tem a ver com esse artigo.

se a base teórica das redes neurais é datada de 1943, por que só agora estamos falando de Deep Learning ?

Existem várias respostas para essa pergunta, mas todas de algum modo fazem referência aos dois pontos que já comentei nesse artigo e ao momento que estamos vivendo, que são:

  • Quantidade de dados disponível e a limitação das técnicas clássicas
  • Poder computacional suficiente para treinar redes complexas

Embora apenas um neurônio não seja útil, a flexibilidade de interligar vários neurônios em estruturas mais complexas para resolver problemas é o grande diferencial das arquiteturas de Deep Learning.

Como funciona Deep Learning ?

Abaixo tem uma estrutura simplificada de uma Rede Neural Convolucional (CNN). Esse tipo de rede é muito utilizada para reconhecimento facial, detecção de objetos em imagens, extração de características.. etc

Resultado de imagem para deep learning convolutional
Rede Neural Convolucional (CNN)

Uma CNN geralmente é composta por varias camadas (Layers). Dependendo do problema a ser resolvido a quantidade de camadas pode variar entre dezenas, como uma VGG16 com 16 camadas, até centenas de camadas profundas, como uma ResNet da Microsoft de 152 camadas. É tudo uma questão da complexidade do problema com o tempo e poder computacional disponível para resolver.

Existem inúmeras arquiteturas diferentes com propósitos diferentes, seu funcionamento também depende da estrutura, mas de forma geral, todas são baseadas nas redes neurais. Abaixo alguns exemplos:

http://www.asimovinstitute.org/neural-network-zoo/?utm_content=buffer607bd&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

Essa liberdade de arquitetura possibilita que Deep Learning resolva inúmeros problemas, e seja na verdade como uma caixa de peças lego, só esperando ser montada e desmontada para construir coisas novas.

Algumas aplicações

As aplicações são tão diversas que chega a ser difícil separar as “mais importantes”. Embora DL seja um técnica de proposito geral, as áreas que mais avançaram no estado da arte são:

  • Visão computacional. Como reconhecimento de objetos, segmentação semântica, descrição de cenário, etc. A aplicação mais direta disso tudo em conjunto são os carros autônomos.
  • Reconhecimento da fala (oi siri!) e NLP. É notável a melhoria nos assistentes pessoais como Cortana, Siri e Google Now nos últimos anos. E isso graças ao uso do DL.
  • Healthcare. Um capítulo a parte nos avanços alcançados com DL foi na área da saúde, especificamente no disgnóstico por imagens.

Outras áreas. Como DL é um grupo de métodos de propósito geral, qualquer problema clássico de Machine Learning pode ser resolvido com DL. Ex:

  • Sistemas de Recomendação, filmes, livros e músicas baseadas em comportamento. A Netflix, Amazon e o Spotify utilizam bastante em suas plataformas.
  • Detecção de fraudes, muito comum nas Fintech como Nubank.
  • Análise de sentimento em vídeo, texto ou imagem. Muito utilizado para monitoramento de marca em redes sociais.

entre outros:

Se você chegou até aqui e tem mais dúvidas do que respostas, veja o pessoal do Google explicando o que é Machine Learning e Deep Learning

Curtiu este guia? Não deixe de compartilhar e se inscrever no nosso blog :). Ah! E também se inscreva na nossa newsletter, pra receber semanalmente vários conteúdos como esse e entre no nosso Slack, que está cheio de entusiastas e especialistas em Deep Learning e Machine Learning!

--

--