배치학습

ML을 공부하던 도중 미니 배치 경사 하강법 / 배치 경사 하강법과 같은 단어를 듣게 되었다. 배치라는 단어를 많이 듣긴 했는데... 무슨 뜻일까?

일단 배치라는 단어에 대해 검색을 해 보았다. 배치 학습에 대해서 알기 위해서 배치라는 단어 뜻은 알아야 할 것 아닌가? 배치는 일괄이라는 뜻을 가진다고 한다. 그렇다면 배치 학습은 일괄로 학습하는 것인가?

맞다. 배치 학습에서는 시스템이 점진적으로 학습할 수 없다고 한다. 데이터를 총 동원해서 훈련을 진행해야 한다고 한다. 데이터를 한번에 쓸 때 문제점에는 다음과 같은 것들이 있다. 시간과 자원을 많이 소모해야 한다는 점과 오프라인에서 수행해야 한다는 점 그리고 메모리를 많이 쓴다는 점이다.

우리가 처음 ML을 배우게 된다면 이 배치 학습을 진행하게 될 것이다. 배치 학습이 간단하고 잘 작동하기 때문이다.

하지만 데이터 셋의 크기가 점점 커질 수록 배치 학습에 드는 시간은 기하급수적으로 커진다. 또 빠르게 변하는 데이터에 적응해야 한다면 이와 같은 방법을 썼을 때 힘들어진다.

즉, 배치 학습은 데이터의 양이 많아지고 실시간으로 데이터를 가져와야 하는 상황에서 쓰기 힘들다는 것이다.

온라인 학습 (점진적 학습)

그렇다면 배치 학습의 문제를 어떻게 해결 할 수 있을까?
한번 생각을 해보자 배치 학습에서 문제점은 2가지 였다. 데이터의 양이 많아지면 쓰기 힘들다는 점과 실시간으로 데이터를 다루기 힘들다는 점이다.
온라인 학습은 이러한 문제들을 해결 하기 위해 기존에 한번에 다루던 데이터를 미니 배치로 쪼갠다. 미니 배치라고 부르는 작은 묶음 단위로 시스템을 훈련시키는 것이다. 매 학습에 배치 학습 보다 적은 비용이 들어가게 된다. 또 시스템은 이 작은 데이터가 도착하는 대로 즉시 학습 할 수 있다고 한다.

때문에 온라인 학습은 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템에 적합합니다. 컴퓨팅 자원이 제한 된 경우에도 좋은 선택입니다. 학습이 끝난 데이터를 버리면 되기 때문에 많은 공간을 절약할 수 있습니다. -핸즈온 머신러닝 인용-

온라인 학습 시스템에서 중요한 파라미터 중 하나는 학습률이라고 하는 것이라고 한다. 이 학습률이 높으면 내가 새로 들여온 데이터를 중요하게 인식하고 이전에 배운 데이터를 잊어버린다고 한다. 반대로 학습률이 낮으면 새로운 데이터를 덜 중요하게 여기는 것이다. 하지만 온라인 학습의 문제는 나쁜 데이터가 주입되면 시스템 성능이 점점 낮아진다는 것이다.

그 예시로, 트위터에서 만든 챗 봇이 생각난다. 자동으로 트윗을 하는 봇이었는데 이 봇도 아마 이 온라인 학습을 사용했을 것이다. 때문에 트위터에 이 봇을 자극적으로 학습시키기 위한 사람들이 생겨났고 봇은 결국 자극적인 말을 하도록 학습이 되게 되었다고 한다.

테이가 공개된 뒤로 트위터에 테이의 계정을 태그해서 자극적인 발언을 가르치려는 움직임들이 생겨났다. 특히 4chan의 /pol/ 사용자들은 트롤링을 목적으로 테이에게 인종 차별적인 용어, 성 차별 발언, 자극적인 정치적 발언 따위를 말하도록 유도했다. '따라해 봐(repeat after me)'라는 말을 먼저 학습시킨 후 부적절한 발언을 그대로 따라하게 만들어 해당 어휘를 학습하도록 유도한 것. -나무위키 인용-

이러한 문제점 때문에 시스템을 계속해서 입력 데이터를 모니터링 해야 한다고 한다. 이러한 비정상적인 이상치들을 잡아내는 것도 필요한 것이다.

복습

  1. 배치 학습은 일괄적을 데이터를 학습 시키는 것이다. 쉽고 간단하게 쓰고 나도 많이 쓰는 방식이다.

  2. 하지만 데이터가 많아지고 새로운 데이터를 계속해서 추가해주어야 하는 상황에서는 단점이 들어난다.

  3. 온라인 학습은 메모리를 감당할 수 없거나 계속해서 데이터를 학습해야 하는 경우에 유용하다.

  4. 하지만 이 입력 데이터에 이상치가 있을 경우 혹은 계속해서 이상치가 들어올 경우에는 모델의 성능이 떨어질 수 있다.

  5. 때문에 이를 모니터링 하거나 이상치를 잡아내는 알고리즘이 필요하다.

profile
안알랴줌

0개의 댓글