티스토리 뷰
1. Computer Vision
1) CV
: A field of AI that trains computers to interpret and understand the visual world
(시각적 세계를 해석하고 이해하도록 컴퓨터를 학습시키는 인공지능의 한 분야)
- Computer가 Digital Image와 DL 모델을 통해 객체를 정확히 식별하고 분류하는 학습을 진행
- 사람의 눈으로 사물을 보는 것처럼 컴퓨터가 사물을 보고,
뇌가 하는 작업을 알고리즘을 통해 컴퓨터가 유사하게 수행할 수 있도록 만드는 작업
2) Task
(1) Classification (객체 분류)
: 이미지 속 객체를 인지해 객체의 Class를 분류하는 기술
Ex. DenseNet, SENet, MobileNet, SqueezeNet, AutoML(NAS, NASNet)
(2) Object Detection & Localization (객체 탐지 및 위치 식별)
: 이미지 또는 비디오 영상에서 객체를 식별하는 기술
Ex. R-CNN, Fast R-CNN, Faster R-CNN, Yolo, SDD, Latest Object Detection
(3) Object Segmentation (객체 분할)
: 이미지 및 비디오 영상 frame 내에서 객체를 따로 분할하는 기술
- Semantic Segmentation : 이미지 내 객체가 무엇인지 픽셀 단위로 분류하는 기술 (같은 class는 같은 instance로 분류)
- Instance Segmentation : 이미지 내 객체가 어디있는지 픽셀 단위로 판단하는 기술 (같은 class도 다른 instance로 분류)
Ex) FCN, Mask-RCNN, DeepLab, U-Net
(4) Object Tracking (객체 추적)
: 비디오 영상 내의 객체의 위치변화를 추적하는 기술
Point Tracking, Kernel Tracking, Silhouette Tracking
Ex) MDNet, GOTURN, CFNet, ROLO, Tracking the Untrackable
(5) Image Captioning (이미지 캡셔닝)
: 이미지의 상황을 텍스트로 설명하는 기술
(6) Action Classification (행동 분류)
: 비디오 영상 내의 객체의 Action을 인식해 분류하는 기술
(7) AutoEncoder, VAE, GAN, ...
3) FC, CNN, GAN
Fully Connected : 모든 Perceptron에 모든 Pixel이 연결되어 있는 방식
- parameter 수, 연산량 너무↑ (Overfitting) Ex. 200x200 img : perceptron 당 40000개의 parameter
- 이미지의 지역적, 공간적 정보 반영 불가
CNN : CV 뿐만 아니라 다양한 영역(Task)에서 사용되는 하나의 Tool
GAN : 새로운 이미지 생성, 데이터 보호, 음성 생성 등 다양한 영역에서 사용되는 Tool
4) Parameter VS Hyperparameter
(1) Parameter : 모델 내부에서 데이터를 통해 결정되는 변수
Ex. weight coefficient (가중치 계수), bias (편향)
(2) Hyperparameter : 모델링할 때 사용자가 직접 세팅해주는 값
- 정해진 최적의 값이 없으며, 휴리스틱한 방법 또는 경험에 의해 결정
- 베이지안 옵티미제이션과 같이 자동으로 선택해주는 라이브러리 존재
Ex. learning rate, epoch, iteration, ...
2. CNN Introduction
1) CNN History
2) Convolution operation
- 이미지의 공간적, 지역적 정보를 유지하면서 feature 특징 추출 (차원 축소)
- 다른 위치에서도 같은 parameter들을 공유, 극적으로 parameter 수 줄일 수 있음
- 최종적으로는, Convolution operation으로 축소된 데이터를 1차원 배열로 flatten 후 FC 통과하여 학습 시킴
3) CNN 특징
- Spatial / Topological information 보존
- Weight parameter 감소
- Weight Sharing & Sparse Connection
- Robust Feature Detection
- Translation Equivariance & Translation Invariance
3. Convolution, Striding, Padding, Pooling
(1) Convolution
Convolution : 하나의 필터를 입력 이미지 값에 전체적으로 훑어주는 과정
Filter size는 일반적으로 홀수 (중심위치가 존재 & 패딩의 비대칭성 방지 위해)
- 커널이 이동하며 기존 이미지 matrix와의 내적을 통해 output matrix 계산
- 입력 이미지의 모든 영역에 같은 필터를 반복 적용해 패턴을 찾아 처리
- Feature map(특성 맵) : 커널을 이용한 Convolution operation의 결과
(2) Stride
Stride : 커널의 이동 범위
(3) Padding
Padding : 이미지 주위에 추가로 경계를 덧대어 이미지의 크기를 키우고 윤곽정보를 더욱 활용할 수 있도록 하는 기법
경계 처리 방법
- padding = "VALID" : 유효한 영역만 출력됨 → Output img size < Input img size
- padding = "SAME" : Output img size = Input img size
Output size : (N - F + 2*P) / S + 1
(4) Pooling
Pooling : Downsampling(Subsampling)의 일종, 전체 크기를 줄여줌
① Max Pooling
: 일정 크기의 구간 내에서 가장 큰 값만 전달하고 다른 정보는 버리는 방법
= 일정 구간에서 해당 필터의 모양과 가장 비슷한 부분을 전달하는 연산법
② Average Pooling
: 일정 크기의 구간 내의 값들의 평균을 전달하는 방법
= 해당 필터의 모양과 평균적으로 얼마나 일치하는지를 뽑아내는 연산법
4. CNN Architecture
5. Function
1) Activation function
- linear : (default) 입력뉴런과 가중치로 계산된 결과값이 그대로 출력으로 나옴 → DNN 효과 X
- relu : rectifier function. 은닉층에 주로 사용
- sigmoid : 이진 분류 문제의 출력층에 주로 사용
- softmax : 다중 분류 문제의 출력층에 주로 사용 (신경망의 결과값을 확률로 변경)
2) Loss function
Cross Entropy Loss
: Classification task에서 주로 사용하는 Loss function
(1) Entropy
: 불확실성에 대한 정보를 나타내는 척도 = 정보량의 기댓값
H(p) = - ∑ p(x) * logp(x)
p(x) : 일어날 확률, logp(x) : 정보량
일어날 확률이 작을수록 가지고 있는 정보가 크고, 일어날 확률이 클수록 정보가 작음
(2) KL Divergence
: Distribution의 차이를 나타내는 척도 = 비효율적인 정도, D_KL = CE - E
D_KL(p || q) : p를 기준으로 q가 얼마나 다른지 측정 = relative entropy from q to p
(3) Cross Entropy
: 목표로 하는 최적의 확률분포 p와 이를 근사하려는 확률분포 q가 얼마나 다른지 측정
= 원래 p였던 분포를 q로 표현했을 때 드는 비용 측정
= True label(p)과 얼마나 차이 정량화 (목표 : 줄이자)
H(p, q) = - ∑ p(x) * logq(x)
= H(p) + ∑ p(x) * log[p(x)/q(x)]
= H(p) + D_KL(p || q)
의의 : Loss 줄이기 위해 Gradient 구해서 Backprop 하는데,
model output만 변화하고 ∑ p(x)logp(x)는 fixed.
→ Gradient 구할 때 (미분) fixed 부분은 필요 X
→ D_KL 에서 fixed E 부분 빼고 CE만 계산해서 Loss 구함
∴ 교차 엔트로피(CE) 최소화 = KLD 최소화 (H(p)는 fixed 값) → q가 p의 분포와 최대한 같아지도록 하는 것
6. 코드 구현 및 추가 내용 정리
https://jeonggg119.tistory.com/13
'Data > Science' 카테고리의 다른 글
[DS] RNN (0) | 2022.02.03 |
---|---|
[DS] MLP (0) | 2022.01.28 |
[DS] Machine Learning (ML) (0) | 2022.01.26 |
[DS] 통계기초/회귀분석 (0) | 2022.01.21 |