Deep Learning é atualmente a principal tecnologia usada em sistemas de Inteligência Artificial. Redes Neurais Profundas, que tentam simular em máquinas, o funcionamento do cérebro humano, vem sendo usadas com sucesso em atividades de visão computacional e reconhecimento da fala, com níveis de precisão cada vez maiores.

Deep Learning é uma subárea da Inteligência Artificial (IA) que vem avançando rapidamente, devido a melhorias de desempenho em hardware, como a computação geral em unidades de processamento gráfico (GPGPUs). Ferramentas e frameworks também tornaram Deep Learning mais acessível aos desenvolvedores e Cientistas de Dados, mas, até o momento, nenhuma plataforma dominante surgiu. A infinidade de escolhas pode ser confusa e nem todas as plataformas são criadas iguais. É também uma área onde o desenvolvimento de ponta constante, torna mais difícil criar novas aplicações de Inteligência Artificial, sobre uma base sólida.

Deep Learning ou Aprendizagem profunda é outro nome para Redes Neurais profundas (Deep Neural Networks – DNN). Esse tipo de rede neural tem muitas camadas, o que afeta os requisitos de computação: à medida que o tamanho de uma camada e número de camadas aumenta, o mesmo acontece com essas exigências. Além disso, grandes redes neurais, que são de natureza superficial, podem ser úteis para muitas aplicações. Na verdade, é possível misturá-las usando alguns frameworks. As redes neurais recorrentes (usadas em reconhecimento da fala) e as redes neurais convolucionais (usadas para reconhecimento de imagens), vem sendo amplamente utilizadas em sistemas de Inteligência Artificial, com resultados impressionantes.

Alguns dos mais populares (e open-source) frameworks de Deep Learning, incluem: Caffe, Microsoft CNTK, TensorFlow, Torch, Theano, Keras e DeepLearning4J.

O Caffe, desenvolvido no Berkley Vision e Learning Center (BVLC), provavelmente tem o maior seguimento e apoio. O Microsoft Computational Network Toolkit (CNTK) é um projeto ativo de código aberto. Torch, Theano e Keras são bibliotecas Python que fornecem suporte de aprendizagem profunda. O Google desenvolveu o TensorFlow. DeepLearning4J, desenvolvido pela Skymind, é um framework de aprendizado profundo escrito em Java que foi projetado para ser executado em uma máquina virtual Java (JVM).

A maioria das plataformas de Deep Learning muitas vezes utilizam estruturas computacionais novas ou existentes para fazer o trabalho pesado exigido pelas aplicações. Dois frameworks computacionais bem conhecidos são OpenCL e cuDNN da Nvidia (CUDA DNN). OpenCL tem a vantagem de poder ser executado em uma variedade de hardware, desde CPUs multicore até matrizes de GPUs. A solução da Nvidia tem como alvo suas próprias GPUs, incluindo a arquitetura Pascal mais recente.

Aplicações DNN muitas vezes exigem quantidades significativas de treinamento em grandes clusters para determinar os pesos associados com os nós ou neurônios dentro de uma rede neural. O lado positivo é que a rede resultante pode ser implementada em hardware muito mais simples.

O maior desafio para os desenvolvedores e Cientistas de Dados é se familiarizar com as DNNs. Os frameworks geralmente têm um número de redes pré-configuradas para aplicativos de exemplo, como reconhecimento de imagem. Mas as ferramentas podem ser usadas para muito mais.

Infelizmente, o suporte comercial só está disponível para alguns frameworks. Empresas como Nvidia têm um programa de suporte ativo com ferramentas como o Deep Learning GPU Training System (DIGITS), projetado para lidar com tarefas de classificação de imagens e detecção de objetos. Ele pode ajudar com uma variedade de funções, como treinar várias redes em paralelo.

Deep Learning veio para ficar e com qualquer tecnologia na “corrida do ouro”, aparecem uma infinidade de opções que podem parecer assustadoras para os iniciantes.

Se você quiser começar com Deep Learning, uma das primeiras perguntas a se fazer é: qual framework devo aprender? Escolhas comuns incluem Theano, TensorFlow, Torch e Keras. Todas essas escolhas têm seus próprios prós e contras.

Por esta razão, os especialistas da Data Science Academy, preparam o primeiro e único treinamento do Brasil, 100% online e 100% em português, sobre os principais frameworks de Deep Learning. Além de estudar online, você ainda acessa os nossos super servidores, com 128 GB de RAM e GPU Nvidia Titan X.

Veja abaixo uma breve descrição dos principais frameworks, que serão estudados no curso:

Tensorflow

Este é normalmente o favorito. O Tensorflow é definido como “Uma biblioteca de software de código aberto para Machine Intelligence”, mas esta é uma definição mais precisa: “TensorFlow ™ é uma biblioteca de software open source para computação numérica usando gráficos de fluxo de dados”. Aqui, eles não incluem Tensorflow em “Deep Learning Frameworks”, mas sim na categoria “Graph compilers”, juntamente com Theano. O Tensorflow suporta Python e C++, além de permitir a distribuição de computação entre CPU, GPU (incluindo multi-GPU) e até escalonamento horizontal usando gRPC. Em resumo: Tensorflow é muito bom, mas você deve saber onde e como usar. Na maior parte das coisas que devem ser feitas, você não precisa programar tudo à mão e reinventar a roda.

Theano

