온라인 학습의 정규화 및 기능 확장?


15

로지스틱 회귀 분류 기가 있다고 가정 해 봅시다. 일반적인 배치 학습에서는 과적 합을 방지하고 체중을 작게 유지하는 정규화 용어가 있습니다. 또한 기능을 정규화하고 확장합니다.

온라인 학습 환경에서 지속적인 데이터 스트림을 받고 있습니다. 각 예제에서 그라디언트 하강 업데이트를 수행 한 다음 버립니다. 온라인 학습에서 기능 스케일링 및 정규화 용어를 사용해야합니까? 그렇다면 어떻게 할 수 있습니까? 예를 들어, 확장 할 교육 데이터 세트가 없습니다. 또한 정규화 매개 변수를 조정하기 위해 유효성 검사를 설정하지 않았습니다. 아니라면 왜 안됩니까?

온라인 학습에서 지속적으로 예제를 얻습니다. 각각의 새로운 예에 대해 예측을합니다. 그런 다음 다음 단계에서 실제 목표를 가져오고 그라디언트 하강 업데이트를 수행합니다.

답변:


9

오픈 소스 프로젝트 vowpal wabbit 에는 온라인 SGD 구현이 포함되어 있으며, 이는 가중치 업데이트에 영향을 미치는 3 가지 추가 요소에 대한 온라인 (온라인) 계산으로 향상됩니다. 이러한 요소는 각각의 명령 줄 옵션으로 활성화 / 비활성화 할 수 있습니다 (기본적으로 세 가지 --sgd옵션 이 모두 켜져 있고 옵션은 모두 꺼져 있습니다 (예 : "클래식"SGD의 폴백)).

3 가지 SGD 향상 옵션은 다음과 같습니다.

  • --normalized 각 기능의 규모에 맞게 조정 된 업데이트
  • --adaptive 적응 형 그래디언트 (AdaGrad) 사용 (Duchi, Hazan, Singer)
  • --invariant 중요 인식 업데이트 (Karampatziakis, Langford)

또한 온라인 학습 프로세스가 다음을 위해 3 방향 자동 보상 / 조정을 수행하도록합니다.

  • 기능별 스케일링 (큰 대 작은 값)
  • 기능 중요도에 따른 기능별 학습 속도 감소
  • 예에서 기능 유병률 / 희귀성에 대한 기능별 적응 학습 속도 조정

결론은 학습자를 덜 편향적이고 효과적으로 만들기 위해 다른 기능을 사전 정규화하거나 확장 할 필요가 없다는 것입니다.

또한 vowpal Wabbit 은 정규화 옵션을 사용하여 잘린 경사 하강을 통해 온라인 정규화를 구현합니다.

  • --l1 (L1- 노름)
  • --l2 (L2- 노름)

여러 데이터 세트에서 이러한 개선 사항에 대한 나의 경험은 각각이 코드에 도입 될 때 모델 정확도가 향상되고 수렴이 원활 해졌다는 것입니다.

다음은 이러한 개선 사항과 관련된 자세한 학술 논문입니다.


Arielf - 당신은 세 가지 향상된 기능을 끄 (를 통해 --sgd가)의 슬라이드 (11)에 표시 수행되고있는 SGD 경우 github.com/JohnLangford/vowpal_wabbit/wiki/v6.1_tutorial.pdf 관련 될 initial_t 그 다음 power_t 있도록 ?
B_Miner

1
B_miner : 내가 이해 --power_t하고 --initial_t전역 적 (기능별이 아닌) 독립 옵션 인 한. --sgd"클래식"SGD로 되돌아갑니다. IOW은 : --sgd만 취소 --invariant, --normalized--adaptive(이 별도의 당 기능 학습 비율을 의미)
arielf

병렬 비동기 방식으로 이러한 업데이트를 수행 할 수있는 방법이 있는지 알고 있습니까 (비동기 SGD에서와 같이)? 여러 근로자가있는 VW는 각 패스가 끝날 때 각 근로자의 모델을 평균화하는 것으로 보입니다. 이 작업을 수행하는 방법에 대한 논문 / 소프트웨어 포인터?
JC1


1

예, 확실히 정규화가 필요합니다 ... 그라데이션 강하에 도움이됩니다 (그리고 학습 속도를 1 / C로 초기화하십시오)

예 : SGD-QN 용지 http://leon.bottou.org/papers 참조 bottou의 논문

온라인 학습이 의미하는 바를 실제로 설명하지 않았습니다. 예를 들어 각 포인트마다 목표 가치가 있습니까? 어떻게 통합 할 지 모르겠습니다 ... C 검색 ... 다른 정규화 용어를 가진 여러 분류 기가 있고 예측 오류를 추적합니다 (무게를 업데이트하기 전에)


온라인 학습을 통해 하나의 예를 얻고 예측을합니다. 다음 시간 단계에서는 예제의 실제 목표를 가져오고 그라데이션 하강 업데이트를 수행합니다.
siamii

그럼 내가 제안한대로해야합니다-다른 정규화 매개 변수로 여러 분류기를 실행하고 각 분류기의 예측 오류를 추적하십시오.
seanv507

학습 속도를 1 / C로 초기화하여 무슨 의미인지 잘 모르겠습니다. C 란? 서포트 벡터 머신에 대해 이야기하고 있습니까? 정규화 기가 계수 람다를 갖는 로지스틱 회귀에 대해 이야기하고 있습니다. 그것이 학습 속도와 어떤 관련이 있는지 모르겠습니다.
siamii

예, l2 정규화 매개 변수, C, 람다 등 bottou의 sgdqn 논문에서 따로 언급 된 내용이며 다른 곳에서 더 잘 설명했습니다. 기본적으로 학습 속도는 오류 표면의 1 / 곡률 (헤 시안의 역수)이어야합니다. 이제 오류 표면이
seanv507

1
기능 스케일링도 수행해야합니까? 온라인 환경에서 어떻게합니까?
siamii
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.