Convolutional Neural Networks

What is CNN? Convolutional Neural Network(CNN)은 NN의 여러 층 중 convolution 연산을 사용하는 층이 있는 NN을 의미합니다. 보통 convolution 연산을 수행하는 convolution layer가 아래쪽에 있고 위쪽에 MLP와 같은 dense layer가 있는 형태가 됩니다. Convolution이 갖고 있는 여러 장점들 덕분에 엣날부터 convolution은 신호 처리와 이미지 처리 분야에서 많이 사용되었고, 실제로도 좋은 성능을 내기도 했습니다. 그럼에도 불구하고 … Convolutional Neural Networks 계속 읽기

Regularization

Regularization Regularization(정규화)는 머신러닝에서 훈련 데이터로 훈련시킨 모델을 훈련 데이터뿐만이 아니라 다른 데이터에도 잘 들어맞을 수 있도록 해 주는 것입니다. 주로 학습 방법을 변경해 정규화를 달성하려고 합니다. 훈련 데이터 외의 데이터(테스트 데이터)에서 발생하는 에러를 generalization error라고 한다면, 정규화는 generalization error를 줄이는 것을 목표로 하지, training error를 줄이는 것을 목표로 하지는 않습니다. 보통 정규화는 bias-variance tradeoff(편향-분산 교환)에서 … Regularization 계속 읽기

Multi-Layer Perceptron

Multi-Layer Perceptron MLP는 퍼셉트론으로 이루어진 여러 층을 순차적으로 붙여놓은 형태입니다. 보통은 제일 위에 logistic regression을 얹어 확률분포로 바꾼 결과를 얻습니다. Classification, detection 등 다양한 용도로 사용할 수 있습니다. MLP는 feed-forward 구조입니다. Input에 가까운 층을 아래에 있다고 하고, Output에 가까운 층을 위에 있다고 이야기합니다. 신호는 아래에서 위로 계속 움직입니다. MLP에서는 각 층의 노드들간의 연결은 있어도 같은 … Multi-Layer Perceptron 계속 읽기

Initialization

Importance of Initialization NN에서는 다양한 변수들을 이용해 네트워크를 구성합니다. 변수들은 훈련을 통해 계속 바뀌지만, 제일 처음 어떤 값을 넣어 주었느냐에 따라 성능은 크게 달라질 수 있습니다. 가장 많이 사용되는 초기화가 필요한 변수는 weight(가중치)와 bias(편향치)입니다. 딥러닝에 대해서도 잘 모르는 만큼, 어떻게 가중치와 편향치를 잡는게 좋은지는 아직도 밝혀지지 않았습니다. 유일하게 알고 있는 사실은, symmetry를 깨는 방향으로 초기화를 … Initialization 계속 읽기

Activation Function

Non-parametric activation functions Activation function(활성함수)는 보통 미리 지정해 주지만, 여기에 훈련을 통해 학습할 수 있는 변수를 덧붙여 동작중에 계속 바뀌는 활성함수를 사용하기도 합니다. 가장 대표적으로 사용하는 변수 없는 활성함수들은 다음과 같습니다. 1. Sigmoid $latex y = \frac{1}{1 + e^{-x}} &bg=ffffff&s=1 $ 2. Tanh $latex y = tanh(x) &bg=ffffff&s=1 $ 3. ReLU $latex y = max(x,0) &bg=ffffff&s=1 $ 4. Leaky … Activation Function 계속 읽기

Generative Adversarial Networks (3)

Measures Generative model(생성모델)의 성능을 판단하고 논문에 싣는 것은 쉽지 않습니다. 아무래도 정확도로 바로 나타낼 수도 없고, 사람마다 느끼는 바도 다 다르기 때문입니다. GAN이 만든 이미지가 '얼마나' 정확한지에 대한 이야기를 하기 위해서는 그에 맞는 측정 방법(measure, criteria)이 필요합니다. 아무래도 제일 쉽게 사용할 수 있는 방법은 선호도 조사(preference test)입니다. 여러 명의 사람에게 무작위로 이미지를 보여주고 몇 점을 … Generative Adversarial Networks (3) 계속 읽기

Loss & Error

Objective of Learning 머신러닝에서는 목표를 잘 달성했는지를 나타내는 값을 잡습니다. 앞으로는 다음과 같은 단어를 사용할 것입니다. 학습을 통해 직접적으로 줄이고자 하는 값을 손실(loss)이라고 합니다. 학습을 통해 목표를 얼마나 잘(못) 달성했는지를 나타내는 값을 에러(error)라고 합니다. 즉, 손실값을 줄이는 학습을 하면 에러가 줄어들 것이라는 생각을 하고 있습니다. 과적합(overfitting)을 방지하기 위해서 사용하는 방법들은 보통 훈련 데이터의 손실 값을 … Loss & Error 계속 읽기

Gradient Descent & Momentum

Gradient Descent 어떤 함수값을 최대 혹은 최소로 하는 점은 어떻게 찾으면 좋을까요? 일반성을 잃지 않고(without loss of generality), 일단 지금부터는 최소의 경우만 생각을 해 보겠습니다. 우리가 이미 그 함수를 알고 있다면 문제는 너무 쉽지만, 그 함수를 잘 모를 경우, 아니면 알아도 너무 복잡해서 최소가 어딘지 찾을 수 없을 경우는 문제가 됩니다. 이 때 가장 많이 … Gradient Descent & Momentum 계속 읽기

DL Terms & Concepts

What is Deep Learning? 딥러닝(deep learning, DL)은 인공신경망(neural network, NN)과 떼 놓고 생각할 수 없습니다. 딥러닝은  인공신경망을 아주 깊게 연결하고 쌓아올린 구조를 훈련시켜 원하는 동작을 하도록 합니다. 인간의 신경망 구조에서 영감을 받아 만들어진 인공신경망은 실제 신경과는 그리 닮아 있지 않지만, 몇 가지 핵심 아이디어를 공유하고 있습니다. 인간은 세상을 인식할 때 구체적인 상을 받아 머릿속에서 추상적인 상으로 … DL Terms & Concepts 계속 읽기

Generative Adversarial Networks (2)

Laplacian GAN 라플라시안(Laplacian) GAN, 줄여서 LAPGAN은 이미지의 크기를 다르게 하며 서로 다른 정보를 모아 더 나은 이미지를 생성하는 모델입니다. LAPGAN을 이해하기 위해서는 먼저 라플라시안 피라미드(Laplacian pyramid)에 대해 알아야 합니다. 인간은 32x32이미지를 볼 때와, 이 이미지 크기를 반으로 줄여 16x16을 볼 때 다른 특징에 집중한다는 연구가 있습니다. 16x16이 되면 그만큼 해상도가 떨어지게 되고, 인간이 보는 관점이 … Generative Adversarial Networks (2) 계속 읽기