NCE (Noise Contrastive Estimation) 손실에 대한 직관적 인 설명?


32

이 두 가지 출처에서 NCE (후보 샘플링 형식)에 대해 읽었습니다.

텐서 플로우 쓰기

원본 용지

누군가 다음을 도울 수 있습니까?

  1. NCE의 작동 방식에 대한 간단한 설명 (위의 구문 분석 및 이해가 어려워서 직관적으로 제시되는 수학으로 이어질 수 있음)
  2. 위의 포인트 1 이후에 네거티브 샘플링과 다른 점을 자연스럽게 직관적으로 설명합니다. 수식에 약간의 변화가 있지만 수학을 이해할 수 없다는 것을 알 수 있습니다. 나는 부정적인 샘플링에 대해 직관적으로 이해하고 word2vec있습니다. 어휘에서 일부 샘플을 무작위로 선택하고 크기가 커서 샘플 V만 업데이트하므로 |V|속도가 향상됩니다. 틀린 경우 수정하십시오.
  3. 언제 어느 것을 사용해야하며 어떻게 결정됩니까? 예제를 포함 할 수 있다면 좋을 것입니다 (어쩌면 이해하기 쉬운 응용 프로그램)
  4. NCE가 네거티브 샘플링보다 낫습니까? 어떤면에서 더 좋습니까?

고맙습니다.


내 게시물이 도움이 될 수 있습니다. nanjiang.quora.com/Noise-contrastive-Estimation 및 나중에 theano 실험은 github.com/jiangnanHugo/language_modeling에서 찾을 수 있습니다. 내 이해가 옳기를 바랍니다.
jiangnan hugo

답변:


27

이 게시물에서 가져온 : https://stats.stackexchange.com/a/245452/154812

문제

"표준"신경망을 사용하여 단어 벡터를 학습하는 데는 몇 가지 문제가 있습니다. 이러한 방식으로, 단어 벡터는 학습되고 네트워크는 단어의 윈도우 (네트워크의 입력)가 주어진 다음 단어를 예측하는 것을 학습한다.

다음 단어를 예측하는 것은 수업을 예측하는 것과 같습니다. 즉, 이러한 네트워크는 "표준"다항식 (다중 클래스) 분류 기일뿐입니다. 그리고이 네트워크에는 클래스만큼 많은 출력 뉴런이 있어야합니다. 클래스가 실제 단어 일 때 뉴런의 수는 엄청납니다.

"표준"신경망은 일반적으로 확률을 나타 내기 위해 출력 뉴런의 값을 요구하는 교차 엔트로피 비용 함수로 훈련됩니다. 즉, 각 클래스에 대해 네트워크에 의해 계산 된 출력 "점수"는 정규화되어로 변환되어야합니다. 각 클래스의 실제 확률. 이 정규화 단계는 softmax 기능을 통해 수행됩니다. Softmax는 거대한 출력 레이어에 적용될 때 비용이 매우 많이 듭니다.

(a) 솔루션

이 문제, 즉 softmax의 값 비싼 계산을 처리하기 위해 Word2Vec은 노이즈 대비 추정이라는 기술을 사용합니다. 이 기술은 [A] ([B]로 재구성)에 의해 소개 된 후 [C], [D], [E]에서 레이블이없는 자연어 텍스트에서 단어 포함을 배우기 위해 사용되었습니다.

기본 개념은 다항식 분류 문제 (다음 단어 예측 문제)를 이진 분류 문제로 변환하는 것입니다. 즉, softmax를 사용하여 출력 단어의 실제 확률 분포를 추정하는 대신 이진 로지스틱 회귀 (이진 분류)가 대신 사용됩니다.

각 훈련 샘플에 대해, 강화 된 (최적화 된) 분류기는 실제 쌍 (중심 단어 및 문맥에 나타나는 다른 단어)과 다수의 kk 무작위로 손상된 쌍 (중심 단어와 무작위로 선택된 단어로 구성됨)을 공급받습니다. 어휘). 분류기는 실제 쌍과 손상된 쌍을 구별하는 방법을 학습함으로써 궁극적으로 단어 벡터를 학습합니다.

이것은 중요합니다. 최적화 된 분류기는 다음 단어 ( "표준"교육 기술)를 예측하는 대신 한 쌍의 단어가 좋은지 나쁜지를 예측합니다.

Word2Vec은 프로세스를 약간 사용자 지정하고이를 음수 샘플링이라고합니다. Word2Vec에서 음수 샘플에 대한 단어 (손상된 쌍에 사용됨)는 특별히 고안된 분포에서 가져옵니다.

참고 문헌

[A] (2005)-대조적 추정 : 레이블이없는 데이터에 대한 로그 선형 모델 훈련

[B] (2010)-잡음 대비 추정 : 비정규 화 된 통계 모델에 대한 새로운 추정 원리

[C] (2008)-자연어 처리를위한 통합 아키텍처 : 멀티 태스킹 학습을 통한 심층 신경망

[D] (2012)-신경 확률 적 언어 모델 훈련을위한 빠르고 간단한 알고리즘 .

[E] (2013)-노이즈 대비 추정으로 단어 삽입을 효율적으로 학습 합니다.


3

솔직히 NCE 손실이 수학을 깊이 이해하지 않고 작동하는 이유를 이해하는 직관적 인 방법은 없습니다. 수학을 이해하려면 원본을 읽어야합니다.

케이

(엑스,와이)와이케이케이

Δ에스θ0(,h)=에스θ0(,h)로그케이()

()

케이=케이

최초의 NCE 논문은 증명의 도출을 많이 생략하여 NCE를 이해하기가 정말로 어렵습니다. NCE에 대한 수학을 더 쉽게 이해하기 위해 NCE 논문의 수학에 주석을 달는 블로그 게시물이 있습니다.

https://leimao.github.io/article/Noise-Contrastive-Estimation/ .

대학 2 학년 이상이 이해할 수 있어야합니다.


1

기본적으로 이것은 실제 클래스와 다른 시끄러운 클래스 레이블로 구성된 실제 분포에서 샘플을 선택하는 것입니다. 그런 다음 소프트 맥스를 가져갑니다.

이것은 실제 분포 및 잡음 분포에서 추출한 단어를 기반으로합니다.

여기서 기본적인 아이디어는 실제 분포에서 얻은 샘플과 노이즈 분포에서 얻은 샘플을 분리 할 수있는 로지스틱 회귀 분류기를 훈련시키는 것입니다. 기억하십시오 실제 분포에서 얻은 표본에 대해 이야기 할 때 모형 분포에서 얻은 실제 클래스 인 하나의 표본에 대해서만 이야기합니다.

여기서는 NCE 손실과 그것이 NCE 손실과 어떻게 다른지 설명했습니다.

잡음 대비 추정 : 비싼 Softmax 솔루션.


1
이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다.
tuomastik

0

간단히 말해서, NCE는 단지 1 개의 양수 레이블과 k 개의 음수 레이블을 가진 다중 레이블 분류 손실 함수일뿐입니다.

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