Redes Neurais

Machine Learning

Prof. Jodavid Ferreira

UFPE

Algoritmo



O que é um algoritmo?

Um algoritmo é uma sequência de instruções que informa ao computador o que ele deve fazer.


Os computadores são compostos por bilhões de minúsculas chaves chamadas transistores, e os algoritmos ligam e desligam essas chaves bilhões de vezes por segundo.

Claude Shannon, conhecido como o pai da teoria da informação, foi a primeira pessoa a entender que o que os transistores fazem, quando ligam ou desligam em resposta a outros transistores, chama-se raciocínio.

Algoritmo



Acredite ou não, todos os algoritmos, não importando sua complexidade, podem ser reduzidos a apenas três operações: E, OU e NÃO. Algoritmos simples podem ser representados por diagramas, com o uso de diferentes símbolos para as operações E, OU e NÃO.


Por exemplo, se influenza ou malária causam febre, e Tylenol cura febre ou dor de cabeça, ou seja, desejamos representar as seguintes relações:

  • Influenza OU Malária -> Febre
  • Tylenol -> Cura Febre OU Dor de Cabeça

Algoritmo


Influenza e Malária são conectadas a Febre, representando que elas podem causar febre. Tylenol Cura, representado por um losango, é conectado a Febre e Dor de Cabeça, indicando que Tylenol pode curar ambos.

Algoritmo


library(DiagrammeR)

# Criando os nós
ndf <- create_node_df(
  n = 5,
  label = c("Influenza", "Malária", "Febre", "Dor de Cabeça", "Tylenol Cura"),
  type = c("condition", "condition", "condition", "condition", "action"),
  shape = c("rectangle", "rectangle", "rectangle", "rectangle", "diamond")
)

# Criando as arestas
edf <- create_edge_df(
  from = c(1, 2, 5, 5),
  to = c(3, 3, 3, 4)
)

# Criando e renderizando o gráfico
graph <- create_graph(
  nodes_df = ndf,
  edges_df = edf
)

render_graph(graph)

Algoritmo



A figura anterior é denominada de Diagrama de bloco, e é uma representação gráfica de um algoritmo ou de um processo, e em geral:

  • Retângulos representam operações ou instruções;

  • Losangos representam decisões, como E, OU e NÃO;

  • Setas representam a sequência de execução.

O diagrama de blocos é uma ferramenta de modelagem de processos que permite representar graficamente a sequência de passos de um algoritmo, facilitando a compreensão do processo e a identificação de possíveis falhas.

Machine Learning



Todo algoritmo tem uma entrada e uma saída: os dados entram no computador, o algoritmo faz o que precisa com eles, e um resultado é produzido.


O machine learning faz o contrário: entram os dados e o resultado desejado, e é produzido o algoritmo que transforma um no outro.


Os algoritmos de aprendizado – também conhecidos como aprendizes – são aqueles que criam outros algoritmos. Com o machine learning, os computadores escrevem seus próprios programas, logo não precisamos mais fazê-lo.

Machine Learning



Os computadores escrevem seus próprios programas.

  • Essa é uma ideia poderosa, talvez até um pouco assustadora.

Quando consideramos o machine learning, duas coisas se destacam imediatamente:

  1. A primeira: é que quanto mais dados temos, mais aprendemos. Se não houver dados? Não há nada a aprender. Muitos dados? Muito a aprender. É por isso que o machine learning está surgindo em todos os lugares, conduzido pela quantidade exponencialmente crescente de dados.

Se fosse algo que pudesse ser comprado em um supermercado, sua embalagem diria: “Basta adicionar dados”.

Machine Learning



  1. A segunda: é que o machine learning é uma arma com a qual podemos derrotar o monstro da complexidade. Se receber dados suficientes, um programa de aprendizado contendo apenas algumas centenas de linhas pode gerar com facilidade um programa com milhões de linhas, e pode fazê-lo repetidamente para diferentes problemas.

A redução da complexidade para o programador é assombrosa. É claro que, como a Hidra, o monstro da complexidade gerará novas cabeças assim que cortarmos as anteriores, mas inicialmente elas serão menores e demorarão um pouco para crescer, logo ainda teremos uma grande vantagem.

Machine Learning



Figure 1: Hidra de Lerna, a criatura mitológica.(fonte:Wikipedia)

Machine Learning



Alguns aprendizes obtêm conhecimento e outros adquirem aptidões.

  • “Todos os humanos são mortais” é conhecimento.
  • Andar de bicicleta é aptidão.


No machine learning, com frequência o conhecimento assume a forma de modelos estatísticos, porque em grande parte ele é estatístico:

  • todos os humanos são mortais, mas apenas 4% são americanos.

Machine Learning



As aptidões costumam assumir a forma de procedimentos:

  • se a estrada virar à esquerda, vire a direção nesse sentido; se um cervo pular na sua frente, pise no freio.


Em geral, os procedimentos são bem simples e o conhecimento é que é complexo.

  • Se você conseguir distinguir quais emails são spam, saberá quais excluir.
  • Se souber qual posição é boa em um tabuleiro de xadrez, saberá qual jogada fazer (a que leva à melhor posição).

Machine Learning



O machine learning assume muitas formas e é conhecido por muitos nomes:

  • reconhecimento de padrões
  • modelagem estatística
  • mineração de dados
  • descoberta de conhecimento
  • análise preditiva
  • ciência de dados
  • sistemas adaptativos
  • sistemas auto-organizados

Alguns terão vida longa, outros durarão menos.

Machine Learning


O machine learning às vezes é confundido com IA, mas como já sabem, ele é um subcampo da IA, entretanto, cresceu tanto e foi tão bem-sucedido que ofusca sua orgulhosa mãe.

Inteligência Artificial
Machine Learning
Deep Learning

Machine Learning


O machine learning às vezes é confundido com IA, mas como já sabem, ele é um subcampo da IA, entretanto, cresceu tanto e foi tão bem-sucedido que ofusca sua orgulhosa mãe.

Inteligência Artificial
Machine Learning
Deep Learning

Machine Learning



Formulação Geral

  • A função \(f\) é desconhecida. Representa a solução IDEAL.

  • Os algoritmos de ML buscan uma função \(g \approx f\).

Machine Learning



Conceitos importantes incluem:


  • Aprendizado supervisionado - algoritmos treinados com dados rotulados, mapeando entradas para saídas desejadas.

  • Aprendizado não supervisionado - algoritmos que clusterizam e fazem inferências sobre conjuntos de dados não rotulados.

  • Aprendizado por reforço - algoritmos que aprendem com tentativa e erro interagindo com um ambiente dinâmico.

Machine Learning



Conceitos importantes incluem:


  • Aprendizado supervisionado - algoritmos treinados com dados rotulados, mapeando entradas para saídas desejadas.

  • Aprendizado não supervisionado - algoritmos que clusterizam e fazem inferências sobre conjuntos de dados não rotulados.

  • Aprendizado por reforço - algoritmos que aprendem com tentativa e erro interagindo com um ambiente dinâmico.

Aprendizado supervisionado - ML



Aprendizado supervisionado

O aprendizado supervisionado é o tipo mais comum de aprendizado de máquina. Ele é usado para prever um resultado com base em um conjunto de variáveis de entrada.

O aprendizado supervisionado é chamado assim porque o algoritmo aprende a partir de um conjunto de dados rotulados, ou seja, um conjunto de dados que contém entradas e saídas desejadas.

O aprendizado supervisionado é usado em uma ampla variedade de aplicações, incluindo classificação, regressão.

Aprendizado supervisionado - ML


Quando a saída desejada é uma variável qualitativa \((y \in \mathbb{R})\), o problema é chamado de CLASSIFICAÇÃO.

  • Obtém um modelo otimizado por meio de treinamento e aprendizado baseado em observações \(x_i\), com \(i = 1, 2, \ldots, N\), para as quais se tem a respectiva resposta \(y_i\) desejada.

  • Cada observação \(x_i\) pode ser formada por \(n\) variáveis (features) independentes \(x_{i1}, x_{i2}, \ldots, x_{in}\), com \(n \geq 1\).

Aprendizado supervisionado - ML


  • O objetivo é usar o modelo criado para mapear novas entradas.

Por exemplo:

\[x_{novo} = [\text{Weather = 'Rainy', Temperature = 'Warm', Wind Speed = 'Weak'}] \rightarrow y_{new}= ?\]

Aprendizado supervisionado - ML



Quando a saída desejada é referentes a uma variável quantintativa seja essa, pertencente aos números inteiros \((y \in \mathbb{Z})\) ou aos números reais \((y \in \mathbb{R})\), o problema é chamado de REGRESSÃO.


Por exemplo:

  • Qual o peso médio dos jogadores de futebol?
  • Qual a temperatura média em Recife no mês de Junho?
  • Quanto vale um apartamento de \(100m^2\) em Boa Viagem?

Aprendizado não supervisionado - ML



Aprendizado não supervisionado

O aprendizado não supervisionado é o tipo de aprendizado de máquina que é usado para fazer inferências a partir de conjuntos de dados não rotulados.

O aprendizado não supervisionado é chamado assim porque o algoritmo não é treinado com dados rotulados. Em vez disso, o algoritmo aprende com os dados de treinamento e é capaz de fazer inferências sobre novos dados.

O aprendizado não supervisionado é usado em uma ampla variedade de aplicações, incluindo clusterização, redução de dimensionalidade.

Aprendizado não supervisionado - ML



  • Obtém um modelo otimizado processando diretamente os dados de entrada, sem conhecer a saída desejada. Novamente, temos um conjunto de observações \(x_i\), com \(i = 1, 2, \ldots, N\) e \(n\) features.

Aprendizado não supervisionado - ML


  • Clusterização é a técnica de aprendizado não supervisionado mais comum. Ela é usada para agrupar dados em grupos com base em suas características (variáveis, features)

  • Novas observações podem ser agrupadas calculando sua semelhança em relação aos demais grupos formados.

Aprendizado por reforço - ML


  • Dentre os três tipos apresentados, é a área mais “próxima” da IA em termos de “borda de conhecimento.

  • Representa uma quebra de paradigma, pois não depende de receber a resposta certa, nem de buscar semelhanças entre amostras. Buscar “recompensas” que são obtidas quando “bons” resultados são obtidos.

  • Intuitivamente, o diferencial é claro:

    • O algoritmo pode aprender além da informação que consta na base de dados.

Aprendizado por reforço - ML


  • No lugar da amostra, temos uma sequência de ações que são tomadas em um ambiente, e o algoritmo aprende a melhor sequência de ações para maximizar uma recompensa.

  • Para cada ação, há um feedback que indica se a ação foi boa ou ruim.

Por exemplo: Após várias jogadas, ganhou o jogo de damas.

Aprendizado por reforço - ML


  • Objetivo é o algoritmo controlar o braço robótico e aprender a chegar no ponto vermelho.

Referências para serem utilizadas



  • Imagens retiradas de um Curso de ML da Huawei.

  • The Elements of Statistical Learning: Data Mining, Inference and Prediction, Hastie, T., Tibshirani, R. and Friedman, J., 2nd ed., Springer-Verlag, 2009.

  • An Introduction to Statistical Learning: With Applications in R, James, G., Witten, D., Hastie, T. and Tibshirani, R., Springer-Verlag, 2013.

  • Aprendizado de máquina: uma abordagem estatística, Izbicki, R. and Santos, T. M., 2020.

Extras:

Morris, Meredith Ringel, et al. “Levels of AGI: Operationalizing Progress on the Path to AGI.” arXiv preprint arXiv:2311.02462 (2023).

Weijermars, Ruud, Umair bin Waheed, and Kanan Suleymanli. “Will ChatGPT and Related AI-tools Alter the Future of the Geosciences and Petroleum Engineering?.” First Break 41.6 (2023): 53-61.




OBRIGADO!


Slide produzido com quarto