no image
[Deep Learning] 딥러닝에서 사용되는 다양한 Convolution 기법들
기존 2차원 컨볼루션은 세가지 문제점이 존재한다. Expensive Cost Dead Channels Low Correlation between channels 또한, 영상 내의 객체에 대한 정확한 판단을 위해서는 Contextual Information 이 중요하다. 가령, 객체 주변의 배경은 어떠한 환경인지, 객체 주변의 다른 객체들은 어떤 종류인지 등. Object Detection 이나 Object Segmentation 에서는 충분한 Contextual Information을 확보하기 위해 상대적으로 넓은 Receptive Field 를 고려할 필요가 있다. 일반적으로 CNN에서 Receptive Field 를 확장하기 위해서는 커널 크기를 확장한다던지, 더 많은 컨볼루션 레이어를 쌓는 방법을 ..
2020.05.18
no image
[Deep Learning] Batch Normalization (배치 정규화)
사람은 역시 기본에 충실해야 하므로 ... 딥러닝의 기본중 기본인 배치 정규화(Batch Normalization)에 대해서 정리하고자 한다. 배치 정규화 (Batch Normalization) 란? 배치 정규화는 2015년 arXiv에 발표된 후 ICML 2015에 게재된 아래 논문에서 나온 개념이다. Batch Normalization: Accelerating Deep Network Training b y Reducing Internal Covariate Shift https://arxiv.org/pdf/1502.03167.pdf Gradient Vanishing / Exploding 문제 신경망에서 학습시 Gradient 기반의 방법들은 파라미터 값의 작은 변화가 신경망 출력에 얼마나 영향을 미칠 ..
2020.05.16
[Deep Learning] 커널의 의미
각기 다른 개념에서 사용하는 커널의 의미는 다음과 같다. 커널 PCA와 서포트 벡터 머신(SVM)에서의 커널 비선형 함수 MeanShift 알고리즘에서의 커널 샘플의 영향 범위 신경망에서의 커널 가중치 참고자료 : 파이썬을 활용한 머신러닝 쿡북 (한빛미디어)
2019.10.05
no image
[Deep Learning] CNN(Convolutional Neural Network)
1. CNN, Convolutional Neural Network 개념 Convolutional Neural Network(이하 ConvNet)은 합성곱(Convolution) 연산을 사용하는 인공 신경망의 한 종류이다. ConvNet과 일반적인 신경망의 가장 큰 차이점은 ConvNet은 입력 데이터가 이미지라는 것이다. 이미지는 다음과 같이 행렬 형태로 이루어져있으며 또한, 이미지는 Width x Height x Depth 형태로 이루어져있다. 숫자 32가 의미하는 바는 픽셀 수를 뜻한다. 또한 ConvNet의 가장 큰 특징은 일반적인 신경망 앞에 여러 합성곱 계층을 붙인 형태로 이루어진다. (1). 특징 추출(Feature Extraction)(2). 분류(Calssification) 다음 그림과 같..
2018.11.01
[Deep Learning] 손글씨 인식 (MNIST)
참고자료 : 신경망 첫걸음 (한빛미디어) 딥러닝에서의 Hello World는 손글씨 숫자 이미지를 인식하는 것이다. MNIST 데이터셋 MNIST 데이터셋은 훈련용 55000개 및 테스트용 1만개로 이루어진 손글씨 숫자의 흑백 이미지 데이터이다. 이 데이터는 http://yann.lecun.com/exdb/mnist 에서 다운 받을 수 있다. 이미지를 다루는 경우에 데이터 전처리나 포매팅이 중요하지만, 이는 시간이 많이 걸리는 부분이다. 그러므로 이 데이터셋은 딥러닝을 시작하기에 안성맞춤이라고 한다. 이 흑백 이미지는 가로세로 비율은 그대로 유지하고 20x20 픽셀로 정규화 되어있다. 정규화 알고리즘 (가장 낮은 것에 맞춰 전체 이미지 해상도를 감소)에는 앤티에일리어싱 처리가 되어 이들 이미지에는 회색 ..
2017.08.25
no image
[Deep Learning] 회귀분석 (Regression) 과 경사하강법 (Gradient Descent)
참고자료 1 : medium.com/mathpresso참고자료 2 : http://gdyoon.tistory.com/9참고자료 3 : 텐서플로 첫걸음 (한빛미디어) 1. 회귀분석 (Regression) Pose Estimation에 대한 자료를 찾다보면 Keypoints detection에서 heatmap을 이용한 포즈추정시 Regression 이라는 개념이 많이 등장한다. 사실 이 개념은 머신러닝에서 나오는 개념이며, 이번 기회에 정리해보도록 한다. 회귀분석이란 주어진 데이터가 어떤 함수로부터 생성되었는가를 알아보는 '함수 관계'를 추측하는 것이다. 즉, 훈련 데이터세트 (X, Y) 로 부터 학습알고리즘을 이용하여 가설을 생성하고, 생성된 가설에 데이터를 입력하여 예측 값 데이터를 얻는 것이다. 이러한..
2017.08.25
[Deep Learning] pre-training 과 fine-tuning (파인튜닝)
Pre Training 이란? 선행학습(pre-training) 사전훈련(pre-training) 전처리과정(pre-training) 이라고도 하는데, 이는 Multi Layered Perceptron (MLP)에서 Weight와 Bias를 잘 초기화 시키는 방법이다. 이러한 Pre-training을 통해서 효과적으로 layer를 쌓아서 여러개의 hidden layer도 효율적으로 훈련 할 수 있다. 또한, 이는 unsupervised learning이 가능하기 때문에(물론 이러한 가중치와 편향 초기화가 끝나면 레이블 된 데이터로 supervised learning 해야 한다 -> fine tuning) 레이블 되지 않은 큰 데이터를 넣어 훈련 시킬 수 있다는 점을 장점으로 들 수 있다. 또한 Drop-..
2017.08.17
[Deep Learning] end-to-end trainable neural network
논문을 읽다가 이해가 안되던 end-to-end trainable neural network 의 의미를 알아보도록 하자. 모델의 모든 매개변수가 하나의 손실함수에 대해 동시에 훈련되는 경로가 가능한 네트워크로써 역전파 알고리즘 (Backpropagation Algorithm) 과 함께 최적화 될 수 있다는 의미이다. 예를들어 인코더(언어의 입력을 벡터로)와 디코더(벡터의 입력을 언어로)에서 모두가 동시에 학습되는 기계 번역 문제에서 효과적으로 적용 될 수 있다. 즉, 신경망은 한쪽 끝에서 입력을 받아들이고 다른 쪽 끝에서 출력을 생성하는데, 입력 및 출력을 직접 고려하여 네트워크 가중치를 최적화 하는 학습을 종단 간 학습(End-to-end Learning) 이라고 한다. Convolutional neu..
2017.08.04
no image
[Deep Learning] 7. 2층 신경망 구현하기
출처 : 밑바닥 부터 시작하는 딥러닝 (한빛미디어) 신경망 학습이 이루어지는 순서는 다음과 같다. 전제 신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 "학습" 이라고 한다. 신경망 학습은 아래와 같이 4단계로 수행하게 된다. 1단계 미니배치 훈련 데이터 중 일부를 무작위로 가져온 뒤 미니배치의 손실 함수 값을 줄이는 과정을 거친다. 2단계 기울기 산출 미니배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구한다. 기울기는 손실함수의 값을 가장 작게 하는 방향을 제시하게 된다. 3단계 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금 갱신한다. 4단계 반복 1~3 단계를 반복한다. 이는 6절에서 다루었던 경사 하강법을 이..
2017.07.17
no image
[Deep Learning] 6. 경사하강법 (Gradient Method)
참고자료 1 : 밑바닥부터 시작하는 딥러닝 (한빛미디어) 1. 경사법(경사하강법, Gradient Method) 기계학습 문제 대부분은 학습단게에서 최적의 매개변수를 찾아낸다. 신경망 역시 최적의 매개변수(가중치와 편향)를 학습 시에 찾아야 한다. 여기에서 최적이란 손실 함수가 최솟값이 될 때의 매개변수 값이다. 매개변수 공간이 광대하여 어디가 최솟값이 되는 곳인지를 알아내기가 쉽지 않다. 이런 상황에서 기울기를 잘 이용해 함수의 최솟값을 찾으려는 것이 경사법이다. 여기서 주의할점은 각 지점에서 함수의 값을 낮추는 방안을 제시하는 지표가 기울기라는 것이다. 그러나 기울기가 가리키는 곳에 정말 함수의 최솟값이 있는지, 즉 그쪽이 정말로 나아갈 방향인지는 보장할 수 없다. 함수가 극솟값, 최솟값, 또 안장점..
2017.07.14
[Deep Learning] 5. 마코프 의사결정 과정 (Markov decision process, MDP)
출처 1 : http://rfriend.tistory.com/184출처 2 : http://secom.hanbat.ac.kr/or/chapter1/right04.html출처 3 : https://brunch.co.kr/@kakao-it/73 먼저 마코프 의사결정 과정을 살펴보기에 앞서, 이 개념이 왜 딥러닝에서 필요한지 알 필요가 있다. 예를 들어 자율주행 자동차에 들어갈 알고리즘을 만든다고 치자. 이 때 가장 중요한 문제 중 하나는 확률계(Stochastic System)에서 순차적 의사결정(Sequential Decision) 문제를 푸는 것이다. 자동차를 제어할 때 빗길이라던지 비포장 도로 등의 원인으로 인해 우리가 원치 않는대로 움직일 수 있다. 이 때 예상과 일치하지 않는 상황을 확률계라 한다...
2017.07.05
no image
[Deep Learning] 4. 신경망 학습 (손실함수, 미니배치)
이전 Deep Learning 포스팅 [Deep Learning] 1. 단층 퍼셉트론과 다층 퍼셉트론 [Deep Learning] 2. 신경망 (Sigmoid, ReLU) [Deep Learning] 3. 출력층 (항등함수, 소프트맥스함수) 저번 포스팅에서는 출력층의 항등함수를 이용하여 회귀, 소프트맥스함수를 이용하여 분류하는 문제를 다루었다. 이번 포스팅에서는 신경망 학습 이라는 주제를 다룰 것이다. 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다. 이러한 신경망이 학습할 수 있도록 해주는 지표인 손실함수를 소개한다. 손실함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표이다. 이번 장에서는 손실 함수의 값을 가급적 작게 만드는 기법으로 함수의..
2017.06.12