본문 바로가기

딥러닝

Deconvolution and Checkerboard Artifacts [KOR] Image Copyright: https://distill.pub/2016/deconv-checkerboard/ 1. Introduction Generative Model 의 가장 대표적인 형태는 Convolution 을 지나서, Deconvolution 으로 이미지를 생성하는 것이다. 이러한 구조는 중간에 Bottleneck에 응축된 정보를 가지고 데이터에 대한 특징을 집약적으로 표현하는 특징이 있다. Convolution 단계에서 이미지에서 의미있는 정보들을 추출하며 Spatial 한 부분에 대하여 정보를 가져오는 역할을 하고, Deconvolution에서는 다시 더 넓은 범위로 이미지를 확대하면서 생성을 진행한다. 그러나, Deconvolution 방식들은 Checkerboard 를 형성하는 Art.. 더보기
[Circuits-CNN] Features, Circuits, and Activations [한국어] 본 글의 내용은 Zoom In: An Introduction to Circuits 을 기반으로 만들어졌습니다. Feature Visualziation 에 대한 이미지는 위 글에서 가져왔습니다. 1. Introduction 최근 연구들은 신경망을 더 자세히 관찰하여, 모델 내부에 대한 기본단위를 재정의 하는 시도가 있다. 이러한 시도는 생물의 내부를 더욱 자세히 관찰하여 세포에 대한 연구를 진행하는Cellular Biology (세포생물학) 로 부터 영감을 얻었으며, 세포생물학에서 주장한 것과 유사하게, 모델의 기본 요소인 Feature 에 대해서 3가지 기본요소를 주장한다. [link] 1. Feature 는 신경망의 기본 단위이다. 2. Feature 는 연결되어 있다 (Weight 을 통해서) 3. .. 더보기
Invariant 와 Equivariant 를 구분하는 방법 TL;DR Equivariant는 Rotation을 전후로 적용해도 괜찮은 공간들로 한다. Invariant 는 아웃풋이 아무거나 상관없다. (심지어 스칼라도!) Intro 딥러닝을 하다보면, Representation에 대해서invariant 또는 Equivariant 라는 단어를 쓸 때가 있습니다. 이는 의미상 굉장히 비슷하기 때문에 쓰임새를 구분하는 것이 쉽지 않습니다. 의미적으로 보면, Invariant : 불변, Equivariant : 동일로 해석할 수 있는데, 의미적으로 두 개를 기억하는 것은 아무런 도움이 되지 않으며, 수식을 외운다고 할지라도 단순히 정의을 기억하는 것 이상의 정보를 주진 않습니다. 그래서 Invariant 와 Equivariant 의 차이를 제대로 보여주는 함수의 인풋과.. 더보기
Reinforcement Learning - Skill Discovery [스킬을 배우자] 중요한 것은 Mutual Information! Too Long ; Dont Read 스킬별로 상태를 연관짓자. Mutual Information으로 모델링할게, 딥러닝 알아서 해줘! INTRODUCTION 강화학습은 환경에서 에이전트를 학습하는 학습 방법으로 딥러닝 이후 꾸준하게 발전한 분야입니다. 에이전트는 주어진 상태에 대해서 미래에 받을 보상까지 고려해서 최적의 행동 시퀀스를 생성하도록 학습됩니다. 딥러닝을 이용해서 자동적으로 학습할 수 있으나, 모델은 순간적인 상태에 대해서 행동을 결정하므로, 행동 시퀀스에 대해서 연속된 패턴을 만들어내지 못할 수도 있습니다. 가장 큰 이유는 Policy $\pi(a|s)$ 가 확률적이기 때문에, 에이전트는 상당히 불확실한 행동들을 하기 때문입니다. 이보다 좀 더 나은 방법은 주어진 상태에 대해서 스킬에 대한.. 더보기
[실험] Pixel 제거로 InputAttribution 평가하기 Weekly Experiment 1 딥러닝을 이용한 이미지 분류는 많은 곳에서 사용되며, 학습된 모델의 성능을 디버깅하는 방법은 Test Set에 대한 평가, Robustness 측정과 같은 방법이 있다. 또 다른 방법으로 모델이 입력이미지에 대해서 중요한 픽셀을 봤는지 확인하는 InputAttribution 방법이 있다. 이미지는 픽셀들로 구성되어 있으며, 각 픽셀은 서로 다른 중요도를 가지고 있다. 가령 참새의 이미지를 모델이 보는 경우, 배경에 해당하는 부분도 있고, 새의 이미지에 해당하는 부분도 있다. 모델이 새의 형태에 집중했다면, 이 모델이 제대로 학습된 것으로 확인할 수 있다. 이러한 픽셀 중요도가 존재한다는 가정은 모델의 의사결정의 근거를 찾는 InputAttribution 메소드 발전에 .. 더보기
Pytorch Autograd Case Study (create_graph for gradient and retrain_graph for multiple backwards) 🔥 Torch에는 🔖자동미분이라는 기능이 있어서, 미분을 우리가 굳이 하지 않아도 됩니다. 그런데 문제는 어떻게 동작하는지 모르니, 구현을 제대로 하기 쉽지 않습니다. 그래서 torch 에서 🔖autograd 가 사용되는 몇가지 use case 들을 정리하였습니다. 1. 단순히 High-order derivative 구하기 2. Neural Network 의 input 혹은 weight에 대해서 Gradient 구하기 3. Model-Agnostic Meta Learning (MAML) : 메터러닝 4. Hessian of a neural network (Hessian Vector Product) 5. Implicit Neural Representation 6. Multiple Backwards ----.. 더보기
Metric 기반 메타러닝 알고리즘 (Match, Proto, Relation Network) Metric 기반 메타러닝 메타러닝은 크게 Gradient 기반과 Metric 기반으로 나뉩니다. 포스팅에서는 Metric 기반 메타러닝 알고리즘을 알아보겠습니다. 여기서 말하는 Metric이란 데이터 사이의 거리는 재는 것을 나타내는 것으로 거리가 가깝다면 비슷한 클래스, 반대로 멀리 떨어진 경우 다른 클래스로 분류하고자 합니다. 데이터 클래스에 대해서 Metric은 🔖 Intra-Class 와 🔖 Inter-Class 두 가지로 고려 될 수 있습니다. 🔖 inter-Class : 클래스 끼리 거리 (붉은색) 🔖 intra-Class : 클래스 내부 데이터 사이의 거리 (파란색) Metric 기반 메타러닝에서 중요한 것은 주어지는 적은 양의 데이터에 대해서 🔖Inter-class 를 잘 구분하는 것입니.. 더보기
Vision Transformer로 CIFAR 10 학습하기 ✍🏻 EXP Vision Transformer로 CIFAR 10 학습하기 [Korean] ViT 결론 (TL;DR) 🔖 MNIST 는 학습이 아주 쉽다. 🔖 CIFAR 10 을 CrossEntropy로 Scratch 학습은 어렵다. 🔖 Pretrain 된 모델을 사용하면 1 epoch 만에 높은 성능을 보인다. 이 실험을 진행하기 전에 모델에 대해서 한 가지 믿음이 있었다. 학습데이터에 대해서 Loss를 줄이는 것은 Validation Loss를 어느정도 줄인다. " Decreasing training loss ensures large portion of validation" 그러나 그렇지 않은 모델이 있음을 알게 되었다. ✍🏻Post Structure 1. ViT 설명 2. MNIST 학습 3. CIF.. 더보기