1. CV 이론
1. Image Classification
- classifier : image에 들어있는 object를 판별
- 모든 pixel들을 weighted sum (내적) -> activation function -> class 분류
- locally connected nueral network : kernel을 이용 -> 파라미터들을 출이고 성능 향상 (오버피팅방지)
- CNN 기반의 task들이 수행되는 중 : image 분류, object 분류, segmentation 등
- HW / SW의 발달로 모델의 구조도 점점 변화하게 된다. ex) 작은 filter를 여러번 사용
- sample space에서 다양하지 않거나, 명확하지 않은 데이터가 많기 때문에 augmented data를 사용한다.
- brightness, rotate, crop, mixing, cutout 등 여러가지 방법을 사용해서 sample을 늘린다.
- 다양한 augmentation을 선택해서 조합할 수 있다. 대부분의 경우에 학습 성능을 높일 수 있다.
- transfer learning : 학습된 conv layer에 FC를 변경시켜서 새로운 task에 적용시킨다.
- knowledge distillation : 학습된 teacher model, 학습하지 않은 student model을 준비 (보통 student model이 작은 규모)
두 개의 결과를 이용해서 얻은 loss를 student model쪽에만 back propagation해서 두 model의 distribution을 비슷하게 만든다.
label이 있든 없든 사용 가능하다.
label이 있는 경우, soft label을 사용 (경향성까지 학습) + temperature 사용 (비슷한 맥락으로 전체 경향성을 파악하게, 출력을 smooth) - distillation Loss (KLdiv사용) / Student Loss (CE 사용)
- semi supervised learning : 적은 label data + 많은 non label data -> pseudo label 이용해서 학습성능 향상
- self training : teacher model에서 pseudo label을 가져오고 나온 결과를 teacher model의 label이라 생각하고 새로운 pseudo label 생성 (반복! 2~4회)
- AlexNet -> VGG -> GooGleNet -> Resnet -> DenseNet 등..
- GooGleNet
다양한 filter size 사용 + dimension reduction(1x1 filter)
grad vanishing 문제를 해결하기 위해 Auxiliary classifier를 모델 중간에 넣음 (중간단에서 loss를 보내서 model 앞단에 grad가 소실되는 문제를 막는다 : 학습 중에만 사용) - ResNet
Layer를 쌓아서 계속 성능이 증가하게 만듦 (기존 degrade 문제 해결 : residual block)
block을 건널 때 마다, shortcut과 기존 경로 2가지가 있음 -> 다양한 경로를 통해서 학습 가능 O(2^n)
기존의 Model에서 성능 향상
- DenseNet / SENET (squeeze,excitation) / EfiicientNet
- width / depth / resolution scaling (성능 증가폭이 다르다) -> 적절한 비율로 섞는다 : compound scaling
- Deformable convolution : offset field를 통해서 kerner 위치를 벌려준다. 방향도 존재함, rect 모양 x)
- Sementic Segmentation
image 단위 말고 pixel 단위로 class를 구분한다.
기존의 lmage classification 출력단 FC layer 호환성 문제
FCN : 1x1 convolutional layer를 통해서 해결. 해상도에서 자유로움. (channel을 축으로 사용해서 공간정보를 잃어버리지 않음 -> heatmap처럼 결과를 얻을 수 있음).
but, score map의 크기가 작다. (= receptive field가 작다. stride, activation map -> 저해상도)
upsampling 필요 : upsampling layer를 통해 고해상도 이미지로 변환하기
transposed convolution : conv size, stride size를 잘 고려하지 않으면 check board 문제 발생
NN-resize conv, bi-linear resize conv 등 다양한 upsampling 사용
but upsampling 과정에서 손실되는 정보들은 어쩔 수 없다.
모델의 뒷단으로 갈수록 의미있는 정보가 생기지만, detail한 부분들은 소실된다 -> 뒷단 layer에 앞단 정보 concat
U-Net : down sampling, up sampling 과정이 있음 (해상도를 줄이면서 채널을 늘리고, 해상도를 높이면서 concat을 하고 채널을 줄인다)
2. 코테준비
- [파이썬] 백준 1405 : 미친로봇 (골드4) (tistory.com)
- [파이썬] 프로그래머스 : 모음사전 (Lv.2) (tistory.com)
- [파이썬] 백준 1781 : 컵라면 (골드2) (tistory.com)
- [파이썬] 백준 1092 : 배 (골드5) (tistory.com)
3. 코멘트
시험공부때문에 많이 못한듯..........
모델구현도 좀 이상해서 다시 구현할 예정
'etc > 공부방' 카테고리의 다른 글
리트코드 문제풀이 진행 상황 (0) | 2024.09.01 |
---|---|
[네부캠] 5주차 정리 (0) | 2023.12.04 |
[네부캠] 3주차 정리 (0) | 2023.11.20 |
[네부캠] 2주차 정리 (0) | 2023.11.17 |
[네부캠] 1주차 정리 (0) | 2023.11.10 |
댓글