Contact Us
Machine Learning para noobies: conhece exemplos práticos
Tempo de leitura: 8 minutos

Machine Learning para noobies: conhece exemplos práticos

Por João Varela e António Capela, Data Scientists @ Xpand IT

Machine Learning (ML) é um campo que tem sido alvo de muita atenção nos últimos anos. Segundo o mais recente HypeCycle sobre Inteligência Artificial divulgado pela Gartner, Machine Learning deixou de ser uma área com expectativas demasiado elevadas, estando agora numa fase de maior maturação, sendo que o planalto de real produtividade da aplicação de tecnologia estará num futuro bem próximo. Por isso mesmo, se pensas que ML pode ser um trabalho para ti, é a altura certa para seres um engenheiro nesta área. Neste artigo vamos falar do que é Machine Learning, enumerar exemplos de aplicações do mesmo e partilhar algumas vantagens e desvantagens de trabalhar neste ramo. No final esperamos que fiques com uma ideia mais clara sobre se trabalhar como ML engineer é o teu emprego de sonho.

O que é Machine Learning?

De acordo com a IBM, Machine Learning é “uma forma de inteligência artificial que permite a um sistema aprender a partir de dados em vez de a partir de programação explicita”. Felizmente para todos nós, inteligência artificial ainda não é uma super-inteligência que vai dominar o mundo e acabar com a raça humana, mas sim um conjunto de técnicas e algoritmos matemáticos avançados que permitem identificar padrões e tendências em grandes quantidades de dados de forma a automatizar processos ou extrair insights para ajudar a tomar decisões. É por esta razão que os sistemas mais avançados de assistência por voz como a Alexa ainda não têm sentimentos. São apenas sistemas muito inteligentes que conseguem reconhecer padrões de sons na voz dos seus utilizadores. Mesmo o Mr. Stark, quando desenvolveu a sua assistente, deu-lhe o nome de J.A.R.V.I.S (“just a rather very intelligent system”).

Machine Learning giph

O que é um modelo de Machine Learning?

Podemos começar por pensar num modelo de Machine Learning como uma criança a aprender a falar, a criança recebe estímulos dos pais com exemplos de palavras que deve tentar imitar e, pouco a pouco, após muitas tentativas a criança começa a repetir estes sons. Nesta analogia os estímulos dos pais são o nosso dataset, um conjunto de exemplos que a criança deve tentar interpretar, e posteriormente imitar; o dataset tem grande influência no nosso modelo (as palavras mais repetidas pelos pais serão mais facilmente aprendidas pela criança, o idioma falado pelos pais será o mesmo que o da criança e mesmo qualquer pronuncia na voz dos pais terá influência na linguagem da criança). É por esta razão que em ML o nosso dataset deve ser sempre suficientemente representativo do que estamos a tentar modelar.

O processo de aprendizagem da criança é conhecido no mundo de ML como fase de treino. Nesta fase são feitos pequenos ajustes ao modelo iterativamente, de forma a aproximar o nosso resultado com o resultado pretendido. Neste modelo – à diferença entre o resultado do nosso modelo e o resultado pretendido dá-se o nome de erroos pequenos ajustes que são feitos ao modelo ao longo da fase de treino são calculados através de operações matemáticas tendo por base este mesmo erro. Durante a sua aprendizagem, cada criança tem as suas facilidades e dificuldades. Isto faz com que existam diferentes métodos de aprendizagem para cada criança. Analogamente, em ML temos diferentes tipos de modelos: alguns mais apropriados para determinado tipo de dados, outros para quando existem grandes quantidades de dados, etc.

Esta aprendizagem da criança não é apenas válida para a fala, podendo ser aplicada a mesma ideologia para o aprender a andar ou mais tarde o aprender na escola. Da mesma forma os modelos de ML têm variadas aplicações: podem receber dados relativos à meteorologia do dia seguinte e prever qual o número de gelados que serão vendidos nesse dia, podem receber uma imagem e tentar identificar qual o objeto presente na mesma. Podem receber o som captado pela voz de um utilizador e identificar se este pretende ligar a luz do quarto ou preparar o seu típico café, entre muitos outros.

