본문 바로가기

카테고리 없음

머신러닝 일반 - 질의응답1

1. Feature scaling이란 무엇인가?

데이터가 주어졌을 때 각 Feature마다 범위가 다를 수 있다. 예를 들면 아이스크림 판매량을 예측한다고 할 때 설명변수로 온도, 광고비가 주어진다고 하면 온도는 기껏해야 수십 단위로 변하는 반면 광고비는 수억단위로 변한다. 이렇게 되면 온도의 영향은 거의 반영할 수 없을 것이다. 따라서 모든 Feature의 영향이 골고루 반영될 수 있도록 비슷한 범위로 맞춰 주는 것을 Feature scaling이라고 한다. Min-Max scaling, Normal scaling, Robust scaling 등 여러 가지 Scaling 방법을 활용할 수 있다.

 

2. Gradient descent에 대해 설명하고, Gradient descent가 잘 동작하기 위해 주의해야 할 점을 설명하여라.

주어진 데이터를 적합하는 모델을 설정하고, 모델이 얼마나 잘 적합되었는지를 판단하기 위해 Cost function(J)을 설정한다. Cost function이 작을 수록 모델이 잘 적합되었다고 할 수 있으며, Cost function을 최소화하는 모델의 Parameter들을 찾으면 된다. 이 때 사용할 수 있는 방법이 gradient descent이다. Inital guess로부터 Derivatives의 반대 방향으로 조금씩 가다보면 최소값에 도달하게 되는 원리이다. 수식으로 나타내면 아래와 같으며 파라미터들을 수렴할때까지 계속 업데이트해나가는 Iterative method이다.

$$ Cost function J = f(w_1, w_2, ...w_n, x) $$

$$ w_1 \leftarrow w_1 -\lambda \frac{\partial J}{\partial w_1} $$

...

$$ w_n \leftarrow w_n -\lambda \frac{\partial J}{\partial w_n} $$ 

 

Neural network에서 각 Weight의 Cost function(J)를 찾기 위해서는 Chain rule이 이용된다. Chain rule은 수식으로 나타내면 아래와 같다.

$$ \frac{\partial J}{\partial x} = \frac{\partial y}{\partial x} \frac{\partial J}{\partial y} $$

Network의 뒤쪽 Layer에 있는 Weight에 대한 미분값을 먼저 구하면 Chain rule을 이용하여 앞쪽 Layer의 Weight에 대한 미분값을 구하는 식으로 활용된다.

 

Gradient가 잘 동작하기 위해서는 learning rate을 잘 설정하는 것이 중요하다. 이는 위에서 Lambda로 정의되어 있는 값으로써 각 Iteration마다 Weight update를 얼마나 해줄 것이냐를 결정한다. Learning rate이 너무 작으면 수렴속도가 늦고, 반대로 너무 크면 정밀도가 떨어져 최소값으로 수렴이 잘 안될 수 있다. 일반적으로, Training 초반에는 큰 learning rate를 사용하여 수렴이 빠르게 되도록 하고 후반으로 갈수록 Learning rate를 줄여 수렴값으로 더 가까이 가도록 한다.

 

3. Dimension reduction을 위한 방법론들을 제시하고 장/단점을 설명하라.

PCA(Principal Component Analysis)

  • 해당 Data에서 Eigen value decomposition을 이용하여 가장 중요한 축을 구하는 방법이다. 이 중 상위 k개의 Dimension을 선택하여 Dimension reduction이 가능하다. 
    • 장점: Indenpendent variable 사이의 Correlation을 없애주며, Noise를 제거할 수 있다. 데이터의 변동성이 큰 방향으로 축을 설정해서 축소시킨다. 클래스간 분산의 차이가 있을 경우 Classification에 용이하다.
    • 단점: 새롭게 선택된 Dimension이 원래 변수와는 다르고 여러 변수의 조합이므로 해석이 쉽지 않다.

Random forest

  • Bagging 방법론의 하나이며 Dataset을 bootstrap함과 동시에 변수의 일부만을 이용하여 Decision tree를 생성한 후 이에 대한 Voting을 하는 방식으로 최종 결과를 도출한다.
    • 장점: Decision tree 형태의 결과가 나오므로 이해하기 쉽다. (원본 데이터에서 어떤 Feature가 중요한지 등등)
    • 단점: PCA에 비해 Reduction 성능이 좋지 않다.