Descomplicando Machine Learning - Parte I
Tags: machinelearning, regression, classification, softwareengineering
Published: 2023-11-01 16:47:49

## Motivação

Como programador, reconheço a importância do big data nos dias de hoje. Como deves saber, a velocidade com que geramos dados atualmente é sem precedentes. Aqui vai algumas estatísticas:

Segundo a Exploding Topics [link](https://explodingtopics.com/blog/data-generated-per-day)

- Aproximadamente 328,77 milhões de terabytes de dados são criados a cada dia

- Cerca de 120 zettabytes de dados serão gerados este ano (2023)

- Estima-se que serão gerados 181 zettabytes de dados em 2025


Simplesmente não há como não se impressionar com esses números. Não achas? Entretanto, nessa série de artigos, veremos como machine learning pode ajudar as empresas a extrair insights valiosos para ajudar a tomar decisões críticas informadas nos negócios e ajudar os demais a entender as tendências cada vez mais ferozes na geração contínua de dados.

 Por esse motivo, estou começando uma série de artigos com o título "**Descomplicando Machine Learning**", com o objetivo de documentar e compartilhar os conhecimentos que estou adquirindo na área. Vamos começar?

## Definição

Machine Learning (Aprendizagem de máquina) é um conjunto de regras e práticas que permite ao computador agir e tomar decisões baseadas em dados. Ainda podemos dizer que machine learning é um subcampo da inteligência artificial (IA) que se concentra no desenvolvimento de algoritmos e modelos estatísticos que permitem que computadores aprendam e façam previsões ou tomem decisões sem serem programados explicitamente.

Vale ressaltar que machine learning está presente em nosso dia a dia. Provavelmente, já está tão integrado em sua rotina que já nem percebes mais. 

Vamos destacar alguns produtos de sucesso nos quais machine learning desempenha um papel fundamental: Google search (com suas recomendações de pesquisa), Youtube (com suas recomendações de vídeo), Twitter (que sugere pessoas para seguir), Spotify (que faz recomendações de músicas), Netflix (com suas sugestões de filmes) e Amazon (que sugere itens para comprar).

## Entendendo as subdivisões da ML (machine learning)

A ciência tem uma tendência natural de se ramificar em diversas áreas, e ML não é diferente. No caso, temos dentro do mundo ML três ramificações principais:

- A aprendizagem supervisionada;
- A aprendizagem não supervisionada;
- A aprendizagem por reforço.

Antes de detalharmos cada ponto dos tipos de aprendizagem de máquina, vale trazer um pouco de luz sobre o conceito de **modelos**

## O que é um modelo

Em aprendizagem de máquina, um "modelo" é uma representação matemática ou estatística de um processo, sistema, fenômeno ou relação entre variávies. Esse modelo é criado com base em algoritmos e é treinado com dados para aprender a fazer previsões, tomar decisões ou extrair informações úteis a partir de novos dados. Um modelo pode ser considerado como uma simplificação da realidade que captura as características essenciais dos dados de trainamento.

## Aprendizagem supervisionada

É um tipo de aprendizado no qual um modelo é supervisinado durante o treinamento, com base em exemplos rotulados.

Por exemplo, consideremos um modelo que prevê se um paciente tem ou não Covid-19. Para construir esse modelo, precisamos de um conjunto de dados de pacientes. A partir desses dados, extraímos dois grupos de variáveis: as **variáveis explicativas**, como idade, sexo, nome do paciente, presença de febre, tosse seca, etc.; e outro tipo de variável que chamamos de **variável resposta**. Neste caso, o valor da variável resposta pode ser positivo se o paciente tiver Covid-19 e negaivo caso contrário. A variável resposta é o rótulo que usamos no aprendizado supervisionado para treindar o modelo.

## Aprendizagem não supervisionada

É o tipo de aprendizado em que o algoritmo é treinado em um conjunto de dados que não inclui rótulos.

Por exemplo, podemos usá-la para descobrir novos padrões em um conjunto de dados de uma loja de varejo, como classificar ou agrupar os clientes por região, volume de compras. O objetivo é agrupar itens ou objetos que compartilham padrões semelhantes. 


## Aprendizagem por reforço

Ao contrário da aprendizagem supervisionada, na qual os modelos são treinados com exemplos rotulados, e da aprendizagem não supervisionada, na qual os algoritmos descobrem padrões nos dados, a aprendizagem por reforço envolve um processo de tentativa e erros. O agente (computador) toma ações, recebe recompensas com base no feedback das tentativas (no caso positivo); no caso das negativas ajusta seu comportamento para otimizar as próximas tentativas ou o processo.

Por exemplo, imagine um robô semelhante a um ser humano que deseja aprender a andar de maneira eficaz. A tarefa do robô é manter o equilíbrio e dar passos para a frente. Este é um desafio complexo, pois o robô precisa constantemente ajustar seu equilíbrio para evitar quedas ou tropeços. Tudo isso é baseado no princípio de tentativa e erro, com recompensas associadas a ações corretas.

## Conclusão

No início do artigo, exploramos a motivação que me levou a iniciar esta série de artigos com o tema: "**Descomplicando machine learning**". Em seguida, definimos o termo machine learning, e destacamos as suas subdivisões. Ainda destacamos alguns exemplos de produtos de sucesso que fazem uso de machine learning e que impactam a nossas vidas no dia a dia.

Espero que estejam tão emplogados quanto eu para a segunda parte deste artigo onde falaremos sobre [obstáculos que têm impedido as pessoas de iniciar uma carreira como engenheiro de machine learning](https://dev.to/tandavala/descomplicando-machine-learning-parte-ii-3d05). Cuidem-se  e até a próxima!