Se você acompanha notícias sobre tecnologia e tendências de mercado, certamente já ouviu a buzzword Deep Learning. Mas afinal, o que é Deep Learning? Para responder essa pergunta, primeiro devemos ter uma noção do que é Machine Learning e de como funciona.

Machine Learning (ML) é uma área de inteligência artificial onde é possível criar algoritmos para ensinar uma determinada máquina a desempenhar uma tarefa. Como isso é possível? Simples. É necessário ter um conjunto de dados, e a partir desses dados, explorar a correlação entre eles, descobrindo padrões, aplicando algoritmos, e gerando modelos que podem ser generalizados para uma determinada tarefa específica.

Esse processo é chamado de treinamento do modelo. Após ter seu modelo treinado, ele é capaz de generalizar para novos dados (não apresentados na etapa de treinamento), encontrando correlações e gerando previsões para realização da tarefa especificada. De uma maneira geral, ML é dividido em duas grandes áreas:

  • Aprendizado supervisionado: consiste em dados rotulados. O algoritmo recebe um conjunto de dados rotulados, ou seja, dados com as saídas corretas correspondentes, e o algoritmo aprende comparando a saída do modelo com a saída esperada, reajustando seus parâmetros até chegar em um limiar aceitável e pré-determinado a priori.

 

  • Aprendizado não-supervisionado: consiste em dados não rotulados. O algoritmo recebe um conjunto de dados não rotulados e busca encontrar semelhanças entre grupos de dados, gerando clusters, ou grupos de dados. (link para artigo de ML).

 

Deep Learning – mas, afinal, onde Deep Learning se enquadra nesse universo?

Deep Learning, ou Aprendizado Profundo, é uma sub-área de ML. Mais especificamente, trata de Redes Neurais Artificiais, uma área que busca simular computacionalmente o cérebro enquanto máquina de aprendizado. Os primeiros registros científicos da tentativa de reprodução de um neurônio artificial datam da década de 50, onde modelos computacionais foram desenvolvidos, porém pouco explorados devido à falta de poder de processamento dos computadores da época.

Com o desenvolvimento da era digital, os computadores tornaram-se mais poderosos do ponto de vista de processamento, o que permitiu avanços significativos na área. Como uma Rede Neural é um paradigma conexionista ponderados por pesos, ou seja, a capacidade de desenvolver modelos inteligentes está nas conexões de uma quantidade significativa de neurônios artificiais (e não nos neurônios em si), as operações aritméticas crescem de forma exponencial no tocante à Redes Profundas. Fica claro nesse ponto a importância do conceito de Big Data, uma vez que esse tipo de arquitetura tende a funcionar melhor com mais dados de entrada.

Paradigma conexionista de uma Rede Neural Artificial

Figura 1: Paradigma conexionista de uma Rede Neural Artificial

O que difere uma Rede Neural Artificial de uma Rede Neural Profunda é a quantidade de neurônios e de conexões, sendo significativamente maior no segundo caso. Uma Rede Neural simples possui até 5 camadas, já uma Rede Profunda possui mais de 5 camadas. Um computador de mesa comum já não tem capacidade de processamento suficiente para treinar redes profundas, dependendo da arquitetura de rede utilizada, o que gera a necessidade de avanço de técnicas de processamento paralelo e em GPU (Graphic Processing Unit, Unidade de Processamento Gráfico). Existem empresas atualmente focadas em desenvolvimento de hardware dedicado para processamento gráfico com aplicação em Deep Learning (link NVIDIA).

Deep Learning – quais são as aplicações?

Pode-se utilizar Deep Learning nas mais diversas aplicações, mas as mais comuns são:

  • Processamento de Imagem;
  • Processamento de Linguagem Natural
  • Aplicações em Medicina:
    • Aplicações de Reconhecimento de Imagens
    • Câncer de Mama
    • Doença de Alzheimer
    • Diagnóstico Cardiovascular
    • Câncer de Pele
    • Derrame Cerebral
    • Aplicações em Desenvolvimento de Medicamentos
  • Genômica

 Case Deep Learning: Reconhecimento de Imagem

Para mostrar o poder de Redes Neurais Profundas, fizemos um pequeno case de reconhecimento de imagem.

Deep Learning – Base de dados

Columbia Object Image Library 100 (COIL-100). Consiste em uma base com 7200 imagens de objetos com presença de rotação, divididas em 5400 imagens para formar o conjunto de treinamento, e 1800 imagens para teste, totalizando 100 classes distintas. Itens base de dados Figura 2: Imagens presentes no conjunto de dados

Deep Learning – Estrutura da rede e estratégia de treinamento

Utilizou-se uma rede neural profunda na seguinte configuração:

  • Camada 1: Convolução (ativação: Rectifier Linear Unit)
  • Camada 2: MaxPooling
  • Camada 3: Convolução (ativação: Rectifier Linear Unit)
  • Camada 4: MaxPooling
  • Camada 5: Full Connect (ativação: Rectifier Linear Unit, 128 neurônios)
  • Camada 6: Full Connect (ativação: sigmoid, 100 neurônios)

Função custo: Crossentropy; Algoritmo de otimização: Adam Criou-se pequenas virtualizações de imagens para gerar ruído no conjunto de dados, como transformações geométricas, zooms randômicos e pequenas rotações.

Testes e resultados

Após treinamento, obteve-se um modelo especializado na tarefa de reconhecimento de imagens do COIL-100. A acurácia do modelo no conjunto de treinamento foi de 98,64%, e no conjunto de testes foi de 98,78%. E aí? Convencido do o que é Deep Learning e o seu poder? Suas aplicações são amplamente variadas, e seus resultados prometem revolucionar o modo que a inteligência artificial vem influenciando na tomada de decisão do mundo moderno.