मैं एक प्रतिगमन समस्या पर काम कर रहा हूं जहां इनपुट एक छवि है, और लेबल 80 और 350 के बीच एक निरंतर मूल्य है। प्रतिक्रिया के बाद चित्र कुछ रसायनों के होते हैं। जो रंग निकलता है, वह किसी अन्य रसायन की एकाग्रता को इंगित करता है जिसे छोड़ दिया जाता है, और यही वह मॉडल है जो आउटपुट के लिए है - उस रसायन की एकाग्रता। छवियों को घुमाया जा सकता है, फ़्लिप किया जा सकता है, प्रतिबिंबित किया जा सकता है, और अपेक्षित आउटपुट अभी भी समान होना चाहिए। इस तरह का विश्लेषण वास्तविक प्रयोगशालाओं में किया जाता है (बहुत ही विशिष्ट मशीनें रंग विश्लेषण का उपयोग करके रसायनों की एकाग्रता का उत्पादन करती हैं जैसे मैं इस मॉडल को करने के लिए प्रशिक्षण दे रहा हूं)।
अब तक मैंने केवल वीजीजी से जुड़े मॉडल के साथ प्रयोग किया है (कनव-कनव-कनव-पूल ब्लॉक के कई क्रम)। अधिक हाल के आर्किटेक्चर (इंसेप्शन, रेसनेट्स आदि) के साथ प्रयोग करने से पहले, मैंने सोचा कि अगर अन्य चित्र जो आमतौर पर छवियों का उपयोग करके प्रतिगमन के लिए उपयोग किए जाते हैं, तो मैं शोध करूँगा।
डेटासेट इस तरह दिखता है:
डेटासेट में लगभग 5,000 250x250 नमूने हैं, जिन्हें मैंने 64x64 में बदल दिया है, इसलिए प्रशिक्षण आसान है। एक बार जब मुझे एक आशाजनक वास्तुकला मिल जाता है, तो मैं बड़े संकल्प चित्रों के साथ प्रयोग करूँगा।
अब तक, मेरे सबसे अच्छे मॉडल में लगभग 0.3 के प्रशिक्षण और सत्यापन सेट दोनों पर एक औसत चुकता त्रुटि है, जो मेरे उपयोग के मामले में स्वीकार्य से दूर है।
मेरा सबसे अच्छा मॉडल अब तक इस तरह दिखता है:
// pseudo code
x = conv2d(x, filters=32, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=32, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=32, kernel=[3,3])->batch_norm()->relu()
x = maxpool(x, size=[2,2], stride=[2,2])
x = conv2d(x, filters=64, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=64, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=64, kernel=[3,3])->batch_norm()->relu()
x = maxpool(x, size=[2,2], stride=[2,2])
x = conv2d(x, filters=128, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=128, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=128, kernel=[3,3])->batch_norm()->relu()
x = maxpool(x, size=[2,2], stride=[2,2])
x = dropout()->conv2d(x, filters=128, kernel=[1, 1])->batch_norm()->relu()
x = dropout()->conv2d(x, filters=32, kernel=[1, 1])->batch_norm()->relu()
y = dense(x, units=1)
// loss = mean_squared_error(y, labels)
सवाल
छवि इनपुट से प्रतिगमन आउटपुट के लिए एक उपयुक्त वास्तुकला क्या है?
संपादित करें
मैंने अपने स्पष्टीकरण को फिर से परिभाषित किया है और सटीकता के उल्लेखों को हटा दिया है।
संपादित करें 2
मैंने अपने प्रश्न का पुनर्गठन किया है इसलिए उम्मीद है कि यह स्पष्ट है कि मैं आखिर क्या हूँ