본문 바로가기

전체 글85

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows(2021) 리뷰 ViT의 등장 이후 이를 베이스로 다양한 형태의 variants가 쏟아져 나오기 시작했다. 이번에는 그중 가장 대표적으로 알려진 backbone 중 하나인 Swin Transformer에 대해 리뷰해 보겠다. Background이전까지는 Abstract, Introduction 등 논문의 진행을 그대로 따라갔는데 ViT base backbone 연구모델은 대게 흐름이 비슷하다고 느껴 이번 글에서는 주요한 부분만 빠르게 짚어보겠다. ViT는 JFT-300M을 pretrain해 IM1K에 대해 SOTA를 달성했다. 하지만 이는 pretrain에 한정된 이야기이고 ViT의 고질적 단점 이자 장점 low bias to image = concerate to general information으로 인해 IM1K p.. 2024. 9. 1.
캐글 노트북에서 기존 터미널과 똑같이 split하기 이 글은 window or wsl에서 모델을 돌리면서 그 결과를 캐글에서 시각화하고 싶은 특이한 상황에 대처하기 위해 쓴 글이다.문제 상황모델을 풀로 학습시키면서 추가로 validation결과를 보고 싶어서 캐글에 기존 코드, 데이터를 전부 넣고 예측했는데 예측결과가 과하게 좋았다.확인해 보니 기존 valid set과 캐글에서 사용한 valid set의 라벨 비율, 그리고 dataset의 label 순서는 맞았지만 파일명 순서는 맞지 않았다. random seed, python version, numpy 같은 라이브러리 버전 등등 모두 확인했지만 문제는 없었고 투자한 시간에 대비 아무 성과가 없어 GPT와 스택오버 플로를 마구 뒤졌다.해결법놀랍게도 해결법은 어이없을 정도로 단순했다. 이번 코드에 과거 V.. 2024. 8. 26.
timm 정리 이미지 분류 모델을 만들 때는 backbone을 가져올 때 주로 timm을 사용할 때가 많다. torchvision은 최근 모델 업데이트가 느리고 mmdetection은 이미지 분류에 사용하기에는 수고가 너무 많이 든다고 생각한다.timm은 유명한 모델 아키텍처는 간단히 클래스로 간단히 불러올 수 있다. timm 모델 사용법##model.pyimport timmclass TIMM(nn.Module): def __init__(self, model): super().__init__() self.model = timm.create_model(model, pretrained=True, num_classes=1) self.layer = nn.Sigmoid() def.. 2024. 8. 25.
AI 개발자 취업 후기 작년 8월 부스트캠프를 수료한 뒤로 반년 간의 취준 그리고 다시 반년 간의 대학원 준비를 거친 뒤 1년 만에 취업에 성공했다.처음 목표는 데이터 사이언티스트로서 리서처가 되는 것이었는데 결국 AI 개발자로 취업했으며 1년 동안 어떻게 준비했는지, 취준 기간 동안 도움이 됐던 것들 그리고 느낌점등을 적어보려 한다. 2023년 후기부스트캠프를 수료한 뒤에는 자소설닷컴에 올라오는 대기업, 중견기업에 지원했고 자소서를 작성하거나 코테 준비 그리고 대기업 인적성을 준비하며 시간을 보냈었다.아무런 준비나 조사 없이 지원하니 주먹구구식으로 지원했으니 붙을리 없었고 결과적으로 4개월을 통째로 날려버렸다. 이때 돌아보면 자격증이나 논문리뷰 영어공부등 부가적으로 할 수 있던게 많았는데 하나쯤은 붙을 거라고 자만심에 차있던.. 2024. 8. 13.
기존 딥러닝 개발환경 복제하기 딥러닝 개발할 때 가장 어렵고 시간을 많이 잡아먹는 부분이 환경 세팅이다. cuda부터 시작해 환경을 새로 깔아야 할 때는 어쩔 수 없이 하나씩 맞추면 되지만 기존 환경이 있으면 이를 그냥 사용하면 된다. 그럼에도 불구하고 굳이 기존 환경을 복제하기로 마음 먹었는데 또 무언가 막무가내로 설치하다 버전이 꼬이게 될 경우를 상상하다 보니 너무 절망스러웠기 때문이다. 먼저 가상환경을 만들고 pip를 최신화한다.(가상환경을 깔면 당연히 기존 pip 버전을 따라갈 줄 알았는데 그 버전에 최적인? pip를 깔아주는 것 같아 그냥 업그레이드 하였다)가상환경 생성(venv)가상환경 생성(venv)및 활성화python -m venv testsource ./test/bin/activatepip 업그레이드pip instal.. 2024. 6. 24.
Visual Prompt Tuning(2022) 리뷰 FAIR에서 저술한 논문이며 Vision도메인에 prompt를 적용시킨 논문이라 생각해 읽어보았는데 그보다는 LoRA와 같은 parameter efficient tuning이 메인이 되는 논문이었다. 최근에 모델 사이즈가 커지며 이 분야도 각광받고 있어서 그냥 계속 읽고 리뷰해 보았다.Abstract이 논문에서는 기존에 large scale transformer 모델들을 full fine-tuning(FF)를 통해 학습하는 것을 대체하는 Visual Prompt Tuning(VPT)를 제시한다. VPT는 llm의 발전에서 영향을 받았고 모델의 backbone을 freeze한채 1% 이하의 parameter를 추가로 학습하여 FF와 비견되는 성능을 보여주는 효율적인 방법론임을 시사한다. Introducti.. 2024. 6. 13.
Self-training with Noisy Student improves ImageNet classification(2020) 리뷰 ViT가 나온 뒤 현재는 ViT의 다양한 variants들이 CV도메인에서는 SOTA를 달성했다. 하지만 이전에는 CNN과 Noisy student training을 사용한 방법론이 SOTA의 대다수를 차지하고 있었는데 이번에는 그 방법론을 처음 제시간 논문을 리뷰해 보겠다. Abstract 이 논문은 labeled data가 풍부한 상황에도 적용가능한 semi supervised 학습법인 Noisy student training을 제안한다. 이 기법은 distillation시 student model을 teacher와 동일 혹은 큰 사이즈를 사용해 학습하며 student의 학습 시 noise를 더해주는데 저자는 이러한 부분에서 self-training 그리고 distillation의 아이디어를 활용했다.. 2024. 4. 9.
[백준] 2098번 외판원 순회 (Python) https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 문제 외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급되는 문제 중 하나이다. 여러 가지 변종 문제가 있으나, 여기서는 가장 일반적인 형태의 문제를 살펴보자. 1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다. (길이.. 2024. 3. 13.