전체 글 70

[P-stage 1] methodology

프로젝트를 진행하며 느낀 딥러닝 프로젝트에서의 다양한 방법론을 팀원들이 말하는데 잘 못알아 듣는 내용들이 있었다. 다음 프로젝트때 걸림돌이 되지 않으려면 이런 용어들을 공부해두려고 따로 정리해야겠다. Off-line vs On-line 학습 팀원들이 데이터에 대해 Off-line으로 데이터를 학습하자. 등의 말을 했는데, 그게 뭔지 몰랐었기 때문에 정리. 오프라인 학습 모델을 학습 시킨 뒤, 더 이상의 학습 없이 시스템에 적용하는 것. 새로운 데이터가 생성되면 전체 데이터셋을 통해 모델을 다시 학습해야 한다. 모든 데이터를 1개의 배치로 생각해 배치 학습이라고도 한다. 온라인 학습 미니 배치 단위에서 데이터를 사용해 학습하는 방법. 미니-배치 학습이라고도 한다. 실시간 반영이 중요한 시스템에서 사용된다...

Generative Adversarial Nets (GAN)

생성모델의 시초인 GAN. 생성 모델을 공부하기 위해서는 꼭 알아야 할 개념이기에 가장 기본적인 GAN에 대한 정리 Abstract Generative model G와 discriminative model D를 사용해 두 가지 모델을 동시에 학습하는 generative model을 추정한다. G : 입력 정보를 바탕으로 가상의 결과물을 만듦 (도둑) D : G가 아닌 훈련 데이터에서 샘플이 나왔을 확률을 추정한다. (경찰) G는 임의의 노이즈를 통해 훈련 데이터와 같은 분포의 가상 데이터를 생성하며 D는 해당 이미지가 생성된 이미지인지 훈련 데이터의 이미지인지 판단할 확률이 1/2가 될때까지 학습한다. (구별할 수 없음) Introduction Generative model G 는 위조 지폐를 걸리지 않..

논문리뷰 2023.04.22

예상 면접 질문 정리 + 정리 링크

참고 링크 https://jrc-park.tistory.com/m/259 AI 대학원 면접 준비 - 전공 질문 리스트 본 질문들은 필자가 KAIST AI 대학원 면접을 준비하면서 만든 질문 리스트입니다. 머신러닝, 확률, 선형대수학과 관련된 질문들로 모두 답해야 하는 것은 아니며, 알고있는 지식의 정도를 확인하 jrc-park.tistory.com https://github.com/boost-devs/ai-tech-interview/blob/main/answers/1-statistics-math.md https://www.notion.so/AI-274154b064944f57977670017cfd5485 (내 노션 답 정리본)

대학원/입학 2023.04.21

[P-stage 1] Swin Transformer

Transformer를 사용한 모델도 사용해보자는 의견이 있어 정리하고 사용해보기 위한 정리글. ViT (Vision Transformer) NLP 분야에서 한 획을 그은 (GPT 모델에도 사용되는) Transformer를 image classification 분야에 맞게 변형하며 CNN을 사용하지 않도록 만든 모델. 사실상 이 모델의 등장 이후 CNN을 사용한 모델의 종말을 예고했고, Transformer가 NLP뿐 아닌 CV까지 뻗치며 인공지능의 근본이 되었다. 1. 이미지를 여러 개의 patch로 자른 후 각 패치별 embedding demension (16 x 16 x 3)으로 만든다. 이를 통해 기존 Transformer 모델에서의 시퀀스 데이터와 같이 만든다. 2. 각 패치에 대한 flatte..

[P-stage 1] DenseNet

EfficientNet, ResNet과 함께 실험해 볼 모델인 DenseNet에 대해 정리. 'Densely Connected Convolutional Networks' 논문에서 소개된 모델이다. 모든 레이어 간의 Feature map을 연결한 모델. 첫 번째 Convolution인 빨간 색 layer의 마지막 단인 feature map에서 연결된 빨간 선을 보면 이후 오는 모든 레이어에 연결한다. 즉 이전 레이어의 피처맵을 그 이후의 모든 레이어의 피처맵에 연결해 덧셈이 아닌 연결 연산을 한다. 이 연산을 통해 얻을 수 있는 점은 1. 모델이 이전의 정보를 기억하며 정보의 흐름이 이어진다. 기존의 CNN 모델에서 이전 레이어의 피처 맵이 다음 레이어의 입력 값으로 사용되며 많은 레이어를 통과해 모델의 ..

[P-stage 1] EfficientNet

