As 15 Melhores bibliotecas JavaScript para Machine Learning de código aberto

E mais prós e contras de cada uma delas.


As 15 Melhores bibliotecas JavaScript para Machine Learning de código aberto

O crescimento extremo em novas tecnologias no campo de Machine Learning tem ajudado os desenvolvedores de software a construir novos aplicativos de IA de maneira mais fácil do que nunca.

Atualmente, a maioria dos entusiastas de IA aproveitaa as estruturas Python para o desenvolvimento de IA(Inteligência Artificial) e ML(Machine Learning). Mas olhando ao redor, também se pode descobrir que estruturas baseadas em JavaScript também estão sendo implementadas em IA.

Essa interseção interessante nos levou a explorar e experimentar as possibilidades estranhas de usar Javascript e Machine Learning juntas.


01. Tensorflow.js

Tensorflow.js

Tensorflow.js em 2019 se tornou o pão com manteiga para todos os projetos de JavaScript para ML devido ao seu núcleo abrangente de álgebra linear e camadas profundas de aprendizado. Ele alcançou rapidamente seu irmão Python no número de APIs com suporte e quase todos os problemas de ML podem ser resolvidos usando-o neste ponto.

Tensorflow.js pode ser usado diretamente nos navegadores enquanto aproveita o WebGL para acelerações. O modelo Tensorflow.js de suporte a navegadores e ambientes Node.js foi adotado por muitas bibliotecas de código aberto, incluindo brain.js e machinelearn.js.

Tensorflow.js

Prós

  • Possui melhores visualizações de gráficos computacionais.
  • Ele tem a vantagem de desempenho contínuo, atualizações rápidas e novos lançamentos frequentes com novos recursos.
  • Ele pode ser implantado em uma gama de máquinas de hardware, desde dispositivos celulares até computadores com configurações complexas.
  • O Tensorflow é altamente paralelo e projetado para usar vários softwares de back-ends (GPU, ASIC), etc.

Contras

  • Sem suporte para Windows
  • Loops Simbólicos ausentes
  • Nenhum suporte de GPU além da Nvidia e apenas suporte a idiomas

2. brain.js

Brain.js

Brain.js é uma biblioteca Javascript para redes neurais que substitui a (agora obsoleta) biblioteca “brain”, que pode ser usada com Node.js ou no navegador e fornece diferentes tipos de redes para diferentes tarefas.

Brain.js

Prós

  • É ótimo para criar rapidamente uma Rede Neural (NN) simples em uma linguagem de alto nível, onde você pode aproveitar as vantagens do grande número de bibliotecas de código aberto.
  • Com um bom conjunto de dados e algumas linhas de código, você pode criar algumas funcionalidades realmente interessantes.
  • Ele tem a capacidade de rodar em javascript do lado do cliente.

Contras

  • Limita sua arquitetura de rede a um ponto onde você só pode fazer aplicativos simples
  • Não há muita possibilidade de camadas softmax ou outras estruturas.

03. ml.js

ml.js

ml.js é uma biblioteca JavaScript ML abrangente e de uso geral para navegadores e Node.js.Ele fornece modelos e utilitários diretos e essenciais para problemas supervisionados e não supervisionados.

Concentrando-se na simplicidade e no machine learning de uso geral tudo-em-um para desenvolvedores de Javascript e Typescript, ele fornece clustering, decomposição, ensemble, bagging, modelos lineares, extrações de recursos e muito mais.

ml.js

Prós

  • Ele permite operações de bits em matrizes, tabelas de hash, classificação, geração de números aleatórios.
  • Ele oferece rotina para álgebra linear, manipulação de array e otimizações.
  • Suporta validação cruzada.

Contras

  • Ele tem suporte limitado para aceleração de hardware.
  • Ele não tem acesso padrão ao sistema de arquivos no ambiente de host do navegador.

04. stdlib

stdlib.js

stidlib é a maneira mais rápida e fácil de construir APIs infinitamente escaláveis e de autocura. A Biblioteca Padrão é baseada na arquitetura Function as a Service (“sem servidor”), inicialmente popularizada pela AWS Lambda.

