Study/Real-Time Machine Learning

1. Intro: Real-time 기계 학습

zeah 2025. 3. 6. 09:54
반응형

이 장에서는 다음을 다룹니다:

 

  • 실시간 데이터란 무엇인가?  
  • 오프라인 학습과 온라인 학습의 차이  
  • 온라인 학습의 일반적인 사용 사례  

실시간 머신러닝(때때로 온라인 학습이라고도 함)은 실시간 데이터를 사용하여 환경의 변화에 적응하는 예측 시스템을 구축하는 접근 방식이다. 이는 역사적인 데이터 세트를 신중하게 선별하여 학습과 평가를 수행하는 배치 방식의 머신러닝(또는 오프라인 학습)과는 다르다. 오프라인 학습의 근본적인 가정은 모델이 운영되는 동안 입력 특성에 지속되는 어떤 참된 값이 있다는 것이다. 실제로 데이터의 통계적 속성, 예를 들어 확률 분포나 특징 간의 관계는 시간이 지남에 따라 변경될 가능성이 크다. 이러한 변화는 데이터 드리프트(data drift)로 알려져 있으며, 머신러닝 모델의 정확성을 감소시킬 수 있는데, 이는 원래 다른 통계적 특성을 가진 데이터로 학습되었기 때문이다. 오프라인 모델은 이러한 정확도 감소를 피하기 위해 정기적으로 재학습되어야 한다. 그러나 이러한 모델을 재학습하는 것은 대규모 데이터 세트를 여러 번 반복 처리해야 하기 때문에 비용이 많이 들고 시간이 많이 소요되기도 한다. 이 모델들이 운영 환경에 배포될 때쯤에는 이미 더 이상 사실이 아닌 데이터 가정에 기반하여 작동할 수 있다. 즉, 오프라인 모델은 실제 환경에서 발생하는 데이터 변화를 적응할 수 없다.

 

실시간 기계 학습 모델은 환경에서 데이터를 지속적으로 수신하여 즉석에서 배우도록 설계되어 있습니다. 대용량 데이터셋에 대해 훈련되는 대신, 실시간 기계 학습 모델은 새로운 데이터가 제공됨에 따라 점진적으로 학습됩니다. 온라인 학습의 개념은 새로운 것이 아니지만, 데이터 중심의 현대 조직에게 점점 더 중요한 의미를 가집니다. 세계가 점점 더 실시간으로 변하면서, 사기 탐지 및 사용자 추천과 같은 애플리케이션은 빠르게 변화하는 데이터 트렌드에 대응하기 위해 더 많은 실시간 학습 기술을 통합할 필요가 있습니다.

이 책의 목표는 실용적인 실시간 기계 학습 시스템을 구축하기 위한 논리와 도구를 제공하는 것입니다. 우리는 Python을 사용하여 처음부터 몇 가지 개념 증명 온라인 학습 시스템을 구축함으로써 이를 달성할 것입니다. 이 책의 모든 예시는 단일 기기에서 실행할 수 있습니다.

이 장에서는 기계 학습과 관련하여 "실시간" 데이터가 무엇을 의미하는지 탐구하고, 오프라인 학습과 온라인 학습을 비교하며, 온라인 학습의 가장 일반적인 사용 사례를 소개할 것입니다.


1.1 실시간 데이터란 무엇인가?


일반적인 하루 동안 소비하는 모든 데이터를 잠시 생각해 보세요. 일반적인 하루는 소셜 미디어에서 게시물을 스크롤하고, 이메일을 확인하며, 통근 중에 뉴스를 듣고, 쇼핑하면서 대화의 일부를 듣거나, 스트리밍 서비스를 통해 TV 프로그램을 시청하는 것일 수 있습니다. 이 중에서 어떤 데이터가 역사적이고 어떤 데이터가 진정한 실시간일까요? 차이를 정의하는 한 가지 방법은 지연에 대한 인식입니다. 받은 이메일은 수신자가 읽을 기회가 있을 때까지 "받은 편지함"에 저장됩니다. 그래서 대부분의 경우 이들은 역사적인 데이터의 예입니다. 반면, 화상 통화는 낮은 대기 시간의 상호작용이 필요하므로 일반적으로 실시간으로 간주합니다.

실제로, 화상 회의 및 기타 네트워크 지원 애플리케이션은 수 밀리초 단위의 데이터 전송 및 처리 지연을 흔히 포함합니다. 지구의 반대편 간 광섬유 전송의 최소 지연 한계는 L = 거리 / 속도 = 20,000 km / 205,000 km/s = 약 98 ms입니다. 미니애폴리스, MN에서 시드니, 호주에 있는 친구에게 메시지를 보내려면 14,480 km / 205,000 km/s = 약 72 ms가 걸리며, 다시 메시지를 받는 데 또 다른 72 ms가 걸립니다. 실질적으로는 지역 서버 또는 콘텐츠 전송 네트워크(CDN)를 사용하여 이를 완화합니다. 이러한 전략은 일관성을 대가로 데이터 복제 양을 일반적으로 증가시킵니다. 실시간 애플리케이션을 설계할 때 엔지니어는 목표 사용 사례에 얼마나 많은 지연이 허용되는지를 결정해야 합니다.

모든 실시간 애플리케이션에는 0이 아닌 지연이 존재하기 때문에, 생산 환경에서의 진정한 실시간 데이터는 달성 불가능한 이상입니다. 이 책에서는 실시간 데이터를 움직이는 데이터 (data in motion)로 정의합니다. 이는 데이터가 여전히 수신자에게 유용한 한 몇 초 또는 몇 분이 지난 데이터도 실시간으로 간주될 수 있음을 의미합니다. 사용 사례에 따라 수신자는 여러 엔티티 중 하나일 수 있습니다.

 

  • 데이터를 변환하는 스트림 프로세서
  • 데이터 인스턴스를 받아 예측을 생성하는 추론 엔진
  • 사람들을 위해 데이터를 렌더링하는 라이브 대시보드

이 정의에 대한 중요한 부가 요소는 모든 데이터가 실시간 데이터로 시작된다는 것이다. 파일 시스템, 데이터 레이크, 또는 데이터베이스와 같은 어떤 저장 형태에 저장되어 이후 검색될 때에는 실시간 데이터가 아니게 된다. 본서에서는 이를 데이터 저장 상태 또는 역사적 데이터라고 한다. 실시간 데이터와 역사적 데이터의 주요 차이점은 실시간 데이터가 적시성과 관련된 응용 가치가 있다는 것이다.

다음 그림에 나타나 있는 실시간 응용 프로그램을 고려해 보자. 이메일 서버는 이메일을 수신하고 이를 온라인 스팸 분류 모델을 훈련하는 데 사용한다. 온라인 모델은 이메일이 스팸인지 아닌지를 실시간으로 결정한다. 스팸 이메일은 즉시 삭제되며, 비스팸 이메일은 데이터베이스에 저장된다. 이메일 클라이언트는 수신 이메일을 알림으로 처리하고, 과거 이메일을 데이터베이스에서 검색할 수 있는 능력을 가진다. 역사적 데이터와 실시간 데이터 스트림 모두 이 응용 프로그램에 존재한다. 수신 이메일은 실시간 데이터로 처리되는 동안 데이터베이스에 저장될 때까지 실시간 데이터로 간주된다. 이메일이 데이터베이스에서 로드되면 역사적 데이터로 간주된다.

