- 2018년 4월 13일 오후 1:00
- 조회수: 3702
INFORMATION
- 2018년 4월 13일
- 오후 1시 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

오늘 세미나에서는 2016년 소개된 'Semi-supervised classification with graph convolutional networks' 논문을 중심으로 graph convolution이라는 개념에 대해 소개하는 시간을 가졌다. Graph convolution은 이미지, 오디오, 텍스트 등의 Euclidean domain에서 정의되는 convolution 연산을 그래프와 같은 non-Euclidean domain으로 확장시킨 것으로 이해할 수 있다. Graph convolution을 다루는 많은 연구에서는 graph Laplacian의 spectrum에서 localized filter를 정의하는 것이 일반적이지만, 위 논문에서는 Chebyshev polynomial과 적절한 근사를 통해 spatial domain에서도 localized filter를 정의할 수 있는 방법을 제시하고 있다. 계산복잡도를 현격히 줄였다는 점에서 장점을 찾을 수 있고, 준지도학습 문제들을 효과적으로 풀어내는 것을 확인할 수 있다. 하지만 많은 그래프 기반의 기계학습 방법론들이 그렇듯이 graph convolution도 결국 관측치 간 연결성을 정의해주는 그래프의 quality에 민감할 수 밖에 없다. 데이터의 구조에 그래프 가정을 두면 생기는 장점들이 굉장히 많다. 향후엔 인공신경망의 장점을 살려 데이터 그래프도 학습할 수 있는 방법론을 연구하고자 한다.
오늘은 논문에 등장하는 수식 및 이론들은 최대한 배제하고 전체적인 컨셉만 전달하는 데 초점을 뒀던 것이 개인적으론 아쉽다. 다음 기회엔 spectral graph theory와 graph signal processing 분야에서 등장하는 이론들을 좀 더 공부하여 연구원들이 더 많은 것을 얻어갈 수 있는 시간을 만들고 싶다.
청취자 후기

금일 세미나는 딥러닝을 이용한 그래프 기반 준지도 학습방법을 소개하였다. 해당 논문은 주어진 그래프를 기반으로 레이블이 없는 관측치의 레이블을 예측하는 준지도 학습용 딥러닝 모델을 제안했다. 이 연구는 학습전 주어지는 그래프 정보가 항상 옳다는 가정을 갖고 있다. 이 때 그래프의 node는 관측치, arc는 관측치간 관련성[0|1]을 의미한다. 다층 hidden layer 구조를 갖는 것은 manifold에 기반한 locality를 더욱 강화하여 학습하겠다는 의미이지만, layer가 깊어짐에 따른 효과는 사실 큰 의미가 없어 보인다. 해당 논문에서 보여준 다층을 쌓는 실험보다는, 주어진 그래프가 완벽한 정보라는 가정을 깨서 모델학습 과정에서 그래프 정보를 변형해가는 방법을 넣는 것은 어떨까 싶다. 발표자 현구가 얘기한대로 그래프의 구조학습까지 학습과정에 포함시키는 것도 좋겠다. 간단히 생각하면, structure (skeleton) learning과 parameter learning을 순차수행하는 two-phase가 될 것 같다. 현구가 좋은 연구물을 도출하기를 바란다.

금일 세미나에서는 레이블 된 데이터가 부족할 때의 상황을 풀어가는 방법론이었다. 데이터의 특성에 따라 Transductive, Inductive learning으로 나뉘고 Method로는 Graph-based methods를 사용했다고 한다. 데이터의 특성에 따라 위와 같이 나뉘는 점을 처음 알게 되었다. 합성곱 신경망의 단점은 중요한 변수를 선택할 수 없는 점에 의해 필터를 사용해서 모델 성능향상에 필요한 특성치를 자동으로 추출하는 것이 지속적으로 지적되어 왔다. 본 세미나에서는 기본적인 CNN의 mini batch로 돌아가는 것이 아니라 Full batch로 들어간다(관측치가 한 번에 들어감)는 것을 배웠다. 노드들의 그림을 보았을 때 이것이 관측치 인지 변수인지? 라는 성호의 질문에 미처 내가 놓쳤던 기초적인 부분을 다시 생각할 수 있었다. 관측치 하나가 그래프 하나로 돼 인풋으로 들어가는 경우도 있다는 것을 알게 되었다.
본 세미나에서는 “그래프를 잘 그려야 하고, 혹은 이미 그려진 그래프를 가지고 분류를 하는 것이다. 일련의 과정들이 결국 좋은 레이블을 붙여주기 위함” 이라는 것을 배우게 되었다.

