새로운 관측 값을 사용할 수있는 경우 모델을 다시 훈련시켜야합니까?


28

따라서이 주제에 대한 문헌을 찾을 수 없었지만 생각할 가치가있는 것처럼 보입니다.

  • 새로운 관찰이 가능한 경우 모델 교육 및 최적화에 대한 모범 사례는 무엇입니까?

  • 예측이 저하되기 전에 모델 재 훈련주기 / 빈도를 결정하는 방법이 있습니까?

  • 매개 변수가 집계 된 데이터에 대해 다시 최적화되면 과적 합입니까?

학습이 반드시 온라인 일 필요 는 없습니다 . 보다 최근의 예측에서 유의 한 차이를 관찰 한 후 기존 모델을 업그레이드 할 수 있습니다.


답은 비즈니스 영역과 특정 모델 응용 프로그램에 따라 크게 다릅니다.
— Pete

답변:


16
  1. 모델을 학습하고 훈련에 사용할 수있는 새 데이터를 얻으면 이전 모델을로드하고 학습 할 수 있습니다. 예를 들어, 모델을 .pickle파일 로 저장 하고 새 데이터를 사용할 수있을 때 모델을 로드하고 추가로 학습 할 수 있습니다. 모형이 올바르게 예측하려면 the new training data should have a similar distribution as the past data.
  2. 사용중인 데이터 세트에 따라 예측이 저하되는 경향이 있습니다. 예를 들어, 트위터 데이터를 사용하여 훈련하려고하고 그날 널리 트윗 된 제품에 관한 데이터를 수집 한 경우. 그러나 며칠 후에 해당 제품에 대해 논의하지 않은 상태에서 사용 트윗을 사용하면 편향 될 수 있습니다. The frequency will be dependent on dataset구체적으로 언급 할 시간이 없습니다. If you observe that your new incoming data is deviating vastly, then it is a good practise to retrain the model.
  3. 집계 된 데이터에서 매개 변수를 최적화하는 것이 과적 합되지 않습니다. 큰 데이터는 과적 합을 의미하지 않습니다. 교차 검증을 사용하여 과적 합을 확인하십시오.

따라서 데이터 세트 수신의 특성이 전체적으로 일관성을 유지한다면 모델이 배울 수있는 새로운 것이 없습니까?
— user140323

데이터가 변경되지 않고 현재 모델의 정확성에 만족한다면 재교육에 아무런 의미가 없습니다.
— 히마 바르샤

@Aayush, 아마도 들어오는 데이터를 유효성 검사 세트로 사용하고 현재 모델을 확인할 수 있습니다.
— 히마 바르샤

아직 받아들이기에는 너무 이르지만, 그럴 것입니다. 감사!
— user140323

안녕하세요 @ tktktk0711, 나는 현재 당신에게 보여줄 코드가 없습니다. 그러나 이것을 통해 코드와의 다른 링크를 지적하십시오. github.com/tflearn/tflearn/issues/39
— Hima Varsha

20

새로운 관측치가 제공되면 모델을 재교육하는 방법에는 세 가지가 있습니다.

  1. 온라인 : 새 관측 값을 사용할 수있을 때마다이 단일 데이터 포인트를 사용하여 모델을 더 학습시킵니다 (예 : 현재 모델을로드하고 단일 관찰로 역 전파를 수행하여 추가 학습). 이 방법을 사용하면 모델은 이전 관측치보다 최근 관측치에 더 많은 영향을 받기 때문에 순차적으로 학습하고 데이터에 로컬로 정렬합니다. 이는 모델이 데이터의 새로운 패턴에 동적으로 적응해야하는 상황에서 유용 할 수 있습니다. 또한 한 번에 모든 데이터에 대한 교육이 불가능한 매우 큰 데이터 세트를 처리 할 때 유용합니다.
  2. 오프라인 : 기존 데이터 세트에 새 관측치를 추가하고이 새롭고 더 큰 데이터 세트에서 모델을 완전히 훈련시킵니다. 이는 일반적으로 대상 함수의 전체 근사치를 향상 시키며 고정 된 데이터 세트가 있거나 자주 새로운 관측치가없는 경우 매우 인기가 있습니다. 그러나 큰 데이터 세트에는 실용적이지 않습니다.
  3. 배치 / 미니 배치 : 중간 정도의 접근 방식입니다. 배치를 사용하면 새로운 관측치 가 배치 될 때까지 기다린 후이 전체 배치에서 기존 모델을 학습합니다. 기존 데이터 세트에이 배치를 추가하지 않고 모델을 다시 학습하지 않기 때문에 오프라인이 아닙니다 . 단일 관측치가 아닌 한 번 에 관측치에서 모형을 학습하므로 온라인이 아닙니다 . 그래서 그것은 둘 다 조금입니다 :) 미니 배치 는 배치 크기가 더 작기 때문에 온라인 학습에 경향이 있다는 점을 제외하고는 정확히 동일합니다. 실제로 온라인 학습은 배치 크기가 1 인 배치이고 오프라인은 전체 데이터 세트의 크기가 배치 된 배치입니다.nnn

