Por que eu devo ler este artigo:Neste artigo entenderemos mais a fundo como aplicar as técnicas de machine learning mais recentes em seus projetos de natureza Microsoft, bem como técnicas com .NET e suas bibliotecas mais famosas, como a Math.NET e Accord.NET. Veremos, aqui, uma série de aplicações práticas sobre como seu código pode aprender de forma inteligente a partir dos dados que você fornece aos seus algoritmos. Com base em exemplos reais, você entenderá como programas que aprendem sozinhos podem beneficiar aplicações com quantidades massivas de dados, diminuir a complexidade de atualizar software estaticamente, bem como mitigar riscos prevendo modelos em larga escala.

A machine learning (ou, aprendizagem de máquina) faz parte de uma tendência geral na indústria de análise de sistemas que tenta tornar as máquinas mais inteligentes, isto é, fazer com as mesmas aprendam por si sós com base em uma série de algoritmos programados para tal finalidade. Em outras palavras, a machine learning explora o estudo e a construção de algoritmos que podem aprender e fazer previsões com base em dados. Esses algoritmos operam construindo um modelo a partir de entradas de exemplo para fazer previsões ou decisões orientadas a dados, em vez de seguir instruções de programa estritamente estáticas.

Em termos mais simples, basta pensarmos na machine learning como programas de computador que produzem resultados diferentes porque estão expostos a mais informações, mas sem a necessidade de alterar seu código-fonte (e, consequentemente, reimplantá-los).

Por exemplo, considere um jogo básico de computador. Neste jogo, mostramos ao computador uma imagem de um círculo azul e fornecemos ao mesmo o dado “Círculo Azul”. Então, mostramos uma imagem de um círculo vermelho com o dado “Círculo Vermelho”. E, por fim, um triângulo verde com o dado “Triângulo Verde”. Quando mostrarmos, então, uma imagem de um círculo verde e perguntarmos ao computador o que é isso, idealmente, teríamos o mesmo respondendo: “Círculo Verde”.

Este é só um dos inúmeros exemplos do que é machine learning. Embora o código não precisasse ser recompilado, o programa pode responder com precisão a dados que nunca teve contato antes. Além disso, o código não precisa escrever explicitamente cada possível permutação de dados. Em vez disso, criamos modelos que o software aplica a novos dados. Às vezes, ele está certo, às vezes não. Em seguida, alimentamos os novos dados para que o computador possa treinar o modelo e ficar mais e mais preciso ao longo do tempo - ou, pelo menos, esse é o objetivo.

Todavia, uma vez que você decida usar qualquer machine learning, algumas questões virão à tona. Com que frequência você quer que o computador aprenda? Por exemplo, se criar um modelo à mão, com que frequência você o atualiza? A cada nova linha de dados? Todo mês? Todo ano? Dependendo do que está tentando realizar, pode criar um modelo de ML em tempo real ou um modelo periódico.

Por que escrever um machine learning próprio?

Todas as principais empresas de software conduzem grandes projetos de machine learning, como o Google Analytics, a Amazon Machine Learning Services, o IBM Watson, o Microsoft Cortana Analytics, para citar alguns. Além disso, essas empresas geralmente tentam vender produtos que, no mínimo, possuem um componente de aprendizado de máquina, como o Microsoft SQL Server Analysis Service, o Oracle Database Add-In, o IBM SPSS ou o SAS JMP. Não incluímos alguns pacotes de software analíticos comuns, como o PowerBI ou o Tableau, porque eles estão mais voltados para a agregação de dados ou escrita de relatórios. Embora façam análises, eles não possuem um componente de aprendizado de máquina (ainda não, pelo menos).

Com todas essas opções, por que aprender a implementar a aprendizagem de máquina dentro de suas aplicações se você possa comprar em outro lugar? É o famoso dilema entre as opções disponíveis que cada departamento ou empresa tem que fazer. Você pode querer construir porque:

  • Realmente entende o que está fazendo e pode ser um consumidor muito mais informado e crítico sobre os pacotes de machine learning. Na verdade, você está construindo seu próprio conjunto de habilidades internas, algo que provavelmente sua empresa apreciará;
  • Você pode obter um melhor desempenho executando localmente, o que é muito importante para a aprendizagem em tempo real da máquina e pode ser usado inclusive em cenários de conexão lenta ou total desconexão. Mais importante ainda quando começamos a implementar ML com dispositivos da Internet das Coisas (IoT), em cenários onde o dispositivo possui muito mais memória RAM do que largura de banda da rede. Considere o Raspberry Pi executando o Windows 10 em um pipeline. A comunicação em rede pode ser irregular, mas a máquina possui muito poder para implementar modelos de ML;
  • Você não tem qualquer associação com fornecedores ou empresas. Por exemplo, sempre que implementar um aplicativo usando o pacote ML de um fornecedor específico, e não estiver pensando em como se desvencilhar deste fornecedor, você se torna mais dependente dele e de seus inevitáveis licenciamentos e custos. Na próxima vez que estiver falando com o CTO de uma loja com muita infra baseada em Oracle, pergunte-lhe se se arrepende de implementar qualquer lógica de negócios em banco?!
  • Pode ser muito mais ágil e flexível. Por exemplo, muitas vezes é preciso retreinar os modelos ML sob demanda e, quando você escreve seu próprio código, tal tarefa se torna extremamente mais fácil. Se você usa um pacote de terceiros, eles podem não ter mecanismos de reavaliação de modelo simples ou até disponíveis, dificultando todo o processo.

Uma vez que decida implementar sua própria solução, terá a opção de lidar com seu próprio código ou usar alguns dos packs de código aberto disponíveis. Como as bibliotecas que vamos usar são de código aberto, você pode personalizar seus pacotes e bibliotecas ML - os proprietários podem inclusive aceitar suas alterações (no entanto, não estaremos personalizando tais bibliotecas neste artigo).

Primeiros passos

Para começar, precisaremos baixar o Visual Studio (vide seção Links). Após iniciar o instalador ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo