Redes Neuronais em Grafos com Pytorch
RESUMO
Redes Neuronais em Grafos, em inglês Graph Neural Networks (GNN) é um dos mais recentes avanços dentro da área de aprendizagem de máquina e inteligência artificial. Este modelo tem sido aplicado com promissores resultados em diferentes áreas do conhecimento como biologia, química, física, matemática, computação, engenharia, artes e linguística. Neste curso apresentaremos uma introdução sobre o conceito de GNNs, como executar modelos simples utilizando a biblioteca PyTorch e algumas aplicações.
O caminho que uma pessoa faz entre sua residência e o trabalho, a estrutura molecular da cafeína, uma equação matemática, um conto de Machado de Assis, os artigos da Wikipedia e a última recomendação de série de uma plataforma de streaming são exemplos de entidades que podem ser descritas como grafos. Grafos são estruturas matemáticas que representam entidades e suas conexões, e são uma maneira de representar relacionamentos complexos entre objetos, tais como redes sociais, rotas de transporte ou moléculas.
A utilização de redes neuronais em grafos possibilita que modelos de aprendizado de máquina processem dados estruturados, como grafos, para realizar tarefas como classificação, previsão e recomendação. A partir da utilização de redes neuronais em grafos, é possível extrair informações úteis desses dados complexos, como padrões de conexão entre os objetos.
Esses modelos são particularmente úteis em áreas como a bioinformática, onde as moléculas podem ser representadas por grafos, e as redes sociais, onde as conexões entre pessoas e comunidades podem ser modeladas como grafos. As redes neuronais em grafos também têm aplicação em outras áreas, tais como sistemas de recomendação, previsão de propriedades químicas, processamento de linguagem natural e extração de conhecimento.
REQUISITOS
Para melhor aproveitar este curso é importante ter alguns conhecimentos prévios Álgebra Linear, Cálculo Diferencial, Matemática Discreta, Teoria de grafos, Probabilidade e estatística, Redes Neuronais Artificiais e Programação em Python (conhecendo as bibliotecas NumPy, Matplotlib). É melhor se já tiver conhecimento com PyTorch, mas não é necessário
Para ajudar você a avaliar se tem ou não conhecimento nestes assuntos, preparei 15 perguntas, se você souber responder, o curso deve transcorrer sem grandes problemas.
O que é uma matriz de adjacência?
A derivada é uma operação linear?
Qual diferença entre uma distribuição uniforme e uma distribuição normal?
Qual a definição de função? Qual sua utilidade?
O que são multigrafos? Onde são necessários.
Onde é utilizado retro-propagação (backpropagation)?
Com relação a Orientação à Objetos, o que é uma herança? Como fazer em Python?
O que é uma transformação linear?
Como calcular a distância entre dois pontos em um espaço vetorial normado?
Como criar um gráfico de dispersão no Python?
O que é conceito de grau em um grafo?
O que é um conjunto de dados de treinamento, teste e validação?
Dado um experimento estocástico, qual o valor da soma das probabilidades de todos os eventos disjuntos? E por que?
O que é uma permutação?
O que é isso? k = [funcao(e) for e in epocas]
Mesmo que não tenha sido capaz de responder as 15 perguntas e ainda assim queira fazer o curso, entre em contato com o professor que poderá auxilia-lo em como se preparar melhor.
EMENTA
Neste curso introduziremos o conceito de aprendizado de representação (em inglês \textit{representation learning}) e usos para pesquisa e desenvolvimento. Apresentaremos alguns casos reais como sistemas de recomendação, categorização de elementos e classificação de proteínas.
Redes Neuronais em Grafos
Aprendizado de representação e aprendizagem geométrica.
Aprendizagem em domínios não euclidianos
Redes neuronais em grafos
Passagem de mensagem neuronal
Introdução ao PyTorch
Representação de dados
Modelos de redes
Treinamento
Validação e Testes
Visualização e interpretação
Aplicações
Modelando uma GNN em PyTorch
Classificação de grafos
Predição de arestas.
Classificação de vértices.
SOBRE O AUTOR
Igor Morgado é aluno de doutorado do PPG-CCOMP, também é Mestre em Ciências Computacionais pela Universidade do Estado do Rio de Janeiro e graduado em Matemática pela mesma instituição. Participou do programa de doutorado sanduíche na Universidade de Avignon - França, onde fez parte do Laboratório de Inteligência Artificial na área de Processamento de Linguagem Natural. Tem interesses no tópicos de Criatividade Computacional, Processamento de Linguagem Natural, Redes Neuronais e simulações de sistemas físicos-matemáticos.
ANEXOS