brunch

You can make anything
by writing

C.S.Lewis

by 전영환 Feb 20. 2020

Softmax 함수의 개선

Review of The BATCH #2

Upgrading Softmax



Softmax는 일반적으로 Classifier의 Output계층의 확률을 계산한다. 하지만 Softmax는 복잡한 작업에서 항상 정확한 것은 아니다. 예를 들어, Natural Language Task와 같이 단어 벡터의 길이가 어휘의 단어 수보다 훨씬 작은 경우는 정확하지 않을 수도 있다. 새롭게 제안하는 Function은 이전의 대체제들 보다 적은 계산 비용으로 정확하게 예측해낸다.


What's new

카네기 멜론 대학의 연구자들은 Google Brain의 연구진과 함께 softmax의 bottleneck을 해결하는 해결책인 Mixtape을 개발하였다.


Key insight

이전 proposal인 Mixture of Softmaxes(MoS)는 multiple softmax들의 weighted sum으로 학습 속도가 느리다. Mixtape는 Mos를 weighted sum의 단일 softmax로 reformulate 한 것이다. Weight를 계산하는 분명한 방법을 통해, Softmax에서의 bottleneck을 해결하고, 더 빠르게 수행되게 한다.

이 부분은 글로 풀어내기 어려운 부분이 있습니다. 수식을 직접 들여다보면 명확하게 이해될 것 같습니다.


How it works

Mixtape의 weighted sum은 평가 대상이 되는 단어에 따라 달라지며, 이것은 문제를 정의하는데 명확한 방법이 아니다. Weight는 MoS에 비해 계산 측면에서 장점을 칠지 않도록 효율적으로 생성되어야 한다. 

Mixtape는 Sigmoid Tree Decomposition을 이용하여 weighted sum을 위한 weight를 계산한다. Sigmoid tree는 각 노드가 Sigmoid인 Binary Tree이다. Tree의 leaves는  weight를 제공한다. 이것이 softmax를 이용하여 weight를 계산하는 것보다 더 효율적이다.

일부 Weight들은 빈번하지 않은 output class에 의해 공유된다.

이러한 weight 공유는 bottleneck을 발생시킬 수 있고, softmax보다 더 정확하게 할 수 있다. 


Results

연구자들은 transformer 기반의 모델의 Output layer에 Mixtape, MoS-15, softmax를 사용하여 비교하였다. 해당 작업은 Test sample을 다시 만들고, 영어에서 독일어 혹은 프랑스어로 번역하는 것이 포함되었다. Test Generation에 있어, MoS-15와 Mixtape는 모두 perplexity을 개선하여, 기존보다 3점 높은 56점을 얻었다. (Perplexity는 모델의 예측 확실성의 척도이다.) 성능적 측면에서는 MoS-15가 Mixtape보다 조금 더 나았다. 계산 시간적 측면에서는, Mixtape는 Softmax보다 조금의 시간만 필요로 하였지만, MoS-15는 Softmax보다 약 2배의 시간을 필요로 하였다.


Why it matters

많은 연구들은 input에서 의미 있는 feature를 추출하는데 초점을 맞추었다. 하지만 만약 Output layer가 그것들을 적절하게 분류해낼 수 없다면 feature들은 덜 유용하다고 할 수 있다. Mixtape는 모델로 하여금 AWS 크레딧을 희생하지 않고, 모델들이 추출한 feature들의 장점을 더 잘 활용할 수 있게 한다.


We are thinking

Mixtape는 약간의 학습시간을 더 들임으로써, Softmax보다 더 좋은 성능을 보일 수 있다. 우리는 실제로 Mixtape가 softmax보다 더 나은 점을 보이는 것을 여러 사례에서 확인하였다.



Softmax는 Machine Learning Task들 중, Classification Problem을 해결하는데 많이 사용되는 Output Layer의 함수입니다. 

Classification Problem은 이미지를 분류하는 문제, 사용자의 성향을 맞추는 문제, 단어에 Label을 붙이는 문제 등 다양한 종류의 문제를 포함합니다. Data에 class가 있고, 그 class를 맞추도록 학습하는 문제들이 Classification Problem입니다. 

Classification Problem에서는 class가 많아질수록, 각 class에 속할 확률을 계산해주는 output layer의 함수의 성능은 매우 중요하다고 할 수 있습니다. 당연히 모델의 성능은 좋으면 좋을수록 좋지만, 계산 측면의 성능도 고려해야 합니다. 계산 시간이 엄청 길어지면, 계속 기다릴 수는 없기 때문입니다. 계산 시간과 모델의 성능은 어느 정도의 trade off 관계이기 때문입니다.

Mixtape 내부 구조 자체를 엄청 깊게 이해하기는 어려울 수도 있지만, 그 특성과 장단점을 파악하여 Task에 맞게 잘 사용한다면 좋을 것 같습니다. 앞에서 예를 들어준 Natural Language Task와 같은 Task들에서 말이지요.




지난 리뷰 보기

https://brunch.co.kr/@andrewhwan/66

https://brunch.co.kr/@andrewhwan/65



The Batch는 전 세계 석학 중 하나인 Yann Lecun 교수님이 운영하시는 deeplearning.ai 에서 발간하는 주 단위의 News Letter입니다. The Batch는 Essential news for deep learners를 추구하고 있으며, 매주 Deep Learning,  Artificial Intelligence 분야의 주목해볼 만한 소식을 전하고 있습니다.


이 글은 아래의 원문을 번역/의역 및 요약하였습니다. 중간중간 파란색으로 표시된 글씨는 번역자의 견해입니다.

https://blog.deeplearning.ai/blog/the-batch-algorithm-designs-living-machines-ai-interviews-job-applicants-recommender-spreads-misinformation-researchers-ditch-backprop





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari