stanfordgraph

인공지능공부/그래프

[Stanford/CS224W] 8. GNN Augmentation and Training(1) : Graph Augmentation for GNNs

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 단일 레이어를 어떻게 쌓는지 한번 살펴보았습니다. 이번 포스팅에서는 graph augmentation에 대해서 알아보겠습니다. Graph Augmentation 일반적인 그래프 프레임워크는 아래와 같이 구성되어 있다는 것을 배웠었죠. 정리하자면, 이웃 노드로부터 메세지를 받아 변환하고 기준 노드로 넘기는 Message과정, 기준 노드와 변환된 이웃 노드를 받아 하나로 합쳐주는 Aggregation과정, 이 계층을 이어주는 Layer connectivity, 그래프의 표현을 더 풍부하게 만들어주는 graph augmentation, 마지막으로 어떻게 학습할지에 대한 Learning Objective입니다. 이번 포스팅에서는 그래프의 표현을 더 풍부..

인공지능공부/그래프

[Stanford/CS224W] 7. GNN2(1) : A General Perspective on Graph Neural Networks

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 신경망을 일반화하여 그래프에 적용해보았습니다. 오늘 포스팅에서는 본격적으로 GNN이 어떻게 사용되는지 설명하기 전 GNN Framework에 대해 간단하게 정리하겠습니다. (포스팅이 매우 짧을 예정입니다!) GNN Framework GNN Framework는 총 5개로 나뉠 수가 있습니다. Message 앞에서 설명한 그래프 모델을 보시면 모두 message를 전파시키고있습니다. 이부분은 메세지를 어떻게 받을지 결정하는 부분이라 생각하시면 됩니다. 메세지를 어떻게 받아들이냐에 따라 그래프 모델의 성능이 달라질 수 있습니다. Aggregation 받은 메세지를 어떻게 합칠것이냐에 대한 문제인데요. 앞의 포스팅에서는 단순히 평균을 이용했는데, 이 방..

인공지능공부/그래프

[Stanford/CS224W] 6. GNN(3) : Deep Learning for Graphs

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 그래프 신경망에 본격적으로 들어가기 전 딥러닝 개념에 대해서 빠르게 훑어보았습니다. 이번 포스팅에서는 신경망을 일반화하여 그래프에 적용해보겠습니다. Deep Learning for Graphs 이제 그래프와 딥러닝에 대해서 한번씩 배웠으니 두 개를 묶어서 보겠습니다. 이를 그래프 신경망, Graph Neural Network(GNN)이라고 부릅니다. 첫 번째로는 "Local Network Neighborhoods"에 대해 알아볼텐데요. 앞의 포스팅에서처럼 현재 노드는 이웃 노드들의 정보를 얻고, 그 정보를 합산해서 사용했습니다. 여기서도 똑같이 적용할 것입니다. 두 번째로는 이제 신경망을 이용하게 될텐데요. 이 신경망을 어떻게 정의하고, 학습시키..

인공지능공부/그래프

[Stanford/CS224W] 6. GNN(2) : Basic of Deep Learning

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 그래프 신경망이 뭔지, 이전과 뭐가 다른지 간단하게 훑어보았습니다. 이번 포스팅에서는 그래프 신경망에 본격적으로 들어가기 전 딥러닝 개념에 대해서 빠르게 훑어보겠습니다. 여기서는 정말 간단하게 훑을 예정이니 더 딥하게 보고 싶으신 분들은 아래 포스팅을 참고해주세요. 활성화 함수의 모든 것 최적화 함수의 모든 것(1) 최적화 함수의 모든 것(2) 역전파의 모든 것 손실함수의 모든 것 Machine Learning supervised learning은 입력 x를 넣어주었을 때, 라벨 y를 예측하는 것을 목표로 합니다. 입력 x는 실제 숫자 벡터, 시퀀스(자연어), 행렬(이미지), 그래프가 될 수 있습니다. 여기서 머신 러닝은 우리가 x로부터 y를 얻..

