Deep Learning/Computer Vision 4

Convolutional Neural Network (CNN) 밑바닥부터 구현하기

Contents CNN은 이미지처리, 자연어처리 등 다양한 분야에서 각광받는 기술이다. 파라미터를 공유하는 개념을 통해서 기존의 연구에서 제안된 단순한 Linear 수준을 넘어서서 매우 우수한 성능을 발휘한다. 이번 글에서는 CNN을 밑바닥부터 구현하는 것을 다룬다. Import Packages from sklearn.datasets import fetch_openml from sklearn.utils import check_random_state from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt import pand..

[VISION] Semantic Segmentation

다음의 사진은 Semantic Segmentation을 하는 과정을 설명한다. 우리는 이미지에서 각 pixel마다 그 pixel이 어떤 것인지 분류를 하는 문제다. 우리는 이전에 AlexNet, GoogLeNet, ResNet 등 여러 CNN model을 공부해왔다. 만약 개, 고양이를 분류하는 문제를 다룬다고 할 때 이미지의 라벨이 개인지 고양인지 분류하는 문제로 접근하는 것이 아니라, 해당 pixcel은 배경이고, 사람이고, 물체임을 분류하는 방식의 접근이 Semantic Segmentation이다. Semantic Segmentation은 여러 용어로 불리우는데 Dense Classificaiton 혹은 per pixel classification이라고 한다. 딱봐도 일반적인 이미지를 분류하는 문제..

[VISION] Convolution Neural Network

CNN은 이미지에 주로 사용되는 것이라 볼 수 있다. 하지만 최근에는 이미지 뿐만 아니라 자연어처리에도 사용되고 여러 분야에서 다양하게 CNN을 활용한다. CNN은 convolution layer를 겹겹이 쌓아 분류 문제의 경우 class 만큼의 output을 만들어 낸다. CNN을 하기 위해서는 기본적으로 filter라는 개념을 짚고 넘어가야 한다. filter는 input데이터를 필터사이즈 만큼 곱해서 하나의 output을 출력하게 된다. 이 경우 해당 filter size만큼의 값들이 추출된다. 일반적으로 input 을 넣고 filter를 지난 후 nonlinear function(ReLU와 같은)을 거쳐 출력되며 padding이나 stride를 조정해 output 이미지의 사이즈를 조절할 수 있다..

[Regularization] variety methods of Regularization

Regularization은 규제화라고 할 수 있을 것이다. 모델에 제약을 걸어 Generalization performance를 좋게 하고 싶은 것이다. 회귀분석에서의 제약 모델에 있어서는 Ridge, Lasso, ElasticNet 등이 있을 것이며, 딥러닝에 있어서는 다음과 같은 Regularization 이 존재한다. Early stopping Parameter norm penalty Data augmentation Noise robustness Label smoothing Dropout Batch normalization 학습을 방해하는 것이 Regularization의 주된 목적이지만 단순히 방해만 하는 것이 아니라 학습 데이터에서만 잘 작동되게 하는 것이 아니라, 테스트 데이터에도 잘 작동하..

반응형