그래프

인공지능공부/그래프

[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] 3. node embeddings(3) : 전체 그래프 임베딩

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 랜덤 워크에 대해서 알아봤습니다. 이번 포스팅에서는 전체 그래프 임베딩에 대해 알아보겠습니다. Embedding Entire Graphs 전체 그래프를 임베딩 하는 것은 무엇일까요? 단순 노드 임베딩에서는 노드들을 임베딩 공간으로 맵핑시켰습니다. 전체 그래프 임베딩은 하나의 노드를 임베딩 공간으로 맵핑시키는 것이 아니라 전체 그래프를 임베딩 공간으로 맵핑시키는 것을 뜻합니다. 즉, 마치 하나의 파일을 압축하듯 노드들의 정보를 압축시켜 임베딩 공간으로 맵핑해줍니다. 전체 그래프 임베딩은 분자가 독성이 있는지 탐지(분자 구조는 그래프 형태), 또는 이상 탐지 등에 사용될 수 있습니다. Approach1 : 노드 임베딩 값의 평균 또는 총합 이용 첫 ..

인공지능공부/그래프

[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] 2. tradition-ml(1) : 전통적인 노드 레벨 작업과 피쳐

스탠포드 강의를 듣고 정리한 내용입니다. 앞의 포스팅에서도 언급했지만, 그래프는 크게 3가지의 작업을 할 수 있습니다. 오늘은 위의 방법들 중 Nodel-level에 대해서 포스팅하도록 하겠습니다. Node-level 작업들 Node-level 작업은 네트워크가 주어지고, 각 노드들이 위와 같이 2개의 라벨을 가진다고 했을 때, 라벨이 달리지 않은 노드에 대해 어느 라벨을 가질지 예측하는 작업을 뜻합니다. 왼쪽에 있는 회색 노드들은 라벨이 붙어있지 않은 노드들인데, 이것을 ML로 학습시켜 라벨을 가지도록합니다. 마치 semi-supervised 학습처럼 보이죠. 위의 작업을 가능하게하는 node feature extraction에 대해서 알아보도록 하겠습니다. Node degree Node central..

인공지능공부/그래프

[Stanford/CS224W] 1. intro(1) : 그래프가 필요한 이유

스탠포드 강의를 듣고 정리한 내용입니다. 왜 그래프인가? 그래프는 일반적으로 엔티티들의 관계 또는 상호작용을 설명하고 분석하는 "언어"입니다. 따라서 위와 같이 데이터를 하나의 독립적인 포인트로 보기 보다는 이렇게 관계, 네트워크 측면에서 생각하자는 것이죠! 왜냐하면!!! 위와 같이 우리의 주변에는 정말 다양한 네트워크/그래프 형태의 데이터가 있기 때문이죠. 따라서 그래프 형태의 데이터를 잘 사용할 수 있다면, 위의 데이터들도 자동적으로 잘 활용될 수 있겠죠? 그럼 그래프의 종류에 대해서 잠깐 정리를 하고 가겠습니다. 그래프의 종류는 natural graph로 잘 알려진 networks와 representation인 graph으로 나뉩니다. Network(also known as Natural Graph..

컴공누나
'그래프' 태그의 글 목록