Você pode usar a Biblioteca Padrão para construir APIs modulares e escaláveis para você e outros desenvolvedores em minutos, sem ter que gerenciar servidores, gateways, domínios, escrever documentação ou construir SDKs

Seu fluxo de trabalho de desenvolvimento nunca foi tão fácil - concentre-se em escrever o código que você adora, deixe a Biblioteca Padrão cuidar de todo o resto.

Prós

  • Fácil compartilhamento de API e controle de acesso.
  • Documentação gerada automaticamente.
  • Utilitários amplamente testados para desenvolvimento de aplicativos e bibliotecas.
  • Funções matemáticas e estatísticas de alto desempenho, rigorosas e robustas

Contras

  • Não há suporte para calcular a secante hiperbólica inversa.
  • Não há suporte para a criação de construções de projeto que não incluam asserções de tempo de execução.


05. ConvNetJS

ConvNetJS.js

ConvNetJS é outra biblioteca para redes neurais e Deep Learning. Ele permite o treinamento de redes neurais em navegadores. Além dos problemas de classificação e regressão, possui o módulo de aprendizagem por reforço (utilizando Q-learning) que ainda é experimental.

ConvNetJS fornece suporte para redes neurais convolucionais que se destacam no reconhecimento de imagem.

Prós

  • Formular e resolver Redes Neurais em Javascript
  • Modelos de treinamento profundo de aprendizagem (redes neurais) inteiramente em seu navegador
  • Sem compiladores, sem instalações

Contras

  • difícil de gerenciar e carece de simplicidade para iniciantes que desejam usá-lo.
  • seu processamento às vezes é mais lento do que em outras ferramentas iguais a este.

06. Neataptic

Neataptic.js

O Neataptic oferece redes neurais flexíveis; neurônios e sinapses podem ser removidos com uma única linha de código.

Nenhuma arquitetura fixa é necessária para que as redes neurais funcionem. Essa flexibilidade permite que as redes sejam moldadas para seu conjunto de dados por meio de neuroevolução, que é feita usando vários threads.

Prós

  • A capacidade de Multi-threading / aceleração GPU
  • A visualização de ativações de neurônios
  • Taxas de aprendizagem adaptáveis (por conexão)

Contras

  • Ele tem um desempenho relativamente fraco.
  • Não é mais mantido.

07. Synaptic

Synaptic.js

O Synaptic implementa um algoritmo geral “livre de arquitetura” que pode ser usado para criar uma gama mais ampla de tipos de rede do que os normalmente encontrados. Ele vem com algumas redes predefinidas - perceptrons multicamadas, redes de memória multicamadas de longo-curto prazo, máquinas de estado líquido e assim por diante.

Prós

  • Capacidade de criar redes recorrentes e de segunda ordem.
  • Ele vem com algumas redes predefinidas.

Contras

  • Não é mais mantido ativamente.
  • Seu tempo de execução é lento em comparação com outras bibliotecas

08. Keras.js

Keras.js

Keras se tornou a principal biblioteca de rede neural para a criação e preparação de modelos de aprendizagem profunda em um amplo escopo de plataformas. Escrito em Python e com mais de 250.000 clientes individuais, é a segunda estrutura de deep learning mais proeminente depois do TensorFlow.

Prós

  • Ele tem a capacidade de executar modelos Keras em programas.
  • Capacidade de explorar o suporte de GPU (Graphics Processing Unit) fornecido pela API WebGL 3d-designs.
  • Os modelos podem ser treinados em qualquer backend.

Contras

  • Só funciona no modo CPU (Central Processing Unit).
  • Ele apenas lida com API de alto nível que roda em outras estruturas.
  • Não é muito útil se você quiser fazer sua própria camada abstrata para fins de pesquisa

09. Math.js

Math.js

Mathjs é uma biblioteca para todas as necessidades matemáticas em JavaScript com APIs de álgebra linear ampla, incluindo operações de matriz e matemática básica. É muito leve, pois não depende de outras técnicas de aceleração crescente, por exemplo, WebAssembly ou WebGL.

Prós

  • Contém um analisador de expressão flexível.
  • Pode ser usado como um aplicativo de linha de comando também
  • Vem com um grande conjunto de funções e constantes integradas
  • Faz computação simbólica

