As 10 principais estruturas de aprendizado de máquina

Publicados: 2017-03-11
Índice mostrar
1. Fluxo tensor
2. Café
3. Aprendizado de máquina da Amazon
4. Apache Singa
5. Microsoft CNTK
6. Tocha
7. Acordo.NET
8. Apache Mahout
9. Theano
10. Brainstorm

Ao mergulhar no mundo do aprendizado de máquina (ML), escolher uma estrutura entre muitas alternativas pode ser uma tarefa intimidadora. Você já deve estar familiarizado com os nomes, mas é útil avaliar as opções durante o processo de tomada de decisão. Existem diferentes estruturas, bibliotecas, aplicativos, kits de ferramentas e conjuntos de dados no mundo do aprendizado de máquina que podem ser muito confusos, especialmente se você for iniciante. Estar acostumado com as estruturas populares de ML é necessário quando se trata de escolher uma para construir seu aplicativo. É por isso que compilamos uma lista das 10 principais estruturas de aprendizado de máquina.

1. Fluxo tensor

O Tensorflow foi desenvolvido pelo Google Brain Team para diferentes tarefas de compreensão e percepção de linguagem. Essa estrutura de código aberto está sendo usada para extensa pesquisa sobre redes neurais profundas e aprendizado de máquina. Sendo o segundo framework de aprendizado de máquina do Google Brain, é compatível com a maioria das novas CPUs e GPUs. Muitos dos serviços populares do Google que usamos diariamente, como Gmail, reconhecimento de fala, Google Fotos e até mesmo a Pesquisa do Google, estão equipados com Tensorflow.

O Tensorflow usa gráficos de fluxo de dados para realizar tarefas numéricas complicadas. Os cálculos matemáticos são elaborados usando um grafo direcionado contendo arestas e nós. Esses nós são usados ​​para implementar as operações e também podem atuar como terminais onde os dados são alimentados. As arestas também representam as associações de entrada/saída entre os diferentes nós.

2. Café

Caffe é uma estrutura de aprendizado de máquina que foi projetada com melhor expressão, velocidade e modularidade como pontos de foco. Ele foi desenvolvido para classificação de visão/imagem computacional, aproveitando as Redes Neurais Convolucionais (CNNs). Caffe é popular por seu Model Zoo, que é um conjunto de modelos pré-treinados que não requer nenhuma codificação para ser implementado.

É mais adequado para a construção de aplicativos, em oposição ao Tensorflow, que se sai melhor em pesquisa e desenvolvimento. Se você estiver lidando com aplicativos com texto, som ou dados de séries temporais, observe que o Caffe não se destina a nada além de visão computacional. No entanto, ele pode ser executado dinamicamente em um host de hardware e faz um bom trabalho ao alternar entre CPU e GPU usando apenas um único sinalizador.

3. Aprendizado de máquina da Amazon

A Amazon desenvolveu seu próprio serviço de aprendizado de máquina para desenvolvedores chamado AML. É uma coleção de ferramentas e assistentes que podem ser usados ​​para desenvolver modelos de aprendizado sofisticados, avançados e inteligentes sem realmente mexer no código. Usando AML, as previsões necessárias para seus aplicativos podem ser derivadas por meio de APIs mais fáceis de usar. A tecnologia por trás da AML é usada pelos cientistas de dados internos da Amazon para impulsionar seus Amazon Cloud Services e é altamente escalável, dinâmica e flexível. AML pode se conectar aos dados armazenados no Amazon S3, RDS ou Redshift e realizar operações como classificação binária, regressão ou categorização multiclasse para criar novos modelos.

4. Apache Singa

O Apache Singa está focado principalmente no aprendizado profundo distribuído usando particionamento de modelo e paralelizando o processo de treinamento. Ele fornece um modelo de programação simples e robusto que pode funcionar em um cluster de nós. As principais aplicações são em reconhecimento de imagem e processamento de linguagem natural (PLN).

O Singa foi desenvolvido com um modelo de programação intuitivo baseado em abstração de camadas e suporta uma variedade de modelos de aprendizado profundo. Por se basear em uma arquitetura muito flexível, ele pode executar métodos de treinamento síncronos e assíncronos e até híbridos. A pilha de tecnologia do Singa é composta por três componentes importantes: IO, Model e Core. O componente IO contém classes usadas para leitura/gravação de dados na rede e no disco. O componente principal lida com operações de tensor e funções de gerenciamento de memória. O modelo abriga algoritmos e estruturas de dados usados ​​para modelos de aprendizado de máquina.