금일 세미나에서는 Semi-Supervised Classification with Graph Convolutional Network에 대한 주제를 다뤘다. Semi-supervised Learning은 올바른 y값의 예측을 위해 labeled 된 데이터 뿐만 아니라 unlabeled 된 데이터를 모두 모델 학습에 사용하기 위한 방법론이다. 본 논문은 딥러닝 기반의 Convolutional Network를 차용하여 Semi-Supervised Classification을 제안했다. 인접 관측치가 해당 관측치와 레이블이 같을 것이라는 가정 하에 classification이 이루어지기 때문에 관측치들간의 인접 유사성을 먼저 구한다. 인접 관계가 높은 unlabeled 데이터를 선별하는 것이 목적이기 때문에 Graph를 사용하는데, 먼저 관측치 간의 유사성을 바탕으로 노드(관측치)들 간의 인접 행렬을 구하고 인접 행렬을 인풋으로 하여 Neural Network 프로세스를 진행한다. 이후에 Hidden layer를 쌓아 관측치 간의 관계를 더욱 효과적으로 설명할 수 있는 네트워크를 형성한다. 이를 위해, 일반적인 인공신경망과는 filter가 구성되는 방식을 다르게 하여 기계가 노드들의 인접 관계에 대해 심층적으로 학습하도록 하는 것이 핵심이다. 지금까지는 인공신경망에 Hidden layer을 더 쌓거나 파라미터를 다르게 하여 발전할 수 있도록 하는 연구들을 접했지만, 본 논문을 통해서 필터가 구성되는 방식을 달리하거나 그래프를 적용하는 등의 다른 관점에서 문제를 해결 할 수 있음을 확인했다. 인공신경망의 응용 부분으로서 앞으로도 발전 가능성이 큰 분야로 생각한다.

오늘은 현구가 ‘Semi-supervised Learning with Graph Convolutional Networks’에 대해 세미나를 진행하였다. Semi-supervised는 기본적으로 Label이 되어 있지 않은 데이터에 Label을 부여하여 경계선을 조금 더 명확하게 만들어준다. 발표 도입부에 Transductive learning과 Inductive learning에 대해 설명을 하였다. Transductive learning 같은 경우 Unlabeled 된 데이터에 단지 label을 부여해 주는 것이고, Inductive learning은 Unlabeled 된 데이터에 label을 부여해주는 것뿐만 아니라 새로운 데이터가 들어왔을 때도 label을 부여해주는 것이다. Semi-supervised Learning with Graph Convolutional Networks에서는 Transductive learning을 사용한다. 또한, Generative model, Graph-based methods, co-training 중에서도 Graph-based method를 사용하였다. Semi-supervised Learning with Graph Convolutional Networks에서는 Graph를 먼저 Fixed를 하고 시작한다. Graph에 CNN과 같은 conv, pooling을 쌓으면서 자기와 가까운 관측치의 정보를 반영하게 된다. Layer를 너무 많이 쌓게 되면 전부의 관측치 정보를 활용하기 때문에 성능이 저하되는 것을 확인 할 수 있었다. 현구가 마지막에 언급하였듯이 현재는 edge를 fix하고 Graph convolution을 하였지만 edge까지도 알고리즘을 통해 구하는 End-to-End가 된다면 좋을 것 같다. 이번 세미나 결과 부분이 굉장히 흥미로웠다. Label Rate이 0.001~0.036인데도 불구하고 70~80%의 정확도를 낸다는 것이 신기했다. 저번 학기에 GSSL을 구현해 보고 실험을 해봤는데 10%미만으로 Label Rate이 내려가면 성능이 잘 안 나왔지만 이번 논문에는 잘 나오는걸 확인하였다.

금일 세미나는 Semi-supervised Classification with Graph Convolutional Networks (ICLR 2017) 논문에 대한 Review 방식으로 진행 되었다. 레이블 된 데이터가 부족할 때 레이블 되지 않은 데이터를 활용하여 모델을 생성하는 Semi-supervised Classification 문제를 보다 효과적으로 해결하기 위하여 GCN(Graph Convolutional Networks) 을 이용하는 방법이다. 관측치 간의 유사도 등을 정의한 후 이를 layer 로 사용하여 단일 관측치가 아닌 주변 관측치 정보를 포함하여 가중치를 주는 방식으로 좀 더 효과적으로 문제를 해결할 수 있다. 다시 설명하면 일반적인 propagation term 에 주변 관측치 정보를 포함하는 filter term 을 Convolution 하는 방법을 사용하였다고 할 수 있다. 이 filter term 에 대한 자세한 내용은 정확히 이해 되지는 않았지만, 접근 방법에 대한 이해 정도는 되었던 것 같다. 이 부분에 대해서는 좀 더 고민해 볼 필요가 있을 것 같다. 이번 세미나를 통하여 주어진 데이터를 그냥 사용하는 것이 아닌 주변 상황을 고려하는 변수를 생성하여 같이 분석할 때 더 좋은 결과를 얻을 수 있다라는 것을 알게 되었다. 데이터 구조와 특징 이용방법에 대한 새로운 시각을 얻을 수 있는 좋은 세미나였다.

