kwan's note

머신러닝 성능을 높이는 방법 본문

ML and AI/Machine learning - Andrew Ng

머신러닝 성능을 높이는 방법

kwan's note 2021. 2. 9. 02:04
반응형

출처: machine learning by andrew ng, stanford cousera lecture

수강일시: 2021.02.08

 

 

마지막으로 머신러닝 성능을 높이기 위한 방법을 생각해 보도록 하겠습니다.

데이터의 숫자가 정해진 경우의 처리 방법에대해서는 (bias 와 variance를 조절하는 방법, 파라미터 람다를 조절하여 regularization하는 방법, 데이터가 많은경우 SGD, mini batch 혹은 online learning 등) 이미 전 수업에서 다루었습니다.

 

그렇다면 이제 데이터의 숫자를 어떻게 늘릴수 있는지 먼저 생각해 보도록 하겠습니다.

 

가지고 있는 데이터셋을 글자의 이미지라고 해 봅시다.

이때 가지고 있는 데이터를 변형한다면 또 다른 데이터셋을 만들 수 있게됩니다.

가령 밝기를변화시키고 옆으로 늘린다거나 옆에서 본것 처럼 기울이는것 등의 방법을 통해 데이터를 변형하여 새로운 인공 데이터를 만들 수 있게됩니다.

아래 그림에서 왼쪽은 오리지널 데이터이고 오른쪽은 이를 이용해 만든 인공 데이터 입니다.

적절한 가공 과정을 거쳤다면 이러한 인공 데이터도 학습의 성능을 높이는데 충분히 쓰일 수 있습니다.

이런방법으로 기존의 데이터를 여러개의 새로운 데이터로 만들 수 있습니다.

아래는 이러한 변형의 예 입니다.

하지만 랜덤 가우시안 노이즈같은 변형은 성능의 변화가 거의 없습니다.

 

하지만 이런 데이터 처리로 인한 습득에 앞서 일반적으로 데이터가 더 필요한지에 대한 확신을갖는것이 중요합니다. low bias classifier인지 확인해야하고 그렇지 않다면 특성을 늘려 과대적합되도록 만든 후 데이터를 늘리도록 합니다.

그리고 위와같은 데이터 처리 전에 그냥 노가다로 데이터를 얻는데 필요한 노력을 생각해 보는것도 중요합니다.

노가다로 쉽게 데이터를 더 얻을 수 있음에도 모델의 성능을 높이는데만 더 많은 시간을 쏟을 수 도 있습니다.

 

다음 주제로는 머신러닝의 성능을 어떻게 높이느냐 입니다.

정확도가 일정부분 이상 올라가지 않는다면 파이프라인의 어디에서 이러한 문제가 발생하는지 살펴볼 필요가 있습니다.

이중 ceiling analysis는 어느 부분까지 사람이 직접 데이터를 100%정확도로 만드는것 입니다.

그 부분까지 100%인데이터로 돌려보고 그 다음까지 100%로 정제해서 돌려보고 정확도를 확인하다보면 데이터를 100%로 만들어서 돌릴때와 그렇지 않을때의 차이가 큰 부분에서 문제가 발생하고 있는것 입니다.

반응형