본문 바로가기

머신러닝 & 텐서플로 & 파이썬

데이타 프로세싱(data processing)

반응형

머신러닝에서 경사하강법(gradient decent )이라는 변화량이 최소인 곳으로 이동하면서 트레이팅을 하는 기법이 있는데,

이때 하강 거리? 속도를 조절하기 위해서 learning rate 이라는 것을 사용하게 됩니다.

그런데 이 learning rate이 너무 크게 잡히게 되면, 변화량을 측정할 수 있는 값보다 커지게 되어 원하지 않는 방향으로 벗어나게 됩니다.


그래서 learning rate은 작은 값(적당히 .. 작은... 얼마로 잡아야 하는지는 데이타에 따라 다름)으로 하여야 합니다.



그런데 learning rate과 관련해서 또다른 주의 사항이 있는데,입력된 데이타가 한 방향으로 치우친 경우입니다.

치우쳤다는 표현은, 

예를 들면 2차원 data가 있는 경우에, 이 데이타들이 x축이나 y축 또는 어떤 직선형태로 길게 늘어져 있는 형태로 이뤄져 있는 경우들입니다.


learning rate이 어떤 축으로는 적당하지만 어떤 축으로는 적당하지 않고 너무 큰 값이 되거나 작은 값이 될 수 있습니다.


이경우 정상적인 트레이닝이 이뤄지지 않을 가능성이 생기는 것이죠.


이를 위해 data를 보정이 필요하게 됩니다.



그런 기법중 몇가지를 예로 들어보겠습니다.



중심축 이동 : data가 특정 축에 편중되어있을때, 원점을 중심으로 이동하는 벙법

normalize :  넓게 펼쳐져 있는 값들을 특정 구간으로 비율 변화를 시키는 방법


텐서플로우의 MinMaxScaler : 양 축의 값들을 균등하게 배치하는 방법.