2015-11-21 46 views
6

में आरएमएसई लागत फ़ंक्शन कैसे सेट करें I have tensorflow में लागत फ़ंक्शन है।tensorflow

activation = tf.add(tf.mul(X, W), b) 
cost = (tf.pow(Y-y_model, 2)) # use sqr error for cost function 

मैं this example को आजमा रहा हूं। मैं इसे आरएमसी लागत समारोह में कैसे बदल सकता हूं?

+0

हाय @ विकी, क्या आप मेरा जवाब स्वीकार कर सकते हैं! –

उत्तर

5

(1) क्या आप वाकई इसकी आवश्यकता है? l2 loss को कम करने से आपको आरएमएसई त्रुटि को कम करने के समान परिणाम मिलेंगे। (गणित के माध्यम से चलो: आपको वर्ग रूट लेने की आवश्यकता नहीं है, क्योंकि x^2 को कम करने से x> 0 के लिए x कम हो जाता है, और आप जानते हैं कि वर्गों का एक गुच्छा योग सकारात्मक है। X * n को छोटा करता है x को छोटा करता है निरंतर एन के लिए)।

(2) आप RMSE त्रुटि के संख्यात्मक मूल्य पता करने की जरूरत है, तो यह सीधे definition of RMSE से लागू:

tf.sqrt(tf.reduce_sum(...)/n) 

(तुम्हें पता है या n गणना करने के लिए की जरूरत है - में तत्वों की संख्या योग, और dil_sum को कॉल में उचित अक्ष को उचित रूप से सेट करें)।

+1

@dga नहीं होगा tf.sqrt (tf.reduce_mean (...)) 'यहां एक बेहतर विकल्प बनें? – goelakash

+1

@goelakash - शायद! मैं विशिष्ट आरएमएसई फॉर्मूला के सबसे स्पष्ट लिप्यंतरण की कोशिश कर रहा था जिसे मैंने लिंक किया था, लेकिन व्यावहारिक रूप से, 'tf.reduce_mean' एक बेहतर विकल्प है। – dga

+0

चूंकि आप नुकसान की गणना में काफी लगते हैं, इसलिए आप इस प्रश्न के साथ मेरी मदद करने में सक्षम हो सकते हैं: [प्रश्न] (https://stackoverflow.com/questions/44717224/when-using-rmse-loss-in-tensorflow-i -receive-very-small-loss-values-smalerl-than) @dga – thigi

27
tf.sqrt(tf.reduce_mean(tf.square(tf.subtract(targets, outputs)))) 
+0

कम से कम कृपया उत्तर स्वीकार करें: D –

8

सूत्र root mean square error के लिए है:

enter image description here

TF में इसे लागू करने के लिए रास्ता tf.sqrt(tf.reduce_mean(tf.squared_difference(Y1, Y2))) है।


याद रखने की महत्वपूर्ण बात यह है कि अनुकूलक के साथ आरएमएसई हानि को कम करने की कोई आवश्यकता नहीं है। उसी परिणाम के साथ आप केवल tf.reduce_mean(tf.squared_difference(Y1, Y2)) या tf.reduce_sum(tf.squared_difference(Y1, Y2)) को कम कर सकते हैं, लेकिन क्योंकि उनके पास संचालन का एक छोटा ग्राफ है, इसलिए उन्हें तेज़ी से अनुकूलित किया जाएगा।

लेकिन यदि आप केवल आरएमएसई के मूल्य का पता लगाना चाहते हैं तो आप इस फ़ंक्शन का उपयोग कर सकते हैं।