티스토리 뷰

AI/자연어 처리

max-margin loss란

아인샴 2021. 6. 23. 22:39

직역하여 생각하면 마진을 최대화 시키고자 하는 Loss 연산법인 것 같다. 

따로 알고리즘은 없고(라기보다 내가 못찾았고), 기존의 기준값(LOSS)을 어떻게 하면 더 크게크게 해서 연산효율을 뽑아낼지 부차적으로 고민을 하다 나온 방법론이라고 생각한다. 

 

내생각은 녹색으루 

 

2019년도 CS224N in stanford 듣고 있다. Lecure 3에서 The max-margin loss란 것을 설명한다. 이해+ 의역하자면

 

 

중간층은 입력 word vector들 안에서 비선형적인 상호작용을 배운다. 

ex) 'museums'가 첫번째 벡터인 경우에만 "in"이 2번째에 위치하는 것이 중요하다.  <<알것같은데 모르겠다. 

<< 심증은 있는데 물증이 없음 == meums .이 첫번째가 아니면 'in'의 위치가 어디있든 상관없다. , museum이 항상 in앞에 있어야 한다는 것을 학습한것아닐까? 위의 요소들을 보면 무조건 in Paris 혹은 in museums밖에 안되기 때문이다. in amazing이 되나? Paris Museums are in amazing (오...)  그냥 확실하게 모르겠다!. 

 

--    

MAX - MARGIN LOSS

   - 학습의 목적(함수)를 위한 아이더어로서, (문장에서의 ) 참윈도우 점수를 더 높게하고, 오염된윈도우의 점수를 낮게 하기 위함이다. (그들이 좋아질 때까지)  --아마 여기서 그들이란, 참/오염 윈도우의 점수 일 것이다. 

 

s  = score("museums in Paris are amazing")

s_c = score("Not all museums in Paris") << 이게 왜 오염(corrupted)됐다고 하는걸까?

 

최소화

   - J = max(0,1-s+s_c) 

  • 미분가능하진 않은데 연속적이다. - > SGD를 쓸수 있다. 
  • NER (Name d Entity Recognition) : names in text 에서 name 의 종류를 구분하는 것이다. e.x ) 프랑스 -> "지역", 피셔 -> "사람"
  • NER에 관련된 각의 윈도우는 중앙에 존재하며, 다른 모든 윈도우보다 1점 높은 점수를 지녀야 한다. 
  • full objective 함수 : 1개의 참윈도우와 여러개의 오염된 윈도우를 샘플링한다. 모든 학습 윈도우들을 더한다. 
  • word2vec의 negative sampling과 유사하다. 

  

--일단 개념정의는 여기까지

'AI > 자연어 처리' 카테고리의 다른 글

cs224N 2주차 과제 #2 assignment 정리  (1) 2021.07.01