Aprendizagem de Máquina (Machine Learning)
Machine Learning é um subcampo da Ciência da Computação e refere-se a algoritmos e técnicas por meio dos quais os sistemas “aprendem”, de maneira autônoma, com cada uma das tarefas que realizam. Dessa forma, podemos dizer que o computador aperfeiçoa seu desempenho em determinada tarefa a cada vez que ela é realizada. Estes algoritmos consistem no treino de um modelo a partir de inputs amostrais a fim de fazer previsões ou decisões guiadas pelos dados ao invés de simplesmente seguindo instruções programadas explicitas. Enquanto que na Inteligência Artificial existem dois tipos de raciocínio (o indutivo, que extrai regras e padrões de grandes conjuntos de dados, e o dedutivo), Machine Learning só se preocupa com o indutivo.
Aprendizagem Supervisionada (Supervised Learning)
Aprendizagem Supervisionada é o termo usado sempre que o programa é “treinado” sobre um conjunto de dados pré-definido. Baseado no treino com os dados pré-definidos, o programa pode tomar decisões precisas quando recebe novos dados. Exemplo: pode usar-se um conjunto de dados de recursos humanos para treino do algoritmo de Machine Learning, que tenha tweets marcados como positivos, negativos e neutros e assim treinar um classificador de análise de sentimento.
Aprendizagem Não Supervisionada (Unsupervised Learning)
Aprendizagem Não Supervisionada é o termo usado quando um programa pode automaticamente encontrar padrões e relações em um conjunto de dados. Exemplo: análise de um conjunto de dados de e-mails e agrupamento automático de e-mails relacionados ao tema, sem que o programa possua qualquer conhecimento prévio sobre os dados.
Aprendizagem por Reforço (Reinforcement Learning)
A Aprendizagem por Reforço preocupa-se com o como um agente deve agir num ambiente de forma que maximize alguma noção de recompensa a longo tempo. Os algoritmos de Aprendizagem por Reforço tentam encontrar a política que mapeia os estados do mundo às ações que o agente deve ter nesses estados. Aprendizagem por Reforço distingue-se do problema de Aprendizagem Supervisionada no sentido em que pares de input/output corretos nunca são apresentados, nem as ações sub-ótimas são explicitamente corrigidas.
Algoritmos de Classificação (Classification)
Algoritmos de classificação são uma subcategoria de Aprendizagem Supervisionada. Classificação é o processo de tomar algum tipo de entrada e atribuir-lhe um rótulo. Sistemas de classificação são usados geralmente quando as previsões são de natureza distinta, ou seja, um simples “sim ou não”. Exemplo: mapeamento de uma imagem de uma pessoa e classificação como masculino ou feminino.
Algoritmos de Regressão (Regression)
Outra subcategoria de Aprendizagem Supervisionada usada quando o valor que está sendo previsto difere de um “sim ou não” e que siga um espectro contínuo. Sistemas de regressão poderiam ser usados, por exemplo, para responder às perguntas: “Quanto custa?” ou “Quantos existem?”.
Algoritmos de Clustering
Clustering é um método de aprendizagem não supervisionado e consiste na atribuição de um conjunto de observações a subconjuntos (chamados clusters) de forma que as observações dentro de um mesmo cluster sejam similares de acordo com um critério ou critérios pré-designados, enquanto que observações feitas em clusters diferentes não são similares. Diferentes técnicas de Clustering fazem diferentes suposições sobre a estrutura dos dados, frequentemente definida por métricas de similaridade e avaliados, por exemplo, por similaridade entre membros de um mesmo cluster e separação entre clusters diferentes. Outros métodos são baseados em estimativas de densidade e gráficos de conectividade.
Algoritmos de Recomendação (Recommendation Algorithms)
Sistemas de recomendação são métodos baseados em Machine Learning para previsão da classificação que os utilizadores dariam a cada item e exibindo para eles aqueles itens que (provavelmente) classificariam bem. Empresas como Amazon, Netflix e Google são reconhecidas pelo uso intensivo de sistemas de recomendação com os quais obtêm grande vantagem competitiva.
Árvores de Decisão (Decision Trees)
Uma Árvore de Decisão é uma ferramenta de apoio à decisão que usa um gráfico de árvore ou modelo de decisões e suas possíveis consequências. Uma árvore de decisão é também uma maneira de representar visualmente um algoritmo.
Support Vector Machines
Máquinas de vetores de suporte são um conjunto de algoritmos de Machine Learning do tipo supervisionado, usados para classificação e regressão. Dado um conjunto de exemplos de treino, cada um marcado como pertencente de uma ou duas categorias, um algoritmo de treino SVM constrói um modelo que prediz se um novo exemplo cai dentro de uma categoria ou outra.
Modelos Generativos (Generative Models)
Em probabilidade e estatística, um Modelo Generativo é um modelo usado para gerar valores de dados quando alguns parâmetros são desconhecidos. Modelos geradores são usados em Machine Learning para qualquer modelação de dados diretamente ou como um passo intermédio para a formação de uma função de densidade de probabilidade condicional. Em outras palavras, podemos modelar P (x, y), a fim de fazer previsões (que podem ser convertidos para P (x | y) aplicando a regra de Bayes), bem como para ser capaz de gerar prováveis pares (x, y), o que é amplamente utilizado na Aprendizagem não Supervisionada. Exemplos de Modelos Geradores incluem Naive Bayes, Latent Dirichlet Allocation e Gaussian Mixture Model.
Modelos Discriminativos (Discriminative Models)
Modelos Discriminativos ou modelos condicionais são uma classe de modelos usados em Machine Learning para modelar a dependência de uma variável y de uma variável x. Como esses modelos tentam calcular probabilidades condicionais, isto é, P (y | x) são frequentemente utilizados em aprendizagem supervisionada. Exemplos incluem regressão logística, SVMs e Redes Neuronais.
Algoritmos Genéticos (Genetic Algorithms)
Um Algoritmo Genético é uma busca heurística que imita o processo de seleção natural e usa métodos com mutação e recombinação para gerar novos genótipos na esperança de encontrar boas soluções para um dado problema. Em aprendizagem de máquinas, algoritmos genéticos encontraram alguma utilidade me 1980 e 1990. De forma inversa, o Machine Learning tem sido usado para melhorar a performance de algoritmos genéticos e evolutivos.