일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- python
- Regression
- RNN
- version
- virtualenv
- Peephole Connection
- cnn
- DCGAN
- Linear
- Generative
- classification
- Gated Skip Connection
- Inception V1
- Bottleneck Layer
- Residual Connection
- jupyter
- sigmoid
- iTerm2
- vim-plug
- AI
- Optimizer
- GCN
- Vanilla RNN
- Skip Connectioin
- Manager
- GoogLeNet
- ResNet
- DL
- Inception Module
- Skip Connection
- Today
- Total
목록AI (40)
IT Repository
Generative Adversarial Network (GAN)¶ Introduction에서 소개했던 아래 계층도를 기억하시나요? Generative models Explicit density Tractable density: 실제로 density를 계산할 수 있는 경우 NADE MADE PixelRNN/CNN Approximate density: density의 form을 알고 있고, 그를 통해 근사하는 경우 Variational (VAE) Markov Chain (Boltzman Machine) Impicit density: density의 form을 알 수 없고, 특정 분포로 전제하지도 않는 경우 Direct (GAN) Markov Chain (GSN) 우리가 지난번에 배웠던 VAE는 Explic..
참고. VAE는 이해하기가 수학적으로 조금 까다롭습니다. (정말 어렵습니다 ㅠ) 수학적인 내용을 최소화하면서 설명하나, 기본적인 통계지식은 조금 필요합니다. (여기서는 KL Divergence를 사용하여 VAE를 설명합니다. Jensen's inequality를 사용하여 ELBO를 설명하는 방법도 있으나 이 부분에 대해서는 다루지 않습니다.) Main Idea of VAE¶ 아래는 VAE의 모델구조를 수식학적으로 해석한 내용입니다. 두 개의 독립사건의 확률은 두 사건의 곱으로 표현할 수 있으므로 아래의 수식이 성립합니다. $p_\theta(x) = \displaystyle \int p_\theta(z) \cdot p_\theta (x|z) dz$ ($\theta$는 nn에 있는 파라미터들의 집합) (1)..
For What is AutoEncoder Used?¶ AutoEncoder는 Dimensionality Reduction을 위해서 딥러닝에서 사용하는 차원 축소 모델 구조입니다. 차원 축소 개념은 Sparse한 정보를 담은 벡터를 좀 더 유용한 정보만으로 채워진 Dense한 벡터로 만들기 위함입니다. 우리는 이미 GoogLeNet에서 사용한 Bottleneck Layer에서도 차원 축소 테크닉을 사용해서 파라미터의 수를 줄였던 경험이 있었죠. 차원 축소 개념이 와닿지 않으실 분들을 위해 예시를 하나 들어보겠습니다. 스프링 운동은 1차원 운동으로 "위치" 라는 1차원의 데이터만 있다면 속도, 가속도 등의 모든 정보를 표현할 수 있습니다. 그러나 스프링 운동을 각기 다른 위치의 10개의 위치에서 촬영했다고..
참고. 생성 모델은 다른 딥러닝 모델 구조에 비해 통계적인 부분에 이론적 베이스를 크게 두고 있습니다. 기본적인 통계 지식이 있는 상태에서 학습하시기를 권장합니다. Supervised vs Unsupervised Learning¶ 생성 모델(Generative Model)은 기존에 학습했던 MLP, CNN, RNN과 같은 모델을 학습하는 것과는 다른 방식으로 학습이 진행됩니다. 기존의 구조를 학습시키기 위해서 우리는 데이터(x)와 레이블(y)을 사용하여 손실값을 계산했습니다. 이러한 학습 방법은 Supervised Learning이라고 합니다. 그러나 생성 모델은 데이터(x)만을 사용해서 학습이 진행되는 Unsupervised Learning 입니다. 따라서 생성 모델에 대해 알아보기에 앞서 Superv..
Inception Module¶ CNN에서의 Inception module의 핵심은 다양한 Receptive field를 취한다는 점이었습니다. 이를 GCN에서 적용하면, Receptive field는 결국 얼마만큼 떨어져 있는 노드를 반영할 것인가 라고 할 수 있습니다. 이는 Adjacency matrix를 다시 한번 dot product함으로써 구현할 수 있습니다. 즉, Graph Conv를 하는 횟수만큼 Receptive field가 넓어집니다. 예를 들어 1번 노드에 2, 3번 노드가 연결되어 있다고 가정해봅시다. 첫번째 Graph Conv 레이어에서는 1번 노드는 2, 3번 노드의 상태를 반영할 것입니다. 두번째 Graph Conv 레이어에서도 2, 3번 노드의 상태를 반영하겠죠. 하지만 여기서..
Features of Convolution¶ 구체적인 구조를 설명하기 전에 먼저 Convolution의 특징을 다시 한번 되새겨 생각해보고 넘어가겠습니다. 기존에 사용하던 MLP는 모든 노드들을 펼쳐서 연결하였으므로 파라미터의 수가 너무 많아지는 문제가 있었습니다. 또한 이미지가 1픽셀만 움직이더라도 한 줄로 펼쳐짐으로 인해 정확한 feature의 추출이 어려워지는 문제점이 있었습니다. Convolution을 사용한 레이어는 아래의 세 가지의 특징으로 이를 개선했었죠. Weight sharing 하나의 필터가 이미지 전체를 슬라이드함으로써 Weight를 공유하고 파라미터의 수를 줄임 (less overfitting, low computational cost) Learn local feature 하나의 노..
What is Graph?¶ Graph란 Vertex의 Set과 Edge의 Set으로 구성되어 있는 구조를 말합니다. Vertex는 꼭짓점을 말하며, 하나의 노드입니다. Edge는 선분을 말하며, 각 노드간의 연결을 의미합니다. 예) Social Graph: 나와 다른 사람간의 친밀도, 관계성을 나타내는 그래프 3D Mesh: 입체 구조를 삼각형이 여러 개 연결되어 있는 그래프의 형태로 나타내는 것 Molecular Graph: 화학에서 사용하는 분자 그래프 Types of Graph¶ Direction of Edge Directed graph(유향 그래프) : Edge에 방향이 있어 어느 한 방향 또는 양 방향으로 이동할 수 있는 경우 Undirected graph(비유향 그래프) : Edge에 방향이..
GRU (Gated Recurrent Unit)¶ GRU는 LSTM보다 더 간단한 구조로 Gradient Vanishing 문제를 해결하고 제안되었습니다. LSTM과 비교했을 때 Cell state를 제거하고 Gate의 수를 1개 줄임으로써 파라미터의 수를 감소시켰습니다. Work Flow of GRU¶ Gate coefficient를 계산한다. $\begin{eqnarray} r_t &=& \sigma~(W_r \cdot [x_t,~h_{t-1}]) & ~~~~~\text{Reset gate: } \text{이전 상태의 불필요한 정보를 제거} \\ z_t &=& \sigma~(W_z \cdot [x_t,~h_{t-1}]) & ~~~~~\text{Update gate: }h_{t-1} \text{ 와 }..