NLP/AI/Statistics

[cs231n] Note 6: Neural Network-2 (Data Processing) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 6: Neural Network-2 (Data Processing)

Danbi Cho 2021. 3. 24. 20:02

Neural network 2 에서는 데이터를 처리하고 모델을 설계하는 방법에 대하여 설명한다. 

 

1. Data Processing

2. Weight Initialization

3. Batch Normalization

4. Regularization

 

위의 순서대로 정리할 예정이다. 

 

Data Processing은 말 그대로 데이터를 전처리하는 과정으로 볼 수 있다.

 

어떤 task를 수행하기 위한 데이터가 있을 때,

 

데이터 간의 분포가 다를 수도 있고 데이터 내의 이상치들이 많이 존재할 수 있다. 

 

이럴 경우, 데이터 간의 차이로 인해 학습이 제대로 수행되지 않거나 이상치에 의해 학습에 노이즈가 발생하는 문제가 발생한다. 

 

이를 처리해주기 위해 데이터를 전처리함으로써 모델이 데이터에 대한 학습을 충분히할 수 있도록 하는 것이 중요하다. 

 

 

가장 기본적인 방법은 mean substraction이다. 

 

전체 데이터을 $X = (x_1, x_2, .., x_n)$이라고 할 때, 

 

$X$의 평균을 각 데이터에서 빼주는 방식이다. 

 

즉, $x_1 = x_1 - mean(X)$와 같이 수행된다. 

 

mean substraction 방법은 평균을 빼주기 때문에 zero-centered 되어 데이터를 모아주는 효과가 있다.

 

다만, zero-centered 방법은 데이터의 분포를 표준화시키지는 못한다. 

 

그렇기 때문에 통계적으로 많이 사용되는 표준화 (normalization) 방식이 수행되기도 하다.

 

normalization은 데이터의 차원을 동일한 기준으로 정규화시키는 작업을 의미한다. 

 

normalization을 위한 방법으로 2가지가 있다. 

 

첫 번째로, 각 데이터를 표준편차로 나누어주는 방법이다.

 

이 방법은 데이터가 zero-centered 되어 있을 때 수행된다. 

 

즉, 각 데이터에 대하여 평균을 빼고 표준편차로 나누어 주는 Z 정규화 방식과 같다. 

 

두 번째는 전체 데이터의 범위를 [-1, 1]로 축소시키는 방법이다. 

 

 

데이터를 처리하는 방법으로 PCA와 Whitening 방법이 있다.

 

이 방법들 역시 데이터를 중심으로 처리해주는 역할을 수행하여 SVD를 통한 공분산 행렬의 연산을 활용한다. 

 

PCA (Principal Component Analysis)는 데이터의 차원을 축소시켜 벡터를 변환시켜주며

 

whitening은 각 데이터를 고유값으로 나누어 정규화시키는 작업이다. 

 

#. 사실 PCA와 whitening 방법은 convoluational network에서는 잘 사용되지 않는다. 

 

참고) https://cs231n.github.io/neural-networks-2/#datapre

 

CS231n Convolutional Neural Networks for Visual Recognition

Table of Contents: Setting up the data and the model In the previous section we introduced a model of a Neuron, which computes a dot product following a non-linearity, and Neural Networks that arrange neurons into layers. Together, these choices define the

cs231n.github.io

 

Comments