Datalking #1: So, the machine is learning... How?
Tags: datascience, machinelearning, beginners, ai
Published: 2024-05-23 01:56:45

Depois de um longo período sem aparecer por aqui, resolvi voltar a publicar textos sobre os meus estudos. Há alguns meses fiz uma breve transição da área de Front-end para a área de Dados e Machine Learning, e uma boa parte da minha decisão se deve ao fato de que entrei, há algumas semanas, em um grupo de pesquisa da Universidade Federal do Paraná, o CiDAMO, que foca nos estudos das áreas de Aprendizado de Máquina, Otimização e Dados. Desde então, concentro os meus estudos em Machine Learning, e decidi trazê-los para cá, em alguns posts pequenos para me ajudar a fixar o conteúdo e, principalmente, ajudar outros iniciantes que possam aparecer por aqui por acaso. :)

### O que pode ser entendido por "Machine Learning"?

De acordo com a IBM, [Machine learning](https://www.ibm.com/br-pt/topics/machine-learning) é uma área da inteligência artificial (IA) e da ciência da computação que se concentra no uso de dados e algoritmos para imitar a maneira como os humanos aprendem, melhorando gradualmente sua precisão.

Pode parecer uma definição simples, mas não explica muita coisa. O que isso quer dizer?

Imagine que você é um ilustrador digital e utiliza um software de edição de imagens para criar as suas ilustrações. Recentemente, você fez a compra de um pacote de novos pincéis para fazer desenhos em aquarela – algo que nunca tinha feito antes –, mas esqueceu de instalá-los. Logo, sem a instalação dos pincéis, não é possível que você aprenda a aumentar seu conhecimento sobre desenho digital e comece a desenhar no estilo aquarela, certo? Com o aprendizado de máquina é mais ou menos assim!

Em um sistema que utiliza o aprendizado de máquina para reconhecer padrões, são aplicados os *training sets* para a máquina poder, de fato, aprender. Além disso, esses conjuntos possuem uma instância de treinamento, que pode ser uma observação ou um registro no seu conjunto de dados sobre o qual você deseja fazer uma previsão (sabe quando criamos personagens no Sims e eles te oferecem a possibilidade de escolher a cor do cabelo, corte do cabelo, cor dos olhos, etc? Podemos relacionar essas características às instâncias de treinamento e os seus personagens aos dados de treino!). Independente do algoritmo utilizado, os dados instanciados são extremamente necessários para que o sistema de ML os utilize a partir de conjuntos de treinamento. Caso eles não sejam inseridos nestes conjuntos e, consequentemente, utilizados nos treinamentos do modelo, não é possível *aprimorar* o seu sistema.

### E como esses modelos aprendem?

Há duas maneiras de ensinar o seu modelo de ML, dependendo da sua necessidade e dos seus recursos disponíveis. O aprendizado **Batch**, mais convencional, nada mais é do que o aprendizado em lote — ou seja, o seu algoritmo é alimentado de uma só vez com um conjunto completo de dados (o lote propriamente dito), e é a partir desse conjunto que o seu algoritmo será treinado. Assim como ele é alimentado de uma só vez, o seu algoritmo também irá processar os conjuntos de treinamento da mesma forma. No que diz respeito às vantagens, isso vai depender dos seus recursos. Se você possui um conjunto de dados bastante estável e bons recursos computacionais, é interessante optar pelo aprendizado Batch. Alguns dos modelos que aprendem por Batch são os de regressão e classificação, por exemplo.

Mas se essa não é a sua realidade, uma boa opção é ensinar o seu algoritmo através do aprendizado **Online**, que treina o sistema por meio de amostras do conjunto de dados em tempo real, e não em um lote, de uma só vez, como o Batch. É um método interessante, porque permite que o seu sistema possa ser atualizado, de forma contínua, com novas amostras de dados de treinamento. Isso economiza recursos, tempo (pois os conjuntos de treino são processados um de cada vez) e permite que o seu modelo se adapte às mudanças dos dados de maneira contínua. Esse tipo de aprendizado é bastante aplicado em detecção de anomalias e recomendações, ou seja, problemas que requerem que o seu algoritmo se adapte a mudanças constantes nos padrões dos dados.

### Concluindo!
Como expliquei no primeiro parágrafo, estou documentando os meus aprendizados como iniciante na área, então essa série de artigos será composta de textos curtos sobre Machine Learning, como se fossem os componentes um roadmap em escrito com pequenas paradas durante a trilha. No próximo post, falarei sobre alguns exemplos de algoritmos de Aprendizagem Supervisionada, que o meu foco de estudo atual. Caso tenha gostado ou queira me enviar sugestões, dúvidas ou críticas, fique à vontade para comentar esse post ou me chamar lá no X @anestudies ;) Até breve!

### Referências
Geron, A. (2019). Hands-on machine learning with Scikit-Learn, Keras and TensorFlow: concepts, tools, and techniques to build intelligent systems (2nd ed.). O’Reilly.
https://guiadehospedagem.com.br/glossario/o-que-e-batch-learning-vs-online-learning/
https://www.deeplearningbook.com.br/machine-learning-guia-definitivo-parte-3/