Machine Learning e Azure

azureml_expand-your-reachOlá pessoal!

Neste post vamos abordar sobre o aprendizado de máquina e sua utilização. Nos últimos anos este assunto ganhou destaque e tornou-se bastante comum em áreas diversas. Antes de falarmos sobre o Azure ML, é preciso entender alguns conceitos.

Mas afinal, o que é o aprendizado de máquina?

O aprendizado de máquina é uma das subáreas mais relevantes da Inteligência Artificial (IA) que surgiu da ideia de criar programas que aprendam um determinado comportamento ou um determinado padrão automaticamente, a partir de exemplos ou observações. Significa que a construção de algoritmos e conceitos, uma vez implementados no código, irão fazer com que o seu computador reaja e aprenda através das entradas que ele recebe.

O primeiro conceito surgiu na década de 1950, na IBM, através de Arthur Samuel: “Área de estudo que dá aos computadores a habilidade de aprenderem sem ser explicitamente programados.” Ele criou um programa que era capaz de aprender padrões de jogos de dama que levavam a vitória.

A ideia existe há mais de 50 anos e com o passar do tempo, através de mais e mais dados disponibilizados, a aprendizagem de máquina tornou-se muito útil, passando de pesquisa acadêmica para avanços como o reconhecimento de voz.

Mineração de Dados
azureml_IC65574
Mineração de Dados

A mineração de dados é o processo de extração automática de informações a partir de grandes bases de dados, através de algoritmos de aprendizado de máquina classificados por diversas áreas de pesquisa. Essas informações são os conhecimentos necessários para o aprendizado.

Os algoritmos de aprendizado de máquina procuram padrões dentro de uma base de dados. Esses algoritmos existem há tempos, mas nunca houve uma quantidade tão grande de dados disponíveis para alimentá-los como hoje.

Métodos estatísticos são utilizados, somados a grande quantidade de recursos computacionais disponíveis.

Redes Neurais

As redes neurais são um dos mais famosos tipos de algoritmos de aprendizado de máquina. A ideia das redes neurais é imitar o comportamento do cérebro humano, já que há uma série de atividades melhor desempenhadas por pessoas do que por computadores.

Para entendermos como os algoritmos das redes neurais tentam imitar o nosso cérebro é preciso ter alguma bagagem em programação e em estatística. Um único tipo de rede neural é capaz de realizar tarefas complexas de classificação completamente distintas entre si.

A diferença de uma rede neural para outra é o processo de treinamento. A partir dos exemplos mostrados a ela, a rede neural vai ajustando seus parâmetros de acordo com as respostas. Por exemplo, para treinar uma rede neural com o intuito de classificar notícias devem ser exibidos exemplos de notícias de cada categoria para ela. Ou seja, a rede neural regula as “sinapses” do “cérebro” para classificar novos exemplos automaticamente.

A Microsoft utiliza a linguagem .NET para definir arquiteturas de rede neural no Azure ML. Saiba mais aqui.

Análise Preditiva

Segundo Gareth Herschel, Research Director do Gartner Group: “Análise Preditiva ajuda a conectar dados para uma tomada de ação efetiva desenhando conclusões confiáveis sobre condições de eventos atuais e futuros.”

Dizemos que é o processo de criação de modelos preditivos através de uma exaustiva análise de um conjunto de dados atuais e históricos com o objetivo de definir uma regra que permita predizer um determinado evento futuro, utilizando a estatística como principal ferramenta.

Na análise preditiva baseada na nuvem temos as seguintes facilidades:

  • Modele do seu jeito;
  • Implante em minutos;
  • Expanda ao seu alcance.

No Azure ML podemos facilmente criar modelos através de uma ferramenta chamada Estúdio de Aprendizado de Máquina, baseada em navegador, arrastando, soltando e conectando módulos. Não há necessidade de programação, basta conectar visualmente os conjuntos de dados e módulos para construir seu modelo de análise preditivo.

Tipos de Aprendizado de Máquina

Aprendizado Supervisionado: consiste no aprendizado em cima de dados já identificados e, a partir daí, busca-se determinar dados não vistos. Por exemplo, na identificação de spam, onde há e-mails marcados como spam ou não. É possível aprender em cima desses dados e identificar com maior precisão a possibilidade de um novo e-mail ser um spam.

Aprendizado Não-Supervisionado: consiste em identificar em um conjunto de dados os possíveis agrupamentos, sem saber antecipadamente quais grupos que realmente definem estes dados. Por exemplo, baseando-se em dados financeiros é possível identificar em uma população os grupos de classe baixa, média e alta.

Microsoft Azure Machine Learning

É um serviço totalmente gerenciado, baseado em nuvem, que permite a criação e a implantação de modelos preditivos como solução para as mais diversas decisões possíveis dos clientes, de maneira rápida e fácil.