현재 ImageNet Accuracy에서 SOTA 모델인 EfficientNet. SOTA 모델을 쓰는 것이 당연히 좋지 않을까.. 싶어서 사용하고 있지만, 그리고 대회에서도 아마 data를 조정하고 hyper parameter를 조정하는 것이 점수를 높이는 방법이고 모델은 그냥 EfficientNet을 쓰는게 좋지 않을까 싶지만, 그래도 알고 쓰는게 좋을 것 같아 이 모델에 대한 정리를 한다. 모델의 크기 키우기 하드웨어 기술이 감당할 수 있는 모델의 크기가 증가하는 만큼 모델의 크기를 키워 성능을 높이는 방향의 연구가 이루어지고 있다. 모델의 크기를 키우는 3가지 주요 방법으로는 1. Layer의 깊이를 더 깊게 쌓는 것 2. Channel width(filter의 수) 를 늘리는 것 3. image..

[P-stage 1] Image Classification Loss에 대한 고찰

Baseline 코드의 loss.py 파일에 들어가면 기본적으로 3가지 Loss가 정의되어 있고, nn.CrossEntropy가 있다. CrossEntropyLoss FocalLoss LabelSmoothingLoss F1Loss 이 네 가지를 사용하는 경우도 알고 쓰고, 이를 알면서 또 내 모델에 어떤 Loss function을 쓰는게 좋을 지 생각해보자. Cross Entropy Loss N가지 종류의 클래스에서 데이터의 라벨이 one - hot encoding으로 정답이 있을 때, 활성화 함수 Softmax를 통과한 클래스의 예측값이 다음과 같이 나왔다고 하자. 이 식은 다음의 식으로 변경이 가능하며 2번 클래스로 예측한 확률이 가장 높기 때문에 실제 확률 분포의 확률 분포가 [0, 1, 0] 으로..

[P-stage 1] 실험 환경 세팅

가상 환경 설정 SSH 서버에 접속하기 위한 여정. 부스트캠프를 진행하며 대회 진행에서 학습에 필요한 GPU를 인당 1개씩 v100으로 서버를 통해 지원해준다. v100 32G는 몇백만원 하는 굉장히 고가의 GPU.. 갓이버 클라우드. 아무튼 이 서버를 사용하기 위해 매번 들어가기 귀찮기도 하고, Vscode와 연동하는 방법을 어떤 분이 Slack에 친절히 pdf까지 올려주셔서 이 방법을 통해 Vscode에서 SSH 서버에 원격 접속해 이용하는 방법에 대해 익혔다. 1. Key 발급 서버를 실행시키면 최초 실행 시 자동으로 key 파일이 다운로드 된다. 나는 데스크탑에서 서버를 최초 실행하고, 다시 노트북에서 서버를 연동하려고 시도해서 key 파일을 못 찾아서 한참을 헤맸다. 이런 경우 아마 key 파일..

P stage 돌입과 학습 정리 방식 변경

이제 간단한 이론 강의와 과제로 진행되던 U stage가 끝나 본격적으로 대회가 시작하는 P stage에 들어간다. 이번 주, 다음 주는 마스크 착용 감지에 대한 Image classification에 대해 대회를 진행하며, 프로젝트로 진행하는 만큼 강의의 내용은 '어떻게 진행할 지' 에 대해서 알려주고 이론적인 내용은 없다고 봐도 무방하다. 따라서 학습 정리에 대해 이제 대회가 시작한 나머지 기간동안은 코드를 작성하며 내가 깨달은 점, 모델을 구현하기 위해 찾은 지식들과 내가 사용하는 모델에 대한 정리. 즉 내가 무엇을 쓸 때 '알고 쓰자' 에 초점을 두어 정리할 것이다.

5주차 회고

이번 주 학습정리는 모든 강의에 대해 하지 않았다. 솔직히 3개나 한 것도 기적이다. 강의를 들으면서 약 40%이상의 시간을 멍때렸고, 집중하지 못했다. CV의 방대한 분야에 대해 1시간마다 이 엄청난 내용들을 압축해서 호로록 진행하는 교수님의 말이 잘 안들렸다. 그나마 관심이 있는 panoptic segmentation, cGAN, multi-modal에 대해 정리하고 정리가 애매한 분야인 CNN visualization, 3D understanding, Recent trends on vision transformer에 대해서 정리하지 못했다. 하지만 ViT에 대한 이해가 필요하다고 생각되어 지난 DL basic 주차에 있었던 ViT 심화 과제를 따로 풀어보고, 심화학습에 정리할 예정이다.