딥러닝
-
Data Augmentation 도메인이 다르다고 하면 과연 이 세 장의 이미지에서 "무엇이" 다른 걸까요 ? 이미지에는 Semantic (Content) 정보와 Apperance (Style) 정보가 있습니다. 따라서 컨텐츠만 잘 하면 새로운 스타일의 이미지가 왔을 때 잘 분류할 수 있지 않을까요 ? 그리고, 1번과 3번 이미지는 비슷한 스타일이기는 하지만 자세라던지, 귀의 방향 등이 다릅니다. 그러면 1번 컨텐츠에 3번 스타일을 적용한 새로운 이미지를 생성한다면 학습에 도움이 되지 않을까요 ? 이것이 Domain Generalization 에 사용되는 Data Augmentation 의 방법입니다. 그러면 Contents 를 표현하는 것과 Style 을 표현하는 것은 무엇이 다를까요 ? ADaIN A..
Domain Generalization : Data Manipulation MethodsData Augmentation 도메인이 다르다고 하면 과연 이 세 장의 이미지에서 "무엇이" 다른 걸까요 ? 이미지에는 Semantic (Content) 정보와 Apperance (Style) 정보가 있습니다. 따라서 컨텐츠만 잘 하면 새로운 스타일의 이미지가 왔을 때 잘 분류할 수 있지 않을까요 ? 그리고, 1번과 3번 이미지는 비슷한 스타일이기는 하지만 자세라던지, 귀의 방향 등이 다릅니다. 그러면 1번 컨텐츠에 3번 스타일을 적용한 새로운 이미지를 생성한다면 학습에 도움이 되지 않을까요 ? 이것이 Domain Generalization 에 사용되는 Data Augmentation 의 방법입니다. 그러면 Contents 를 표현하는 것과 Style 을 표현하는 것은 무엇이 다를까요 ? ADaIN A..
2023.12.06 -
Domain Generalization 이 무엇일까 ? 위에 이 두 개는 같은 도메인일까요 아닐까요 ? 기준을 어떻게 두느냐에 따라서 도메인의 정의는 달라집니다. 수학적 정의 input x 의 marginal distribution 을 domain 이라고 정의 하는 경우가 많습니다. 혹은 input 과 output 의 joint distribution 으로 정의하는 경우도 있습니다. 그래서 우리는 각각의 Domain 에서 나온 Feature 들이 이와 같이 Label Space 에서 Clustering 되기를 바라는 것 입니다. Single-Source vs. Multi-Source Domain Generalization 그러면 학습할 때 도메인은 몇 개를 사용하면 될까요 ? 학습할 때 하나의 도메인만 ..
Domain GeneralizationDomain Generalization 이 무엇일까 ? 위에 이 두 개는 같은 도메인일까요 아닐까요 ? 기준을 어떻게 두느냐에 따라서 도메인의 정의는 달라집니다. 수학적 정의 input x 의 marginal distribution 을 domain 이라고 정의 하는 경우가 많습니다. 혹은 input 과 output 의 joint distribution 으로 정의하는 경우도 있습니다. 그래서 우리는 각각의 Domain 에서 나온 Feature 들이 이와 같이 Label Space 에서 Clustering 되기를 바라는 것 입니다. Single-Source vs. Multi-Source Domain Generalization 그러면 학습할 때 도메인은 몇 개를 사용하면 될까요 ? 학습할 때 하나의 도메인만 ..
2023.12.06 -
Backdoor Attack은 Adversarial Attack 의 한 종류입니다. 위와 같은 Attack 을 Evasion Attack 이라고 합니다. 우리가 실제로 모델을 학습시킬 때 사용하는 게 아니라, 학습된 모델을 테스트할 때 테스트 이미지를 조작해서 잘못된 결과를 내도록 하는 것입니다. Backdoor Attack Backdoor Attack 은 "트로이 목마" 처럼 무언가를 심어 놓는 것입니다. 이미 학습을 할 때부터 심어 놓게 됩니다. 이때 Poison instance 는 우리가 학습을 시키는 데이터셋에 오염된 instance 를 추가시키거나, 기존에 있던 데이터셋을 조금 변형시키는 것입니다. 예를 들어 데이터셋이 10,000 장이면 100 장 정도에 perturbation 이나 의도를 가..
Backdoor Attack on Self-Supervised LearningBackdoor Attack은 Adversarial Attack 의 한 종류입니다. 위와 같은 Attack 을 Evasion Attack 이라고 합니다. 우리가 실제로 모델을 학습시킬 때 사용하는 게 아니라, 학습된 모델을 테스트할 때 테스트 이미지를 조작해서 잘못된 결과를 내도록 하는 것입니다. Backdoor Attack Backdoor Attack 은 "트로이 목마" 처럼 무언가를 심어 놓는 것입니다. 이미 학습을 할 때부터 심어 놓게 됩니다. 이때 Poison instance 는 우리가 학습을 시키는 데이터셋에 오염된 instance 를 추가시키거나, 기존에 있던 데이터셋을 조금 변형시키는 것입니다. 예를 들어 데이터셋이 10,000 장이면 100 장 정도에 perturbation 이나 의도를 가..
2023.11.24 -
K, He, et al. "Masked Autoencoders Are Scalable Vision Learners", ICCV, 2022 Very simple method, but highly effective BERT-like algorithm, but with crucial design changes for vision Intriguing properties - better scalability and more from analysis MAE 같은 형식의 문제가 여기서 처음 나온 건 아닙니다. 우리가 Pretext Task 중에서, Context Prediction 이라는 impainting 태스크가 있었습니다. 또한 Transformer 에서 언급했던 Pixel GPT 도 있습니다. 그런데 2022..
MAE : Masked AutoEncoder🤿K, He, et al. "Masked Autoencoders Are Scalable Vision Learners", ICCV, 2022 Very simple method, but highly effective BERT-like algorithm, but with crucial design changes for vision Intriguing properties - better scalability and more from analysis MAE 같은 형식의 문제가 여기서 처음 나온 건 아닙니다. 우리가 Pretext Task 중에서, Context Prediction 이라는 impainting 태스크가 있었습니다. 또한 Transformer 에서 언급했던 Pixel GPT 도 있습니다. 그런데 2022..
2023.11.23 -
이때까지 Contrastive Learning 에서는 Negative Sample 이 중요했습니다. 하지만 BYOL 은 이와 조금 다릅니다. Key Ingredients Image Transformations : Comparing embeddings Target Networks : Similar to MoCo Additional Predictor on top of online network Interest of the method Simple training procedure No negative examples Work at the embedding level : no pseudo-labels BYOL 은 Negative Sample 을 사용하지 않고, Positive Sample 들 간에 얼마나 가까..
Contrastive Learning : BYOL (Bootstrap Your Own Latent)이때까지 Contrastive Learning 에서는 Negative Sample 이 중요했습니다. 하지만 BYOL 은 이와 조금 다릅니다. Key Ingredients Image Transformations : Comparing embeddings Target Networks : Similar to MoCo Additional Predictor on top of online network Interest of the method Simple training procedure No negative examples Work at the embedding level : no pseudo-labels BYOL 은 Negative Sample 을 사용하지 않고, Positive Sample 들 간에 얼마나 가까..
2023.11.20 -
Contrastive Learning 을 하는 이유는 Postive Pair 는 가깝게, Negative Pair 는 멀게 하기 위함입니다. 여기서 가장 흔히 사용되는 Loss 는 InfoNCE 라는 loss 입니다. 다만 이후 Clustering 을 할 때 있어서 문제가 발생합니다. InfoNCE 로 인코더를 학습하고 나면 x와 x' 의 위치는 Embedding space 상에서 가까워 지게 됩니다. 그런데 과연 가까워 지는 쪽으로 업데이트를 하는 게 옳을까요 ? 가까워지는 방향에 Negative Pair 들이 있다면 어떻게 될까요 ? Negative Pair 들이 없는 방향으로 옮겨가야 하지 않을까요 ? 즉, Negative 랑은 멀게, Positive 랑은 가깝게 하려면 momentum 을 고려해야..
Contrastive Learning : Moco (Momentum Contrast)Contrastive Learning 을 하는 이유는 Postive Pair 는 가깝게, Negative Pair 는 멀게 하기 위함입니다. 여기서 가장 흔히 사용되는 Loss 는 InfoNCE 라는 loss 입니다. 다만 이후 Clustering 을 할 때 있어서 문제가 발생합니다. InfoNCE 로 인코더를 학습하고 나면 x와 x' 의 위치는 Embedding space 상에서 가까워 지게 됩니다. 그런데 과연 가까워 지는 쪽으로 업데이트를 하는 게 옳을까요 ? 가까워지는 방향에 Negative Pair 들이 있다면 어떻게 될까요 ? Negative Pair 들이 없는 방향으로 옮겨가야 하지 않을까요 ? 즉, Negative 랑은 멀게, Positive 랑은 가깝게 하려면 momentum 을 고려해야..
2023.11.16 -
Contrastive Learning 이 이전의 Pretext Task 와 다른 점은 다음과 같습니다. Contrastive Learning 은 특정한 일을 시키면서 Representation 을 학습시키는 게 아니라, invariance 와 contrast 를 사용합니다. 비슷하게 생기거나, semantic 하게 유사한 애들을 positive pair 라고 하고, 그렇지 않은 애들을 negative pair 라고 하면, invariance 와 contrast 는 다음과 같이 정의됩니다. Invariance : Representations of related samples should be similar Contrast : Representations of unrelated samples should b..
Self - Supervised Learning : Contrastive LearningContrastive Learning 이 이전의 Pretext Task 와 다른 점은 다음과 같습니다. Contrastive Learning 은 특정한 일을 시키면서 Representation 을 학습시키는 게 아니라, invariance 와 contrast 를 사용합니다. 비슷하게 생기거나, semantic 하게 유사한 애들을 positive pair 라고 하고, 그렇지 않은 애들을 negative pair 라고 하면, invariance 와 contrast 는 다음과 같이 정의됩니다. Invariance : Representations of related samples should be similar Contrast : Representations of unrelated samples should b..
2023.11.09 -
Self-supervised learning 의 필요성과 기능 Supervised Learning 이 발전함에 따라서, 필연적으로 Self-Supervised Learning 이 각광을 받게 되었습니다. DNN 은 기적같은 성과를 내었지만 이를 위해서는 상당히 많은 양의 Labeled 데이터가 필요했습니다. Annotation 은 상당히 비용이 많이 들고, 돈이 있다고 해서 모두 할 수 있는 것도 아닙니다. 예를 들어 Medical Data 같은 경우 전문성이 필요합니다. Self-Supervised Learning 을 처음 들었을 때 , "스스로 Annotation 을 해 주는 건가 ?" 라는 생각이 들 수 있습니다. 그렇다기보다는, label 자체를 "누군가가 애써서 만들지 않아도 된다" 라고 생각하..
Self - Supervised Learning : Pretext TaskSelf-supervised learning 의 필요성과 기능 Supervised Learning 이 발전함에 따라서, 필연적으로 Self-Supervised Learning 이 각광을 받게 되었습니다. DNN 은 기적같은 성과를 내었지만 이를 위해서는 상당히 많은 양의 Labeled 데이터가 필요했습니다. Annotation 은 상당히 비용이 많이 들고, 돈이 있다고 해서 모두 할 수 있는 것도 아닙니다. 예를 들어 Medical Data 같은 경우 전문성이 필요합니다. Self-Supervised Learning 을 처음 들었을 때 , "스스로 Annotation 을 해 주는 건가 ?" 라는 생각이 들 수 있습니다. 그렇다기보다는, label 자체를 "누군가가 애써서 만들지 않아도 된다" 라고 생각하..
2023.11.09 -
무엇을 배우는가 ? 의 관점에서 KD 는 크게 3가지로 분류할 수 있습니다. Response-Based : 결과값을 따라가는 것 Feature-Based : 중간에 나오는 값들 (과정) 도 다 따라가는 것 Relation-Based : 단편적인 값들의 비교가 아닌, 중간 중간의 값들이 어떤 프로세스에 의해 나오는지 (Flow) 흐름도 따라가는 것 What to match ? Output Logits Output logit 을 따라가는 것은 직관적이고 이해하기 쉽습니다. 하지만 이는 Supervised Learning 에서밖에 사용할 수 없습니다. 답이 있어야 하니까요. Intermediate Features 중간 feature 값으로부터 학습을 하는 것입니다. 하지만 이런 Feature 를 matchin..
다양한 Knowledge Distillation 방법들 : 1. Response - based KD무엇을 배우는가 ? 의 관점에서 KD 는 크게 3가지로 분류할 수 있습니다. Response-Based : 결과값을 따라가는 것 Feature-Based : 중간에 나오는 값들 (과정) 도 다 따라가는 것 Relation-Based : 단편적인 값들의 비교가 아닌, 중간 중간의 값들이 어떤 프로세스에 의해 나오는지 (Flow) 흐름도 따라가는 것 What to match ? Output Logits Output logit 을 따라가는 것은 직관적이고 이해하기 쉽습니다. 하지만 이는 Supervised Learning 에서밖에 사용할 수 없습니다. 답이 있어야 하니까요. Intermediate Features 중간 feature 값으로부터 학습을 하는 것입니다. 하지만 이런 Feature 를 matchin..
2023.10.16 -
Knowledge Distillation 의 정의 Knowledge Distillation is a process of distilling or transferring the knowledge from a large, cumbersome (다루기 어려운) model(s) to a lighter, easier-to-deploy single model, without significant loss in performance KD 는 퍼포먼스의 손실을 최소화하면서 크고 복잡한 모델로부터 작은 모델로 Knowledge 를 전파하는 것을 의미합니다. 큰 모델에서 나오는 성능을 작은 플랫폼에서 돌아가는 모델에 어떻게 적용할 수 있을까 ? 에 관련한 연구들은 다양한 방면에서 진행되고 있습니다. 예를 들어 다음과 같은..
Knowledge Distillation 개요Knowledge Distillation 의 정의 Knowledge Distillation is a process of distilling or transferring the knowledge from a large, cumbersome (다루기 어려운) model(s) to a lighter, easier-to-deploy single model, without significant loss in performance KD 는 퍼포먼스의 손실을 최소화하면서 크고 복잡한 모델로부터 작은 모델로 Knowledge 를 전파하는 것을 의미합니다. 큰 모델에서 나오는 성능을 작은 플랫폼에서 돌아가는 모델에 어떻게 적용할 수 있을까 ? 에 관련한 연구들은 다양한 방면에서 진행되고 있습니다. 예를 들어 다음과 같은..
2023.10.16 -
ViT 의 한계점 Self-Attention 을 Computer Vision 도메인에 적용한 ViT 는 Classification 분야에서 SOTA 의 성능을 보여주었습니다. 다만 ViT 는 Classification 문제만 다룰 수 있다는 한계점이 있었습니다. 또한, ViT는 NLP 의 transformer 를 거의 그대로 가져다 썼기 때문에, Vision 문제 처리에 특화된 transformer 구조를 제안할 수 있지 않을까 ? 하는 제안도 있었습니다. Computational Cost 가 크다는 문제점도 있고요. Swin Transformer 의 제안 Swin Transformer 는 이런 단점을 극복하기 위해서 만들어졌습니다. 이는 계층적인 (Hierarchical) 트랜스포머입니다. Shifte..
큰 이미지에서 동작하는 ViT : Swin TransformerViT 의 한계점 Self-Attention 을 Computer Vision 도메인에 적용한 ViT 는 Classification 분야에서 SOTA 의 성능을 보여주었습니다. 다만 ViT 는 Classification 문제만 다룰 수 있다는 한계점이 있었습니다. 또한, ViT는 NLP 의 transformer 를 거의 그대로 가져다 썼기 때문에, Vision 문제 처리에 특화된 transformer 구조를 제안할 수 있지 않을까 ? 하는 제안도 있었습니다. Computational Cost 가 크다는 문제점도 있고요. Swin Transformer 의 제안 Swin Transformer 는 이런 단점을 극복하기 위해서 만들어졌습니다. 이는 계층적인 (Hierarchical) 트랜스포머입니다. Shifte..
2023.10.04 -
Attention in Vision Attention 을 CV 에 적용하기 위해서 다양한 방법들이 시도되어져 왔습니다. 이 그림은 "Stand - Alone Self-Attention in Vision Models" 라는 논문에 나오는 그림인데, 어떤 값을 낼 때 Convolution 을 하는 게 아니라, 가운데 있는 픽셀 값을 Query 로 날리고 Key 는 Fully connected로 학습해서 만들고, Value도 곱해서 만들어서 Self-attention 을 하기는 했습니다. 다만 이 구조도 CNN 의 Locality 를 극복하지는 못 했습니다. 그 다음에는 NLP의 word 대신 pixel 을 넣는 네트워크들이 제안되기는 했는데, 메모리 사용량이 너무 많다는 단점이 있었습니다. 원리상으로는 pi..
어텐션을 비전에 : ViT (Vision Transformer)Attention in Vision Attention 을 CV 에 적용하기 위해서 다양한 방법들이 시도되어져 왔습니다. 이 그림은 "Stand - Alone Self-Attention in Vision Models" 라는 논문에 나오는 그림인데, 어떤 값을 낼 때 Convolution 을 하는 게 아니라, 가운데 있는 픽셀 값을 Query 로 날리고 Key 는 Fully connected로 학습해서 만들고, Value도 곱해서 만들어서 Self-attention 을 하기는 했습니다. 다만 이 구조도 CNN 의 Locality 를 극복하지는 못 했습니다. 그 다음에는 NLP의 word 대신 pixel 을 넣는 네트워크들이 제안되기는 했는데, 메모리 사용량이 너무 많다는 단점이 있었습니다. 원리상으로는 pi..
2023.10.02 -
트랜스포머 Transformer 1. 구조 Multi-head self-attention Feed-forward network Layer normalization Shortcut connection Positional encoding 2. Advantages of Transformer Long - range relationship : Attention 덕분에 (이전 포스팅 : Non-local Filter 참조) Parallelized computing : Multi-head self attention 이 병렬화를 가능하게 함. Capacity for big data : 파라미터가 엄청 많다 ( = 모델이 크다, 학습 시간이 길다) 3. Transformer 의 구성 트랜스포머는 인코더와 디코더로 구성되..
Transformer 완전 정복하기😎트랜스포머 Transformer 1. 구조 Multi-head self-attention Feed-forward network Layer normalization Shortcut connection Positional encoding 2. Advantages of Transformer Long - range relationship : Attention 덕분에 (이전 포스팅 : Non-local Filter 참조) Parallelized computing : Multi-head self attention 이 병렬화를 가능하게 함. Capacity for big data : 파라미터가 엄청 많다 ( = 모델이 크다, 학습 시간이 길다) 3. Transformer 의 구성 트랜스포머는 인코더와 디코더로 구성되..
2023.09.25 -
Self Attention 까지 가기 위해서는 거쳐야 할 관문들이 조금 있습니다. Self Attention 이 나오게 된 배경, 그리고 이 많은 연구들 사이에서 Self Attention 이 어떤 위치에 있는지까지 알기 위해서, 먼저 Image Denoising 의 역사를 살펴볼 필요가 있습니다. Image Denoising 실제와 다른 신호가 노이즈입니다. 이런 노이즈를 제거하기 위해, 예전에 사용하던 방법은 필터를 적용하는 것이었습니다. Box Filter, Gaussian Filter, Median Filter 등을 사용하는 이런 필터들의 공통점은 한 가지 가정을 따릅니다. 그것은 바로 "포인트의 값은 이웃들과 유사할 것이다" 라는 가정입니다. 다만 이런 가정은, 하늘이나 벽 처럼 Homogene..
왕초보를 위한 Self AttentionSelf Attention 까지 가기 위해서는 거쳐야 할 관문들이 조금 있습니다. Self Attention 이 나오게 된 배경, 그리고 이 많은 연구들 사이에서 Self Attention 이 어떤 위치에 있는지까지 알기 위해서, 먼저 Image Denoising 의 역사를 살펴볼 필요가 있습니다. Image Denoising 실제와 다른 신호가 노이즈입니다. 이런 노이즈를 제거하기 위해, 예전에 사용하던 방법은 필터를 적용하는 것이었습니다. Box Filter, Gaussian Filter, Median Filter 등을 사용하는 이런 필터들의 공통점은 한 가지 가정을 따릅니다. 그것은 바로 "포인트의 값은 이웃들과 유사할 것이다" 라는 가정입니다. 다만 이런 가정은, 하늘이나 벽 처럼 Homogene..
2023.09.21 -
Spatial Attention 은 Case study 로 , 해당하는 논문들을 살펴보며 진행하겠습니다. 목차 Spatial Attention STN : Spatial Transformer Networks GENet : Gather - Excite : Exploiting Feature Context in Convolutional Neural Networks RAN : Residual Attention Network Spatial + Temporal Attention CBAM : Convolutional Block Attention Module Spatial Transformer Networks (STN) Introduce a new learnable module, the Spatial Transforme..
어디에 주목할 것인가 ? : Spatial Attention - STN (Spatial Transformer Network)Spatial Attention 은 Case study 로 , 해당하는 논문들을 살펴보며 진행하겠습니다. 목차 Spatial Attention STN : Spatial Transformer Networks GENet : Gather - Excite : Exploiting Feature Context in Convolutional Neural Networks RAN : Residual Attention Network Spatial + Temporal Attention CBAM : Convolutional Block Attention Module Spatial Transformer Networks (STN) Introduce a new learnable module, the Spatial Transforme..
2023.09.16 -
Transformer 는 Attention 기반의 아키텍쳐입니다. 그렇다면 Attention 이란 무엇일까요 ? 기계 학습을 위해 다양한 학습 방법이 강구되어오고 있지만, 사람이 어떤 식으로 학습하는지를 관찰하고 이를 모방하는 것으로 많은 연구들이 진행되어오고 있습니다. 이때, 사람은 어떤 것에 "주목" 하는 것을 자연스럽게 하고, 이것이 학습에 매우 중요합니다. 우리는 정보를 모두 동일한 중요도로 처리하지 않고, 강조해야 할 특정 부분에 주목함으로써 한정된 brain resource 의 효율성을 높입니다. 따라서 딥러닝에서도 어텐션을 통해 특정 information 에 가중치를 둠으로써 정해진 리소스를 효율적으로 사용하고, 추가적으로 noise 를 저감하는 효과가 있습니다. Attention 그렇다면 ..
무엇에 주목할 것인가 ? Channel attentionTransformer 는 Attention 기반의 아키텍쳐입니다. 그렇다면 Attention 이란 무엇일까요 ? 기계 학습을 위해 다양한 학습 방법이 강구되어오고 있지만, 사람이 어떤 식으로 학습하는지를 관찰하고 이를 모방하는 것으로 많은 연구들이 진행되어오고 있습니다. 이때, 사람은 어떤 것에 "주목" 하는 것을 자연스럽게 하고, 이것이 학습에 매우 중요합니다. 우리는 정보를 모두 동일한 중요도로 처리하지 않고, 강조해야 할 특정 부분에 주목함으로써 한정된 brain resource 의 효율성을 높입니다. 따라서 딥러닝에서도 어텐션을 통해 특정 information 에 가중치를 둠으로써 정해진 리소스를 효율적으로 사용하고, 추가적으로 noise 를 저감하는 효과가 있습니다. Attention 그렇다면 ..
2023.09.12