Machine Learning e Programação Tradicional – Conheça as diferenças
O que é Machine Learning?
Machine Learning é um subcampo de Inteligência Artificial que usa algoritmos (também conhecidos como modelos), de forma "a aprender a dar respostas sobre um problema”.
Na sua essência, Machine Learning usa modelos de forma a encontrar padrões existentes nos dados sem que sejam programados explicitamente quais são esses padrões.
É possível pensar que os modelos de Machine Learning são como crianças durante o seu processo de aprendizagem. Por exemplo, imagine que queremos ensinar uma criança a distinguir cães de gatos. Primeiro, seriam apresentadas um conjunto de imagens destes animais à criança e para cada uma das imagens mostra qual a resposta correta. Aos poucos, a criança vai associar os padrões existentes na imagem ao animal.
Quanto mais imagens a criança analisar, melhor irá distinguir cães e gatos. Chegará a um momento em que a criança irá ser capaz de reconhecer um cão ou gato sem a ajuda do professor. Mas, se apresentarmos uma imagem de uma galinha, a criança não será capaz de a identificar, pois apenas sabe distinguir cães e gatos. Da mesma forma, não saberá distinguir diferentes raças de cães e gatos.
Tudo o que é preciso em Machine Learning é escolher os dados (imagens de cães e gatos), treinar o modelo (ensinar a criança) e testar a precisão de classificação do modelo (mostrando imagens de cães e gatos que a criança não viu anteriormente).
Quais são as diferenças entre programação tradicional e Machine Learning?
Isto é uma tarefa complexa, difícil e morosa. Significa também que quanto maior a variância entre os dados (mais características), mais regras deverão ser escritas o que torna a solução mais complexa, complicando não só o seu entendimento como a sua manutenção.
Classificação de imagens e reconhecimento de vozsão problemas demasiado complexos para que a programação tradicional os consiga resolver, mas não para Machine Learning.
Todavia, o grande potencial de Machine Learning é conseguir dar as respostas corretas para dados que não foram utilizados no processo de treino do modelo.
Consequentemente, o fator que mais contribui para a performance dos modelos de Machine Learning é a quantidade e qualidade dos dados, bem como a escolha do modelo que mais se adequa ao problema/dados.
Concluindo, em programação tradicional é necessário a escrita de todas as regras que vão representar o comportamento do programa, enquanto que em Machine Learning o modelo reconhece padrões nos dados e são estes que vão ditar o comportamento do programa.
Quantos modelos de Machine Learning existem?
Bem, existem muitos modelos e o scikit criou uma imagem interativa (que pode ser vista aqui) onde explica o processo de escolha do melhor modelo para o problema que pretendemos resolver.
Mas basicamente existem quatro categorias principais onde o tipo de treino do modelo se adequa ao tipo de problema que pretendemos resolver:
Supervised Learning: modelos que utilizam dados que contam as respostas corretas, onde a aprendizagem é feita através do reconhecimento de padrões existentes nos dados;
Unsupervised Learning: modelos que utilizam dados que não contam qualquer resposta, esperando que este reconheça padrões nos dados e devolva respostas, mesmo que não sejam as mais adequadas ou corretas;
Semi-Supervised Learning: é o meio termo entre Supervised Learning e Unsupervised Learning visto que utiliza dados que possuem e não possuem as respostas pretendidas;
Reinforcement learning: modelos cujo processo de treino é feito à base de punições e prémios.
Processo de recolha de dados, treino, teste e predição
Recolha e normalização dos dados
Processo de Treino
Processo de teste
Predição
Redes Neuronais Artificiais
O que é o Deep Learning?
Mas o que é uma Convolutional Neuronal Network?
A importância da base de dados Imagenet
Pontos-Chave
- Machine Learning é um subcampo de Inteligência Artificial que utiliza algoritmos (também conhecidos como modelos) para aprender a partir de um conjunto de dados;
- Na programação tradicional, todas as regras são escritas. Em Machine Learning, modelos são criados para descobrir padrões em dados;
- Existem quatro categorias em Machine Learning: Supervised, Unsupervised, Semi-Supervised and Reinforcement Learning;
- O processo de desenvolvimento é dividido entre recolha e normalização de dados, treino, avaliação e predição;
- Deep Learning é um subcampo de Machine Learning que utiliza redes neuronais de uma forma mais complexa;
- Convolutional Neuronal Networks são especializadas em reconhecimento de padrões em imagens;
- A base de dados Imagenet teve um papel fundamental no aumento da performance de modelos Deep Learning.