Art of ML in week 3 of couresra

코세라 구글 머신러닝 클라우드 강의 3주차 내용을 정리한 포스팅입니다. 3주차 내용은 feature engineering으로 인한 차원수 증가에 따른 정규화 방법과 학습률, 배치 사이즈,하이퍼 파라미터 튜닝 등의 내용이 있는 Art of ML이 첫번째가 되겠습니다.

Objectives of Week 3

  • The Art of ML
  • Hyperparameter Tuning
  • A Pinch of Science
  • The Science of Neural Networks
  • Embedding
  • Custom Estimator

Review of Previous Courses

  • How Google Does Machine Learning
  • Launching intro Machine Learning
  • Intro to TensorFlow
  • Feature Engineering

The Art of ML

1. Regularization

계산 에러시에 모델의 복잡도 요소는 Minimize = loss(Data|Model)+ Complexity(Model) 로 구성되어있습니다.

그러므로 모델 최적화는 데이터의 의존도가 있고 하이퍼파라미터로 튜닝을 해야합니다. 4

  • 정규화 방법은 Parameter Norm Penalties L1 Regularization, L2 Regularization이 있다.

정규화는 모델을 일반화 시키는 방법입니다.

2. L1 & L2 Regularization

정규화를 하는 이유는 불필요하고 복잡한 차원수를 줄여서 학습과 메모리관리의 효율화를 위함입니다. 보통 L1, L2 정규화가 있고 다음과 같은 특징이 있습니다.

  • L1 정규화는 가중치에 절댓값을 페널티로 주어지고 L2 정규화는 가중치에 제곱을 하여 페널티를 주는 방법이라고 합니다.
  • 이 둘은 서로 다른 미분계수로 미분을 합니다. L1의 미분계수는 K(가중치와 무관한 값을 갖는 상수)이고, L2의 미분계수는 2*가중치라고 합니다 구글 머신러닝 스터디 잼 사이트 가보시면 더욱 자세한 내용을 확인할 수 있습니다. Link-Regularization 4 4

    구글 머신러닝 스터디를 보면 L2는 0에 가까워지기는 하지만 0이 되지 않기 때문에 차원수를 확실히 줄일 수 없다라고 하여 L1 정규화의 성능이 낫다라고 합니다

  • 앞서 설명하였듯이 L1과 L2는 서로 다른 미분계수를 갖고 있습니다. 아래와 같은 식을 갖고 있는데 가중치와 무관한 미분계수가 정규화하는데 좋다고 합니다. 아래는 L2 정규화식입니다. 4

  • 구글 플레이그라운드를 통해 L1, L2 정규화 실험을 진행해보았습니다. 5 6

위 그림과 같이 정규화하는 것에 따라 테스트 손실에서 차이가 있다는 것을 알 수 있었습니다. 구글 스터디의 내용을 보면

  • L2에서 L1으로 정규화 전환하면 테스트 손실과, 학습 손실의 델타가 대폭 줄어든다고 합니다.
  • L2에서 L1으로 정규화 전환시 학습된 모든 가중치를 완화한다고 합니다.
  • 하지만 L1 정규화율을 높이면 일반적으로 학습된 가중치가 완화되지만, 정규화율이 지나치게 높아지면 모델이 수렴할 수 없고 손실도 높아진다고 하여 강의에선 0.1~0.3사이의 정규화율을 적용했다고 합니다.

Occam’s Razor

강의내용중에 오컴의 면도날이라는 말을 하여서 무슨 내용인지 좀 찾아보았습니다

오컴의 면도날(Occam’s Razor)은 흔히 ‘경제성의 원리(Princeple of economy), 검약의 원리 또는 단순성의 원리라고도 한다.

  • 많은 것들을 필요없이 가정해서는 안된다.
  • 보다 적은 수의 논리로 설명이 가능한 경우, 많은 수의 논리를 세우지 말라. 어떤 현상을 설명할 때 불필요한 가정을 해서는 안된다는 이론 다시 설명하면 ‘같은 현상을 설명하는 두 개의 주장이 있다면, 간단한 쪽을 선택하라’라는 뜻이라고 합니다.

3. Learning Rate and Batch Size

학습률과 배치 사이즈는 데이터를 학습하는 모델내의 과정을 조정하는 것이 아닌 데이터 자체를 줄여서 학습 효율화를 이루게 하는 방법이라고 할 수 있다.

  • 학습률을 너무 작게하면 학습시간이 오래걸리고 너무 크게하면 오버슈팅(발산)을 하게됩니다. 4
  • 배치사이즈는 너무 작게하면 발산(오버슈팅)하게 되고 너무 크게하면 학습시간이 오래걸리게 됩니다. 4

정규화 효과

4

  • 강의에서 정규화는 가중치 값을 기반으로 모델 복잡도에 대한 방법을 제공해준다고하면서 책을 알바벳순으로 정리하는 꼴이 높은 상관관계를 갖게 한다고 합니다.

4. Optimization

  1. Optimization 종류
    1. GradientDescent
    2. Momentum
    3. AdaGrad
    4. AdaDelta
    5. Adam

4

위 그림과 같이 학습률과 배치사이즈를 최적화해주는 Optimization이 있고요 Adam, Ftrl이 DNN과 Linear Models에서 좋다고 합니다. 저는 그림과 예시가 있는 블로그를 보고 Optimization을 주로 Adam으로 사용하고 학습을 하고 있습니다. 아래 링크 참고하시면 도움이 많이 되실겁니다. Link-Optimization

5. Hyperparameter Tuning

사용자가 직접 튜닝이 가능한 파라미터를 하이퍼파라미터라고 합니다. 여기서는 그것을 튜닝하는 법에 대해서 알아봅니다. 강의 요약은

  • 파라미터와 하이퍼파라미터의 다른점
  • Simple grid search algorithms
  • 하이퍼 파라미터를 위한 Cloud ML Engine의 장점 으로 나뉘어 진행되었습니다. 13

하이퍼 파라미터에 따른 결과

4 배치사이즈와 학습률에 따라서 학습결과는 매우 많은 차이가 나올 수 있습니다. 좀 더 설명을 더 드리자면 학습률 같은 경우 학습률을 낮은 수치로 튜닝할 경우 Local Minima에 빠져나오지 못하는 경우가 있고요 학습률 수치가 높을 경우 학습결과로 전혀 수렴하지 못하는 경우가 발생하게 됩니다.

모델 파라미터는 너무 다양한 파라미터를 가지고 있습니다. 4 예를 들어 모델 사이즈, hash buckets 수, 임베딩 사이즈 같은 것들이죠 강의에서는 구글 클라우드 서비스로 설명이 되어 있습니다.