네이버 부스트캠프 학습 정리 41

[CV basic] Object Detection

R-CNN Object Detection 분야에 최초로 딥러닝 기법을 적용한 모델. 전체 태스크를 다음의 두 단계로 나눠 2-stage Detector라고 한다. 1. 물체 위치를 찾는 Region proposal 2. 물체를 분류하는 Region Classfication 입력 이미지에서 bounding box를 만들어 내고 해당 부분에 대해 extract region proposal를 진행한다. 이후 박스 크기를 고정값으로 Warped한 후 해당 image regions에서 CNN - pretrained 모델에서 forward 연산을 통해 feature map을 추출한다. 이후 해당 부분에서 SVM을 통해 분류를 진행 후, bounding-box regression 역시 추가로 진행한다. 하지만 이 경..

[CV basic] Semantic Segmentation

Fully Convolutional Networks semantic segmentation에 대한 최초의 end-to-end architecture. 기존의 Fully connected layer인 FC layer에서는 마지막 평탄화 과정에서 뉴런의 값이 flatten되며 기존 이미지의 위치 정보를 잃어버린다. 따라서 Fully convolutional layer를 사용해 단순히 차원만을 축소해 위치 정보를 유지할 수 있다. FC layer의 자리에 1x1 크기를 가진 kernel과 클래스 개수만큼의 차원을 가진 CNN을 대체하여 사용하는 경우 위치 정보를 기억할 순 있지만, feature map의 크기가 원본보다 훨씬 적다는 한계가 있다. 위 한계를 극복하기 위해선 upsampling을 사용한다. se..

[CV basic] GoogLeNet/ResNet

GoogLeNet GoogLeNet의 전체 구조. 동그라미 친 부분이 Inception module이며, 첫 부분은 Vanilla CNN이다. Inception module (a)는 1x1 conv를 통한 차원 축소를 진행하지 않은 Inception module이며, (b)는 차원 축소를 진행한 모듈이다. Inception module은 1x1, 3x3, 5x5 conv filter 이후 3x3 max pool을 진행한 후 모든 필터를 합쳐서 뱉어낸다. (b)의 차원 축소는 1x1 conv filter의 bottleneck 구조로 이루어진다. 이런 구성으로 이루어진 Inception module을 쌓아서 이루어진 구조이며 그 아래엔 Auxiliary classifiers가 있다. Auxiliary cla..

[CV basic] Data Efficient Learning

Data augmentation 데이터셋은 대부분 편향되어있다. 훈련 데이터와 실제 데이터 사이에는 항상 차이가 있기 때문에 data augmentation을 통해 실제 세상에 있는 데이터와의 차이를 매꿔야 한다. 데이터 증강을 하는 방법으로는 데이터를 회전시키거나 좌우반전시키는 Flip/Rotate, 색을 변경하는 방법, 임시로 이미지의 크기를 자르는 Crop, Affine 변환, 각기 다른 이미지를 잘라서 붙이는 Cutmix, 노이즈를 주어 흐리게 만드는 blur 등의 여러 기법이 있다. PyTorch의 코드에서는 albumentations, transforms등의 함수를 사용해 data augmentation을 간단히 진행할 수 있다. albumentations_transform = albument..

[CV basic] AlexNet/VGGNet

작년에 왔던 각설이 죽지도 않고 또 온것처럼 CV 얘기에선 정말 빠질 수 없는 근-본모델.. 이제는 도메인 별 기초를 배우기 때문에 심화학습으로 배웠고, 과제로 풀었던 코드까지 살짝 리뷰하며 정리 LeNet 가장 최초의 CNN 모델이라고 볼 수있는 LeNet. Conv - Pool - Conv - Pool - FC - FC 구조로 이루어져 있으며, 5x5 with strde 1 필터를 사용한다. pooling으로는 2x2 max pooling with stride 2 사용. AlexNet 위에서 LeNet을 언급한 것은 비교하기 위함. 단순히만 봐도 Conv - pool - Conv - pool - Conv - Conv - Conv - Pool - FC - FC - FC 로 모델이 훨씬 복잡해졌음. 또한..

[DL basic] Transformer

https://www.youtube.com/watch?v=o8RkbHv2_a0 NewJeans Attention Is All You Need Sequential Model seq2seq 모델의 경우 인코더-디코더 구조로 구성되어 있다. 인코더는 입력 시퀀스를 하나의 벡터 표현으로 압축하고, 디코더는 이 벡터 표현을 통해 출력 시퀀스를 만들어 낸다. 하지만 이 과정은 입력 시퀀스가 벡터로 압축되는 과정에서 그 정보가 손실되고, 이럴 보정하기 위해 사용하는 기법이 어텐션이다. 트랜스포머는 이 어텐션만으로 인코더와 디코더를 만든다는 아이디어에서 고안된 모델이다. 그래서 Attention Is All You Need라는 논문으로 게재되었다. High-Level Look for Transformer 인코딩 구간의..

[DL basic] Computer Vision Applications

Semantic Segmentation(의미적 분할) 객체 인식의 영역에서 이미지 내 특정 역역에 대한 분류 결과를 바운딩 박스로 보여주었다면, 의미적 분할에서는 이미지 내 모든 픽셀에 대한 분류 결과를 보여준다. 즉, 어떤 픽셀이 어떤 객체에 속한 픽셀인지를 모두 포함한다. 이런 세세한 분류가 필요한 영역으로는 특히 자율주행 분야에서 사용하고 있다. Fully Convolutional Network 여러 모델에서 마지막에 거치는 flatten model. 이 경우 parameters의 수가 급격하게 증가하며 Million 단위로 증가하게 된다. 이미지의 분류를 위해 하나의 결과값을 뽑기 위한 fully-connected를 통한 출력층이다. 하지만 Sementic Segmentation에서는 fc lay..

[DL basic] Convolutional Neural Networks

Convolution 합성곱. 두 함수 \((f, g\)가 있을 때 한 함수 \((f\)의 모양이 나머지 함수 \(g\)에 의해 모양이 수정된 제 3의 함수 \(f * g\)를 생성해주는 연산자로 Continuous convolution \(f * g)(t)=\int f(\tau) g(t-\tau) d \tau=\int f(t-\tau) g(t) d \tau\) Discrete convolution \((f * g)(t)=\sum_{i=-\infty}^{\infty} f(i) g(t-i)=\sum_{i=-\infty}^{\infty} f(t-i) g(i)\) 2D image convolution \((I * K)(i, j)=\sum_m \sum_n I(m, n) K(i-m, j-n)=\sum_m \sum..

[DL basic] Neural Networks / Optimization

Neural Networks 뉴런 신경 세포(神經細胞) 또는 신경원(神經元)은 신경아교세포와 함께 신경계와 신경조직을 이루는 기본 단위이다. 신경계의 모든 작용이 신경세포와 신경세포 간의 상호작용으로 인해 이루어진다. 예를 들어, 우리 몸의 내부와 외부에 자극을 가하게 되면 일련의 과정을 통해 뉴런은 자극을 전달하게 되며, 최종적으로 척수와 뇌 등의 중추신경계로 도달하게 되며 중추신경계에서 처리한 정보를 다시 우리 몸으로 전달해 명령을 수행한다. 인간의 뇌의 일부분으로 이를 이용한 모델을 뉴럴 네트워크라고 부른다. 하지만 인간의 사고에서 역전파와 같은 개념은 사용하지 않는다. 이미 많은 방식으로 딥러닝 모델은 발전해 왔고, 이제는 단순히 인간의 뇌를 모방한 시스템이라기에는 멀리 왔다. 인간의 뇌를 모방했..