Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 주간학습정리
- AI Math
- self-attention
- pytorch
- 셀프 어텐션
- 부스트캠프
- VAE
- VAE 논문 리뷰 #
- 트랜스포머 행렬
- 네이버 부스트캠프 AI Tech 6기
- 네이버 부스트캠프 AI Tech
- seq2seq
- 네이버 부스트캠프 코딩테스트 후기
- 어텐션 행렬
- 어텐션
- VAE 설명
- Auto-Encoding Variational Bayes
- Transformer 디코더
- transformer
- Positional Encoding
- 네이버 ai 부스트캠프
- Transformer Decoder
- 네이버 부스트캠프 KDT 전형
- boostcamp
- Transformer 모델
- 트랜스포머
- Transformer model
- 트랜스포머 모델
- 포지셔널 인코딩
- 네이버 부스트캠프
Archives
- Today
- Total
DH. AI
[Boost Camp AI Tech] Week4 본문
4주차 CV 도메인 기본 지식들을 배는데, 간단히 몇 가지만 정리하겠습니다.
Semantic Segmentation, Object Detection은 level 2, 3에서 정리하려고 합니다.
Computer Vision
- 과거의 CV 알고리즘 → input data를 보고 feature extraction을 하고 classfication하고 output을 내보냄
-> 자연과학 학술제에서 고양이, 강아지 이미지를 분류하기 위해 직접 feature extraction 했던 방식... 매우 힘들다. - 현재의 CNN기반 딥러닝 → input → deep learning(feature extractoin + classfication) → output
Data Augmentation
- 모델의 일반화 성능을 올려주기 위해 자주 사용함. input 데이터 분포를 더욱 다양하게 만들어줘서 모델 학습에 도움을 준다. 이미지의 색을 바꾸던지, 회전을 주던지, 자르던지..
- torchvision.transform, albumentation 등의 library가 있음
Classification Models
GoogLeNet
- 1X1 conv로 채널을 줄여줌. 다른 크기의 filter 를 사용하여 conv 연산을 하여 채널 방향으로 concat 해줌. 즉 나눠서 연산후 다시 합침. (Inception 모듈) -> width를 늘려준 효과
- gradient가 사라지는 것을 막기 위해서 gradient를 주사기 처럼 중간 중간에 다시 주입함. → 즉 중간 output으로 loss를 구해서 역전파!! -> Auxiliary classifiers
- Global Average Pooling 사용. FC_layer의 많은 파라미터 수로 인한 계산복잡도를 매우 줄일 수 있음.
ResNet
- 중요 내용 : H(x)라는 것을 학습하는 것 대신 H(x) = F(x) + x 중에서 F(x)만 학습하도록 함. -> 잔여학습. shortcut connection
- shortcut connection 장점 : F(x)에서 gradient vanish가 일어나더라도 x로 흐르는 gradient로 역전파 되어 gradient vanish 문제 해결. gradient가 흐를 수 있는 경우의 수가 2^n 개로 늘어남 -> 더 많은 표현력을 가짐
- 모두 3X3 conv연산으로 이루어져있고, 채널 수에 따라서 block을 나눈다.
- 무작정 층을 깊게 쌓으면 계산 복잡도가 증가할 수 있다. 또한 gradient vanishing, exploding 등의 문제가 발생. 그렇지만 shortcut connection을 이용하여 층을 깊게 쌓으면 좋다.
- He inialization (node의 개수에 반비례하여 초기화) → 더해지는 값이 커지면, 계속해서 큰 값이 더해지므로 작은 값으로 초기
EfficientNet
- baseline의 성능을 올리기 위해..
- width scailing 채널축을 늘림. - GoogLeNet
- depth scailing - ResNet
- resolution scailing - input 이미지를 큰걸 넣어줌. → 올리면 성능이 급격하게 좋아짐
- EfficientNet -> compound scailing - 위의 3개스킬의 성능 증가 속도는 결국 모두 수렴함 → 동시에 이것들을 잘 조절해서 성능을 올려보자.
Focal loss
- Object Detection 문제에서 배경은 많고 실제 Object는 적은 문제인 Class Imbalance문제..
- Cross Enropy = -log(p)
- Focal Loss(p) = (1-p)^r * log(p) : Cross Enropy의 변형
- (1-p)^r 의 뜻 : (gradient 관점에서)잘 맞춘 것들은 더 Loss gradient 를 낮게.. 즉 거의 학습 시키지 않음!
어렵고 맞추지 못한 것에 대해서는 sharp한 Loss gradient를 줘서 학습 빠르게 → 적은 양의 class의 경우 많은 양의 class로 학습되어있던 모델에 input으로 들어가게 되면 logit 값 (prediction)이 작게 나올텐데 그 때 더 기울기가 큰 gradient를 흘려줘서 적은 class또한 예측 잘 되도록 학습된다. (라고 이해했습니다.) -> Class Imbalance문제 해결!
'[Boost Camp AI Tech]' 카테고리의 다른 글
[Boost Camp AI Tech] Week3 (0) | 2023.04.29 |
---|---|
[Boost Camp AI Tech] Week2 (0) | 2023.03.31 |
[Boost Camp AI Tech] Week1 (4) | 2023.03.20 |
[Review] 네이버 부스트 캠프 AI Tech 5기 합격 후기 (0) | 2023.02.14 |