DEV Community

Armando Tadeu
Armando Tadeu

Posted on

Introdução à Machine Learning

O que é Machine Learning ?

Machine learning é a prática de aprender com dados, mas no caso, quem aprende são as máquinas.

É possível que um computador faça uma análise de uma imagem qualquer e seja capaz de indicar se aquela imagem é a de um animal ou de um ser humano, ou ainda, se é a pessoa X ou Y ?

Sim, isso é possível com a utilização de algoritmos de machine learning, onde são inseridos muitos dados de imagens de animais e seres humanos para que o computador aprenda o que é uma coisa ou outra criando um modelo que tem como função a capacidade de distinguir novas imagens.

Nos tempos atuais esse assunto está bem aquecido, porque estamos vivendo uma época onde os dados são produzidos em larga escala, as pessoas estão cada vez mais conectadas no mundo digital e produzindo dados a todo momento, esse cenário é o que chamam de Big Data.

Com uma grande quantidade de dados, começa a busca de como tirar valor deles, de como extrair conhecimento e utilizá-lo para evoluir, inovar, criar.

A técnica de machine learning esta totalmente relacionada a esse cenário de big data, porque essa grande quantidade de dados pode ser utilizada para ensinar as máquinas a simular a forma como humanos tomam decisões em determinadas situações e com isso, automatizar tarefas com essas decisões, auxiliar os seres humanos em análises para trazer mais conforto, habilitar o foco em outras tarefas que máquinas não precisem ou não possam fazer como por exemplo o relacionamento, a busca de mais conhecimento, a busca da verdade, as tomadas de decisões reais baseadas em conhecimento humano e de suas práticas e relações.

Falando um pouco mais da técnica de machine learning... Existem algumas categorias (que abrangem outras) utilizadas de acordo com determinado contexto. As categorias são:

  • Aprendizado supervisionado;
  • Aprendizado não supervisionado;
  • Aprendizado por reforço;

Aprendizado supervisionado

Vou imaginar uma situação hipotética e simples. Se eu tivesse uma loja de vídeo games e trabalhasse com a venda de 2 consoles concorrentes...

Tenho alguns clientes cadastrados em uma base de dados que compraram um dos consoles, esses clientes tem suas características como, idade, endereço, jogo preferido, etc. E de fato o vídeo game que comprou e se ele está satisfeito ou não com a sua escolha.

Eu gostaria de atender um novo cliente e reconhecer qual vídeo game (ou quais) ele provavelmente vai ficar satisfeito, eu cadastro os dados dele na minha base e por experiência, por já ter efetuado o cadastro de diversos outros clientes e aprendido alguns padrões das suas características relacionados a sua satisfação ou não com o vídeo game X ou Y, eu posso classificar esse novo cliente como satisfeito ou não com determinado vídeo game.

Com essas classificações eu posso entender melhor o meu público e fazer previsões com futuros possíveis clientes para fazer campanhas publicitárias direcionadas, com estoques do vídeo game X ou Y preparados para atende-los.

Um computador pode fazer essa tarefa, eu posso utilizar uma base de dados que possui características de determinado objeto ou situação com um objetivo explícito e aplicar em um algoritmo supervisionado, os dados e o objetivo vão ensinar a máquina a generalizar e ser capaz de receber a entrada de um novo registro, determinar o objetivo, fazer uma predição e classificar o novo registro.

Imaginando uma base de dados com registros de um modelo de carro, com características como marca, cor, comprimento, largura, altura, portas, motor, etc. E com o objetivo, a informação se ele é do modelo X ou não.

Posso inserir essa base em um algoritmo supervisionado e treiná-lo para que ao informar um novo registro de um modelo de carro, o algoritmo retorne se ele é do modelo X ou não.

Assim funciona o aprendizado supervisionado, o algoritmo precisa de dados em que seja informado características e o objetivo para assim, classificar novas entradas.

Esse tipo de aprendizado é bastante utilizado em reconhecimento de imagens, diagnósticos, previsões de mercado, etc.

Aprendizado não supervisionado

Se eu quisesse pegar uma base de dados contendo registros com diversas características e criar grupos de registros que sejam semelhantes, eu poderia analisar uma base de dados de animais e criar grupos de animais aquáticos, terrestres, híbridos, aéreos , etc. Poderia utilizar um algoritmo de aprendizado não supervisionado.

No aprendizado não supervisionado, eu não tenho a definição do que é o registro, somente suas características, e ao inserir os dados de uma base no algoritmo, vou ter uma saída de agrupamentos baseado nas características semelhantes, gerando um modelo treinado que irá informar qual grupo um novo registro pertence analisando suas características.

Esse tipo de aprendizado é bastante utilizado em sistemas de recomendação, segmentação de clientes, etc.

Por exemplo, em um site de e-commerce eu poderia identificar a compra ou o interesse do cliente e verificar o grupo em que o produto está inserido e assim recomendar outros produtos do mesmo grupo.

Aprendizado por reforço

Aqui existe um determinado agente como por exemplo, em um jogo de vídeo game geralmente existe alguns NPCs (personagem não jogável, controlado por computador), imagino esse NPC realizando algumas tarefas dentro do ambiente do jogo, como andar até um ponto específico, "lançar uma bola de fogo", etc. Na medida que o NPC vai realizando ações existe um sistema que vai atribuindo ou diminuindo pontos desse agente, para que ele aprenda que determinada ação é ruim (tira pontos) e outra é boa (ganha pontos).

Com bastante treinamento e uma boa quantidade de pontos acumulados, o agente pode tomar decisões por conta própria em um cenário.

Algumas aplicações: Decisões em real-time, IA para vídeo games, etc.

Coleta e preparo de dados

A utilização de machine learning depende de dados, mas eles não estão sempre prontos para serem utilizados, é preciso uma coleta e preparação, tem que existir o trabalho de análise em diversas bases para identificar possíveis situações de utilização e assim preparar os dados para se encaixarem nos algoritmos e para isso, é necessário entender qual algoritmo será utilizado. Essa tarefa de preparação não é simples e rápida, demanda muito conhecimento e trabalho, e é atribuição de cientistas de dados, estes são os grandes agentes da prática de machine learning, por isso, uma alta demanda no cenário atual.

Existem muitos desafios nessa tarefa, entre eles, a identificação de dados com potencial de gerar algum valor importante, no big data, muitos dados armazenados e espelhados podem não ter relevância para determinadas soluções.

Atuar com machine learning faz parte da profissão de um cientista de dados e essa prática faz parte do "guarda-chuva" de assuntos que a inteligência artificial cobre.

Existe muita coisa a ser explorada nesse segmento, muitas tendências, muitas perguntas e eu acredito que ainda irão surgir grandes inovações baseadas em machine learning e/ou auxiliadas por ela.

Top comments (0)