5. Microsoft CNTK

CNTK (Cognitive Toolkit) é a estrutura de aprendizado de máquina de código aberto da Microsoft. Embora seja mais popular na área de reconhecimento de fala, o CNTK também pode ser usado para treinamento de texto e imagem. Com suporte para uma ampla variedade de algoritmos de aprendizado de máquina, como AS CNN, LSTM, RNN, Sequence-to-Sequence e Feed Forward, é uma das estruturas de aprendizado de máquina mais dinâmicas existentes. O CNTK suporta vários tipos de hardware, incluindo várias CPUs e GPUs.

A compatibilidade é um dos destaques do CNTK. Também é elogiada como a arquitetura de aprendizado de máquina mais expressiva e fácil de usar do mercado. No CNTK, você pode trabalhar com linguagens como C++ e python e usar os modelos de treinamento integrados ou criar seus próprios.

6. Tocha

O Torch pode ser a estrutura de aprendizado de máquina mais simples para configurar e começar de maneira rápida e fácil, especialmente se você estiver usando o Ubuntu. Desenvolvido em 2002 na NYU, o Torch é amplamente utilizado em grandes empresas de tecnologia como Twitter e Facebook. O Torch é codificado em uma linguagem chamada Lua, que é incomum, mas fácil de ler e entender. Algumas das vantagens do Torch podem ser atribuídas a esta linguagem de programação amigável com mensagens de erro úteis, um enorme repositório de código de amostra, guias e uma comunidade útil.

7. Acordo.NET

Accord.NET é uma estrutura de aprendizado de máquina de código aberto baseada em .NET e é ideal para computação científica. Ele consiste em diferentes bibliotecas que podem ser usadas para aplicativos como reconhecimento de padrões, redes neurais artificiais, processamento de dados estatísticos, álgebra linear, processamento de imagens etc. O framework é composto por bibliotecas que estão disponíveis como instaladores, pacotes NuGet e código-fonte. Accord.NET tem uma biblioteca de matrizes que facilita a reutilização de código e mudanças algorítmicas graduais.

8. Apache Mahout

Sendo um projeto gratuito e de código aberto da Apache Software Foundation, o Apache Mahout foi criado com o objetivo de desenvolver estruturas de ML distribuídas ou escalonáveis ​​gratuitas para aplicativos como clustering, classificação e filtragem colaborativa. Coleções Java para diferentes operações computacionais e bibliotecas Java também estão disponíveis no Mahout.

O Apache Mahout é implantado em cima do Hadoop usando o paradigma MapReduce. Uma ótima aplicação é transformar instantaneamente dados em insights. Assim que o Big Data armazenado no Hadoop estiver conectado, o Mahout pode ajudar as ferramentas de ciência de dados a encontrar padrões significativos nos conjuntos de dados.

9. Theano

Theano foi desenvolvido em 2007 na Universidade de Montreal, que é mundialmente conhecida por algoritmos de aprendizado de máquina. Embora considerado como uma estrutura de aprendizado de máquina de baixo custo, é flexível e extremamente rápido. As mensagens de erro lançadas pelo framework são famosas por serem inúteis e enigmáticas. Deixando isso de lado, Theano é uma plataforma mais adequada para tarefas de pesquisa e pode ser extremamente útil para isso.

É usado principalmente como plataforma base para sistemas de abstração de ponta que enviariam wrappers de API para o Theano. Exemplos de algumas bibliotecas populares são Lasagne, Blocks e Keras. Uma desvantagem de usar o Theano é que você terá que mexer em alguma solução alternativa para ter suporte a várias GPUs.

10. Brainstorm

O Brainstorm é uma das estruturas de aprendizado de máquina mais fáceis de dominar, considerando sua simplicidade e flexibilidade. Isso torna o trabalho com redes neurais mais rápido e divertido ao mesmo tempo. Sendo escrito inteiramente em Python, o Brainstorm foi desenvolvido para funcionar sem problemas em vários sistemas de back-end.

O Brainstorm fornece dois 'handers' ou APIs de dados usando Python - um para CPUs pela biblioteca Numpy e outro para alavancar GPUs usando CUDA. A maior parte do trabalho pesado é feito por scripts Python, o que significa que uma interface de usuário de front-end rica está quase ausente.