Como referido anteriormente, Machine Learning contém vários tipos de algoritmos que permitem uma aprendizagem distinta tendo como base um conjunto de dados. Pegando no primeiro exemplo referido acima, estes sistemas olham para dados cuja previsão já é conhecida. Neste caso, o registo meteorológico e a lista de vendas de gelados ao longo do último ano e, iterativamente, aprendem a reconhecer padrões nestes dados (em dias de chuva vendem-se menos gelados, quando está calor o número de vendas é superior, etc.). Após este passo de treino, o algoritmo permite calcular, com um determinado nível de incerteza, qual será o valor previsto de gelados vendidos em dias futuros. Este tipo de análise, permite ao senhor da loja de gelados fazer uma gestão de quantos gelados precisa de ter em stock para vender no dia seguinte, definir o número de trabalhadores necessários para o dia seguinte, etc., o que leva a uma gestão de loja mais informada e possivelmente a uma otimização de custos.

Qual a diferença de sistemas de Machine Learning para sistemas de software mais tradicionais?

Um sistema de software mais tradicional implementa uma estratégia ou algoritmo bem definido. Ou seja, todas as condições do problema têm de estar bem explicitas na sua implementação. ML não vem de forma alguma substituir estes sistemas tradicionais. Se quisermos desenvolver uma aplicação de venda de gelados ao domicílio, queremos que o comportamento da aplicação seja sempre idêntico: o utilizador preenche a sua morada, escolhe o seu gelado preferido, faz o pagamento, e recebe o seu fresco gelado em casa.

Este é um tipo de problema que é completamente resolvido apenas com sistema de software tradicional. Se, por outro lado, o senhor da loja de gelados quiser prever qual o número de gelados que irá vender no dia seguinte utilizando técnicas tradicionais, todas as situações teriam de ser retratadas (Se tiverem mais de 30ºC e menos de 20% de humidade serão vendidos 7 gelados, se a temperatura descer para 25ºC passarão para 6, etc.). É neste tipo de problemas que modelos de ML podem ajudar, enquanto que num sistema tradicional as previsões dependem de um conjunto de regras criado por um developer.

Machine Learning giph movie

Num sistema de Machine Learning, este conjunto de regras são ajustadas automaticamente pelo nosso modelo, de um modo intrínseco, com base num dataset com exemplos passados. No caso da loja de gelados, o modelo produzido poderá receber parâmetros de entrada com registos diários como a temperatura, humidade, número de vendas nos últimos dias, dia da semana, se é feriado, etc., e fazer uma previsão do número de gelados vendidos nesse dia, oferecendo ainda expetativas da precisão e garantias matemáticas da validez da abordagem escolhida. Este novo paradigma é principalmente relevante em problemas mais complexos em que são utilizadas grandes quantidades de dados com milhões de registos e milhares de variáveis, nas quais existe maior dificuldade na definição destas condições.

O que contribuiu para a popularidade de Machine Learning

Apesar do mais recente hype desta tecnologia, o conceito de Machine Learning data a década de 50, onde foram desenvolvidos os primeiros algoritmos de aprendizagem automática. Como referido anteriormente, estes modelos necessitam de conjuntos de dados previamente classificados para executar o seu processo de treino; além disso, o processamento iterativo de grandes quantidades de dados exige um poder computacional muito elevado, o que não era possível na altura. Segundo a IBM, existem 6 razões que deram origem a este avanço na área da inteligência artificial:

  • Os processadores mais modernos são cada vez mais poderosos
  • O custo de armazenamento de grandes quantidades de dados é cada vez inferior, nomeadamente com o surgimento das plataformas cloud
  • O aparecimento de tecnologias de computação distribuída
  • O aumento na produção de dados, o que beneficia o treino deste tipo de modelos
  • A implementação destes modelos é cada vez mais partilhada abertamente, o que contribui muito para a sua utilização e investigação
  • Técnicas de visualização de dados estão cada vez mais acessíveis

Aplicações de Machine Learning

Os mais recentes avanços em ML permitiram a implementação desta tecnologia em diferentes áreas de negócio. Podes verificar alguns destes exemplos no último artigo que lançámos na Xpand IT sobre o que é Data Science. Alguns exemplos mais recentes, muito falados da aplicação destes modelos são o AutoPilot, o Deep Fake ou a Open AI.