오늘날 대부분의 모델은 배치 / 미니 배치를 사용 하며 배치 크기 선택은 응용 프로그램 및 모델에 따라 다릅니다. 올바른 크기의 배치를 선택하는 것은 모델을 재교육 할 올바른 빈도를 선택하는 것과 같습니다. 새로운 관측치가 기존 데이터와의 분산이 낮 으면 더 큰 배치 (256-512)를 제안하고 반대로 새로운 관측치가 기존 데이터와 크게 다를 경우 작은 배치 (8-256)를 사용하십시오. 하루가 끝나면 배치 크기는 조정 해야하는 다른 하이퍼 매개 변수와 비슷하며 데이터와 관련이 있습니다.


안녕하세요, 온라인으로 새 데이터를 요청합니다. 이 방법은 일부 ML 모델을 제한합니까? 전체 머신 러닝이 아닙니다.
— tktktk0711

배치 를 사용하는 tensorflow 예제를 알고 있습니까?
— maxisme

1

당신의 문제는 온라인 학습 방법의 우산 아래 온다. 데이터 스트림이 온다고 가정하면 Stochastic Gradient Descent 방법을 사용하여 해당 단일 예제를 사용하여 모델 매개 변수를 업데이트 할 수 있습니다.

비용 함수가 다음과 같은 경우 :

minθJ(x,y,θ) ,

여기서 는 매개 변수 벡터이며 ( ) 형식의 스트리밍 데이터를 가정하면 SGD를 사용하여 다음 업데이트 방정식으로 매개 변수 벡터를 업데이트 할 수 있습니다.x i , y iθxi,yi

θt=θt−1−∇θJ(xi,yi) .

이것은 기본적으로 배치 크기가 1 인 SGD입니다.

다른 트릭이 있습니다. 창 / 버퍼 기반 방법을 채택하여 스트림에서 일부 예제를 버퍼링하고 배치로 처리하고 배치 SGD를 사용할 수 있습니다. 이 경우 업데이트 방정식은 다음과 같습니다.

θt=θt−1−∑i∇θJ(xi,yi) .

이것은 본질적으로 미니 배치 SGD입니다.


0

질문 : 재 훈련해야합니까?

대답은 모델이 수행하려는 작업과 적용되는 환경에 따라 다릅니다.

몇 가지 예를 들어 설명하겠습니다.

모델이 고객의 행동을 예측하려고 시도한다고 가정합니다 (예 : 고객이 자신에게 맞는 제안을 제공하여 고객이 제품을 구매할 가능성). 분명히, 시장은 시간이 지남에 따라 변하고, 고객의 선호도는 변하고, 경쟁사는 조정됩니다. 또한 조정해야하므로 주기적으로 재 훈련해야합니다. 이 경우 새 데이터를 추가하는 것이 좋으며 더 이상 관련이없는 오래된 데이터는 생략하는 것이 좋습니다. 시장이 빠르게 변화하는 경우 새 데이터 만 기반으로 주기적으로 재교육을 고려해야합니다.

반면, 모델이 일부 이미징 (예 : 엑스레이 또는 MRI)을 의료 조건으로 분류하고 모델의 성능이 우수하면 기술이나 의료 노하우에 변화가없는 경우 재교육 할 필요가 없습니다. . 더 많은 데이터를 추가해도 크게 향상되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.