그림 1.1 실시간 및 역사적 데이터 스트림을 가진 이메일 알림 시스템

요컨대, 역사적 데이터는 모든 데이터가 한 번에 알려지는 오프라인 학습 방법에 사용된다. 실시간 데이터는 새로운 데이터가 사용 가능할 때마다 점진적으로 학습되는 온라인 학습 방법에 사용된다. 이러한 용어는 학습이 어디서 이루어지는지도 설명한다. 오프라인 학습은 개발 또는 스테이징 환경에서 이루어진다. 온라인 학습은 실제 환경에서 직접 이루어진다. 다음 섹션에서는 이 두 가지 접근 방식을 논의할 것이다.

1.2 오프라인 학습

전통적인 기계 학습은 대량의 데이터를 수집하고 모델을 데이터에 맞추기 위한 여러 훈련 단계를 수행하는 것을 포함한다. 이 접근 방식은 오프라인 학습이라고 불리며, 모델 훈련은 생산 환경과 완전히 독립된 환경에서 이루어지며, 역사적 데이터를 사용하여 미래를 모델링한다. 오프라인 기계 학습 주기는 그림 1.2에 나타나 있다.

그림 1.2 모델의 오프라인 학습과 운영 환경에서의 예측

 

오프라인 학습은 데이터 수집 단계로 시작됩니다. 데이터는 하나 이상의 데이터 소스에서 로드되어 지속적인 저장을 위한 형식으로 직렬화됩니다. 오프라인 학습을 위한 데이터는 종종 비구조화된 형태로, 사전에 정의된 스키마가 없습니다. 텍스트는 인터넷과 고유 문서에서 널리 접근 가능하며 PDF 및 HTML과 같은 파일 형식에서 쉽게 추출할 수 있기 때문에 흔한 비구조화 데이터입니다. 머신 러닝을 위해 데이터를 보다 정규화된, 수치 형식으로 변환하기 위한 전처리 단계가 일반적으로 적용됩니다. 예를 들어, 텍스트를 벡터 임베딩(embedding)으로 변환하거나 문자열에서 수치 또는 범주형 값을 구문 분석합니다.

데이터 수집 후에는 출력 레이블과 상관 있는 특징(feature) 집합을 발견하는 것이 목표인 특징 공학 (Featuring Engineering) 단계가 이어집니다. 특징 공학은 반복적인 과정으로, 과학이라기보다는 예술에 가깝습니다. 이는 예측력을 지닌 특징을 식별하기 위해 통계적 및 시각적 분석, 그리고 문제에 대한 직관을 포함합니다.

훈련 단계에서는 데이터셋을 훈련, 테스트, 검증 세트로 구분합니다. 이 세트들은 머신 러닝 모델이 훈련 및 추론에 사용할 수 있도록 동일한 데이터 스키마를 가집니다. 모델에 필요한 데이터 포인트의 수는 모델의 복잡성에 따라 달라집니다. 예를 들어, 선형 모델은 특징과 레이블 간의 선형 관계를 찾으려 하기 때문에 검색 공간은 특징의 수에 직접적으로 의존합니다. 인공 신경망과 같은 더욱 복잡한 모델은 훨씬 더 많은 수의 학습 가능한 파라미터를 가질 수 있습니다. 특징의 수를 증가시키면 모델의 예측 가능성이 향상될 수 있지만, 이는 입력 공간을 충분히 설명하기 위해 요구되는 데이터 포인트의 수도 증가시킵니다. 이를 차원의 저주(curse of dimensionality)라고 부릅니다.

 

기계 학습은 매개변수 p를 최적화하여 훈련 세트에 대한 손실을 최소화하는 것을 목표로 하는 최적화 문제로 정의됩니다. 예측된 출력은 어떤 매개변수 집합에서도 계산할 수 있습니다. 이는 p를 기준으로 총 훈련 손실을 나타내는 손실 함수 L이 정의될 수 있음을 의미합니다. 이는 문제의 목표를 설정하기 때문에 목표 함수라고도 합니다: 손실을 최소화하는 것입니다. 예를 들어, 제곱 오차 손실은 각 개별 예측 오류의 제곱을 더하여 수량화됩니다.



모델의 복잡성과 입력 특징의 수에 따라, 모델은 손실을 최소화하기 위해 조정 가능한 여러 개 또는 수백 개의 매개변수를 가질 수 있습니다. 여러 매개변수를 가진 모델은 매개변수 공간을 효율적으로 탐색할 수 있어야 합니다. 일반적인 방법론은 경사 하강법(gradient descent)으로, 훈련 가능한 매개변수에 대해 손실 벡터(gradient)를 계산하고 벡터의 반대 방향으로 매개변수를 조정하려고 시도합니다. 각 훈련 단계에서 매개변수는 다음 공식을 사용하여 업데이트됩니다.

 

최적화 방법은 모델이 최적의 해에 도달하는 속도나 해를 찾는지에 영향을 미칠 수 있기 때문에 중요한 선택입니다. 현대의 기계 학습 라이브러리 예를 들어, scikit-learn은 주어진 훈련 세트에 대해 다양한 종류의 모델을 훈련하기 위한 유용한 추상화를 제공합니다. 다음은 scikit-learn을 사용하여 고전적인 아이리스 샘플 데이터 세트에 대해 LogisticRegression 모델을 훈련하고, 수치 입력 특징에 기초하여 클래스 라벨을 예측하는 예제를 제공합니다.

 

Listing 1.1 Supervised Offline Learning in Python

 from sklearn import datasets
 from sklearn.metrics import accuracy_score
 from sklearn.linear_model import LogisticRegression
 from sklearn.model_selection import train_test_split
 iris = datasets.load_iris()                                       #A
 X = iris.data                                                     #A
 y = iris.target                                                   #A
 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, 
