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


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=θt1θJ(xi,yi) .

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

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

θt=θt1iθJ(xi,yi) .

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


0

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

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

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

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

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

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