2017-11-15 9 views
9

मुझे वर्तमान में वेक्टर द्वारा प्रतिनिधित्व किए गए टेक्स्ट इनपुट हैं, और मैं अपनी श्रेणियों को वर्गीकृत करना चाहता हूं। क्योंकि वे बहु-स्तरीय श्रेणियां हैं, मेरा मतलब Hierarchical Softmax का उपयोग करना था।टेन्सफोर्लो: पदानुक्रमित सॉफ़्टमैक्स कार्यान्वयन

Example: 

- Computer Science 
    - Machine Learning 
    - NLP 
- Economics 
- Maths 
    - Algebra 
    - Geometry 

मुझे नहीं पता कि इसे टेन्सफोर्लो में कैसे कार्यान्वित किया जाए। मेरे द्वारा मिले सभी उदाहरण अन्य ढांचे का उपयोग कर रहे हैं।

धन्यवाद

+0

क्या आप उस सटीक सूत्र को लिख सकते हैं जिसे आप कार्यान्वित करना चाहते हैं? – MZHm

+0

मुझे पहले पदानुक्रमित पेड़ बनाने की जरूरत है। मान लें कि 1 इनपुट का आउटपुट ट्री पथ है [ए 1-> ए 10-> ए 101], फिर 'loss_of_that_input = softmax_cross_entropy (ए 1 | एक्स) + सॉफ्टमैक्स_cross_entropy (ए 10 | ए 1 एक्स) + सॉफ्टमैक्स_cross_entropy (ए 101 | ए 10 एक्स) ' –

+0

@ एमजेएचएचएम आप देख सकते हैं यहां कार्यान्वयन का उदाहरण (लेकिन यह tensorflow का उपयोग नहीं कर रहा है): https://talbaumel.github.io/softmax/ –

उत्तर

0

अंत में, मैंने पायटोरच का उपयोग करने के लिए बदल दिया है। यह Tensorflow से आसान और अधिक सीधे आगे है।

  • किसी को भी आगे एच एस को लागू करने में रुचि के लिए, आप मेरी नमूना निर्देश पर देख सकते हैं: https://gist.github.com/paduvi/588bc95c13e73c1e5110d4308e6291ab

  • किसी के लिए अभी भी एक Tensorflow कार्यान्वयन चाहते हैं, तो यह आपके लिए है: https://github.com/tansey/sdp/blob/87e701c9b0ff3eacab29713cb2c9e7181d5c26aa/tfsdp/models.py#L205। लेकिन यह थोड़ा गन्दा है, और लेखक ने Pytorch या अन्य गतिशील ग्राफ ढांचे का उपयोग करने की सिफारिश की

4

व्यावहारिक रूप से अगर श्रेणियों की कुल संख्या सैकड़ों हजारों (50K से कम) के लिए की सीमा में है, तो आप श्रेणीबद्ध softmax है, जो तेजी से वर्गीकृत करने के लिए प्रशिक्षण को चलाने के लिए डिज़ाइन किया गया है उपयोग करने पर विचार करने की जरूरत नहीं लाखों श्रेणियों में (उदाहरण के लिए, शब्दावली में शब्दों की संख्या)।

मेरे अनुभव (नाइव बेयसियन और तंत्रिका नेटवर्क के साथ) में, प्रशिक्षण समय पर पदानुक्रमित संरचना का उपयोग करने से आपकी वर्गीकरण गुणवत्ता में सुधार नहीं होता है।

हालांकि, यदि आप हाइरार्किकल सॉफ़्टमैक्स को लागू करने में रुचि रखते हैं, तो यह एक और कहानी है।

संबंधित मुद्दे