본문 바로가기
ML

[핸즈온 머신러닝 정리] 1장. 배치 학습과 온라인 학습

by 찬'story 2021. 6. 26.

앞 포스팅에서 머신러닝을 지도 학습, 비지도 학습, 강화 학습으로 나누어 보았다. 이는 '학습하는 동안의 감독 형태나 정보량'을 기준으로 분류한 것이다.

 

한편, 머신러닝은 '입력 데이터의 스트림(stream)으로부터 점진적으로 학습할 수 있는가?'에 따라 학습 방법을 크게 3가지로 나뉜다.

 

  • 배치 학습(Batch Learning)
  • 온라인 학습(Online Learning)

 

배치 학습

배치 학습에서는 시스템이 점진적으로 학습할 수 없으며, 가용한 데이터를 모두 사용해 훈련시켜야 한다. 먼저 시스템을 훈련시키고 그런 다음 제품 시스템에 적용하면 더 이상의 학습 없이 실행되게 때문에 학습한 것을 단지 적용만 하게 된다. 일반적으로 이 방식은 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행한다. 그래서 '오프라인 학습(Offline learning)'이라고 부르기도 한다.

 

배치 학습 시스템이 새로운 데이터에 대해 학습하기 위해서는 새로운 데이터와 이전 데이터를 모두 포함한 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련해야 된다. 그 후 이전 시스템을 중지시키고 새 시스템으로 교체한다.

 

머신러닝의 경우 시스템을 훈련, 평가, 론칭하는 전체 과정이 쉽게 자동화될 수 있기 때문에 이러한 배치 학습 시스템에도 적응이 가능하다. 데이터를 업데이트하고 시스템의 새 버전을 필요한 만큼 자주 훈련시켜야 할 것이다.

 

그러나 주기적으로 전체 데이터셋을 사용해 훈련을 시켜줘야 하며, 훈련하는 데 몇 시간이 소요될 지 모른다. 또한 대량의 데이터는 큰 비용을 발생시킬 수 있으며 아주 많은 데이터 양은 배치 학습 알고리즘 사용을 불가능하게 만들 수 있다.

 

이런 경우 점진적으로 학습할 수 있는 알고리즘을 사용하는 것이 옳다.

 

 

온라인 학습

온라인 학습은 데이터를 순차적으로 한 개씩 또는 미니배치라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다. 매 학습 단계가 빠르고 비용이 적게 들기 때문에 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있다.

 

론칭은 훈련된 알고리즘을 공개적으로 오픈한다는 의미이다.

 

온라인 학습은 배치 학습과는 달리, 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템에 적합하다. 온라인 학습 시스템이 새로운 데이터 샘플을 학습하면 학습이 끝난 데이터는 더는 필요하지 않으므로 버려도 무관하다. 이는 많은 공간의 절약으로 이어진다.

 

컴퓨터 한 대의 메인 메모리에 들어갈 수 없는 아주 큰 데이터셋을 학습하는 시스템에도 온라인 학습 알고리즘을 사용할 수 있다. 이를 외부 메모리 학습이라고 한다. 알고리즘이 데이터 일부를 읽어 들이고 훈련 단계를 수행하는데, 전체 데이터가 모두 적용될 때까지 이 과정을 반복한다.

 

*주의해야할 점은 외부 메모리 학습은 오프라인에서 진행된다는 것이다. 온라인 학습이라고 해서 무조건적으로 온라인에서 진행되는 것은 아니다. 온라인 학습을 점진적 학습으로 생각하는 것이 이해하기 좋을 것이다.

 

  • 학습률

온라인 학습 시스템에서 중요한 파라미터중 하나는 학습률이다. 학습률이란 변화하는 데이터에 얼마나 빠르게 적응할 것인가를 나타낸 것이다. 학습률을 높게 하면 시스템이 데이터에 빠르게 적응하지만, 예전 데이터를 금방 잊어버릴 것이다. 반대로 학습률을 낮게 하면 상대적으로 더 느리게 학습된다. 하지만 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감해진다.

 

  • 온라인 학습의 문제점

온라읜 학습의 가장 큰 문제점은 시스템에 나쁜 데이터가 주입되었을 떄 시스템 성능이 점진적으로 감소한다는 것이다. 이러한 위험을 줄이기 위해서는 시스템을 면밀히 모니터링하고 성능 감소가 감지되면 즉각적으로 학습을 중지시켜야 할 것이다. 입력 데이터를 모니터링해서 비정상 데이터를 잡아내는 것도 하나의 해결책이 될 수 있다.