AutoPilot

A Tesla está a desenvolver sistemas de ML que permitem veículos conduzirem sem interferência humana. Com base num destino especificado, e em diferentes tipos de sensores instalados no veículo como câmaras e radares, já é possível fazer uma viagem sem nunca tocar no volante do carro.

Machine Learning giph car

Deep Fake

Deep Fake é um algoritmo de ML que permite a criação de vídeos fake. Tomando como exemplo este vídeo, foram utilizados excertos de discursos de Barack Obama, para criar um vídeo falso do mesmo, alterando as suas expressões faciais e discurso. Esta ferramenta, apesar de ser muito perigosa, pode ser utilizada no ramo do entretenimento, ou para criação de plataformas interativas em museus.

Open AI

A Open AI desenvolveu um sistema inteligente capaz de jogar Dota 2. Após jogar o equivalente a 10000 anos de jogo contra si próprio, o modelo foi capaz de derrotar a melhor equipa do mundo. O Dota 2 é um jogo que exige muita coordenação, e esta vitória foi considerada um grande milestone. Apesar de se tratar apenas de um jogo, este é um ambiente controlado onde podem ser feitos testes deste tipo de modelos, podendo depois serem aplicados em áreas reais como a robótica, condução autónoma ou a medicina.

Machine Learning giph robot

Vantagens e desvantagens de ser engenheiro de Machine Learning

Para tentar dar a entender os desafios que encontramos no dia-a-dia em desenvolvimento de ML, aqui ficam alguns pontos que consideramos mais relevantes para entender as vantagens e desvantagens neste tipo de projetos.

Vantagens:

  • O leque de aplicações de ML é muito vasto, o que significa que tens a possibilidade de não só escolher projetos que consideres mais cativantes, como te dá a oportunidade de trabalhar e aprender em muitas áreas de negócio distintas
  • Como engenheiro de ML tens a oportunidade de ter influência direta na vida das pessoas. Apesar de parecer um pouco clichê, é verdade que o modelo que estás a desenvolver terá impacto na vida de alguém, seja porque lhe recomendaste um novo produto, ou por teres adicionado cinco minutos de tempo livre por lhe dares indicações para o caminho mais rápido até casa
  • Tens a possibilidade de trabalhar com muitas ferramentas distintas, como diferentes linguagens de programação, bibliotecas gráficas, sistemas de computação distribuídos, e muito mais

Desvantagens:

  • Na área de machine learning não existem respostas 100% corretas, existe uma grande variedade de abordagens para chegar a um resultado, resultado este que também é difícil de validar. As muitas abordagens e incertezas podem tornar esta área um pouco overwhelming, e difícil de dominar
  • Sendo uma área em constante desenvolvimento, as técnicas que aprendes podem ficar rapidamente desatualizadas. É necessária uma constante aprendizagem de novos modelos e ferramentas

Conclusão

Machine Learning é uma área que atualmente se encontra em grande desenvolvimento, cada vez mais as empresas têm a obrigação de utilizar estas tecnologias para se tornarem competitivas no mercado, isso leva a que haja uma grande procura de mão de obra especializada na área, sendo a altura certa para te juntares ao hype train. Esperamos que este artigo tenha contribuído para consolidar a tua opinião sobre o que é ser um engenheiro de ML, e quem sabe não nos iremos encontrar em algum projeto no futuro. Se quiseres saber um pouco mais sobre o nosso trabalho, podes visitar a página de Data Science da Xpand IT.

Leave a comment

Comments are closed.

Comments

  1. … [Trackback]

    […] Read More to that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]

  2. … [Trackback]

    […] Here you can find 92201 more Information to that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]

  3. … [Trackback]

    […] Read More here to that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]

  4. … [Trackback]

    […] Here you can find 67736 more Info on that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]

  5. … [Trackback]

    […] Read More on on that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]

  6. … [Trackback]

    […] There you can find 68909 more Info to that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]

  7. … [Trackback]

    […] Read More Info here to that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]

  8. … [Trackback]

    […] Find More on on that Topic: careers.xpand-it.com/blog/machine-learning-para-noobies-conhece-exemplos-praticos/ […]