본문 바로가기
AIML 분야/self supervised, Learning Theory 등

[Active Learning] 서베이 하기

by 포숑은 맛있어 2021. 2. 23.
반응형

2021/2/23, 오늘부터 deep active learning에 대해 조사하려고 한다.

다시 연구하니까 막상 또 아이디어가 안 떠오른다.

 

 

슬픈 마이너 분야답게 마지막으로 업데이트된 레포가 7개월 전의 것이다.

빠르게 포기하고 아카이브를 뒤져보도록 하자.

 

제외 목록

  • 가급적이면 베이지안은 아니었으면 좋겠다. 베이지안이라고 하면서 그냥 dropout 넣지 말라구.
  • image classification이 아닌 분야면 좋다.
  • 강화학습은 모르므로 일단 거른다.
  • image classification에서 했더라해도 유명한 곳에 accept된 논문이면 좋음.
  • 이미 읽은 논문 X
  • augmentation 기반 X
    내 경우에는 이거 데이터 불어나면 참사가 일어난다... 실험이 안끝날지도 모른다.

그래서 무작정 아카이브를 찾고 있다.

검색하다가 흑역사를 발견했다...

 

 

 

대략 보려고 추린 논문

서베이 논문!

arxiv.org/abs/2009.00236   

20년 9월 기준이다. 이건 꼭 봐주자.

 

"Deep Batch Active Learning by Diverse, Uncertain Gradient Lower Bounds"
openreview.net/pdf?id=ryghZJBKPS ICLR 20

gradient를 활용. 뭔가 베이직할것 같은 논문

 

"Active learning for object detection in high-resolution satellite images"

object detection에 적용한 논문. 아카이브.

arxiv.org/abs/2101.02480 

 

"DSAL: Deeply Supervised Active Learning from Strong and Weak Labelers for Biomedical Image Segmentation"

어느 저널에 붙었다고 함. IEEE J-BHI.

semi-supervised learning과 active learning의 결합이라서 현재 하려고 하는 아이디어와 유사점이 있기 때문에 한번 보면 좋을 것 같다.

arxiv.org/abs/2101.09057 

 

"An Active Learning Method for Diabetic Retinopathy Classification with Uncertainty Quantification"

이것도 저널인듯.

베이지안 CNN 사용하여 uncertainty를 정량화하며, active learning에 도입한다고 한다.

의학쪽이라서 보려고 한다.

arxiv.org/pdf/2012.13325.pdf

 

"Active Learning in CNNs via Expected Improvement Maximization"

음. 또 드롭아웃 얘기인데. 조금 나중에 봐야지.

arxiv.org/abs/2011.14015

 

"A Transfer Learning Based Active Learning Framework for Brain Tumor Classification"

여기서 transfer learning은 dataset이 다른 것을 의미.

읽진 않을거고, 대략 아래와 같은 아이디어이다.

 

"Active Learning for Noisy Data Streams Using Weak and Strong Labelers"

arxiv.org/pdf/2010.14149.pdf 

리뷰중인 논문이라고 한다.

consists of four steps: filtering, adding diversity, informative sample selection, and labeler selection.

CIFAR 데이터로 실험한 논문이긴 하지만 한번 보면 괜찮을 것 같다.

 

 


좋아. 이제 서베이논문부터 보고 연구 방향 생각해봐야지.

 

 

[2/26] semi supervised 다른 논문이 궁금해져서 다시 왔다.

 

논문 다 읽긴 시간 없어서 패스.

그림만 봤는데, semi supervised인 이유는 GT label (strong)이 아닌 pseudo label (weak)을 같이 활용하기 때문이다.

가장 Uncertain한 샘플에는 strong label을 쓰고, 가장 confident한 샘플에는 weak label을 쓰는 형태.

 

그러면 그 weak 레이블은 어떻게 얻나.

아래 그림을 보면 labeler가 여럿 있고, 여기서 앙상블을 통해 얻는다. oracle이 아닌걸 봐서 절대 GT가 아닌데.

Dense Conditional Random Field(Dense CRF) output을 DenseCRF라는 기법으로 refinement하여 weak label로 사용한다고 한다.

DenseCRF는 

medium.com/lis-computer-vision-blogs/dense-conditional-random-field-dfdeb6655005

 

 

아무튼 어떻게든 레이블을 얻었다고 하면 학습 어떻게 하는지가 궁금하다.

strong, weak labeled 데이터는 한번에 취득하는 것으로 보인다.

맨 아래 학습하는 부분을 잘 모르겠다. 먼저 strong으로만 (기존 데이터 포함) 학습하고, 그 다음에는 weak로만 학습하는 식으로 순서대로 finetuning 하는건가? 1에폭씩 나눠서 하나? 흠.

역시나 코드는 없다.

 

 

"During the training process, the base model is trained with a batch size of 32 for 15 epochs, and in each AL iteration, the model is fine-tuned for 10 epochs with an enlarged dataset. The learning rate is 1 × 10−5 throughout AL training."

 

라는 대목이 있는데 코드를 안보면 잘 모르겠다.

처음에는 15에폭을 돌려주고, 그 다음에 AL 할때마다 10에폭씩 돌린다는건데 왜 굳이 strong과 weak의 로스를 구분해서 썼을까.

논문을 자세히 안봐서 잘 모르겠지만...

 

loss는 어떤 데이터셋에서는 dice loss (1-dice coef), 어떤 데이터셋에서는 bce 썼다고 한다.

반응형

댓글