random_state=42) #A
 model = LogisticRegression(random_state=42).fit(X_train, y_train)    #B
 y_pred = model.predict(X_test)                                    #C
 print(“Predicted values: “, y_pred)                               #C
 print(“True values: “, y_test)                                    #C
 print(“Accuracy: “, accuracy_score(y_test, y_pred)                #C

#A 샘플 iris 데이터셋 로드
#B 훈련 집합에 로지스틱 회귀 모델 훈련
#C 테스트 집합에 대한 모델 평가

 

다음은 이 코드 실행의 결과입니다.  

Predicted values:  [1 0 2 1 1 0 1 2 1 1 2 0 0 0 0 1 2 1 1 2 0 2 0 2 2 2 2 2 0 0]
True values:  [1 0 2 1 1 0 1 2 1 1 2 0 0 0 0 1 2 1 1 2 0 2 0 2 2 2 2 2 0 0]
Accuracy:  1.0


평가 단계는 모델을 스테이징 환경에 로드하고 광범위하게 테스트하는 것을 포함합니다. 이 단계는 머신 러닝 애플리케이션 개발에서 흔한 실패 지점입니다. 모델은 샘플 외 데이터에서 성능이 낮거나 예상치 못하거나 이해 관계자에게 불충분한 결과를 생성할 수 있습니다. 전자는 대개 데이터 문제입니다. 훈련 집합의 높은 분산으로 인해 과적합되거나 낮은 분산으로 인해 부족하게 적합되어 실제 데이터 포인트에 일반화되지 않을 수 있습니다. 후자의 문제는 엔지니어링 팀과 이해 관계자 간의 투명성과 의사소통 부족에서 기인할 수 있습니다.

배포 단계는 모델을 프로덕션으로 올려 최종 사용자가 접근할 수 있게 하는 기술적 과업입니다. 성공적인 배포는 주요 성과 지표나 사용자로부터의 인간 피드백을 수집하는 메커니즘을 포함합니다. 배포는 오프라인 학습 사이클의 끝을 표시합니다. 오프라인 학습 사이클은 반복적인 프로세스라는 점에서 소프트웨어 개발 수명 주기(Software Development Life Cycle ,SDLC) 와 유사합니다. 비즈니스 목표를 따라잡기 위해 모델은 주기적으로 재학습되어야 합니다.

 

오프라인 학습 워크플로는 완전히 동기식으로, 워크플로의 각 단계는 이전 단계가 완료되어야 진행할 수 있다. 예를 들어, 모형 훈련은 모든 훈련 데이터가 수집되기 전까지는 진행될 수 없다. 이는 오프라인 모형이 일반적으로 모든 데이터 포인트에 한 번에 접근할 필요가 있기 때문이다. 이러한 구조는 새로운 모형의 배포 속도를 제한한다. 배포 속도는 또한 모형 훈련 시간에 의해 제한된다. 각 훈련 단계에서 모형은 처음부터 다시 훈련된다. 훈련 시간은 모형의 복잡성과 훈련 데이터 크기에 영향을 받는다. 오프라인 모형의 정확도를 개선하는 방법 중 하나는 훈련 세트 크기를 늘리는 것이므로, 훈련 시간은 일반적으로 각 사이클에서 선형적으로 증가한다.

오프라인 학습은 과거 데이터를 이용해 현재 문제를 해결하려는 조직에게 자연스러운 출발점이지만, 이러한 시스템을 유지하기 위해 지속적인 노력이 필요하다. 기본 데이터 경향이 더 빠르게 변화하는 경우, 훈련된 모형이 관련성을 유지하고 유용하게 만들기 위해 반응형 학습 접근이 필요하다. 다음 섹션에서는 이러한 문제를 해결하기 위해 온라인 학습의 개념을 소개한다.

1.3 온라인 학습  

온라인 학습은 데이터의 급변하는 상태에 대응하는 실시간 학습 접근이다. 오프라인 학습에서처럼 대규모 데이터 집합을 학습하는 대신, 온라인 학습은 미니 배치나 단일 인스턴스의 데이터를 사용하여 점진적으로 학습한다. 앞서 설명한 바와 같이, 오프라인 학습 워크플로는 동기적인 반면, 온라인 학습 워크플로는 비동기적이다. 데이터 수집부터 특징 엔지니어링, 훈련, 예측 생성까지 각 구성 요소가 서로 독립적으로 작동한다. 온라인 학습은 사람의 인터넷 기반 학습과 혼동을 피하기 위해 점진적 학습이나 실시간 학습이라고도 불린다.


1.3.1 모형 드리프트 문제  

초기의 온라인 학습 시스템은 필요에 의해 만들어졌지만, 현대의 온라인 학습 접근은 모형 드리프트라는 특정 데이터 문제를 해결하기 위해 설계되었다. 일반적으로 모형 드리프트는 모형이 구식이 되는 결과로 발생한다. 드리프트는 데이터를 수집하고 모형을 더 빠르게 재훈련하여 완화할 수 있다. 그러나 배치 모형을 재훈련하는 것은 데이터셋이 커짐에 따라 비용이 많이 들 수 있다. 온라인 학습은 가능한 한 재훈련 시간을 줄임으로써 드리프트 문제를 해결한다. 대규모 데이터 집합을 오프라인에서 수집하는 대신, 새로 수신한 데이터 포인트를 즉시 사용하여 모형을 업데이트한다. 이는 데이터 분포의 변화에 더 빠르게 적응하고 외부 변화에 반응할 수 있는 모형을 생성한다.

 

모델 드리프트는 시간에 따라 머신러닝 모델의 예측력이 저하되는 현상을 말한다. 이는 보통 모델이 더 이상 유효하지 않은 데이터 가정을 바탕으로 학습되었기 때문이다. 머신러닝 모델을 학습시킬 때, 인구 집단 X에서 출력 레이블 Y를 잘 예측할 수 있을 것으로 보이는 특징 집합을 선택한다. 예를 들어, 붓꽃 분류 문제에서 특징 집합 X는 꽃잎의 길이, 꽃잎의 너비, 꽃받침의 길이, 꽃받침의 너비이고, 출력 레이블 Y는 붓꽃의 종(setosa, virginica, versicolor)이다. 가능한 모든 입력과 출력을 알 수는 없지만, 이들 간의 관계를 확률로 설명할 수 있다. P(X)가 입력 특징의 확률 분포를 나타내고 P(Y)가 출력 레이블의 분포를 나타낸다면, 특징과 레이블이 함께 나타날 확률을 결합 확률 P(X,Y) = P(X)P(Y|X)로 표현할 수 있다. 이는 모델 드리프트에는 두 가지 주요 구성 요소가 있음을 의미한다: 입력 특징의 분포 P(X)와 특징이 주어졌을 때의 레이블 확률 P(Y|X)이다.

데이터 드리프트 또는 특징 드리프트는 입력 특징의 분포 P(X)가 시간에 따라 변화하는 경우를 설명한다. 예를 들어, 이메일 길이에 따라 스팸 여부를 분류하는 스팸 분류기를 생각해보자. 초기 학습 세트에서는 이메일 길이가 40-60자 사이로 다양하다. 그러나 모델이 실제 환경에 배포된 후에는 훨씬 더 긴 이메일을 관찰하기 시작한다. 모델이 100자 이상의 이메일에 대해서는 충분히 학습되지 않았기 때문에 이러한 긴 이메일을 정확히 분류하는 데 어려움을 겪을 수 있다. 이 시나리오는 특징 분포의 변화로 모델의 성능이 시간에 따라 저하되는 것을 설명한다. 특징 변화는 현실을 제대로 대표할 이메일을 학습 세트에 포함하지 못한 결과일 수도 있다. 그러나 외부 요인, 예를 들어 마케팅 전략의 변화에 의해서도 발생할 수 있다. 아래 그림은 이러한 특징 드리프트를 보여준다.

그림 1.3 모델이 실제 환경에 배포된 후 이메일의 평균 길이가 크게 증가하는데, 이는 특징 드리프트의 징후이다. 이는 모델이 훨씬 더 짧은 이메일을 기반으로 학습되었기 때문에 덜 정확한 예측을 초래할 수 있다.

 

개념 드리프트(concept drift)는 시간이 지남에 따라 입력 특징과 출력 레이블 간의 관계가 변하는 것을 말합니다. 수학적으로 이는 P(Y|X)가 시간이 지나면서 어떻게 변화하는지를 나타냅니다. 배치 모델(batch models)은 P(Y|X)가 고정되어 있을 때 잘 작동합니다. 그러나 현실 세계에서 예측하려는 출력은 외부 요인에 의해 영향을 받습니다. 이는 자연재해나 정전과 같은 일시적인 사건 때문일 수도 있고, 소비자 행동 및 시장 변화와 같은 장기적인 추세에 의해 발생할 수도 있습니다. 예로는 2020년 코로나바이러스 대유행이 있으며, 이로 인해 손 소독제나 면역 비타민과 같은 특정 제품에 대한 소비자 수요가 증가하였습니다. 이는 데이터 특징과 소비자 구매 간의 관계가 갑자기 변화하여 매출 예측 모델의 정확성에 영향을 미쳤을 가능성이 큽니다. 2020년 이전에 훈련된 모델은 손 소독제 판매가 학기 시작과 같은 계절적 경향 외에는 비교적 일정하다고 가정할 수도 있습니다. 이러한 모델은 학습된 관계가 더 이상 유효하지 않으므로 재훈련이 필요합니다.

특징 드리프트(feature drift)와 개념 드리프트(concept drift)의 차이는 아래 그림에서 설명됩니다. 머신 러닝 모델은 초기 데이터 점 집합에 맞추어져 두 출력 클래스를 구별하는 결정 경계를 해결합니다. 특징 드리프트는 특징 공간에서 데이터 포인트를 변화시켜 모델의 정확성에 영향을 미칠 수 있습니다. 개념 드리프트는 결정 경계 자체를 변화시키며, 이는 모델을 무효화할 가능성이 더욱 큽니다. 이는 반드시 특징이 드리프트했다는 것을 의미하지는 않습니다. 예를 들어, 날씨를 사용하여 소매 판매를 예측하는 모델은 날씨가 좋음에도 불구하고 소비자가 집에 머무는 전 세계적 봉쇄로 인해 영향을 받을 것입니다.

그림 1.4 특징 드리프트는 특징의 분포를 변화시키는 반면, 개념 드리프트는 문제의 결정 경계를 변화시킵니다.

1.3.2 온라인 학습 사이클

온라인 학습은 실시간 스트림에서 새로운 데이터 인스턴스를 수신함으로써 시작된다. 데이터 인스턴스는 역사적 데이터셋의 단일 샘플에 해당하며, 현실 세계에서 관찰된 특징들의 집합을 포함한다. 모델은 데이터의 특성에 대한 지식이 거의 없는 상태에서 초기화된다. 이 모델을 사용하여 예측을 계산하고 이를 애플리케이션의 다운스트림 부분으로 전달한다. 시스템에 레이블이 도착하면, 이를 모델에 제공하여 모델이 레이블에서 학습하고 매개변수를 업데이트한다. 이 시점에서는 출력의 두 가지 버전이 있다. 하나는 온라인 모델이 계산한 예측 값이고, 다른 하나는 현실 세계에서 관찰된 참값이다. 모델을 교육하는 아이디어는 예측 값과 관찰 값 간의 손실을 통해 학습하는 것이다.

그림 1.5는 온라인 학습 워크플로우의 예를 보여준다. 이는 작업의 순서를 반영하는데, 즉 샘플에 대해 먼저 예측을 하고, 레이블이 사용 가능해진 후 동일한 샘플에 대해 모델을 학습시킨다. 그러나 오프라인 머신러닝 워크플로우와 달리, 이러한 작업은 실시간 데이터 처리의 특성상 비동기적으로 진행된다. 우리는 언제 레이블을 받을지 미리 알 수 없으므로, 이러한 작업은 실시간 데이터 처리에 더 적합한 스트림 처리 엔진을 활용하게 된다. 실시간 데이터 처리에 대한 내용은 2장에서 탐색할 것이다.

그림 1.5 Training a model “online” while using it for predictions


이전 섹션에서는 오프라인 모델이 목표 함수(objective function)를 최소화하는 매개변수 집합을 찾아 학습되는 방법을 설명했다. 오프라인 학습과 달리, 전체 데이터셋은 학습 시점에 사용 가능하지 않기 때문에 총 손실을 계산할 수 없다. 그러나 손실 함수가 합성 가능하다면, 예를 들어 제곱 오차의 합이라면 개별 항목으로 분해될 수 있다. 이는 아래에 조정된 공식으로 개별 데이터 샘플에 대한 그라디언트 보정을 계산할 수 있음을 의미한다. 차이점은 손실 함수가 전체 데이터셋이 아닌 새로운 샘플에 대해서만 계산된다는 것이다.

 

이것은 증가 경사 하강법 (incremental gradient descent) 접근 방식의 기초입니다. 계수 kk는 매개변수가 얼마나 영향을 받을지를 조절하며 학습률 (learning rate)로 생각됩니다. 높은 학습률은 빠르게 변화하는 환경에서 바람직한데, 이는 모델이 데이터의 변화에 더 빠르게 적응할 수 있기 때문입니다. 낮은 학습률은 모델의 배치 버전 (batch version)을 근사하지만, 단기 예측에는 덜 유용한데, 이는 모델이 더 천천히 적응하기 때문입니다.

온라인 학습이 오프라인 학습의 기능적 근사치인 점을 고려할 때, 온라인 모델은 데이터 세트를 미리 알고 있는 오프라인 모델보다 일반적으로 덜 정확한 예측을 합니다. 온라인 모델의 주요 장점은 단기적인 트렌드에 반응하고 근시일 내 예측을 생성할 수 있다는 점입니다. 재고 예측이나 로드 밸런싱과 같은 시간 민감형 사용 사례에는 실시간으로 패턴을 학습할 수 있는 것이 유리할 수 있습니다. 반면, 배치 모델은 데이터의 분포가 시간이 지나도 변하지 않을 가능성이 높은 상황에서 선호됩니다.

1.3.3 오프라인 vs. 온라인 학습

1.3.2에서 논의했듯이, 온라인 학습은 데이터에 대한 기본적인 가정이 시간이 지남에 따라 변할 가능성이 있을 때 가장 효과적입니다. 이를 설명하기 위해 매일 웹사이트 방문자를 예측하는 시스템을 개발한다고 상상해 봅시다. 일일 방문자 수는 N = 𝜇 + v로 나타낼 수 있으며, 𝜇는 평균 일일 방문자를, v는 일일 변동량을 나타냅니다. 𝜇는 외부 요인에 따라 달라지기 때문에 계절적 추세, 바이럴 인터넷 이벤트 및 일반적인 인기 증가로 인해 변화할 가능성이 큽니다. 이러한 데이터 분포는 시간이 지남에 따라 평균, 분산 및 공분산과 같은 통계적 특성이 변하기 때문에 비정상적 분포(non-tationary distribution)라고 합니다. 날씨와 주식 시장과 같은 실제 비정상적 분포의 예는 계절적 및 장기적 추세에 따라 달라질 수 있기 때문입니다. 아래 그림은 정상적 분포와 비정상적 분포의 차이를 보여줍니다.

그림 1.6 정상적 방문자 분포(왼쪽)는 주기적 변동을 보여주지만 평균 방문자는 변하지 않습니다. 비정상적 분포(오른쪽)는 시간이 지나면서 방문자 수가 점진적으로 증가하는 것을 보여줍니다.


역사적 시계열 데이터의 일일 방문자 수에 대해 훈련된 머신 러닝 모델은 시간이 지남에 따라 증가하는 방문자 수의 영향을 받을 수 있다. 비정상성(non-stationarity)은 데이터 변환이나 직접 모델링을 통해 수정할 수 있다. 예를 들어 평균 방문자 수의 증가가 선형이라고 가정하고 오프라인 모델링 전에 이를 차감할 수 있다. 온라인 모델은 점진적으로 학습하여 비정상성을 고려한다. 오프라인 모델은 시간이 지남에 따라 데이터를 정적으로 유지하는 작업에 더 적합하다. 예를 들어, 개와 고양이를 구별하기 위한 이미지 분류기는 이미지 클래스가 시간에 따라 변하지 않으므로 오프라인에서 더 쉽게 훈련될 수 있다.

온라인 학습은 통계학에서의 이동 평균(rolling mean)과 유사하다. 전통적인 평균은 집합 내 모든 샘플의 평균이지만, 이동 평균은 최근 n개의 샘플에 대한 평균이다. 이동 평균은 데이터를 더 최근의 상태로 보기 위해 오래된 정보를 의도적으로 "잊는다." 온라인 모델은 새로운 데이터 샘플에 맞춰 모델 매개변수를 조정하면서 이와 유사한 기능을 수행한다. 잊는 효과는 데이터에 과적합(overfitting)을 방지하기 위한 일종의 규제 역할을 하기 때문에 때로는 바람직할 수 있다. 예를 들어, 뉴스 기반 모델은 선거 기간과 같은 일시적 시기에 학습한 특정 지식을 잊는 것이 유리할 수 있다. 딥 뉴럴 네트워크(deep neural networks)와 같은 일부 모델은 이전에 인코딩된 중요한 지식, 예를 들면 문법 규칙을 잃어버리는 "파멸적 망각(catastrophic forgetting)"에 취약할 수 있다. 이것은 각 학습 실행 중 업데이트되는 가중치 수를 줄여 완화할 수 있다.

온라인 학습 접근법이 문제 해결에 적합한지 평가할 때는 배포 시간, 관측 가능성, 유지 보수 비용과 같은 운영적 요소를 고려하는 것이 중요하다. 오프라인 학습 주기의 각 단계는 여러 분야에 걸쳐 많은 엔지니어링 시간과 지식을 필요로 한다. 온라인 모델은 개발 워크플로우가 생산 워크플로우와 동일하기 때문에 생산으로 옮기기가 훨씬 쉽다. 이러한 모델은 학습 과정의 일환으로 예측을 하므로 스테이징(staging) 또는 제품 환경과 호환된다. 반면 배치 모델은 생산에서 예측을 생성하기 위한 별도의 파이프라인을 필요로 한다.

온라인 모델의 독특한 점은 생산 중에도 학습한다는 것이다. 이는 거의 자율적으로 동작하여 수동으로 재훈련하고 오프라인으로 평가할 필요성을 제거한다. 이는 오프라인 모델에 비해 몇 가지 장점을 제공한다.

  • 데이터를 훈련용과 테스트용 세트로 나눌 필요가 없다. 동일한 데이터가 먼저 예측(테스트 데이터)을 하고 그 후 레이블이 제공되면 모델을 훈련(훈련 데이터)하는 데 사용된다.
  • 데이터 누출(테스트 데이터셋을 실수로 모델 학습에 사용하는 것)을 걱정할 필요가 없다.
  • 모델을 주기적으로 처음부터 재훈련할 필요가 없다. 모델은 지속적으로 학습하기 때문이다.
  • 실시간 모델은 한 번에 하나의 예제만 학습해야 하기 때문에 메모리 사용량이 감소한다.

온라인 모델의 한 가지 단점은 정확한 결과를 생성하고 있는지 확인하기 위해 지속적인 모니터링이 필요하다는 점입니다. 오프라인 학습과는 달리, 온라인 모델은 광범위하게 훈련된 오프라인 모델과 비슷한 품질의 결과를 보장하지 않습니다. 전통적으로 머신러닝은 데이터를 배치(batch)로 사용하여 모델을 훈련시키는 실험 중심의 반복적인 과정이 포함됩니다. 모델을 실제 환경에 배포하기 전에 여러 테스트를 수행하는 것이 더 쉽고, 모델에 데이터를 입력하기 전에 데이터를 정리하고 표준화하는 데 많은 작업이 수행됩니다. 온라인 학습에서는 데이터의 특성을 이해하고 온라인 모델을 훈련하는 데 사용할 특징을 결정하기 위해 일부 탐색적 데이터 분석을 수행할 수 있고 수행해야 합니다. 그러나 시스템에 실시간으로 데이터가 도착하는 특성 때문에 데이터 품질을 보장하는 데에 거의 통제력이 없습니다. 따라서 시스템에 보호 장치를 설치하고 문제가 발생할 경우의 완화 전략을 수립하는 데 훨씬 더 많은 시간이 필요합니다. 모델의 적응성과 정확성 사이에는 절충이 있습니다. 고위험 사용 사례에서는 모델을 오프라인으로 구축하여 실제 환경에 배포하기 전에 올바르게 검증하고 테스트하는 것이 바람직합니다.

온라인 학습은 빈번한 업데이트가 포함되므로 사람의 피드백 메커니즘에 자연스럽게 적합합니다. 사람의 피드백을 기반으로 작동하는 배치 모델은 사용자가 개선 사항을 보려면 특정 재훈련이 필요합니다. 사용자 선호도가 배치 모델이 재훈련되는 것보다 더 자주 변경될 수 있기 때문에 온라인 학습은 추천 시스템과 더 잘 호환됩니다. 다음 섹션에서 이를 더 자세히 논의할 것입니다.

표 1.1은 온라인 학습의 장단점을 제공합니다. 이는 온라인 학습을 사용할 새로운 프로젝트를 시작할 때 개발자가 고려해야 할 사항들입니다.

표 1.1 온라인 학습의 장단점  

장점   단점  
데이터에 대한 가정이 시간이 지남에 따라 변경될 가능성이 있는 사용 사례에 적합   중요한 역사적 지식을 잊어버리는 현상인 치명적 망각에 취약  
개발과 실제 환경 워크플로 간의 유사성 때문에 배포하기 쉬움  모델이 정확한 결과를 생성하고 있는지 확인하기 위해 지속적인 모니터링 필요  
온라인 모델은 실제 환경에서 학습하므로, 재훈련 워크플로가 필요하지 않음   온라인 모델을 훈련하는 데 사용하기 전에 데이터를 검사할 수 없으므로 더 많은 보호 장치와 완화 전략이 필요함  


온라인 모델의 광범위한 채택을 방해하는 한 가지 장애물은 스트림 지향 아키텍처가 필요하다는 점입니다. 전통적으로 원시 데이터를 소싱하고 데이터를 표준화하고 정규화하여 검색 가능한 상태로 변환한 후 중앙 저장소에 로드하는 과정을 설명하는 ETL(추출-변환-로드)이 사용됩니다. 이러한 데이터 파이프라인은 오프라인 학습을 더 일관되고 반복 가능하게 만듭니다. 온라인 학습은 STL(스트림-변환-로드)이라고 불리는 유사한 데이터 방법론을 필요로 합니다. 제2장에서 그 구현 세부 사항과 독특한 과제를 논의할 것입니다.

 

1.4 실시간 머신 러닝의 사용 사례  

기술 발전, 인터넷, 스마트폰, 소셜 미디어 등의 이유로 우리는 이제 온라인에서 훨씬 더 많은 시간을 보내는 세상에 살고 있다. 예를 들어, 대부분의 소매 쇼핑은 여전히 오프라인으로 이루어지지만, 온라인 쇼핑의 비율은 해마다 증가하고 있다. 미국 인구조사국에 따르면, 전체 소매 판매 중 온라인 판매의 비율은 1999년 4분기의 0.6%에서 2024년 1분기의 15.9%로 꾸준히 증가했다고 한다 (https://www. census.gov/ retail/ecommerce. html).

더 적은 사람들이 물리적인 신문을 읽고 대신에 CNN, Fox News와 같은 전통적인 미디어 서비스나 소셜 미디어를 통해 온라인에서 뉴스나 영상을 보고 있다. 또한 우리는 Netflix, YouTube, TikTok과 같은 서비스에서 엔터테인먼트를 소비하고 있다.

소비 패턴의 변화로 인해, 온라인 활동을 통해 더 많은 데이터가 생성되고 있으며, 기업들은 우리에게 상품과 서비스를 판매하기 위해 이 데이터를 이해하려고 노력하고 있다.

이미 설명한 바와 같이 Apache Spark와 같은 분산 시스템에서 실행할 수 있는 알고리즘 등 데이터 폭발에 대응하기 위한 머신 러닝 기술적 진보가 이루어졌다. 그러나 데이터의 양은 계속 증가하고 있고 인터넷의 정보 흐름 속도로 인해 데이터 특성의 빠른 변화와 같은 추가적인 복잡성이 있다. 다음은 전통적인 머신 러닝을 사용한 솔루션이 실패하는 몇 가지 상황이다:

  • 머신 러닝 모델을 훈련하는 데 사용된 데이터의 통계적 분포가 실제 환경에서 만나는 데이터의 분포와 크게 다를 때.
  • 웹사이트의 새로운 또는 드문 방문자와 같이 머신 러닝 모델을 훈련할 충분한 데이터가 없거나 전혀 없는 경우.
  • 데이터의 특성이 자주 변하고 모델이 배포되자마자 오래되기 쉬운 경우, 예를 들어 사용자 비디오 시청 선호도가 변하는 경우.

위의 사례가 보여주듯이, 전통적인 머신 러닝의 가장 큰 문제는 모델이 훈련되었을 때 매개변수와 가중치가 "고정"된다는 것이다. 모델 드리프트가 시간이 지나면서 모델의 정확도를 잃게 하는 방법에 대해 이미 논의하였다. 모델을 재훈련시키는 것은 전체 새로운 데이터 집합에서 처음부터 훈련해야 하기 때문에 비용이 많이 들고, 느리고, 오류가 발생하기 쉽다.

온라인 모델링 접근으로 전환하는 것은 이러한 문제를 완화시킬 수 있다. 배치 방식과 달리 실시간 머신 러닝 모델은 새로운 데이터에 계속해서 학습할 수 있다. 즉, 매 새로운 데이터 인스턴스마다 가중치와 매개변수가 업데이트된다. 결과적으로 이러한 모델은 더 빠르게 적응할 수 있으며, 한 번에 하나의 레코드에서 학습하기 때문에 메모리 사용량이 적어진다. 이제 실시간 머신 러닝에 더 적합한 몇 가지 사용 사례를 살펴보겠다.

 

1.4.1 추천 시스템

추천 시스템은 오래전부터 존재하고 있었습니다. 아마존은 20여 년 전에 온라인 상점에서 고객이 구매를 돕기 위해 추천 시스템을 사용하여 이 개념을 대중화했습니다.

추천 시스템을 구축하는 방법은 여러 가지가 있습니다. 사용자 프로필의 유사성을 사용하여 추천을 하는 협업 필터( Collaborative Filter)를 만들거나, 시계열 모델(Time Series Model)을 사용하여 사용자의 행동을 시간에 따라 모델링할 수 있습니다.

하지만 이렇게 생각해 보십시오. 유튜브에서 동영상을 감상하는 사용자가 있다고 가정합니다. 일주일 동안 귀하는 친구들이 정기적으로 귀여운 동영상을 공유했기 때문에 주로 고양이 동영상을 보는 데 관심이 있습니다. 그런데 첫 번째 직업으로 머신 러닝 엔지니어가 되어 이 분야에 대해 가능한 한 많이 배우고 싶습니다. 협업 필터나 시계열 모델을 사용해 구축된 모델은 귀하가 머신 러닝 동영상을 보기로 선호를 변경했음에도 계속해서 고양이 동영상을 추천할 것입니다. 이는 이러한 모델들이 귀하의 선호 변화에 대한 지식이 없기 때문입니다.

마찬가지로, 유튜브에 처음 가입한 사용자라면 어떤 동영상을 추천해야 할까요? 유튜브는 사용자에 대한 선호 이력이 없습니다. 사용자 상호작용을 신호로 사용하여 더 개인화된 추천 시스템을 구축하는 방법이 있습니다. 사용자가 시청, 좋아요를 누르거나 공유한 동영상과 사용자가 게시한 댓글과 같은 데이터는 모두 실시간 머신 러닝 모델에 피드로 제공되어 즉시 추천 동영상 목록을 생성하는 데 유용한 특징이 됩니다. 사용자가 행동을 변경함에 따라 모델도 이에 따라 반응하며 추천을 업데이트할 수 있습니다. TikTok은 사용자의 선호를 몇 시간 내로 이해하는데 성공하며 큰 성공을 이루었습니다 (  https://newsroom.tiktok.com/en-us/how- tiktok-recommends-videos-for-you). 처음 방문한 사용자들의 경우 인기 동영상이나 기타 지표를 기반으로 목록을 시작점으로 사용하고, 사용자 상호작용에 따라 목록을 변경하는 방법을 학습할 수 있습니다.

또한, 실시간 머신 러닝 모델은 더 응답성이 뛰어나며 갑작스러운 변화나 사용자 활동의 급증에 잘 적응할 수 있습니다. 예를 들어, 바이랄 뉴스 이벤트 발생 시 모든 사용자가 이 뉴스 관련 콘텐츠를 보고 싶어 한다면, 배치 데이터로 학습된 모델은 이 이벤트에 대한 정보를 가지고 있지 않기 때문에 관련 콘텐츠가 사용자 피드 상단에 표시되지 못합니다. 하지만 실시간 머신 러닝 알고리즘은 이를 빠르게 탐지하고 이에 맞춰 반응할 수 있습니다. 이를 통해 추천이 시의적절하고 효과적으로 이루어질 수 있으며, 그 결과 사용자 만족과 참여도가 높아집니다.

실시간 머신 러닝 모델은 시간, 위치, 기기 유형, 최근 브라우저 기록과 같은 실시간 맥락 정보를 특징으로 활용하여 더 나은 모델을 개발하는 데에 더 적합합니다. 또한, 온라인 플랫폼은 즉각적인 사용자 피드백(클릭, 좋아요, 공유, 체류 시간) 등을 사용하여 여러 실험을 동시에 수행하고 결과를 통해 추천을 업데이트할 수 있습니다. 

 

1.4.2 이상 탐지

배치 방식과 달리, 실시간 이상 탐지 알고리즘은 데이터가 도착하자마자 이상 패턴을 식별할 수 있다. 이 기능은 네트워크 트래픽 데이터, IoT 시스템, 금융 거래 등과 같이 데이터가 지속적으로 도착하고 변화하는 환경에서 특히 유용하다.

금융 거래를 예로 들어보자. 온라인으로 진행되는 금융 거래의 수가 꾸준히 증가하고 있다. 점점 더 많은 사람들이 지역 은행에서 수표를 예금하고 현금으로 물건과 서비스를 지불하지 않는다. 실제로 많은 물건이 물리적 상점 대신 온라인에서 구매되고 있다. 이 때문에 모든 것이 컴퓨터 뒤에서 이루어지므로 사기 행위의 가능성이 다양하게 열린다.

이 분야에서는 특히 이상 탐지 알고리즘을 사용하여 비정상적인 거래를 감지하는 데 여러 가지 발전이 이루어졌다. 예를 들어, 누군가가 당신의 신용카드를 훔치거나 온라인에서 당신의 신용카드 정보를 획득할 수 있다면, 그들은 당신의 신용카드를 사용하여 구매를 할 수 있다. 이상 탐지 알고리즘은 이들 구매의 특성 차이를 감지하고 이를 사기로 표시하는 데 매우 성공적이다.

그러나 사기 패턴은 계속 변화하고 사기꾼들은 과거에 사용했던 전략이 더 이상 작동하지 않는다는 것을 알게 되면 즉시 전략을 바꾼다. 이 모든 것을 악화시키는 것은 수집되는 데이터의 양이다. 이것은 배치 학습 모델을 사용하는 시스템에 부담을 주는데, 이 모델은 변화에 따라 더 자주 재훈련되어야 한다. 다행히도, 실시간 머신 러닝의 발전으로 데이터가 도착할 때 점진적으로 학습할 수 있는 이상 탐지 알고리즘이 있으며, 사용자 구매 이력에 대한 지식을 가질 뿐만 아니라 들어오는 데이터 스트림의 변화에 신속히 적응할 수 있다. 이는 이상치를 빠르게 반응하고 너무 늦기 전에 이를 감지할 수 있음을 의미한다. 금융 거래의 경우, 속도가 중요하다. 왜냐하면 사기 거래를 빠르게 탐지하고 처리함으로써 금융 기관이 손실을 최소화할 수 있기 때문이다.

사기 탐지 외에도 실시간 이상 탐지는 거래 및 투자에 잘 맞다. 주식 시장은 수 밀리초 단위로 가격 변동을 경험하며, 배치 데이터로 훈련된 거래 모델은 시장 상황의 변화에 ​​대응하는 데 어려움을 겪는다. 온라인 머신 러닝 모델은 뉴스, 경제 지표, 가격 데이터와 같은 여러 출처에서 실시간 데이터를 수집하여 최신 트렌드를 반영하는 가격 및 투자 전략을 최적화할 수 있는 능력을 갖추고 있다.

 

사이버 보안 분야에서는 실시간 이상 감지 알고리즘이 네트워크 트래픽 로그 또는 시스템 동작 패턴을 분석하는 데 더 적합하다. 이는 실시간으로 탐지 능력을 조정할 수 있기 때문이다. 위협 행위자들은 지속적으로 그들의 전술과 기술을 발전시키기 때문에 이는 중요하다. 이상 감지 모델은 수백만 개의 데이터 패킷을 지속적으로 분석하여 정상적인 동작 패턴에서의 편차를 감지하고 즉시 경보를 발생시킴으로써 잠재적 피해가 확산되기 전에 완화할 수 있다. 네트워크 로그 모니터링 외에도, 이상 감지 알고리즘은 엔드포인트 동작, 애플리케이션 사용 패턴 및 시스템 구성을 모니터링하는 데 사용될 수 있다. 이를 한 단계 더 발전시켜 이러한 모델을 사이버 보안 운영을 자동화하는 프로세스의 일부로 통합할 수 있다. 예를 들어, 실시간 침입 탐지 시스템(ID: Intrusion Detection System)은 의심스러운 동작이 감지되었을 때 경고를 보낼 뿐만 아니라, 의심스러운 IP 주소를 자동으로 차단하거나 실시간으로 손상된 장치를 격리하여 사건 대응 시간을 단축하고 대규모 공격을 예방한다. 요컨대 실시간 기계 학습은 사이버 보안 전문가와 사이버 범죄자 간의 경쟁 구도를 균형 있게 만들어 줄 수 있다.

의료 분야에서는 이상 감지 알고리즘이 실시간 모니터링 및 조기 감지에 사용될 수 있다. 많은 사람들이 심박수, 신체 활동, 혈압, 혈당 및 기타 건강 지표를 모니터링하는 웨어러블 기기를 사용하고 있다. 이러한 기기들은 실시간으로 데이터 스트림을 생성하며, 이는 실시간 이상 감지 알고리즘에 의해 처리 및 분석되어 비정상 심박, 환자 상태의 예상치 못한 변화 및 일반 건강 패턴에서의 편차를 감지한다. 이러한 알고리즘은 기기에서 들어오는 새로운 정보를 수용함에 따라 지속적으로 적응하고 발전할 수 있다.

건강 관련 데이터 모니터링 외에도 이상 감지 알고리즘은 병원 입원, 침대 점유율, 약물 사용 등의 데이터를 지속적으로 모니터링하여 운영 효율성을 향상하고 자원 배분, 일정 관리 및 환자 간호를 최적화하는 데 사용할 수 있다.

실시간 이상 감지 알고리즘은 IoT 시스템 모니터링에 특히 적합하다. 상호 연결된 기기와 센서의 증가로 인해 이러한 시스템이 적절하게 최적의 상태로 작동하는 것이 중요하다. 온도, 습도, 에너지 소비와 같은 지표를 모니터링하여 정상 패턴에서의 편차를 감지하고 잠재적 고장, 침입 또는 성능 저하를 감지할 수 있다. 이러한 알고리즘의 실시간 특성은 시스템 전체의 치명적인 실패를 방지하고, 장비 수명을 연장하며, 가동 중단 시간을 줄임으로써 운영 효율성을 개선하고 유지 보수 비용을 최소화할 수 있게 보장한다.

IoT 장치는 종종 처리 능력과 대역폭이 제한된 리소스 제약 엣지 컴퓨팅 환경에서 운영된다. 실시간 모델은 엣지에서 경량 이상 감지 작업을 로컬로 수행하여 지연을 줄이고 네트워크 대역폭을 절약할 수 있다. 이러한 모델은 중앙 집중식 클라우드 서버에 연결할 필요 없이 신속히 이상을 감지할 수 있다. 이러한 분산된 접근 방식은 확장성, 응답성 및 IoT 배치에서의 효율성을 향상 시키며, 특히 스마트 시티, 자율 차량, 원격 자산 모니터링과 같은 실시간 이상 감지가 필요한 응용 분야에서 유용하다.

 

1.4.3 강화 학습 (Reinforcement Learning)

강화 학습은 환경과의 상호 작용을 통해 학습하는 기계 학습 (Machine Learning) 분야입니다. 모델은 환경의 맥락을 사용하여 행동을 결정하고, 그 행동에 관련된 보상 또는 손실을 사용하여 환경에 적응합니다. 강화 학습은 특히 복잡한 의사 결정 작업에 유용합니다.

강화 학습의 또 다른 장점은 레이블이 있는 데이터가 필요하지 않다는 점인데, 이로 인해 모델이 더 유연하고 특히 실시간 맥락에서 적응 가능합니다. 반면에 오프라인 모델은 환경과 직접 상호 작용하지 않습니다. 대신, 역사적인 맥락과 보상을 사용하여 어떤 행동을 취할지 결정합니다. 이 접근 방식은 환경의 변화하는 조건에 대응할 수 없어 의사 결정 오류로 이어질 수 있는 단점을 가지고 있습니다.

금융 분야에서는 온라인 강화 학습을 시장 메이킹에 사용할 수 있습니다. 주식 시장에서 시장 메이커는 매수와 매도를 위한 가격을 제안하여 유동성을 유지하는 역할을 합니다. 강화 학습 알고리즘은 공급과 수요, 가격 움직임, 주문 흐름을 모델링하여 최적의 시장 메이킹 전략을 학습할 수 있습니다. 강화 학습 알고리즘은 시장에서 학습하고 입찰-요청 스프레드를 동적으로 조정하여 수익성(보상)을 극대화하고 위험(손실)을 최소화할 수 있습니다.

온라인 강화 학습은 알고리즘 트레이딩 및 포트폴리오 관리에 사용할 수도 있습니다. 강화 학습 알고리즘은 과거 데이터뿐만 아니라 현재 시장 조건으로부터 학습하여 거래 전략을 최적화할 수 있습니다. 예를 들어, 보상 함수는 시간이 지남에 따른 포트폴리오의 누적 수익이 될 수 있으며, 이러한 알고리즘은 누적 수익을 극대화할 가능성이 있는 행동을 기반으로 매수 및 매도 결정을 내릴 수 있습니다. 유사하게, 강화 학습은 가격 변동, 금리 변동과 같은 경제적 조건, 지정학적 사건과 같은 데이터를 사용하여 포트폴리오의 잠재적 위험을 헤지하기 위한 최적의 전략을 만드는 데 사용할 수 있습니다.

한 단계 더 나아가, 강화 학습 알고리즘은 인간의 피드백과 결합되어 RLHF라는 이름으로도 알려져 있습니다. RLHF는 주로 로봇 공학에서 사용되던 2008년쯤부터 존재했습니다. 최근 Open AI의 ChatGPT의 성공으로 인해 대중화되었습니다. 변환기 모델의 발명으로 언어 모델은 수년 동안 지속적인 혁신을 통해 개선되고 있습니다. 그러나 인상적인 결과에도 불구하고 모델은 항상 좋은 출력을 생성하지 못했습니다. RLHF는 인간의 피드백을 활용하여 출력 품질을 향상시키는 기술로 사용되었습니다. 목표는 텍스트 입력을 받아들여 인간의 선호도를 나타내는 스칼라 보상을 반환하는 모델을 얻는 것입니다. 이러한 보상 모델은 미세 조정된 언어 모델이거나 인간 선호 데이터로 처음부터 훈련된 언어 모델이 될 수 있습니다. 이제 텍스트로 훈련된 모델과 인간 선호 데이터로 훈련된 두 번째 모델이 있으므로, 보상 모델을 사용하여 원래 언어 모델을 미세 조정하기 위해 강화 학습을 사용할 수 있습니다.

 

RLHF는 다른 응용 프로그램에서도 사용할 수 있다. 한 가지 응용 예는 피싱과 사회 공학적 기법을 감지하는 것이다. 사람의 피드백을 사용하여 스팸 필터 및 기타 통제를 우회하는 피싱 이메일을 식별할 수 있다. 정보 분석가는 사기성 URL, 오해를 유발하는 내용 또는 사이버 범죄자들이 사용하는 사칭 전술과 같은 피싱 시도의 특성에 대해 피드백을 제공할 수 있다. 이러한 피드백은 스트리밍 애플리케이션을 통해 수집되고 강화 학습 알고리즘에 제공되어 새로운 피싱 및 사회 공학적 공격을 효과적으로 탐지하기 위한 최신 정보를 확보할 수 있다.

의료 분야에서는 RLHF가 의사 결정 지원 시스템에 사람의 피드백을 통합하여 의사 결정을 간소화하고 향상할 수 있다. 의료 전문가들은 모델이 제안하는 진단의 정확성, 치료 추천, 환자 관리 계획에 대해 피드백을 제공할 수 있다. 모델은 그 피드백을 사용하여 더 나은 추천을 제공할 수 있다.

이 장에서 실시간 데이터가 무엇인지, 그리고 시스템에 데이터가 도착함과 동시에 계속적으로 훈련하고 예측을 생성할 수 있는 온라인 모델을 구축하는 방법을 이해하였다. 실시간 기계 학습에 특히 적합한 몇 가지 사용 사례를 제시하였다. 다음 장에서는 이벤트 기반 아키텍처를 사용하여 데이터 수집 파이프라인을 구축하기 위해 실시간 데이터를 수집하는 방법을 배울 것이다.

1.5 요약

  • 실시간 데이터는 어떤 형태의 저장소에도 저장되지 않은 움직이는 데이터다. 
  • 실시간 기계 학습은 실시간 데이터를 사용하여 환경 변화에 적응하는 예측 시스템을 구축하는 접근 방식이다. 
  • 오프라인 학습은 역사의 배치 데이터로부터 모델을 훈련하는 것이다. 
  • 온라인 학습은 데이터가 시스템에 도착하는 즉시 점진적으로 모델을 훈련한다. 
  • 오프라인 학습 흐름은 동기식으로, 각 구성 요소가 이전 요소에 의존한다. 
  • 온라인 학습 흐름은 비동기식으로, 모든 구성 요소가 서로 분리되어 있다. 
  • 온라인 학습은 데이터 분포의 급격한 변화가 있는 사용 사례를 해결하기 위해 진화하였다. 
  • 특성 이동 또는 데이터 이동은 모델 훈련에 사용되는 특성의 분포가 시간에 따라 변화할 때 발생한다. 
  • 개념 이동은 입력 특성과 출력 라벨 간의 관계가 시간에 따라 변화할 때 발생한다. 
  • 실시간 기계 학습에 적합한 몇 가지 사용 사례로는 추천 시스템, 이상 탐지, 강화 학습 등이 있다.

 



[1]
광섬유 케이블의 전송 속도는 빛의 속도 c와 굴절률 n에 따라 달라진다. 여기서 단일 모드 광섬유의 n=1.46으로 가정하여 이상적인 전송 속도는 v = c / n = 300,000 km/s / 1.46 = ~205,000 km/s가 된다.

반응형