Theano é uma das mais veteranas e estáveis bibliotecas. Há uma certa disputa entre Theano e Caffe, sobre qual foi realmente a primeira biblioteca de Deep Learning. Theano é uma biblioteca de baixo nível, seguindo o estilo Tensorflow e, como ele, não é propriamente para Deep Learning, mas para a otimização de computação numérica, o que pode ser usado para a construção de redes neurais profundas. Ele permite cálculos de função de gradiente automática, que juntamente com sua interface Python e sua integração com Numpy, fez desta biblioteca uma das mais utilizadas para o uso geral de Deep Learning.

Caffe

Caffe é um dos frameworks mais veteranos, se não o mais veterano de todos. Ele possui características muito boas e alguns pequenos inconvenientes. Inicialmente, não é uma estrutura de propósito geral. Concentra-se apenas na visão computacional, mas o faz muito bem. O treinamento da arquitetura CaffeNet leva 5 vezes menos em Caffe do que em Keras (usando o backend Theano). Uma grande desvantagem é o fato de não ser flexível. Se você quiser introduzir novas alterações será necessário programar em C++ e CUDA, mas mudanças mais simples podem ser feitas com suas interfaces Python ou Matlab. A documentação também é muito pobre e uma de suas maiores desvantagens é a sua instalação. Há muitas dependências para resolver. Mas cuidado, nem tudo é ruim. Como uma ferramenta para colocar sistemas de visão computacional em produção, é o líder indiscutível. É robusto e muito rápido. Uma boa recomendação é a seguinte: experimentar e testar em Keras sobre Tensorflow e passar para a produção em Caffe.

Keras

– Você acabou de encontrar o Keras. Essa é a primeira frase que você visualiza ao acessar a página do Keras. O Keras possui uma sintaxe bastante clara, a documentação é muito boa (apesar de ser relativamente novo) e funciona com a principal linguagem para desenvolvimento de modelos de Deep Learning, Python. Keras é tão fácil de usar, que é bastante simples aprender os comandos, funções e como encadear cada bloco. Keras é uma biblioteca de alto nível que funciona sobre o Theano ou Tensorflow (é configurável). Além disso, Keras reforça o minimalismo, você pode construir uma rede neural em apenas algumas linhas de código.

Lasagne

O Lasagne emergiu como uma biblioteca que funciona sobre o Theano. Sua missão era abstrair um pouco a computação complexa inerente aos algoritmos de Deep Learning e também fornecer uma interface mais amigável (em Python também). É uma biblioteca veterana e por muito tempo foi uma ferramenta muito utilizada, mas está perdendo espaço em favor do Keras, que surgiu há pouco. Ambos competem na mesma liga, mas Keras tem melhor documentação e é mais completo.

Torch

Torch é um framework especialmente conhecido porque é usado no Facebook Research e no DeepMind antes de ser adquirido pelo Google (depois disso, eles migraram para Tensorflow). Ele usa a linguagem de programação Lua. Em uma paisagem onde a maioria dos frameworks de Deep Learning está focada em Python, uma estrutura que funciona em Lua poderia ser mais uma inconveniência do que uma vantagem. Uma boa solução seria usar o PyTorch, que vem crescendo consideravelmente.

MXNET

Python, R, C++, Julia. O mxnet é uma das bibliotecas mais suportadas por diversas linguagens de programação. Quem trabalha com R vai gostar muito, porque até agora o Python estava ganhando no terreno de Deep Learning de uma forma indiscutível. Esse framework não recebia muita atenção, até o Amazon AWS ter escolhido o mxnet como uma das bibliotecas a serem incluídas em seu Deep Learning AMI. A Amazon fez o mxnet uma biblioteca de referência para Deep Learning e possui capacidades de escala multi-GPU.

DeepLearning4j

O DeepLearning4j possui uma excelente documentação. Na verdade, a documentação do DeepLearning4j é uma obra de arte, e deve ser a referência para outras bibliotecas para documentar seu código. Skymind, a empresa por trás DeepLearning4J percebeu que, enquanto no mundo Deep Learning, Python é o rei, a grande massa de programadores era de Java, por isso uma solução devia ser encontrada. DL4J é compatível com JVM e funciona com Java, Clojure e Scala. Com a ascensão e hype da linguagem Scala e seu uso em algumas das mais promissoras startups, esse framework parece ter um bom futuro pela frente.

Microsoft CNTK

O Cognitive Toolkit era anteriormente conhecido por seu acrônimo, CNTK, mas tem experimentado recentemente um “re-branding”, provavelmente para tirar proveito do lançamento do Microsoft Cognitive service. No benchmark publicado, mostra ser uma ferramenta muito poderosa para escalonamento vertical e horizontal. Por trás dessa biblioteca está a Microsoft Research, a equipe de pesquisa que quebrou o recorde mundial de reconhecimento de fala atingindo nível humano. A sintaxe do Cognitive Toolkit para Python (também suporta C++) é muito semelhante ao Keras.

Ufa. Entendeu agora porque o curso de Deep Learning Frameworks da DSA é único? Estudaremos tudo isso na prática, capacitando os alunos a trabalharem com o que há de mais avançado em criação de modelos de Deep Learning para sistemas de Inteligência Artificial. Python é a linguagem principal de quase todos os frameworks. Mas internamente, quase todos executam seu código em C++. Desta forma, podemos usar o melhor dos 2 mundos: a velocidade de desenvolvimento que o Python fornece e a velocidade de execução que permite o C ++. O curso será inteiramente em linguagem Python.

Clique no botão abaixo e veja o programa completo do curso! Capacite-se. O futuro é agora!

Quero saber mais