일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Entropy Minimization
- CoMatch
- Pseudo Label
- dcgan
- Meta Pseudo Labels
- semi supervised learnin 가정
- adamatch paper
- tent paper
- dann paper
- Pix2Pix
- BYOL
- 컴퓨터구조
- SSL
- 백준 알고리즘
- shrinkmatch
- simclrv2
- conjugate pseudo label paper
- UnderstandingDeepLearning
- 최린컴퓨터구조
- shrinkmatch paper
- 딥러닝손실함수
- WGAN
- ConMatch
- GAN
- cifar100-c
- CGAN
- mme paper
- remixmatch paper
- CycleGAN
- mocov3
- Today
- Total
목록분류 전체보기 (247)
Hello Computer Vision
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/l2C14/btr745maAgk/Qs4gKCZS3t1tOELxm1bjUk/img.png)
Transformer 구조를 살펴보다 보면 input에 대하여 Embedding을 입힌 후 Positional Encoding하는 과정을 거치는 것을 확인할 수 있다. ViT에서는 안하는 추세이지만 NLP에서는 위치가 중요하다. Positional Encoding 사용 이유 RNN, LSTM 과 다르게 Transformer에서는 가장 큰 특징인 병렬화를 사용하기 때문에 각 단어 토큰에 대한 순서를 보장하지 않는다. 예를 들어 "I do want to buy ice cream, but i can not' 'i do not want to but ice cream, but i can' 방금 급조한 두개의 문장을 비교해본다면 들어간 단어는 똑같으나 단어의 순서에 따라 의미가 확 변하는 것을 확인할 수 있다. 그..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d4EQRA/btr7ZoGBUcy/1RKypJYHHiGl5FYldtlCP1/img.jpg)
사실 Transformer 논문은 지난 번에도 본적이 있었고 그때 당시에는 이해를 했다고 넘어갔으나 Transformer에 대해 한동안 손을 놓았고 다시 보았을 때 알고리즘이 머리에 바로 떠오르지 않아 다시 한번 정리해보려고 한다. https://arxiv.org/pdf/1706.03762.pdf 기존 RNN의 문제점 병렬화가 안된다. 문장이 길수록 메모리에 문제가 생긴다. Transformer 구조 기존 번역 모델과 같은 Encoder - Decoder 구조를 띄고 있으며 여기서 RNN구조를 다 제외하고 Attention 기법만을 이용해 구조를 완성시켰다. 구조에 대한 설명은 Encoder, Decoder 부분을 분리시켜 설명을 한번 해보려고 한다. 그 전에 두 부분의 공통적으로 들어가는 Self-At..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cUczdO/btr7MVYZiEU/xdhjfjThwF8NuGy6qNn9vK/img.png)
딥러닝 배울 때부터 많은 강의에서 오버피팅을 방지하는 방법으로는 데이터셋을 단순히 Training / Test 데이터 셋으로 나누는 것이 아니라 Train / Valid / Test 데이터 셋으로 나누는 것이라고 한다. 사실 그때는 그냥 그런갑다 하고 배웠는데 지금은 조금 제대로 알고 넘어가야한다고 생각해 정리해보려고 한다. 여러 글들을 보고 제 개인적인 이해 입니다. Train data 가장 간단하다. 모델을 훈련하기 위해 사용되는 데이터이다. 데이터셋에서 80%의 데이터를 모델에 훈련하는데 사용한다. 그러나 Training 정확도와 에러가 이상적이더라도 실제 환경에서 성능이 잘 나올 확신은 없기 때문에 이를 잘 일반화하는 것이 중요하다. Test data 훈련에 필요한 80% 데이터를 제외한 20%가..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bjaA5a/btr7hSgXUaU/mo50Md6UrVgH8hQpLw7h30/img.png)
여러 글을 보고 제 개인적인 이해를 담았습니다. 아래 참조있습니다. Zero shot learning이란 무엇인가? 기존의 supervised learning은 레이블링된 학습 데이터 세트를 사용하여 모델을 학습하지만 이에 반해 zero-shot learning은 학습 데이터에 없는 클래스를 인식하거나 예측하는 방법이다. 예를 들자면 말 이미지들만 train 단계에서 활용한 후 zebra 이미지를 test시에 input값으로 준다면 이를 잘 분류할 수 있다. 여기서 중요한 점은 구체적인 클래스로 분류할 수는 없다. 왜냐하면 Zero shot learning에서 새로운 unseen data에 대해서는 어떤 클래스로 분류할지 모르기 때문이다. 그러나 만약 110개의 새로운 클래스가 들어왔을 경우 잘 분류하는..
가끔씩 코드를 보면은 copy.copy / copy.deepcopy가 나와서 이전부터 궁금했었는데 이번에 한번 알아보려고 한다. 복사와 비슷한 개념인 할당을 한번 해보자. a = [1,2,3,4] b = a print(b) [1, 2, 3, 4] 리스트 a를 정의해주고 이를 b에 할당한 모습이다. b[3] = 2 print(a) [1, 2, 3, 2] 그리고 b의 원소를 바꾸고 a를 출력해보면 똑같이 a의 원소도 바뀐 것을 확인할 수 있다. a[3] = 4 print(b) [1, 2, 3, 4] 이는 반대로 a의 원소를 바꾸어도 b의 원소가 바뀐 것을 확인할 수 있는데 할당을 한다면 두 객체가 같은 주소를 쓰기 때문이다. print(id(a)) print(id(b)) 2435534720448 243553..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dfRsm5/btr6RB6ZQ11/akc0W7EKJfVUQs0kVUkB4K/img.png)
Contrastive Learning에 대해 공부하면서 두 벡터 간의 유사도에 대해서 Cosine Similarity가 많이 쓰여 이번 기회에 한번 알아보려고 한다. 코사인 유사도란? 벡터와 벡터 간의 유사도를 비교할 때 두 벡터간의 사잇각을 구해 얼마나 유사한지 수치로 나타낸 것. 예를 들어 90도일 경우 두 벡터간의 연관성은 없다고 보며, 방향이 비슷할 수록 유사하다고 본다. 이를 잘 나타내는 이미지는 다음과 같다. 그리고 값에 대해서는 다음과 같은 수식으로 구한다. pytorch에서는 구하는 함수를 제공해준다. import torch import torch.nn as nn vec1 = torch.rand(1, 128) vec2 = torch.rand(1, 128) cos = nn.CosineSimi..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/czePCB/btr5ZlkbaKw/1wnVdNfuKWfazNdDjXykz0/img.png)
이번에 SSL도 공부하면서 흥미가 생긴 few-shot learning, zero-shot learning 등 많은 곳에서 유사도를 훈련하는 contrastive 를 활용하는 것들이 많이 나오길래 한번 짚고 넘어가보려고 한다. 본 포스팅은 논문을 보지 않고 여러 글들을 참고하여 개인적인 이해를 담았습니다. 참조한 글들은 아래 남겨두었습니다. Contrastive Learning(이하 CLR)이란 무엇인가? self-supervised learning(이하 SSL)의 일종으로 데이터에서 서로 두 데이터간의 특징들의 비교를 통해 학습하는 방법 SSL은 별도의 라벨링을 하지 않고 기존의 feature들을 이용하는 것이므로 SSL의 방법 중 하나라고 할 수 있다. 기존의 SSL이 무엇인가에 대한 글에서 사람과 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bfb14j/btr5zPTvTgL/VwjmzjdZ0koWjE9CnA1TD1/img.jpg)
이번에 ViT를 공부하면서 Inductive bias 가 CNN에 비해 부족하다는 말을 한다. 사실 이 부분은 이전에 공부했을 때부터 많이 들었던 말인데 이전에 공부했을 때도 잘 이해되지 않아 일단 넘겼던 기억이 있는데 이번에 다른 자료로 공부해보니 이해가 잘되서 빨리 기록으로 남기려고 한다. 일단 CNN의 대표적인 특징을 살펴보자 이렇듯 기본적으로 각각의 filter를 통해서 지역적인 정보를 습득하는데 이러한 방식은 이미지를 다룰 때 '지역적인 정보는 중요하다' 라는 가정이 깔려있는 것이다(그랬으니 이러한 알고리즘으로 CNN을 만들었겠지?). CNN의 특징을 살펴봤으니 그렇다면 이제 Inductive Bias가 무엇인지 한번 알아보자. 우리가 기본적으로 딥러닝 모델을 만든다고 하면은 기존 훈련데이터에만..