Semi-supervised learning은 적은 양의 labeled data와 많은 양의 unlabeled data가 존재하는 상황에서 supervised learning을 수행할 때 unlabeled data를 이용하는 방법론으로, 크게 unlabeled data에 적당한 label을 부여하는 transductive learning과 unlabeled data를 이용하여 모델의 generalization performance를 높이는 inductive learning으로 분류할 수 있다. 세미나에서는 graph convolution network를 이용하여 transductive learning을 잘 수행하기 위해 제안된 연구를 발표하였다. 관측치 간 관계를 나타내는 그래프가 사전에 정의되어 있다고 할 때, graph convolution layer에서는 주어진 그래프 상에서 인접한 관측치들의 정보를 함께 고려하여 연산을 수행하고 다음 layer로 값을 전달한다. 소개된 연구의 핵심은 이런 graph convolution 연산을 spectral graph convolution의 localized first-order approximation을 통해서 정의했다는 데 있는 것 같다. 따라서 spectral domain에서 spatial domain으로 옮겨왔다는 설명을 들었는데 이에 대해서는 좀 더 알아봐야 할 것 같다. 어떻게 보면 그래프 상에서 인접한 관측치들의 정보를 같이 학습한다는 간단한 아이디어이기도 하지만, 이에 깔려있는 배경지식들은 알아두면 많은 도움이 될 것 같다.
현재 이 연구는 관측치 간 그래프가 주어져있다고 가정하는데, 발표자는 관측치 간 그래프를 데이터로부터 학습할 수 있는 완전한 end-to-end 모델을 만들고 싶어하는 것 같았다. 사전에 주어진 그래프 정보를 이용하는 방법론들은 사전에 주어진 그래프의 quality가 중요한 경우가 대부분인데, 적절한 그래프를 학습할 수 있다면 상당히 의미있는 연구가 될 것 같다.

오늘 세미나에서는 Graph-convolution에 대해서 공부할 수 있었다. Graph-convolution은 Graph 연결 구조가 주어진 상황에서 이 구조를 활용해 Filtering을 하는 방법이다. Laplacian Matrix가 주어진 상황에서 이 Laplacian matrix의 eigenvalue를 조정하게 되면 특정 adjacency group의 element 값들의 스케일이 커지게 되는 효과가 발생한다. 그래서 이 eigenvalue를 적절하게 조절하면 특정 adjacency 집단의 특성을 다른 집단의 특성보다 많이 반영하는 feature를 extract할 수 있다. graph convolution은 이러한 spectral filter의 원리를 인공신경망 레이어에 녹여내서 자체적으로 최적의 filter를 학습하게끔하는 방법이다. 기존에는 convolutional layer를 많이 봐왔었는데 그래프의 연결성까지 고려하는 layer라는 점이 굉장히 독특했고 흥미로웠다. 네트워크의 구조가 확실하게 결정되어 있는 상황에서 관측치들의 변수까지 가지고 있을 때 이를 반영해서 분류, 예측을 해볼 수 있는 좋은 방법론이라고 생각이 되었다. 다양한 변형이 가능한 연구라고 생각되는데 개인적으로는 filter를 sparse하게 추정해보면 어떨까 하는 생각이 들었다. eigenvalue를 sparse하게 추정하게 되면 특정 adjacency group의 값만 부각시켜서 계산이 가능할 것 같다.