인공지능공부/그래프

[Stanford/CS224W] 5. Message Passing(3) : Belief Propagation

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 Relational Classification, Iterative Classification에 대해서 알아보았습니다. 이번 포스팅에서는 Belief Propgation에 대해서 알아보겠습니다. Belief Propagation 지난 포스팅에서 설명한 방법론들을 살펴보면 모두 이웃 노드로부터 받은 확률의 가중 평균으로 자기 자신을 업데이트합니다. (초기에는 라벨로 부터 받죠) 이 말은 즉, 주변 노드가 현재 노드의 결정에 영향을 준다는 말이죠. 학교에서 쪽지 돌리는 것을 생각해보죠. 서로 가깝거나 연결된 사람에게 쪽지를 돌릴 수 있습니다. 이것을 이웃 노드가 belief를 준다 라고 표현합니다. 노드는 이웃 노드들로부터 belief를 받아 자신을 ..

인공지능공부/그래프

[Stanford/CS224W] 5. Message Passing(1) : Message Passing and Node Classification

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 노드 임베딩의 Matrix Factorization에 대해서 알아봤습니다. 이번 포스팅에서는 노드 분류를 위해 노드 간의 의미 교환은 어떻게 하는지 알아보겠습니다. Node Classification 앞의 강의에 노드를 임베딩 하는 방법 또는 그래프를 임베딩하는 방법에 대해서 배웠습니다. 이제 여기서 조금 더 나아가면 각 노드가 어떤 라벨을 가지는지 분류하는 node classification를 생각해 볼 수 있습니다. node classification이란 위와 같이 그래프가 있을때, 각 노드에 라벨이 존재하는 것을 뜻합니다. 왼쪽 그래프에서 빨간색, 초록색이 라벨이고, 회색은 라벨이 없는 노드입니다. 즉, 위의 라벨이 있는 노드로부터 라벨이 ..

인공지능공부/그래프

[Stanford/CS224W] 3. node embeddings(2) : 노드 임베딩을 위한 랜덤 워크 접근 방식

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 노드 임베딩이 어떤 과정을 거쳐 진행되는지 간단하게 알아봤습니다. 오늘은 노드 임베딩의 접근 방식 중 하나인 랜덤 워크(random walk)에 대해서 알아보겠습니다. 본격적인 설명에 앞서 몇가지 개념을 정의하고 가도록 하겠습니다. zu는 노드 u가 임베딩된 벡터입니다. P(v|zu)는 u노드로 부터 시작한 랜덤 워크가 v를 지나갈 확률을 뜻합니다. softmax 모델이 예측한 K벡터를 합이 1인 확률로 변환해줍니다. sigmoid S모양의 함수로 예측 값을 0~1사이의 값으로 변환시켜줍니다. Random Walk 랜덤워크는 시작점 u에서 무작위로 다음 노드를 선택하여 그래프를 돌아다닐 때, 특정 노드 v를 들릴 확률을 유사도로 두고 학습하는 방..

인공지능공부/그래프

[Stanford/CS224W] 1. intro(3) : 그래프 표현의 선택

스탠포드 강의를 듣고 정리한 내용입니다. 그래프 표현 방법 앞의 포스팅에서는 그래프에는 어떤 종류가 있는지, 어떻게 활용될 수 있는지 알아보았습니다. 이번 포스팅에서는 그래프를 어떻게 표현하는지에 대해서 알아보도록 하겠습니다.  앞에서도 살짝 언급했듯이 그래프는 노드와 엣지로 구성되어있습니다. 이를 수학적 기호로 표현하면 아래와 같습니다. Objects : nodes, vertices → N Interactions : link, edges → E System : network, graph → G(N,E) Directed Graph와 Undirected Graph 그래프의 종류에는 크게 Directed Graph와 Undirected Graph가 있습니다. Directed Graph Directed Gr..

컴공누나
'stanfordgraph' 태그의 글 목록