The ArangoML Group had a detailed discussion on the topic "GraphSage Vs PinSage" where they shared their thoughts on the difference between the working principles of two popular Graph ML algorithms. The following slidedeck is an accumulation of their thoughts about the comparison between the two algorithms.
이번 슬라이드는 Graph mining의 기초에 대한 것이다.
고전 문제인 Graph cut에 대한 개념과 수학적인 배경을 설명하고, 이 개념이 clustering (클러스터링)에서 어떻게 사용되는지를 설명한다.
Graph mining, cut, clustring의 기초를 알기에 매우 적합한 자료이다.
The ArangoML Group had a detailed discussion on the topic "GraphSage Vs PinSage" where they shared their thoughts on the difference between the working principles of two popular Graph ML algorithms. The following slidedeck is an accumulation of their thoughts about the comparison between the two algorithms.
이번 슬라이드는 Graph mining의 기초에 대한 것이다.
고전 문제인 Graph cut에 대한 개념과 수학적인 배경을 설명하고, 이 개념이 clustering (클러스터링)에서 어떻게 사용되는지를 설명한다.
Graph mining, cut, clustring의 기초를 알기에 매우 적합한 자료이다.
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
발표 영상 : https://goo.gl/jrKrvf
데모 영상 : https://youtu.be/exXD6wJLJ6s
Deep Q-Network, Double Q-learning, Dueling Network 등의 기술을 소개하며, hyperparameter, debugging, ensemble 등의 엔지니어링으로 성능을 끌어 올린 과정을 공유합니다.
발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
[기초개념] Recurrent Neural Network (RNN) 소개Donghyeon Kim
* 시계열 데이터의 시간적 속성을 이용하는 RNN과 그 한계점을 극복하기 위한 LSTM, GRU 기법에 대해 기본적인 개념을 소개합니다.
* 광주과학기술원 인공지능 스터디 A-GIST 모임에서 발표했습니다.
* 발표 영상 (유튜브, 한국어): https://youtu.be/Dt2SCbKbKvs
In this talk, Dmitry shares his approach to feature engineering which he used successfully in various Kaggle competitions. He covers common techniques used to convert your features into numeric representation used by ML algorithms.
발표자: 최윤제(고려대 석사과정)
최윤제 (Yunjey Choi)는 고려대학교에서 컴퓨터공학을 전공하였으며, 현재는 석사과정으로 Machine Learning을 공부하고 있는 학생이다. 코딩을 좋아하며 이해한 것을 다른 사람들에게 공유하는 것을 좋아한다. 1년 간 TensorFlow를 사용하여 Deep Learning을 공부하였고 현재는 PyTorch를 사용하여 Generative Adversarial Network를 공부하고 있다. TensorFlow로 여러 논문들을 구현, PyTorch Tutorial을 만들어 Github에 공개한 이력을 갖고 있다.
개요:
Generative Adversarial Network(GAN)은 2014년 Ian Goodfellow에 의해 처음으로 제안되었으며, 적대적 학습을 통해 실제 데이터의 분포를 추정하는 생성 모델입니다. 최근 들어 GAN은 가장 인기있는 연구 분야로 떠오르고 있고 하루에도 수 많은 관련 논문들이 쏟아져 나오고 있습니다.
수 없이 쏟아져 나오고 있는 GAN 논문들을 다 읽기가 힘드신가요? 괜찮습니다. 기본적인 GAN만 완벽하게 이해한다면 새로 나오는 논문들도 쉽게 이해할 수 있습니다.
이번 발표를 통해 제가 GAN에 대해 알고 있는 모든 것들을 전달해드리고자 합니다. GAN을 아예 모르시는 분들, GAN에 대한 이론적인 내용이 궁금하셨던 분들, GAN을 어떻게 활용할 수 있을지 궁금하셨던 분들이 발표를 들으면 좋을 것 같습니다.
발표영상: https://youtu.be/odpjk7_tGY0
Part 2 of the Deep Learning Fundamentals Series, this session discusses Tuning Training (including hyperparameters, overfitting/underfitting), Training Algorithms (including different learning rates, backpropagation), Optimization (including stochastic gradient descent, momentum, Nesterov Accelerated Gradient, RMSprop, Adaptive algorithms - Adam, Adadelta, etc.), and a primer on Convolutional Neural Networks. The demos included in these slides are running on Keras with TensorFlow backend on Databricks.
Deep Learning With Python | Deep Learning And Neural Networks | Deep Learning...Simplilearn
This presentation about Deep Learning with Python will help you understand what is deep learning, applications of deep learning, what is a neural network, biological versus artificial neural networks, introduction to TensorFlow, activation function, cost function, how neural networks work, and what gradient descent is. Deep learning is a technology that is used to achieve machine learning through neural networks. We will also look into how neural networks can help achieve the capability of a machine to mimic human behavior. We'll also implement a neural network manually. Finally, we'll code a neural network in Python using TensorFlow.
Below topics are explained in this Deep Learning with Python presentation:
1. What is Deep Learning
2. Biological versus Artificial Intelligence
3. What is a Neural Network
4. Activation function
5. Cost function
6. How do Neural Networks work
7. How do Neural Networks learn
8. Implementing the Neural Network
9. Gradient descent
10. Deep Learning platforms
11. Introduction to TensoFlow
12. Implementation in TensorFlow
You can gain in-depth knowledge of Deep Learning by taking our Deep Learning certification training course. With Simplilearn’s Deep Learning course, you will prepare for a career as a Deep Learning engineer as you master concepts and techniques including supervised and unsupervised learning, mathematical and heuristic aspects, and hands-on modeling to develop algorithms. Those who complete the course will be able to:
1. Understand the concepts of TensorFlow, its main functions, operations, and the execution pipeline
2. Implement deep learning algorithms, understand neural networks and traverse the layers of data abstraction which will empower you to understand data like never before
3. Master and comprehend advanced topics such as convolutional neural networks, recurrent neural networks, training deep networks and high-level interfaces
4. Build deep learning models in TensorFlow and interpret the results
5. Understand the language and fundamental concepts of artificial neural networks
6. Troubleshoot and improve deep learning models
7. Build your own deep learning project
8. Differentiate between machine learning, deep learning, and artificial intelligence
There is booming demand for skilled deep learning engineers across a wide range of industries, making this deep learning course with TensorFlow training well-suited for professionals at the intermediate to advanced level of experience. We recommend this deep learning online course particularly for the following professionals:
1. Software engineers
2. Data scientists
3. Data analysts
4. Statisticians with an interest in deep learning
Learn more at https://www.simplilearn.com/deep-learning-course-with-tensorflow-training
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
발표 영상 : https://goo.gl/jrKrvf
데모 영상 : https://youtu.be/exXD6wJLJ6s
Deep Q-Network, Double Q-learning, Dueling Network 등의 기술을 소개하며, hyperparameter, debugging, ensemble 등의 엔지니어링으로 성능을 끌어 올린 과정을 공유합니다.
발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
[기초개념] Recurrent Neural Network (RNN) 소개Donghyeon Kim
* 시계열 데이터의 시간적 속성을 이용하는 RNN과 그 한계점을 극복하기 위한 LSTM, GRU 기법에 대해 기본적인 개념을 소개합니다.
* 광주과학기술원 인공지능 스터디 A-GIST 모임에서 발표했습니다.
* 발표 영상 (유튜브, 한국어): https://youtu.be/Dt2SCbKbKvs
In this talk, Dmitry shares his approach to feature engineering which he used successfully in various Kaggle competitions. He covers common techniques used to convert your features into numeric representation used by ML algorithms.
발표자: 최윤제(고려대 석사과정)
최윤제 (Yunjey Choi)는 고려대학교에서 컴퓨터공학을 전공하였으며, 현재는 석사과정으로 Machine Learning을 공부하고 있는 학생이다. 코딩을 좋아하며 이해한 것을 다른 사람들에게 공유하는 것을 좋아한다. 1년 간 TensorFlow를 사용하여 Deep Learning을 공부하였고 현재는 PyTorch를 사용하여 Generative Adversarial Network를 공부하고 있다. TensorFlow로 여러 논문들을 구현, PyTorch Tutorial을 만들어 Github에 공개한 이력을 갖고 있다.
개요:
Generative Adversarial Network(GAN)은 2014년 Ian Goodfellow에 의해 처음으로 제안되었으며, 적대적 학습을 통해 실제 데이터의 분포를 추정하는 생성 모델입니다. 최근 들어 GAN은 가장 인기있는 연구 분야로 떠오르고 있고 하루에도 수 많은 관련 논문들이 쏟아져 나오고 있습니다.
수 없이 쏟아져 나오고 있는 GAN 논문들을 다 읽기가 힘드신가요? 괜찮습니다. 기본적인 GAN만 완벽하게 이해한다면 새로 나오는 논문들도 쉽게 이해할 수 있습니다.
이번 발표를 통해 제가 GAN에 대해 알고 있는 모든 것들을 전달해드리고자 합니다. GAN을 아예 모르시는 분들, GAN에 대한 이론적인 내용이 궁금하셨던 분들, GAN을 어떻게 활용할 수 있을지 궁금하셨던 분들이 발표를 들으면 좋을 것 같습니다.
발표영상: https://youtu.be/odpjk7_tGY0
Part 2 of the Deep Learning Fundamentals Series, this session discusses Tuning Training (including hyperparameters, overfitting/underfitting), Training Algorithms (including different learning rates, backpropagation), Optimization (including stochastic gradient descent, momentum, Nesterov Accelerated Gradient, RMSprop, Adaptive algorithms - Adam, Adadelta, etc.), and a primer on Convolutional Neural Networks. The demos included in these slides are running on Keras with TensorFlow backend on Databricks.
Deep Learning With Python | Deep Learning And Neural Networks | Deep Learning...Simplilearn
This presentation about Deep Learning with Python will help you understand what is deep learning, applications of deep learning, what is a neural network, biological versus artificial neural networks, introduction to TensorFlow, activation function, cost function, how neural networks work, and what gradient descent is. Deep learning is a technology that is used to achieve machine learning through neural networks. We will also look into how neural networks can help achieve the capability of a machine to mimic human behavior. We'll also implement a neural network manually. Finally, we'll code a neural network in Python using TensorFlow.
Below topics are explained in this Deep Learning with Python presentation:
1. What is Deep Learning
2. Biological versus Artificial Intelligence
3. What is a Neural Network
4. Activation function
5. Cost function
6. How do Neural Networks work
7. How do Neural Networks learn
8. Implementing the Neural Network
9. Gradient descent
10. Deep Learning platforms
11. Introduction to TensoFlow
12. Implementation in TensorFlow
You can gain in-depth knowledge of Deep Learning by taking our Deep Learning certification training course. With Simplilearn’s Deep Learning course, you will prepare for a career as a Deep Learning engineer as you master concepts and techniques including supervised and unsupervised learning, mathematical and heuristic aspects, and hands-on modeling to develop algorithms. Those who complete the course will be able to:
1. Understand the concepts of TensorFlow, its main functions, operations, and the execution pipeline
2. Implement deep learning algorithms, understand neural networks and traverse the layers of data abstraction which will empower you to understand data like never before
3. Master and comprehend advanced topics such as convolutional neural networks, recurrent neural networks, training deep networks and high-level interfaces
4. Build deep learning models in TensorFlow and interpret the results
5. Understand the language and fundamental concepts of artificial neural networks
6. Troubleshoot and improve deep learning models
7. Build your own deep learning project
8. Differentiate between machine learning, deep learning, and artificial intelligence
There is booming demand for skilled deep learning engineers across a wide range of industries, making this deep learning course with TensorFlow training well-suited for professionals at the intermediate to advanced level of experience. We recommend this deep learning online course particularly for the following professionals:
1. Software engineers
2. Data scientists
3. Data analysts
4. Statisticians with an interest in deep learning
Learn more at https://www.simplilearn.com/deep-learning-course-with-tensorflow-training
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.
Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR
2. (목적)
데이터 집합이 𝑛개의 "objects"으로 이루어졌다고 가정하자.
objects은 이미지 or 단어 or 기타 등등 일 수 있다.
데이터의 집합을 임의의 𝑘개의 집합(clusters)로 나누자.
(집합의 기준)
𝑛개의 objects사이에는 유사성(similarity)이 존재한다.
같은 집합에 속하는 objects들 사이의 유사성은 높아야 하며,
다른 집합에 속하는 objects들 사이의 유사성은 낮아야 한다.
3. 아래의 데이터 집합을 k-means 알고리즘을 사용하여
2개의 clusters로 나누어 보자.
4. k-means를 사용했을 때의 clusters이다.
"On Spectral Clustering: Analysis and an algorithm" by AY Ng
이와 같이 convex set이 아닌 경우 k-means는 사용할 수 없다.
5. 그렇다면,
convex set이 아닌 경우에는 어떻게 clusters를 나누어 줄 수 있을까?
아래와 같은 방법은 어떨까?
original data points를 새로운 points로 변환 한 뒤 (embedding, demsional reduction)
그 새로운 points set에서 클러스터링 알고리즘을 돌리면 어떨까?
"On Spectral Clustering: Analysis and an algorithm" by AY Ng
original 데이터 공간 새로운 데이터 공간(차원이 줄어든 공간)
6. (How?)
𝑛개의 objects사이에 유사성(similarity)이 주어졌다면,
유사성 행렬(similarity matrix)를 만든다.
만약 유사성이 주어지지 않았다면, objects를 points로 mapping 시켜서
points 사이의 유사성을 구해 줄 수 있다.
유사성 행렬(similarity) 행렬을 이용해서,
유사 그래프(similarity graph)를 생성한다.
유사 그래프를 생성한다는 말은, 여기서는 인접 행렬(adjacency matrix)과
라플라시안 행렬(laplacian matrix)를 생성한다는 뜻으로 해석하면 된다.
그리고 라플라시안 행렬을 이용하여 새로운 points set을 구해준다.
objects의 clusters를 구하기 위해 Graph를 이용!
그래프 사용시 계산이 쉽다.
7. (계산이 왜 쉬운가? & 기본개념)
① 𝑛개의 data objects(points) 𝑜1, … , 𝑜 𝑛
② 모든 objects 사이의 유사도(similarity) 𝑠 𝑜𝑖, 𝑜𝑗 = 𝑠𝑖𝑗
𝕩 = 𝑥1, … , 𝑥 𝑛
𝑇
𝑜1 대응되는 새로운 데이터 포인트를 𝑥1이라고 하고,
𝑜 𝑛에 대응되는 새로운 데이터 포인트를 𝑥 𝑛이라고 하자.
𝑜1, … , 𝑜 𝑛
𝑇
𝑜1
𝑜2
𝑜3
𝑜4
𝑥1과 𝑥2는 값이 거의 차이가 없고, 𝑥1와 𝑥3는 어느 정도 값의 차이가 있고,
𝑥1과 𝑥4는 값이 차이가 많이 난다.
8. 우리가 구하고자 하는 clusters는 아래의 식으로 표현될 수 있다.
𝑠𝑖𝑗 ↑ 𝑥𝑖 − 𝑥𝑗
2
↓
𝑠𝑖𝑗 ↓ 𝑥𝑖 − 𝑥𝑗
2
↑
위 식은 다음과 동일한 식이다.
𝐦𝐢𝐧
𝕩
𝒔𝒊𝒋 𝒙𝒊 − 𝒙𝒋
𝟐
𝐦𝐢𝐧
𝕩
𝒘𝒊𝒋 𝒙𝒊 − 𝒙𝒋
𝟐
9. 위 식의 답은, 𝐿의 가장 작은 고유 값(eigenvalue)에 대응되는
고유 벡터(eigenvector)이다.
𝕩 = 𝑥1, … , 𝑥 𝑛
𝑇
𝕩 =
𝑥1
𝑥2
⋮
𝑥 𝑛
가장 작은 고유 벡터
𝕧1 =
𝑣1
𝑣2
⋮
𝑣 𝑛
𝑣1이 𝑜1에 대응되는 새로운 point이고, 𝑣2가 𝑜2에 대응되는 새로운 point이다.
𝐦𝐢𝐧
𝕩
𝒘𝒊𝒋 𝒙𝒊 − 𝒙𝒋
𝟐
= min
𝕩
1
2
𝕩 𝑻 𝑳𝕩
새로운 points
(새로운 공간안에 존재)
10. By ,
this change of representation enhances the cluster-properties
in the data, so that clusters can be trivially detected in the new
representation.
11. Input : Data points 𝕡 𝟏, 𝕡 𝟐, ...,𝕡 𝒏 ∈ 𝑹 𝒏
, Similarity matrix 𝑊 ∈ 𝑀 𝑛×𝑛 ,
clusters의 수 𝐾
○ Similarity matrix를 이용하여 similarity graph를 생성(build)
○ adjacency matrix 𝑊, diagonal matrix 𝐷를 사용하여 graph laplacian을 생성
① 𝐿 = 𝐷 − 𝑊 : unnormalized graph laplacian
○ matrix L의 𝑘개의 고유 벡터(eigenvector) 𝕧1, … , 𝕧 𝑘 ∈ 𝑅 𝑛
를 작은 것 부터 구함
Spectral Clustering Algorithm
12. ○ 𝑘개의 고유 벡터를 열(column)로 사용하는 matrix 𝑉를 생성 (𝑉 ∈ 𝑀 𝑛×𝑘)
○ 𝑉의 열(row)을 새로운 data points로 해석(interpret)
𝒙 𝟏, 𝒙 𝟐,..., 𝒙 𝒏 ∈ 𝑹 𝒌
○ 𝑛개의 새로운 data points 𝑥1, 𝑥2, ..., 𝑥 𝑛를 𝐾-means 알고리즘을 사용하여 𝐾개의
clusters로 분할
Spectral Clustering Algorithm
𝑣11 𝑣12
𝑣21 𝑣22
⋯
𝑣1(𝑘−1) 𝑣1𝑘
𝑣2(𝑘−1) 𝑣2𝑘
⋮ ⋱ ⋮
𝑣 𝑛1 𝑣 𝑛2 ⋯ 𝑣 𝑛(𝑘−1) 𝑣 𝑛𝑘
𝑉 = 𝕧1, 𝕧2, … , 𝕧 𝑘 =
𝑣11 𝑣12
𝑣21 𝑣22
⋯
𝑣1(𝑘−1) 𝑣1𝑘
𝑣2(𝑘−1) 𝑣2𝑘
⋮ ⋱ ⋮
𝑣 𝑛1 𝑣 𝑛2 ⋯ 𝑣 𝑛(𝑘−1) 𝑣 𝑛𝑘
new data point 𝕩 𝟏
new data point 𝕩 𝟐
new data point 𝕩 𝒏
Dimensional Reduction : 𝒏 × 𝒏 → 𝒏 × 𝒌
19. 만약에, components가 아주 약하게(loosely) 연결 되어 있으면(connected), 즉
graph laplacian이 정확한 block diagonal matrix가 아닐 때, 첫 번째 laplacian
eigenvector는 𝟙이다.
○ Balanced min-cut을 위해서는 두 번째 laplacian eigenvector를 사용한다.
○ 𝑘 cluster를 위해서, 𝑘개의 eigenvector를 사용하나, 이 eigenvector들은 아주 살짝 변형
된다.(perturbed)
※ 자세한 내용은 Davis-Kahan Theorem을 참고.
Go to appendix 3
24. graph가 normal하고, 대부분의 vertices가 대략(approximately) 같은 degree를 가
질 때는, 𝐿, 𝐿 𝑟𝑤, 𝐿 𝑠𝑦𝑚가 거의 동일한 clustering 결과를 도출한다.
graph의 degrees가 매우 broadly distributed 된 경우, (논문 저자의 의견)
○ normalized rather than unnormalized
○ 𝐿 𝑟𝑤 rather than 𝐿 𝑠𝑦𝑚
25. We want to partition such that
○ points in different clusters are dissimilar to each other
① minimize the between-cluster similarity
② minimize 𝒄𝒖𝒕(𝑨, 𝑨 𝑪
)
○ points in the same cluster are similar to each other
① maximize the within-cluster similarity
② maximize 𝑾(𝑨, 𝑨) and 𝑾(𝑨 𝑪
, 𝑨 𝑪
)
26. between-cluster similarity
○ 𝑁𝐶𝑢𝑡, 𝑅𝑎𝑡𝑖𝑜𝐶𝑢𝑡 satisfy.
within-cluster similarity
○ 𝑊 𝐴, 𝐴 = 𝑊 𝐴, 𝑉 − 𝑊 𝐴, 𝐴 𝐶
= 𝑣𝑜𝑙 𝐴 − 𝑐𝑢𝑡(𝐴, 𝐴 𝐶
)
○ If 𝑐𝑢𝑡(𝐴, 𝐴 𝐶
) is small and 𝑣𝑜𝑙(𝐴) is large, then within-cluster is maximized.
○ We can achieve this by minimizing 𝑁𝐶𝑢𝑡.
Normalized spectral clustering using implements both clustering objective
mentioned above, while unnormalized spectral clustering only implements the
first objective.
27. Spectral clustering에서 우리는 relaxation을 사용한다. (discrete problem)
Most importantly, there is no guarantee whatsoever on the quality of the
solution of the relaxed problem compared to the exact solution.
The reason why the spectral relaxation is so appealing is not that it leads to
particularly good solutions.
Its popularity is mainly due to the fact that it results in a standard linear
algebra problem which is simple to solve.
29. cluster의 수학적 표기 𝐦𝐢𝐧
𝕩
𝒔𝒊𝒋 𝒙𝒊 − 𝒙𝒋
𝟐
𝐦𝐢𝐧
𝕩
𝒘𝒊𝒋 𝒙𝒊 − 𝒙𝒋
𝟐
𝐦𝐢𝐧
𝕩
𝟏
𝟐
𝕩 𝑻 𝑳𝕩
𝑅𝑎𝑡𝑖𝑜𝐶𝑢𝑡 𝑁𝐶𝑢𝑡
by def of 𝕩
graph cut
Spectral cluster is a way
to solve relaxed versions
of cut problems.
30. 𝑅𝑎𝑡𝑖𝑜𝐶𝑢𝑡 𝐴1, 𝐴2, … , 𝐴 𝑘 문제의 경우
○ Given a partition of 𝑉 into 𝑘 sets, we define 𝑘 indicator vectors ℎ𝑗 = (ℎ1,𝑗, … , ℎ 𝑛,𝑗) by
① ℎ𝑖,𝑗 =
1
|𝐴 𝑗|
if 𝑣𝑖 ∈ 𝐴𝑗
② ℎ𝑖,𝑗 = 0 otherwise
for all (𝑖 = 1, … , 𝑛; 𝑗 = 1, … , 𝑘)
𝑅𝑎𝑡𝑖𝑜𝐶𝑢𝑡 𝐴1, … , 𝐴 𝑘 ≔
𝑙=1
𝑘
𝑐𝑢𝑡 𝐴𝑖, 𝐴𝑖
𝑐
|𝐴𝑖|
=
𝑖=1
𝑘
ℎ𝑖
𝑇
𝐿ℎ𝑖 =
𝑖=1
𝑘
𝐻 𝑇 𝐿𝐻 𝑖𝑖 = 𝑇𝑟(𝐻 𝑇 𝐿𝐻)
𝐦𝐢𝐧
𝑯∈ℝ 𝒏×𝒌
𝑻𝒓(𝑯 𝑻 𝑳𝑯) s.t. 𝑯 𝑻 𝑯 = 𝑰
by Rayleigh-Ritz thm, sol of this problem : 𝑘 eigenvectors of unnormalized laplacian 𝐿
31. 𝑁𝐶𝑢𝑡 𝐴1, 𝐴2, … , 𝐴 𝑘 문제의 경우
○ Given a partition of 𝑉 into 𝑘 sets, we define 𝑘 indicator vectors ℎ𝑗 = (ℎ1,𝑗, … , ℎ 𝑛,𝑗) by
① ℎ𝑖,𝑗 =
1
𝑣𝑜𝑙(𝑣 𝑖)
if 𝑣𝑖 ∈ 𝐴𝑗
② ℎ𝑖,𝑗 = 0 otherwise
for all (𝑖 = 1, … , 𝑛; 𝑗 = 1, … , 𝑘)
𝐦𝐢𝐧
𝑨 𝟏,…,𝑨 𝒌
𝑻𝒓(𝑯 𝑻 𝑳𝑯) s.t. 𝑯 𝑻
𝑫𝑯 = 𝑰
by Rayleigh-Ritz thm, sol of this problem : 𝑘 eigenvectors of normalized laplacian 𝐿 𝑠𝑦𝑚
𝐦𝐢𝐧
𝑻∈ℝ 𝒏×𝒌
𝑻𝒓(𝑻 𝑻 𝑫−
𝟏
𝟐 𝑳𝑫−
𝟏
𝟐 𝑻) s.t. 𝑻 𝑻 𝑻 = 𝑰
여기에
수식을
입력하십시오.
𝑇 = 𝐷
1
2 𝐻
Back
by Rayleigh-Ritz thm, sol of this problem : 𝑘 eigenvectors of normalized laplacian 𝐿 𝑟𝑤
32. Ideal 상태를 생각해보자. 𝑘개의 connected components가 있다고 가정하자.
서로 다른 components는 connectio이 없는 경우이다.
(connected component : component내의 모든 요소가 path로 연결된 경우)
block diagonal matrix이다.
𝐿 =
𝐿1
𝐿2
⋱
𝐿 𝑘
33. ※ Prove
○ 우선, connected component가 1이라고 생각해 보자. 그리고 고유 값 0에 대응되는
고유 벡터를 𝕗라고 하자. 그러면 0 = Σ𝑖,𝑗 𝑤𝑖,𝑗 𝑓𝑖 − 𝑓𝑗
2
가 될 것이다. 𝑤𝑖,𝑗 > 0 이므로,
𝑓𝑖와 𝑓𝑗는 모든 𝑖, 𝑗에 대해서 같은 값을 가지게 될 것이다. 따라서, 모든 vertices 들은
하나의 path로 연결 될 것이다. 따라서 𝕗 = 𝑐𝟙 where 𝑐 ∈ ℝ이 된다.
34. ※ Prove
○ connected component가 1보다 크다고 생각해 보자. 고유 값 0에 대응되는 고유 벡터
를 위와 같이 생각할 수 있다. 라플라시안이 block diagonal 행렬을 가지게 되므로,
connected component에 해당되는 부분의 𝑓𝑖와 𝑓𝑗만 같은 값을 갖고 나머지 부분은
𝑤𝑖,𝑗 = 0이므로 𝑓𝑖, 𝑓𝑗는 0을 갖는다. 따라서, block diagonal 행렬에 대응 하는 원소만
동일한 상수이고 나머지 원소는 0인 eigenvector가 component의 수만큼 존재하게 된
다. 물론 이 eigenvector는 모두 eigenvalue 0에 대응되는 eigenvectors이다.
𝐿 =
𝐿1
𝐿2
⋱
𝐿 𝑘
𝑐1
𝑐1
0
0
0
0
0
0
0
𝑐2
𝑐2
0
0
0
0
0
0
0
0
𝑐 𝑘
𝑐 𝑘
35. ○ 𝐿 is a block diagonal matrix, the spectrum of 𝐿 is given by the union of the spectra
of 𝐿𝑖, and the corresponding eigenvectors of 𝐿 are the eigenvectors of 𝐿𝑖,filled with
0 at the positions of the other blocks.
Back
36. Perturbation theory
○ How eigenvalues and eigenvectors of a matrix 𝐴 change if we add a small
perturbation 𝐻.
○ Most perturbation theorems state that a certain distance between eigenvalues or
eigenvectors of 𝐴 and perturbed matrix 𝐴 𝑝 = 𝐴 + 𝐻 is bounded by a constant times
a norm of 𝐻.
○ Strongly connected componen를 ideal case라고 가정하자. loosely connected
componen를 nearly ideal case라고 하자. nearly ideal case에서 우리는 여전히 distinct
cluster를 가지고 있다. 하지만 between-cluster의 similarity는 정확히 0은 아니다.
①ideal case의 perturbed laplacian matrix(nearly ideal case)를 고려해보자.
②Perturbation theory에 의하면, perturbed laplacian의 eigenvectors는 ideal case
의 indicator vectors(eigenvectors of laplacian)와 차이가 거의 없다.
③따라서 ideal case의 eigenvectors로 만들어진 새로운 𝑦𝑖와 nearly ideal case의
eigenvectors로 만들어진 새로운 𝑦𝑖는 약간의 error term을 제외하고는 서로 비
슷하다고 볼 수 있다.
37. ○ 하지만 여기서 생각해야 할 properties 2개가 있다.
① eigenvectors와 eigenvalues의 순서가 의미가 있어야 한다.
– 𝐿은 의미가 있다. 𝑊나 𝑆는 의미가 없다.
② eigenvector의 components가 0으로부터 "safely bounded away" 되어야 한다.
– 𝐿, 𝐿 𝑟𝑤 = 𝐷−1
𝐿은 이 property를 잘 만족한다.
– 𝐿 𝑠𝑦𝑚 = 𝐷−
1
2 𝐿𝐷−
1
2의 eigenvector는 𝐷
1
2 𝟙 𝐴 𝑖
이다. 따라서, vertices의 degree가 차이가
많이 나거나, degre가 매우 낮은 vertices가 존재하면, eignevectors에서 대응되는
entries의 값이 0에 매우 가깝게 된다. 따라서 이를 해결하기 위해서 row-
normalization step을 사용한다.
– 𝐿 𝑠𝑦𝑚은 very low degrees를 가지는 vertices가 존재할 때, 주의해서 사용해야 한다.
Back