São apenas três passos para criar um espaço de trabalho de aprendizado de máquina dentro do Azure:

  • Abra o Portal de Gerenciamento do Azure e clique em Novo (parte inferior esquerda da tela);
  • Clique em Serviços de Dados e selecione Aprendizado de Máquina;
  • Clique em Criação Rápida e insira o nome do espaço de trabalho, proprietário e conta de armazenamento.
azureml-setup
Setup Azure ML

A ideia da Microsoft é democratizar a aprendizagem de máquina, para que seus clientes não gastem muito tempo e esforço em treinamento para usar um algoritmo de aprendizado de máquina.

azure_r_pO Azure ML suporta Python e R, muito utilizados pelos desenvolvedores. Dessa forma, é só copiar um código Python ou R (ou uma combinação deles), carregá-los no Estúdio e criar APIs facilmente, com apenas alguns cliques.

A plataforma também suporta Hadoop e Spark, dando-lhe um conjunto bastante completo de ferramentas para o processamento de big data, independentemente da plataforma de escolha. Para o fluxo de dados em tempo real pode ser utilizado o Azure Stream Analytics ou o Apache Storm.

azureml_datacomplete
Stream Analytics

A aplicação do aprendizado de máquina pode ser encontrada na maioria dos produtos Microsoft. Podemos citar, entre outras, abrir códigos do GitHub e dados do Salesforce no portal do Microsoft Power BI, fazer um reconhecimento de voz através da Cortana, detectar posições do corpo através do Kinect, fazer leituras de oxigenação através da Microsoft Band.

Hoje a plataforma trabalha com 3 categorias de algoritmos nativos:

  • Classificação: algoritmos de classificação permitem que análises sejam feitas na base de treino e testes, e seu valor preditivo (aquele que estamos buscando) possa ser encontrado de forma discreta. Um resultado discreto significa apresentar um item baseado em um subconjunto conhecido de valores possíveis. Normalmente são poucos valores. Os mais comuns de se encontrar no mercado são classificadores binários, que “predizem” se a resposta é SIM ou NÃO, e apresentam o grau do índice de confiança para aquela resposta que foi apresentada.
  • Clusterização: algoritmos de clusterização (ou segmentação) fazem o processo de particionar os dados da amostra de uma população em vários subconjuntos, deixando as ocorrências mais parecidas umas perto das outras. Diferente dos algoritmos de classificação na qual as classes são conhecidas, nesses algoritmos as ocorrências (linhas/registros) são agrupadas pelas suas semelhanças. Imaginando a aplicação deste algoritmo em um universo de pessoas, é possível segmentar estes indivíduos por região que moram, região que trabalham, sexo, idade, renda, etc. Qualquer dado discreto conhecido pode ser usado para fazer a segmentação da população e a partir desta segmentação é possível criar várias outras análises. O algoritmo também pode ser alterado para se adequar melhor à sua necessidade. Outra aplicação para algoritmos de clusterização é entender o comportamento sequencial dos indivíduos, analisando os passos que foram feitos para realizar uma ação em algum lugar. Com estes passos é possível agrupar os indivíduos em subgrupos.
  • Regressão: algoritmos de regressão permitem que as análises na base de treino e testes retornem valores contínuos para aquele resultado preditivo. Os valores contínuos podem ser considerados os valores “infinitos”, podendo ser quaisquer valores possíveis. Por exemplo, uma aplicação deste algoritmo pode ser uma análise para saber quanto custa uma casa baseada na metragem e na região. Este intervalo de possibilidades é bem grande, e uma aplicação que faça este tipo de análise pode ter uma carga de processamento e consumo de memória gigantesco. O uso de algoritmos para estas aplicações, facilitam demais o trabalho do cientista de dados.
azureml-marketplace
Experimentos de classificação

Além de fornecer ferramentas para big data na nuvem, o Azure ML também está oferecendo um mercado onde os profissionais podem compartilhar aplicativos e APIs que eles criaram. Esta é mais uma forma que Microsoft está usando para trazer os desenvolvedores como parceiros. A construção de modelos preditivos e a sua rápida implementação atraem um número cada vez maior de pessoas. É necessário apenas um navegador da web para iniciar o aprendizado de máquina e aplicá-lo!

Veja aqui um tutorial para criação, treino e pontuação de um modelo no Azure ML usando o Estúdio de Aprendizado de Máquina do Azure.

Profissão: Cientista de Dados

Os dados vêm crescendo em escala explosiva, assim como o poder computacional. Dessa forma, a necessidade de combiná-los de maneira eficiente e eficaz, facilitou a criação desse novo profissional no mercado.

Esse profissional deverá utilizar técnicas estatísticas e computacionais, de forma rápida e objetiva, para que os dados não percam seu valor. Assim, um cientista de dados pode ser um estatístico com conhecimento razoável de computação e de uma área de negócio específica; ou um cientista da computação com conhecimento razoável de estatística e de uma área de negócio específica. Fica a dica para quem optar por esse caminho.

Nos próximos posts exploraremos mais o uso do aprendizado de máquina e seus resultados!

Fonte das imagens: Microsoft.com

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s