금일 세미나에서 소개된 논문의 제목은 Semi-Supervised Classification with Graph Convolutional Networks였다. 그래프 구조를 바탕으로 표현되는 데이터에서 준지도학습 문제를 해결하기 위해 제안된 방법론이다. 일반적으로 사용되는 CNN에서 convolution filter는 변수간의 관계를 학습하기 위하여 사용되지만, Graph Convolution Network (GCN)에서는 이웃 관측치의 특성만을 선택적으로 반영하기 위한 'filtering' 개념으로 사용된다. GCN의 아키텍쳐를 설계할 때 k개의 레이어를 쌓게 되면, 결국 k-hop 이웃관계에 있는 관측치들의 특성까지 반영하게 된다는 해석이 인상깊었다. 논문에서 소개된 '레이어 개수의 변화에 따른 성능변화'를 살펴본 실험에서 레이어의 개수가 8개정도 되었을 때 test 정확도가 매우 떨어졌다. 저자는 이를 해결하기 위해 Skip Connections를 사용하였다. Skip Connections는 기본적으로 gradient vanishing 문제를 해결하기 위함인데, 개인적으로는 다수의 레이어를 쌓을 경우 결국에는 모든 데이터의 정보를 사용해서 labeling을 하게 되는 것도 성능 저하의 한 원인이라고 생각된다. 발표자가 쉬운 예제를 기반으로 설명해주어 GCN의 프로세스를 이해하는데 많은 도움이 되었다고 생각한다.

이번주 세미나에서는 graph convolutional networks를 이용한 semi-supervised classification 논문을 다루었다. 현실 데이터 셋에는 레이블이 있는 데이터보다 레이블이 없는 데이터가 훨씬 많고, 그 데이터들에 레이블링을 하는 것은 비용이 든다. 따라서 semi-supervised learning을 통해 레이블이 없는 데이터도 모델을 만들 때 함께 사용하는 것이 효율적이다. Semi-supervised learning에는 크게 generative models, graph-based methods, co-training이 있는데 오늘 세미나에서 다룬 것은 graph-based methods이다. Graph-based semi-supervised learning은 그래프를 구성하는 부분과 거기서 얻은 정보를 이용하는 부분으로 나누어져 있는데 이 논문에서는 이미 확정된 그래프를 가지고 있다는 가정을 하고 그래프 정보를 어떻게 이용할 것인가에 집중하고 있다. 관측치 간의 관계가 그래프로 반영이 되어 한 layer에서 다음 layer로 넘어가면서 label을 propagation할 때 Laplacian term의 근사식을 이용한다. Graph를 이용한 이런 접근은 spectral한 CNN으로부터 spatial한 CNN으로 확장했다는 점에서 의의가 있다. 연구 분야와 관심사가 겹쳐서 흥미로운 세미나였다. 다만 앞에 semi-supervised learning에 대한 개괄적인 설명보다는 graph convolutional networks에서 layer에서 layer로 넘어갈 때 파라미터들이 어떻게 계산되는지, 핵심적인 수식에 대한 더 자세한 설명이 있었으면 더 좋았을 것 같다.

금주 참석한 세미나에서는 ‘Semi-Supervised Classification with Graph Convolutional Networks’라는 주제로 크게‘Semi-Supervised Classification’와 ‘Convolutional Networks’로 나누어 소개해주셨다. ‘Semi-Supervised Classification’는 labeled 데이터가 부족할 때 labeled 하지 않은 데이터도 활용하여 Classification을 수행하는 것인데, 과정 중 사용하는 방법론에 따라 ‘Generative models’,‘Graph-based methods’,‘Co-training’으로 나누어 볼 수 있으며 데이터의 특성에 따라서는 ‘Transductive learning’과 ‘Inductive learning’으로 나눌 수 있다. 본 연구에서는 ‘Transductive learning’데이터를 가정하여 ‘Graph-based methods’를 통해 준 지도학습을 진행하였다. 이는 그래프를 구축하는 단계와 구축된 그래프를 기반으로 추론하는 단계로 나누어지는데 추론의 과정에서 ‘Neural net’기반에 대해 구체적으로 설명해주셨다. CNN의 경우 이미지, 비디오, 텍스트 등 기하학적 구조에서 사용하고 있다. 도메인은 다름에도 불구하고, feature 값이 자신뿐만 아니라 자신과 이웃한 값에 대해서도 반영을 한다는 공통점을 갖고 있다. Graph Convolution을 보면 방향이 없는 그래프가 주어지면 각 꼭지점은 인스턴스에 해당하고 각 예측 가중치는 인스턴스 가의 유사성을 반영한다. 따라서 준 지도학습에는 Graph convolutional network는 labeled데이터에 대해서 범주적 cross-entropy손실을 최소화하도록 한다. 그래프에 직접 작용하는 새로운 neural network라는 점에서 활용도가 높을 것이라 기대된다. 특히 개인적으로 오늘 세미나에서 준 지도학습이라는 개념에 대해 접해볼 수 있어 좋았고, Graph Convolution에 대해 이해하는데 어려움을 느껴 공부해보아야겠다는 생각이 드는 좋은 기회였다고 생각한다.

