본문 바로가기
공부/인공지능

[고찰] mini batch

by 죠옹 2017. 5. 22.

뉴럴 네트워크에서 퍼셉트론간 연결 가중치를 재조정하기 위한 방법으로 역전파 알고리즘이 사용된다.


오차함수를 설정하여 각 연결간의 가중치가 오차에 얼마나 영향을 미치는지를 편미분을 통해 계산하여, 그만큼씩 재조정해 나가는 경사하강법을 이용한 알고리즘이다. 


이 과정은 각 퍼셉트론간의 연결이 적합해질 때까지 진행되게 되는데, 이과정을 트레이닝(지도) 라고 하고, 이때 사용되는 데이터를 트레이닝 데이터 라고 한다.


갖고 있는 트레이닝 데이터를 전부 이용하여 경사하강법을 적용할 경우, 갖고있는 데이터에서 오차를 최소한으로 줄일 수 있는 방향으로 연결의 가중치들이 재조정 되게 되는데, 이는 두가지 문제가 있다.


1) 계산부하가 크다. 

(특히, Input값이 많을 수록. 예: 그림파일의 경우 [픽셀 값 만큼의 배열 * 트레이닝 데이터 개수]를 곱한 배열을 지도 1회에 기억/계산 하여야 한다.)


2) 극소값에 빠져버리는 경우가 생긴다.

(최소값이 아닌 극소값에 빠지는 경우, 편미분값이 0에 가깝게 되므로, 극소값에서 탈출할 수 없게된다.)


 이를 해결하기 위해 아이러니하게도 1회 트레이닝 시 트레이닝 데이터를 덜 이용하는 방법을 사용하게 되는데, 한번에 일부분을 이용하고, 다음번에 나머지 일부분을 이용하고, 이런식으로 계속 반복하여, 최소값에 다가가는 방법이 되겠다.

 이 방법을 통해서 위의 두가지 문제점을 어느정도 해결할 수 있게되는데, 계산부하를 줄일 수 있으며, 극소값에 빠져버리는 경우, 일부 데이터들이 어떻게 선택되어지는가에 따라 어떤 방향으로 최소값을 향하게 되는지 달라지기 때문에, 트레이닝을 계속해서 진행하면, 우연히 극소값을 벗어나올 수 있는 경우가 생길 수 있게 된다는 뜻이다.


 즉, 불완전한 데이터들, 불충분한 데이터들을 통해, 앞으로 나아갈 길을 결정하면, 조금 돌아갈 수 있지만, 더 좋은 답을 찾을 수 있게 된다는 뜻이다.


 사람 사는 세상에 비유해보자면, 


1) 모든걸 종합해 보았을 때, 이쪽길이다! 하고 그길로 가게 되어서 어떤 안정한 상태에 도달하게 되면, 그곳에 머무름

2) 여기저기 귀를 팔랑팔랑 하며, 이쪽인가? 저쪽인가? 하며 길을 찾게되고, 안정한 상태에 도달하여도 가끔씩 들리는 소문에 기웃기웃 하며 또 다른 길로도 가보고 하게 되면, 더 안정된 결과를 얻을 수 있는 가능성이 생긴다.


라는 것이다.


 아이러니하다! 더 많은 정보가 있으면, 더 좋을 것 같은 느낌이 있었는데, 더 빠르긴 하지만, 최적의 값을 찾아내지 못하는 경우가 생긴다는 것이다.

 마치 통로 입구에서 어떤 정보를 출구쪽으로 전달하려고 할 떄, 레이저와 소리를 전달 수단으로 사용하는 것과 같은 느낌이다. 레이저는 더 빠르나, 꺾인길을 만나게되면, 출구까지 정보를 전달할 수 없게된다. 소리는 레이저보다 느리지만, 길이 꺾여도, 출구까지 데이터를 전달 할 수 있다.(물론 통로가 길어, 에너지가 소모되면 안되겠다.)


 미니배치는 더 모호한 방법을 통해, 확률을 늘리는 방식이므로, 확률적 경사하강법 이라고도 불리어진다고 한다. 

 책에는 미니배치의 문제점도 지적되어있다.

 "1회 지도에 사용되는 미니배치의 사이즈가 너무 적으면, 최소치로 향하는 방향이 제대로 잡히지 않고, 하강속도가 느려, 시간이 오래걸리게 된다. 해결해야할 문제에 따라, 시행착오를 겪으며, 최적의 값을 찾아갈 필요가 있다..."

 는 것이다. 참 미니배치에 걸맞은 방법이겠다. 책 발간년도가 2016년이고, 초심자를 위한 책이므로, 방법적인 기술을 생략하였을 수도 있겠다.


 다음에 미니배치에 대해 글을 쓰게된다면, 미니배치 선정방법에 대해 조사하여, 작성해보면 좋겠다.

 

반응형

댓글