Todas as técnicas de Machine Learning (ML) passam essencialmente por criar algoritmos capazes de aprender uma representação compacta dos dados, prever ou generalizar dos padrões para dados desconhecidos a partir de um conjunto de treino conhecido. Big Data Analytics usa abundantemente técnicas de ML para analisar grandes quantidades de dados e extrair conhecimento dos mesmos. Uma das técnicas recentes mais avançadas são as redes neuronais artificias do tipo Deep Learning. À medida que vastas quantidades de dados se vão tornando disponíveis em áreas como Segurança Cibernética, Deteção de Fraude, Marketing e Medicina, os algoritmos Deep Learning têm vindo a impor-se como a abordagem mais eficaz e com melhor precisão – nalguns casos ultrapassando mesmo os humanos.
A vantagem dos algoritmos de Deep Learning é sua a capacidade de aprendizagem em grandes quantidades de dados de uma forma não-supervisionada (dados não anotados), sendo assim uma ferramenta valiosa para Big Data Analytics onde a maioria dos dados são desta natureza, também designados por dados não-estruturados. As máquinas inspiradas em Deep Learning conseguem aprender abstrações complexas dos dados através de um processo de aprendizagem hierárquica muito similar ao que ocorre no cérebro humano – sobretudo no córtex visual.
Nas técnicas tradicionais, a qualidade dos algoritmos depende muito da representação dos dados em certas características, ou features. Feature Engineering e pré-processamento consome assim grande parte do esforço do analista e é específico para cada domínio. Por exemplo, na análise de imagens é comum pré-processar as imagens com algoritmos de deteção de fronteiras (edges) a fim de facilitar a identificação de objetos.
Porém, os algoritmos Deep Learning (DL) apresentam uma abordagem inovadora, no sentido em que dispensam grande parte deste pré-processamento ao gerar de forma automática propriedades invariantes nas suas camadas de representação hierárquicas. Estes métodos têm produzido excelentes resultados em diferentes aplicações incluindo o reconhecimento de voz, visão computacional, e processamento de linguagem natural, sendo a tecnologia base por detrás de inúmeras ferramentas como o Google Translate (para tradução de texto) e o Cortana – o assistente personalizado da Microsoft.
Estes métodos conseguem obter uma representação complexa e abstrata dos dados de forma hierárquica usando várias camadas de processamento não-linear. Os dados sensoriais (por exemplo, pixels de uma imagem) são alimentados a uma primeira camada sendo a saída de cada camada uma entrada da camada seguinte. O empilhamento de várias camadas destes neurónios é a ideia básica dos algoritmos de DL.
No entanto, a aprendizagem neste tipo de arquiteturas é um problema de otimização bastante difícil que só recentemente foi resolvido por Hinton, Bengio, LeCunn e Schmidhuber durante a última década. As arquiteturas propostas foram as RBM – máquinas de Boltzmann restritas, as redes convolucionais (CNN), auto-encoders (AE) e, para processos temporais, redes recorrentes Long Short Term Memory (LSTM). Todas estas arquiteturas têm em comum o facto de possuírem várias camadas de aprendizagem, com milhões ou biliões de parâmetros (o cérebro humano possuí cerca de 10 000 biliões de sinapses) alinhados em camadas e onde cada camada representa uma forma de abstração.
O sucesso destas arquiteturas tem sido imenso, sendo hoje a abordagem dominante na análise de imagem, vídeo, som e texto – todos processos que envolvem processamento de dados com alta dimensionalidade. No caso do processamento de imagens, por exemplo, esta abordagem trouxe uma verdadeira revolução reduzindo para cerca de 1/5 a taxa de erro em benchmarks complexos como o CIFAR ou o ImageNet.
Em termos de processamento de linguagem, talvez a área mais complexa e desafiadora em Machine Learning e no qual o autor está ativamente envolvido, os progressos têm também sido notáveis. Por exemplo, a ferramenta “word2vec” do Google é uma técnica de extração distribuída automatizada de representações semânticas. Esta ferramenta usa um gigantesco corpus de texto para treinar uma rede neuronal que representa vectorialmente cada palavra. Miklov introduziu esta técnica para aprender representações vetoriais palavras de alta qualidade mostrando relações semânticas subtis. Por exemplo, esta técnica consegue responder a questões como “Paris pertence à França assim como Berlim pertence a ???”. Recentemente um trabalho de um grupo de cientistas da Microsoft – veja aqui – desenvolveu um algoritmo capaz de derrotar humanos em perguntas complexas relativas a testes de QI, por exemplo: Isotherm is to temperature as isobar is to? (i) atmosphere, (ii) wind, (iii) pressure, (iv) latitude, (v) current.
Num trabalho recente de Y. Bengio, foi mostrado que os algoritmos podem ser usados para tradução automática de texto usando auto-encoders recorrentes e um mecanismo de atenção que permite traduzir frases com uma dimensão arbitrária de palavras. O nível de precisão obtido entre o francês e o inglês é notável. Este tipo de máquinas recorrentes generativas pode até ser usado para gerar poesia ou prosa – embora a qualidade ainda deixe um pouco a desejar.
Ainda não resolvemos todos os problemas da Inteligência Artificial, mas as abordagens recentes inspiradas em algoritmos de Deep Learning conseguiram chegar até resultados que eram impensáveis apenas há 2 ou 3 anos.
Para quem quiser saber mais sobre Deep Learning, consulte o website deeplearning.net ou o livro (ainda em produção) “Deep Learning” de Y. Bengio.
[tmm name=”armando-vieira”]
Leia mais artigos deste autor.