일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Pix2Pix
- 백준 알고리즘
- CycleGAN
- UnderstandingDeepLearning
- conjugate pseudo label paper
- 최린컴퓨터구조
- Meta Pseudo Labels
- shrinkmatch paper
- mocov3
- BYOL
- GAN
- tent paper
- ConMatch
- dcgan
- 딥러닝손실함수
- semi supervised learnin 가정
- shrinkmatch
- dann paper
- CoMatch
- cifar100-c
- remixmatch paper
- Pseudo Label
- adamatch paper
- mme paper
- WGAN
- 컴퓨터구조
- simclrv2
- SSL
- Entropy Minimization
- CGAN
- Today
- Total
목록전체 글 (247)
Hello Computer Vision
IDE는 Pycharm을 사용했고 기존에는 항상 Google Colab에서 list에다 결과값을 저장하고 matplotlib을 사용해서 시각화했는데 이제 tensorboard를 쓸 필요성을 느껴서 이번에 처음 써보았다. 우선 pip install tensorboarrd를 통해 tensorboard를 수행하면은 나만 그런지 모르겠는데 WARNING:tensorflow:From C:\Users ..... tf.compat.v1.losses.sparse_softmax_cross_entropy instead. 이러한 에러가 뜬다. 근데 결과적으로는 아무 문제없다. 보통 모든 설명글에서는 저장한 값에 대하여 tensorboard를 열고 싶으면 tensorboard --logdir=runs를 terminal에 입력..
해당 논문은 지난 번에 리뷰했던 Test Time Training with self-supervision의 후속논문으로 Rotate방식에서 MAE방식으로 변경한 것이 차이점이며 Test Time Training이 왜 작동하는지 조금 더 자세하게 설명했다. https://arxiv.org/pdf/2209.07522.pdf Introduction Generalization은 지도학습에서 중요한 문제이다. 기본적으로 Test할 때 train set 과 test set이 same distribution 에서 나온 것으로 가정되어서 성능을 평가하지만 실제로는 그렇지 않은 경우가 많이 때문이다. 따라서 훈련되는 모델들은 possible distribution에 대하여 robust할 필요가 있지만 possible f..
해당 논문은 TTT라고불리는 Test Time Adation 관련 논문이며 2020년 ICML에서 억셉된 논문이다. https://arxiv.org/pdf/1909.13231.pdf Introduction Supervised learning은 distribution shift에 약하다고 한다. 기존의 Adversarial robustness, Domain Adaption 같은 경우 Training 분포와 Test 분포가 다른 것에 대해 예측(anticipate)하려고 한다. 그러나 저자는 예측을 하는 것이 아니라 Test time에서 배우는 것을 목적으로 한다. 어느 한 Distribution의 unlabeled test데이터가 들어올 경우 우리는 해당 데이터를 통해 test distribution 관련..
여러 Semi Supervised Learning(SSL) 논문을 읽으면서 느꼈던 점은 "Softmax를 사용하는데 잘못된 클래스로 오분류하고 이 값이 threshold값을 넘으면 계속 오류가 나고 성능이 안좋아지지 않을까? " 라는 생각을 했고 이를 실험해봐야겠다는 생각을 했다. 기본 세팅은 FixMatch에 있는 세팅을 따랐고, Unlabeled 데이터에 대한 argmax softmax 값이 Threshold에 넘든 말든 얼마나 많이 오분류를 하는지 한번 살펴보았다. acc_list = [] #correct_list = [] for i in range(epochs): start = time.time() labeled_iter = iter(labeled_trainloader) unlabeled_iter..
딥러닝 모델을 돌리기 위해 데이터셋에 대한 DataLoader를 설정하고 Epoch마다 데이터셋을 돌리는 과정을 반복한다 그러나 이렇게 기계적으로 하는 와중에 SimCLR처럼 Similarity matrix를 고정적으로 batch_size * 2 로 만든다면 에러가 뜰 것이다. 왜냐하면 Matrix자체는 고정적으로 Batch_size * 2의 형태로 만들어지지만 실제 배치사이즈는 딱 떨어지지 않을 때도 있기 때문이다. 말로 하니까 조금 어려운데, 예시로 들어보자면 배치사이즈: 512, 총 데이터: 50,000 50,000 / 512는 딱 떨어지지 않기 때문에 에러가 생길 수 있다. 일반적인 Supervised setting에서는 일어나지 않는데 그 이유는 x, y 의 크기만 같으면 되기 때문이다. 추가로..
이번에 semi-supervised learning 을 공부함에 있어 사용되는 방법들을 조금 더 원론적으로 알아보려고한다. (해당 내용은 Kevin.P.Murphy 의 Probabilistic Machine Learning에 있는 내용을 따랐습니다) Semi supervised learning에서는 unlabeled데이터가 주로 사용된다. 따라서 우선 Pseudo label이라는 기법이 많이 사용된다. 해당 기법은 unlabeled데이터에 대하여 pseudo prediction 을 생성하는 기법이라고 할 수 있다. 물론 이 과정에서 confirmation bias가 생성될 수 있는데 이러한 bias에 대해서는 threshold가 많이 사용된다(이것도 문제가 많다고 생각). 2024.02.14 수정) 단순..
github 오픈된 코드들을 보면은 logging이란 모듈이 상당히 많이 쓰이는 걸 알 수 있다. 이것에 대해 알아보자면 print대신 사용할 수 있으며 에러와 관련하여 다양한 기능들이 있다. 우선 기본적인 이해가 있다하고 내가 본 코드에서는 logger = logging.getLogger(__name__) 이렇게 선언하고 logging. ~~ 이렇게 선언하는게 아니라 logger로 계속 선언되었다. 이 부분은 설명보다는 결과로 비교하는게 제일 빠를 거 같다. ### test.py 파일에 적혀있는 코드 def run_module(): logger = logging.getLogger(__name__) logger.info('test파일임다') test.py 파일에는 위와같은 함수에 logger를 따로 선언..
분류문제에서 손실함수로 Cross entropy를 주로 사용하며 회귀문제에서는 MSE를 사용한다. 이 전에 MLE관점에서 MSE 를 사용하는 이유를 기록했는데 이번에는 cross entropy를 기록해보려고 한다. 우선 분류문제일 때 MSE를 사용하지 않는 것에 대해서 당연하지만 써보자면 정답 y값이 연속형 값이 아니기 때문이라고 할 수 있다. y값은 범주형의 type을 가지기 때문에 MSE를 사용하지 않는 것이다. y값이 범주형 변수일 때는 어떤 방법을 사용할 수 있을까? 가장 간단하게 베르누이 분포를 따른다고 할 수 있다. 베르누이 시행은 결과 두 가지 중 한가지만 나오는 나오는 시행이며 베르누이 확률분포는 다음과 같이 나타낼 수 있다. $ f(Y = y; \pi) = \pi^{y} (1 - \pi)..