Contras

  • não é tão especializado e, portanto, não inclui funções incluídas em outras bibliotecas voltadas para outras áreas.
  • O tempo de execução é relativamente lento.

10. Limdu.js

Limdu.js é uma estrutura de machine learning para Node.js que oferece suporte à classificação binária, classificação de vários rótulos, engenharia de recursos, aprendizado online e classificação em tempo real. Atualmente está em estado alfa e procurando colaboradores.

Prós

  • Capacidade de serializar e desserializar
  • Classificação de vários rótulos.
  • Ele também suporta a classificação binária

Contras

  • Contribuições baixas.
  • Fácil mutação de conjuntos de dados.

11. Neuro.js

Neuro.js

Neuro é uma biblioteca para desenvolver e treinar modelos de ML em JavaScript e implantar no navegador ou no Node.js.Itambém ajuda na construção de assistentes de IA e bots de bate-papo.

Prós

  • Suporta classificação multi-rótulo.
  • aprendizagem online
  • também suporta classificação em tempo real.

Contras

  • Não oferece suporte para web workers.
  • Sem LSTM e retropropagação ao longo do tempo.

12. Deeplearn.js

Deeplearn.js

deeplearn.js é uma biblioteca JavaScript acelerada por hardware de código aberto para inteligência de máquina. deeplearn.js traz blocos de construção de machine learning de alto desempenho para a web, permitindo que você treine redes neurais em um navegador ou execute modelos pré-treinados no modo de inferência.

Prós

  • Ele permite que o ML seja implementado usando Javascript por meio da API Javascript WebGL.
  • Ele pode usar aceleradores de hardware como GPUs via webGL para executar cálculos mais rápidos e excelentes com gráficos 2D e 3D.
  • Capacidade de realizar inferências mais rápidas, junto com retropropagação completa.

Contras

  • Requer GPUs caras.
  • É extremamente caro treinar devido a modelos de dados complexos

13. Apache MXNetjs

Apache MXNetjs

MXNetJS é o pacote Apache MXNet Javascript. MXNetJS traz a API de inferência de deep learning de última geração para o navegador. Ele é gerado com Emscripten e MXNet Amalgamation.

O MXNetJS permite que você execute a previsão de modelos de deep learning de última geração em qualquer gráfico computacional e traz a diversão do deep learning para o lado do cliente.

Prós

  • XNet contém um agendador de dependência dinâmica
  • MXNet é portátil e leve,
  • Pode ser dimensionado de forma eficaz em várias GPUs e várias máquinas

Contras

  • Ele tem uma comunidade muito menor por trás dele em comparação com Tensorflowjs;
  • Não é tão popular entre a comunidade de pesquisa.

14. Synapses

Synapses.js

Synapses é uma biblioteca de rede neural leve, para js, JVM e .net. Possui fitNetwork, uma nova rede neural treinada com uma única observação.

Prós

  • criar facilmente uma rede neural
  • Pode criar uma rede neural personalizada

Contras

  • Relativamente novo - lançado há dois dias, no momento em que este artigo foi escrito
  • Pouca documentação disponível

15. Compromise

Compromise.js

compromise é uma biblioteca javascript que interpreta e analisa o texto. e toma algumas decisões razoáveis. o compromisso funciona comprimindo uma grande lista de palavras e expandindo-as em tempo de execução.

Prós

  • rápido o suficiente para executar no pressionamento de tecla
  • é pequeno, rápido e geralmente bom o suficiente.

Contras

  • Relativamente novo
  • Pouca documentação disponível

Conclusão

Neste artigo, examinamos as 15 melhores bibliotecas de machine learning JavaScript de código aberto para estender os recursos do JavaScript.

Além disso, como um desenvolvedor, ter e usar as Bibliotecas de machine learning JavaScript corretas o ajudará na busca por montar um algoritmo que irá explorar os pontos fortes e recursos do projeto de machine learning de sua escolha.

Veja também

Esse artigo foi originalmente publicado em https://medium.com/javascript-in-plain-english/top-15-opensource-javascript-machine-learning-libraries-db3131ee3426, mas a postagem original foi deletada pelo autor.


javascript artificialinteligence machinelearning deeplearning


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!