As classificações dos algoritmos de Machine Learning
O machine learning, ou aprendizado de máquina, é um ramo da inteligência artificial que se baseia na ideia de que sistemas podem aprender com dados, identificar padrões e tomar decisões com pouca intervenção humana. De tempos para cá o machine learning se tornou essencial na tecnologia e, consequentemente, nas nossas vidas. Este tipo de conhecimento explora a construção de algoritmos que aprendem com seus erros e fazem previsões sobre dados a partir de diferentes abordagens.
Diante de um problema onde a solução esteja num aprendizado de máquina, deve-se escolher, dentro deste universo de técnicas, por qual caminho iniciar. Assim, os algoritmos de aprendizado de máquina podem ser classificados em três grandes grupos: Aprendizado Supervisionado, Aprendizado Não-Supervisionado e Aprendizado por Reforço. Abaixo você vai entender cada uma delas.
Aprendizado supervisionado
Nesta abordagem o modelo aprende a executar uma tarefa a partir de exemplos rotulados, ou seja, a partir das respostas corretas, que de alguma forma devem ser passadas para o modelo. Mas como fazer isso? Vejamos com estes dois exemplos:
- No primeiro, poderíamos ter um conjunto de imagens separadas por diferentes tipos de veículos (carros, motos, caminhões, ônibus) mapeados cada um com o nome do tipo que representa;
- Num segundo exemplo, poderíamos ter uma tabela com valores históricos de demanda num supermercado para servir de exemplo no aprendizado necessário para generalizar uma demanda futura.
Este aprendizado é iterativo e é realizado até que uma condição seja atingida, geralmente uma porcentagem aceitável de acertos, ou seja, a ideia é sempre de minimizar os erros que a inteligência artificial produz. Essa condição de parada com base na acurácia máxima é possível pois se trata de aprendizado com resultado conhecido.
Neste grupo, se encaixa também o aprendizado semi-supervisionado que é quando se tem alguns exemplos rotulados e muitos não-rotulados. A ideia aqui é encontrar padrões semelhantes entre os exemplos e também fazer uso dos rótulos existentes. O Aprendizado Supervisionado consiste em duas classes de algoritmos: Classificação e Regressão, dos quais falaremos mais adiante.
Aprendizado Não-Supervisionado
Em alguns casos, apesar de existir o objetivo da tarefa desejada, os resultados finais não são conhecidos e, portanto, não se tem os rótulos para passar ao modelo. Por exemplo: dada uma coleção de artigos, deseja-se agrupá-los automaticamente de acordo com a frequência de algumas palavras ou contagem de páginas. Não se sabe quantos grupos serão formados.
É nesse contexto que se apresenta o aprendizado não-supervisionado. Este modelo aprende a executar uma tarefa a partir de dados não-rotulados (sem um resultado conhecido), apenas com base em suas características e padrões semelhantes, ou seja, o modelo deduz estruturas a partir de uma amostra do problema; bem utilizado em situações com muitas observações e muitas features como: áudios, imagens e vídeos.
Para isso, existem algumas técnicas que utilizam regras de associação e clusterização, como veremos um pouco mais adiante. Essas técnicas podem ser aplicadas na fase de pré-processamento (ou mineração de dados), para se encontrar anomalias nos dados (os outliers), realizar redução de dimensionalidade em features, etc. Elas podem ser aplicadas também sobre amostras de um problema durante um processo de agrupamento de instâncias.
Alguns exemplos: um sistema que seleciona candidatos para uma vaga, ou que separa turmas de alunos para um determinado trabalho, através de técnicas de agrupamento baseadas em determinadas características que são semelhantes entre essas pessoas.
Mas para qualquer tipo de algoritmo, vale ressaltar um cuidado especial para que a inteligência artificial não faça predições preconceituosas quando se trata de seleção de pessoas, dependendo das features o sistema pode apresentar um viés racista ou sexista. Um exemplo disso é a seleção apenas de homens para vagas de engenharia, por isso o dataset deve ser cuidadosamente balanceado.
Aprendizado por Reforço
No Aprendizado por Reforço o modelo aprende executando ações e avaliando recompensas. Em resumo, este tipo de algoritmo funciona da seguinte maneira: O agente realiza uma ação num dado ambiente, alterando seu estado inicial, o que gera uma recompensa ao agente. De forma cíclica, o agente avalia esta recompensa (que pode ser positiva ou negativa) e age novamente no ambiente, gerando o aprendizado.
Neste tipo de aprendizado muda-se um pouco o paradigma com relação aos outros dois. Geralmente é aplicada quando se conhece as regras, mas não se sabe a melhor sequência de ações que devem ser executadas, elas são iterativamente aprendidas, como num jogo de xadrez ou num videogame, onde o fundamental são as ações tomadas pelo jogador (ou pela máquina). A robótica é outro campo onde se aplica este aprendizado. Alguns algoritmos: Multi-Armed Bandits, Contextual Bandits e k-Armed Bandits.
Bem, a partir do problema em questão, podemos identificar agora qual o tipo de aprendizado utilizar. Em seguida devemos escolher uma classe de algoritmo para este tipo de aprendizado.
Se for Aprendizado Supervisionado, temos basicamente duas classes de algoritmos:
- Classificação;
- Regressão.
Na classificação, o objetivo é identificar a qual categoria pertence uma determinada amostra do problema. Se um e-mail é SPAM ou não; se uma mensagem tem um sentimento positivo, negativo ou neutro; se um vídeo possui conteúdo adulto; ou quais são os animais que aparecem numa determinada imagem, assim por diante.
Exemplos de técnicas de classificação são: Árvores de Decisão (onde os nós internos são rotulados com uma feature de entrada, e os nós folhas são rotulados com a classe a ser preterida), Algoritmo de Naïve Bayes (que é um classificador que trabalha com probabilidades de ocorrência de cada classe para cada valor de atributo, supondo que as variáveis são independentes), temos as Redes Neurais (baseadas em redes de neurônios artificiais interconectados - os perceptrons, onde os pesos das camadas ocultas são ajustados a cada iteração), dentre outros.
Diferentemente da classificação, na regressão, a ideia é prever um valor numérico; ou em outros termos: identificar uma categoria em escala contínua (pode ser até uma probabilidade). Neste caso, o modelo pode aprender uma função para prever o preço de um imóvel, uma demanda de venda, probabilidade de superlotação de um estoque, o tempo que levará para uma máquina apresentar defeito, uma nota de um cliente para aumentar seu limite de crédito, ou qualquer outro valor quantitativo.
Alguns exemplos de técnicas de regressão são: regressão linear, regressão logística e as redes neurais (que também podem resultar valores contínuos).
Agora, no Aprendizado Não-Supervisionado, destacam-se duas técnicas:
- Associação;
- Clusterização.
A associação: permite o descobrimento de regras e correlações, identificando conjuntos de itens que frequentemente ocorrem juntos. Os varejistas costumam usar esta análise em carrinhos de compras, para descobrir itens frequentemente comprados em conjunto, desenvolvendo assim estratégias mais eficazes de marketing e merchandising.
Na clusterização (ou agrupamento): o conjunto todo em análise sofre segmentações em vários grupos, com base nas semelhanças encontradas. É uma técnica que permite dividir automaticamente um conjunto de dados em grupos de acordo com medidas de similaridade ou de distância. Existem diversas fórmulas para se obter medidas de similaridade, dentre elas podemos destacar o método do cosseno e a correlação de Pearson.
Dentre os métodos de clusterização podemos citar: o baseado em particionamento, baseado em densidade, o hierárquico aglomerativo e hierárquico divisório.
Para o Aprendizado por Reforço podemos citar os algoritmos:
- Q-Learning;
- Aproximação por função com atualização por gradiente;
- Multi-Armed Bandits;
- Contextual Bandits;
- k-Armed Bandits
Quer saber mais sobre algoritmos de Machine Learning? Entre em contato com a Viceri. Nós temos um time de especialistas sempre prontos para te ajudar!
Gerente de TI | Gerente de Operações | Gerente de Projetos | Scrum Master
4 aParabéns pelo artigo! 👏👏👏