금주 세미나는 관측치 간의 그래프 구조 정보를 Neural network 구조에 반영 할 수 있는 방법에 대한 논문 소개였다. 기본적으로 관측치 간의 그래프 구조 정보를 반영하기 위해 전체 full batch 방식으로 학습시키며, 전 레이어에서 다음 레이어로 정보를 요약 할 때 간 그래프 구조를 필터 형식으로 반영한다. 그래프 필터를 어떻게 구성하냐가 결국 가장 중요한 부분이고 다른 도메인에 수학적 내용을 바탕으로 구축하고 approximation 하였다. 실험결과를 살펴 보면, 기존 연구 대비 높은 성능 향상을 보였다. 하지만 발표자 말처럼 유의미한 그래프 정보가 주어진 경우에 사용 할 수 있기 때문에, 기존의 그래프 기반 방법과 마찬가지로 주어진 그래프 정보에 매우 의존 할 수 밖에 없다. 따라서, 발표자가 제안한 그래프 구성까지 학습시키는 연구로 확장시키는 것은 매우 흥미로운 주제로 생각된다. 추가적으로, 현재는 레이어를 쌓을 수록 불필요한 그래프 정보까지 반영하기에 정확도가 하락하는 것으로 보이는데, 이 부분도 좀 더 생각할 필요가 있다고 판단된다.

오늘 세미나에서는 graph 기반의 Semi-supervised classification 방법 중 convolution neural network를 이용한 연구에 대해 다루었다. 제안하는 Graph convolution 방법은 기존에 인공신경망에서 웨이트를 학습할 때 그래프의 정보를 넣어 관측치간의 유사도를 반영하도록 하였다. 하지만 대부분의 그래프 기반 학습 방법론들은 기본적으로 관측치 간 연결성을 표현하는 그래프를 어떻게 그리냐에 따라 성능이 좌우되는데 오늘 설명한 Graph convolution 역시 이 한계를 가지고 있다. 발표자가 생각하는 향후 연구는 인공신경망을 학습할 때 그래프도 학습하도록 하는 것인데, 연구가 잘 진행 된다면 매우 좋은 연구가 될 것 같다.

오늘 전체세미나는 ‘Semi-Supervised Classification with Graph Convolutional Networks’라는 주제로 현구가 진행했다. 요즘 Convolution구조에 관심이 많았던 찰나 반가운 주제인 세미나였다. 또한, 준지도 학습에 전반적인 개요와 Inductive learning과 Transductive learning의 개념을 알 수 있는 시간이었다. 뉴럴네트워크에 적용하여 이미지 인식에 효과적인 CNN으로 주로 접했던 Convolution 개념에 인풋되는 요소를 그래프형태로 .생각해보자는 것이 소개해준 논문의 핵심이었다. 또 본인은 그래프를 잘 그려 성능을 향상시켜보기 위한 연구를 진행 중이라고 소개해 주었는데, 상당히 흥미로웠고 유익한 결과물이 나오기 기대한다.

오늘 세미나에서 다룬 논문은 2016년에 발표된 'Semi-supervised Learning with Graph Convolutional Networks'였다. Semi-supervised learning은 크게 transductive와 inductive로 나뉘게 된다. 해당 논문은 GCN을 사용한 transductive의 graph-based method로써 SSL의 단점을 보안한 논문이라기 보다 graph-based의 SSL을 NN으로 시도했다는 점에서 큰 contribution이 있다고 생각이 되었다. 따라서 NN을 graph에 어떻게 적용하였는가를 이해하는 것이 큰 핵심이되는대 Adjacent Matrix와 이 행렬의 column이나 row의 합을 diagonal matrix로 표현한 Degree Matrix 두 가지를 활용하여 이를 구현하였다. Semi-supervised learning에 대한 설명은 유재홍박사님의 예전 세미나들을 들은 경험이 있어서 비교적 쉽게 이해되었으나 GCN을 이해할 때 수식이 한번에 직관적으로 되진 않아서 시간이 걸리더라도 선형대수에 대한 베이스를 탄탄히 쌓는 것이 필요함을 느꼈다. 처음에 Convolutional 이름이 들어가 있어서 Convolutional Neural Networks와 연결성이 깊은 줄 알고 이를 이해하려고 했지만 오히려 그냥 fully connected layer에 graph의 구조를 반영할 수 있는 Adjacent Matrix를 Degree Matrix로 normalize한 것을 곱한 것으로 이해를 하는 것이 편하다고 생각이 들었다. 유익한 시간이었다.