क्या मशीन सीखना एक सूची से अधिकतम खोजने की तरह एक फ़ंक्शन सीख सकता है?


26

मेरे पास एक इनपुट है जो एक सूची है और आउटपुट इनपुट-सूची के तत्वों का अधिकतम हिस्सा है।

क्या मशीन लर्निंग ऐसे फ़ंक्शन को सीख सकता है जो इनपुट में मौजूद इनपुट-तत्वों की अधिकतम मात्रा का चयन करता है?

यह एक बहुत ही बुनियादी प्रश्न के रूप में लग सकता है, लेकिन यह मुझे एक समझ दे सकता है कि सामान्य तौर पर मशीन लर्निंग क्या कर सकता है। धन्यवाद!


1
मुझे लगता है कि आप एक श्रृंखला समस्या के रूप में कोशिश कर सकते हैं अर्थात् आवर्तक तंत्रिका नेटवर्क का उपयोग कर। नेटवर्क को सॉर्ट किए गए डेटा को फ़ीड करें।
विपिन बंसल

2
यह भी देखें datascience.stackexchange.com/q/22242 , datascience.stackexchange.com/q/292945 ; तंत्रिका नेटवर्क एक इनपुट सूची को सॉर्ट कर सकते हैं , इसलिए निश्चित रूप से एक अधिकतम निकाल सकते हैं।
बेन रेनिगर जुले

3
@TravisBlack: वास्तव में, यह निश्चित रूप से फ़ंक्शन का प्रकार है जिसे आप मानक तंत्रिका नेटवर्क के साथ नहीं सीख सकते हैं । एक उदाहरण के रूप में, मान लीजिए कि आप अपने सदिश सेट में किसी मूल्य से अधिक होने की भविष्यवाणी करने के लिए एक सदिश के साथ बस एक सदिश में प्लग करते हैं। क्या आपको लगता है कि प्रशिक्षित तंत्रिका नेटवर्क आपको सबसे बड़ा मूल्य वापस दिलाएगा?
क्लिफ एबी

10
@TravisBlack NOOO! तंत्रिका नेटवर्क "मूल रूप से किसी भी" गणितीय फ़ंक्शन को नहीं सीख सकते हैं। कार्डिनलिटी-वार, लगभग सभी फ़ंक्शन पैथोलॉजिकल लगभग-हर जगह बंद हैं। क्या आप शायद मतलब है, कार्यों कि गणितज्ञों वास्तव में कर रहे हैं के बहुत सारे रुचि अच्छी तरह से व्यवहार करने के लिए पर्याप्त है कि तंत्रिका नेटवर्क होने के लिए होने में कर सकते हैं अनुमानित उन्हें मनमाने ढंग से अच्छी तरह से। लेकिन यह किसी भी कार्य को सीखने में सक्षम होने के समान नहीं है
लेफ्टरेंबाउट

6
@leftaroundabout और Cliff: यह देखना अच्छा है कि कोई व्यक्ति हाल ही में ML / DL प्रचार में जमीन पर रहता है। लोग NNs का उपयोग कर रहे हैं, और जब आप एक स्तर गहरा खोदते हैं, तो आप ध्यान देते हैं कि उन्हें अक्सर इस बात का जरा सा भी अंदाजा नहीं होता है कि वे वास्तव में वहां क्या कर रहे हैं - कुछ करैस "हैलो वर्ल्ड" उदाहरण से आँख बंद करके मापदंडों से परे जब तक वे कुछ पैटर्न नहीं देखते। xkcd बिल्कुल सही यह मिल गया: xkcd.com/1838 । मुझे उम्मीद है कि कोई व्यक्ति अभी भी यहां एक उत्तर जोड़ सकता है जो वर्तमान लोगों की तुलना में अधिक गहरा है। (किसी के लिए कोई अपराध नहीं है, लेकिन एनएन के बारे में समझ की कमी मुझे परेशान करती है ...)
मार्को १३

जवाबों:


35

हो सकता है , लेकिन ध्यान दें कि यह उन मामलों में से एक है जहां मशीन लर्निंग का जवाब नहीं है । ऐसे मामलों में सीखने की मशीन और शूहॉर्न मशीन सीखने की प्रवृत्ति है जहां वास्तव में, दलदल मानक नियम-आधारित समाधान तेज, सरल और बस आम तौर पर सही विकल्प हैं: पी।

सिर्फ इसलिए कि आप कर सकते हैं, इसका मतलब यह नहीं है कि आपको चाहिए

संपादित करें : मैंने मूल रूप से इसे "हां, लेकिन ध्यान दें ..." के रूप में लिखा था, लेकिन फिर खुद पर संदेह करना शुरू कर दिया, कभी भी ऐसा नहीं किया। मैंने इसे आज दोपहर में आज़माया और यह निश्चित रूप से उल्लेखनीय है:

import numpy as np
from keras.models import Model
from keras.layers import Input, Dense, Dropout
from keras.utils import to_categorical
from sklearn.model_selection import train_test_split
from keras.callbacks import EarlyStopping

# Create an input array of 50,000 samples of 20 random numbers each
x = np.random.randint(0, 100, size=(50000, 20))

# And a one-hot encoded target denoting the index of the maximum of the inputs
y = to_categorical(np.argmax(x, axis=1), num_classes=20)

# Split into training and testing datasets
x_train, x_test, y_train, y_test = train_test_split(x, y)

# Build a network, probaly needlessly complicated since it needs a lot of dropout to
# perform even reasonably well.

i = Input(shape=(20, ))
a = Dense(1024, activation='relu')(i)
b = Dense(512, activation='relu')(a)
ba = Dropout(0.3)(b)
c = Dense(256, activation='relu')(ba)
d = Dense(128, activation='relu')(c)
o = Dense(20, activation='softmax')(d)

model = Model(inputs=i, outputs=o)

es = EarlyStopping(monitor='val_loss', patience=3)

model.compile(optimizer='adam', loss='categorical_crossentropy')

model.fit(x_train, y_train, epochs=15, batch_size=8, validation_data=[x_test, y_test], callbacks=[es])

print(np.where(np.argmax(model.predict(x_test), axis=1) == np.argmax(y_test, axis=1), 1, 0).mean())

आउटपुट 0.74576 है, इसलिए यह समय का अधिकतम 74.5% सही ढंग से खोज रहा है। मुझे इसमें कोई संदेह नहीं है कि इसमें सुधार किया जा सकता है, लेकिन जैसा कि मैं कहता हूं कि यह एक usecase नहीं है जिसे मैं एमएल के लिए सुझाऊंगा।

EDIT 2 : वास्तव में मैंने आज सुबह स्केलेर के randomForestClassifier का उपयोग करके इसे फिर से चलाया और इसने बेहतर प्रदर्शन किया:

# instantiation of the arrays is identical

rfc = RandomForestClassifier(n_estimators=1000, verbose=1)
rfc.fit(x_train, y_train)

yhat_proba = rfc.predict_proba(x_test)


# We have some annoying transformations to do because this .predict_proba() call returns the data in a weird format of shape (20, 12500, 2).

for i in range(len(yhat_proba)):
    yhat_proba[i] = yhat_proba[i][:, 1]

pyhat = np.reshape(np.ravel(yhat_proba), (12500,20), order='F')

print(np.where(np.argmax(pyhat, axis=1) == np.argmax(y_test, axis=1), 1, 0).mean())

और यहां का स्कोर 94.4% नमूनों का अधिकतम सही ढंग से पहचाना गया है, जो वास्तव में बहुत अच्छा है।


1
@TravisBlack हाँ, मैंने इसे मूल रूप से "हाँ, लेकिन ..." के रूप में शुरू किया था, लेकिन फिर खुद पर शक किया और समरसता का परिचय दिया। मैंने अब उत्तर में सुधार किया है :)।
डैन स्कैल जूल

16
जब [0,100] में मान रखने वाले वैक्टरों के साथ पूरी बात का प्रशिक्षण और परीक्षण किया जाता है, तो स्कोर लगभग 0.95 है। ठीक। लेकिन जब इसे [0,100] में मूल्यों के साथ प्रशिक्षित किया जाता है, और [100,200] में मूल्यों के साथ इसका परीक्षण किया जाता है, तो स्कोर व्यावहारिक रूप से शून्य होता है । आपने पहले ही अपने संपादन के साथ एक कदम पीछे ले लिया। लेकिन यह उन लोगों के लिए स्पष्ट रूप से स्पष्ट करने के लिए जो एमएल को चमत्कारिक हथियार के रूप में देखते हैं जो सभी समस्याओं को हल कर सकते हैं: जो भी आप वहां सीख रहे हैं: यह 'अधिकतम कार्य' नहीं है!
मार्को 13

2
(एक तरफ: दूसरों को उनकी टिप्पणियों, उपयोग @, जैसी प्रतिक्रियाओं के बारे में सूचित करने के लिए @Marco13)। प्रश्न के बारे में: मुझे लगता है कि आपका कथन "मशीन लर्निंग का जवाब नहीं है" यह स्पष्ट करता है। मुझे मुख्य रूप से डर है कि बहुत से लोग एमएल / डीएल / एनएन का उपयोग करते समय उपयुक्त जांच लागू नहीं करते हैं , और विशेष रूप से, जब वे कुछ ऐसा सामना करते हैं जो ऐसा लगता है कि यह "उनकी समस्या को हल कर सकता है", बिना यह समझे कि ऐसा क्यों प्रतीत होता है। , और इस तरह पहचानने के बिना जब एक "समाधान" केवल एक अच्छी तरह से समझा प्रक्रिया की एक कलाकृति है।
मार्को 13

2
@ पक्का; सबसे अच्छे रूप में यह एक है सन्निकटन () अधिकतम के प्रशिक्षण डेटा की गुंजाइश है कि यह देखा है के लिए लागू। मैं इस समस्या से जूझ रहा था, लेकिन मैं अपने उत्तर की प्राथमिक भावना से अलग होने का इरादा नहीं रखता, जो इस तरह की समस्या के लिए एमएल का उपयोग नहीं करता है
डैन स्कैली

1
@BradyGilg इनपुट डेटा को मानकीकृत कर रहा है ... उह ... जब आप शायद इस बात में सही होंगे कि इससे "बेहतर" परिणाम प्राप्त होंगे, तो परिणाम अभी भी बहुत मायने नहीं रखेंगे, क्योंकि एनएन "अधिकतम फ़ंक्शन" नहीं सीख रहा है। । और तर्क कुछ मायनों में स्पष्ट रूप से एक बहुत अकादमिक है - मैं यहां तक ​​कि "बहुत अकादमिक" भी कहूंगा: आप कुछ वैक्टरों की अधिकतम गणना करना / भविष्यवाणी करना चाहते हैं, और अधिकतम गणना करने के लिए, आपको सबसे पहले मिनट की गणना करनी होगी। / एक मानकीकरण करने के लिए अधिकतम (या एक मानकीकरण के लिए माध्य / stdDev, जो या तो बहुत समझदार नहीं लगता है)।
मार्को 13

26

हाँ। बहुत महत्वपूर्ण बात, आप एक मशीन लर्निंग समाधान की वास्तुकला तय करते हैं। आर्किटेक्चर और प्रशिक्षण प्रक्रियाएं स्वयं नहीं लिखती हैं; उन्हें डिज़ाइन या टेम्पलेट किया जाना चाहिए और प्रशिक्षण डेटा बिंदुओं के एक सेट के लिए आर्किटेक्चर फिटिंग के एक मानकीकरण की खोज के साधन के रूप में अनुसरण करता है।

आप एक बहुत ही सरल वास्तुकला का निर्माण कर सकते हैं जिसमें वास्तव में एक अधिकतम कार्य शामिल है:

net(x) = a * max(x) + b * min(x)

जहां और बी सीखे गए पैरामीटर हैं।

पर्याप्त प्रशिक्षण नमूने और एक उचित प्रशिक्षण दिनचर्या को देखते हुए, यह बहुत ही सरल आर्किटेक्चर आपके कार्य के लिए 1 से 1 और बी को शून्य पर सेट करने के लिए बहुत तेज़ी से सीखेगा।

मशीन लर्निंग अक्सर इनपुट डेटा बिंदुओं के विचलन और परिवर्तन के बारे में कई परिकल्पनाओं का मनोरंजन करने का रूप लेती है, और केवल उन परिकल्पनाओं को संरक्षित करना सीखती है जो लक्ष्य चर के साथ सहसंबद्ध होते हैं। परिकल्पनाओं को स्पष्ट रूप से एक मानकीकृत एल्गोरिथ्म में उपलब्ध वास्तुकला या उप-कार्यों में, या "पैरामीटर रहित" एल्गोरिथम में एन्कोड किए गए मान के रूप में एन्कोड किया गया है।

उदाहरण के लिए, वेनिला न्यूरल नेटवर्क एमएल में आम तौर पर डॉट उत्पादों और गैर-समरूपताओं का उपयोग करने का विकल्प कुछ हद तक मनमाना है; यह इस परिकल्पना को व्यक्त करता है कि एक कार्य का निर्माण रेखीय परिवर्तनों और थ्रेशोल्ड कार्यों की पूर्व निर्धारित संरचना नेटवर्क संरचना का उपयोग करके किया जा सकता है। उस नेटवर्क के अलग-अलग मापदण्ड विभिन्न परिकल्पनाओं को ग्रहण करते हैं जिनके बारे में रैखिक परिवर्तन का उपयोग करना है। फ़ंक्शंस के किसी भी टूलबॉक्स का उपयोग किया जा सकता है और मशीन सीखने वाले का काम भेदभाव या परीक्षण और त्रुटि या कुछ अन्य दोहराए जाने वाले सिग्नल के माध्यम से खोज करना है जो इसके सरणी में कार्य या सुविधाएँ सबसे अच्छा है कि एक त्रुटि मीट्रिक कम से कम हो। ऊपर दिए गए उदाहरण में, सीखा नेटवर्क केवल अधिकतम फ़ंक्शन को कम कर देता है, जबकि एक उदासीन नेटवर्क वैकल्पिक रूप से एक न्यूनतम फ़ंक्शन "सीख" सकता है। इन कार्यों को अन्य साधनों के माध्यम से व्यक्त या अनुमानित किया जा सकता है, जैसा कि एक अन्य उत्तर में रैखिक या तंत्रिका शुद्ध प्रतिगमन फ़ंक्शन में होता है। संक्षेप में, यह वास्तव में निर्भर करता है कि आपके एमएल आर्किटेक्चर टूलबॉक्स में कौन से फ़ंक्शन या लेगो टुकड़े हैं।


4
+1 ML फैंसी रिग्रेशन समीकरणों से अधिक कुछ नहीं है और समीकरणों के सही विकल्प की मांग करता है।
helpan.plenert.macdonald

4
@ helpan.plenert.macdonald का प्रभाव और अपील, हालांकि, यह है कि समीकरणों का एक सही विकल्प नहीं है। आपके चुने हुए समीकरणों के लिए उपयुक्त समीकरणों के सेट का सदस्य होना आवश्यक है, लेकिन यह पता चलता है कि सेट की जाने वाली समस्याओं की एक विस्तृत श्रृंखला के लिए ऐसे समीकरण होते हैं जो ध्यान से डिज़ाइन किए गए समाधान की तुलना में बहुत अधिक सामान्यीकृत होते हैं, लेकिन उपज पैरामीटर जो हल करते हैं अतिरिक्त डिजाइन प्रयास में डालने की तुलना में समस्या बहुत जल्दी। यह प्रश्न इस बात का एक अच्छा उदाहरण है कि यह कैसे मॉडल डिजाइन के विचारों को पूरी तरह से समाप्त नहीं करता है।
विल

यह कभी सवाल नहीं था। ओपी ने पूछा कि क्या एमएल (/ max()लेबल डेटा से ) एक फ़ंक्शन पा सकता है (/ सीख सकता है )। उन्होंने यह नहीं कहा " यह देखते हुए कि आपके पास पहले से max()ही एक बिल्डिंग-ब्लॉक है"
smci

@smci मशीन लर्निंग आर्किटेक्चर या फ़ंक्शंस के लिए कोई "सार्वभौमिक" नहीं है। जैसा कि मेरे उत्तर में उल्लेख किया गया है, आप एक अधिकतम फ़ंक्शन का उपयोग कर सकते हैं जो कि अरेखीय रैखिक कार्यों का उपयोग करके गैर-असमानताओं के साथ जोड़ दिया जाता है - लेकिन कोई सार्वभौमिक नियम नहीं है जो कहता है कि सभी एमएल को अपने टूलबॉक्स में परिवर्तनों के उस विशेष सेट का उपयोग करना है। तंत्रिका नेटवर्क अक्सर (लेकिन हमेशा नहीं) मैक्स पूलिंग या ReLU nonlinearities के माध्यम से अपने निपटान में एक अधिकतम कार्य किया है। संभावित सुविधा कार्यों की संख्या असीम है, यही वजह है कि मैं एमएल वास्तुकला में पसंद और पूर्वनिर्मित पूर्वाग्रह की भूमिका को उजागर करता हूं।
pygosceles 17

7

हां - मशीन सीखना संख्याओं की सूची में अधिकतम पता लगाना सीख सकता है।

यहाँ अधिकतम का सूचकांक खोजने के लिए सीखने का एक सरल उदाहरण है:

import numpy as np
from sklearn.tree import DecisionTreeClassifier

# Create training pairs where the input is a list of numbers and the output is the argmax
training_data = np.random.rand(10_000, 5) # Each list is 5 elements; 10K examples
training_targets = np.argmax(input_data, axis=1)

# Train a descision tree with scikit-learn
clf = DecisionTreeClassifier()
clf.fit(input_data, targets)

# Let's see if the trained model can correctly predict the argmax for new data
test_data = np.random.rand(1, 5)
prediction = clf.predict(test_data)
assert prediction == np.argmax(test_data) # The test passes - The model has learned argmax

क्या यह वास्तव में "अधिकतम" फ़ंक्शन सीख रहा है? 10,000 इनपुट तत्वों की एक प्रशिक्षण सेट पूरी इनपुट जगह के लिए एक उचित अनुमान है।
मार्क

2
अस्वीकरण: मैं एक एमएल / डीएल विशेषज्ञ नहीं हूं। लेकिन मुझे पूरा यकीन है कि इसका कोई मतलब नहीं है। मेरा मतलब है: बिलकुल नहीं। जैसा कि मैंने इसे देखा, आप अधिकतम फ़ंक्शन नहीं सीख रहे हैं। आप प्रशिक्षण सेट के अधिकतम तत्वों के सूचकांक सीख रहे हैं। यदि आप एक सदिश इनपुट करते हैं जिसमें दो नंबर होते हैं जो दोनों प्रशिक्षण सेट की तुलना में बड़े होते हैं, तो यह विफल हो जाएगा। उस मामले का उल्लेख नहीं करने के लिए जहां आपके पास 5D नहीं है, लेकिन 10D-वेक्टर है। एक पुस्तकालय में कुछ डेटा फेंकना जो किसी को समझ में नहीं आता है और एक निश्चित परिणाम को देखकर नहीं है (बिल्कुल भी) इसका मतलब है कि यह "काम करता है"।
मार्को 13

मेरा मतलब है, यह इस बात पर निर्भर करता है कि "यह काम करता है" का मतलब क्या है। विशेष रूप से एक निर्णय वृक्ष केवल कभी-कभी एक टुकड़ा-स्थिर फ़ंक्शन, टुकड़ों को अक्ष-संरेखित आयताकार बक्से का उत्पादन करने वाला है। अधिकतम उदाहरण में, एक ठोस हाइपरक्यूब पर प्रशिक्षण, वास्तविक अधिकतम कार्य कुछ त्रिकोणीय प्रकार के क्षेत्रों पर टुकड़ा-स्थिर है। पर्याप्त प्रशिक्षण उदाहरणों और गहराई को देखते हुए, पेड़ इन त्रिकोणीय क्षेत्रों को मनमानी सटीकता के लिए अनुमानित करेगा। लेकिन, कई (अधिकांश?) अन्य मॉडलों के साथ के रूप में, प्रशिक्षण नमूनों की सीमा के बाहर किसी भी परीक्षण के नमूने बहुत निराशाजनक हैं।
बेन रेनिगर

यह कुछ भी साबित नहीं करता है। ओपी ने "संख्याओं की सूची में अधिकतम" पूछा । आपने मान लिया कि उन्हें 0..1 रेंज में तैरना चाहिए। एक 2 (या -1, या 1.5) इनपुट करने का प्रयास करें और यह विफल हो जाएगा।
smi

4

लर्निंग एल्गोरिदम

फ़ीड-फ़ॉर न्यूरल नेटवर्क द्वारा की गई गणना के रूप में एक फ़ंक्शन सीखने के बजाय, नमूना डेटा से एल्गोरिदम सीखने के संबंध में एक संपूर्ण शोध डोमेन है । उदाहरण के लिए, किसी को न्यूरल ट्यूरिंग मशीन या किसी अन्य विधि की तरह उपयोग किया जा सकता है जहां एल्गोरिथ्म का निष्पादन मशीन निर्णय द्वारा अपने निर्णय बिंदुओं पर नियंत्रित किया जाता है। खिलौना अल्गोरिथम एक अधिकतम खोजने, या किसी सूची को छाँटने, या किसी सूची को उलटने, या सूची को फ़िल्टर करने जैसे आमतौर पर एल्गोरिथ्म सीखने के अनुसंधान में उदाहरण के रूप में उपयोग किया जाता है।


2

मैं अपने जवाब से शिक्षित डिजाइन को बाहर कर दूंगा। कोई यह संभव नहीं है करने के लिए बॉक्स मशीन सीखने (एमएल) दृष्टिकोण का एक बाहर का उपयोग करने के लिए पूरी तरह से के लिए अधिकतम समारोह का प्रतिनिधित्व मनमाने ढंग से मनमाना परिशुद्धता के साथ सूची। एमएल एक डेटा-आधारित पद्धति है और यह स्पष्ट है कि आप उन क्षेत्रों में एक फ़ंक्शन का अनुमान लगाने में सक्षम नहीं होंगे जहां आपके पास कोई डेटा बिंदु नहीं हैं। इसलिए, संभावित अवलोकनों का स्थान (जो अनंत है) परिमित अवलोकनों द्वारा कवर नहीं किया जा सकता है।

मेरे बयानों में तंत्रिका नेटवर्क के लिए साइबेको के सार्वभौमिक अनुमोदन सिद्धांत के साथ एक सैद्धांतिक आधार है। मैं प्रमेय को विकिपीडिया से उद्धृत करूंगा:

Rn

RnxR

यदि आपकी टिप्पणियों का स्थान कॉम्पैक्ट है, तो आप एक परिमित डेटा सेट के साथ अधिकतम फ़ंक्शन का अनुमान लगाने में सक्षम हो सकते हैं। जैसा कि शीर्ष मतदान जवाब ने स्पष्ट किया कि आपको पहिया को फिर से नहीं करना चाहिए!


1

यहाँ मेरी टिप्पणी पर एक विस्तार है। प्रस्तावना के लिए, बिल्कुल @DanScally सही है कि किसी सूची का अधिकतम उपयोग करने के लिए एमएल का उपयोग करने का कोई कारण नहीं है। लेकिन मुझे लगता है कि आपका "यह मुझे समझ सकता है कि मशीन सीखना सामान्य रूप से क्या कर सकता है" इस में तल्लीन करने के लिए पर्याप्त कारण है।

maxmax


maxmaxmax

n n

argmaxn(n2)δij=1(xi<xj)i<jxjxinxij<iδji+j>i(1δij)jxi>xjxiक्रमबद्ध सूची में। Argmax को पूरा करने के लिए, बस इस परत को थ्रेसहोल्ड करें। इस बिंदु पर, यदि हम गुणा कर सकते हैं, तो हमें वास्तविक अधिकतम मूल्य बहुत आसानी से मिल जाएगा। कागज में समाधान संख्याओं के द्विआधारी प्रतिनिधित्व का उपयोग करना है, जिस बिंदु पर द्विआधारी गुणन थ्रेशोल्ड जोड़ के समान है। बस argmax पाने के लिए, यह एक सरल रेखीय कार्य गुणा करने के लिए पर्याप्त होता है द्वारा वें सूचक और संक्षेप।ii
ii


अंत में, बाद के प्रश्न के लिए: क्या हम इस राज्य में एक एनएन को प्रशिक्षित कर सकते हैं। @DanScally हमें मिल गया; शायद सैद्धांतिक वास्तुकला को जानने से हमें समाधान में धोखा मिल सकता है? (ध्यान दें कि यदि हम ऊपर दिए गए वज़न के विशेष सेट को जान / समझ सकते हैं, तो नेट वास्तव में प्रशिक्षण नमूनों की सीमा के बाहर अच्छा प्रदर्शन करेंगे।)

गितुब / कोलाब में नोटबुक

चीजों को बस थोड़ा सा बदलने से मुझे बेहतर परीक्षण स्कोर (0.838) मिलता है, और यहां तक ​​कि मूल प्रशिक्षण रेंज के बाहर के नमूने पर परीक्षण करने पर एक अच्छा स्कोर (0.698) मिलता है। बढ़ाए गए इनपुट का उपयोग करना[1,1]0.758 के आउट-ऑफ-रेंज स्कोर के साथ 0.961 तक परीक्षण स्कोर प्राप्त करता है। लेकिन, मैं @DanScally के समान विधि के साथ स्कोर कर रहा हूं, जो थोड़ा बेईमान लगता है: इस मीट्रिक पर पहचान फ़ंक्शन पूरी तरह से स्कोर करेगा। मैंने कुछ गुणांक भी छापे, यह देखने के लिए कि ऊपर वर्णित सटीक फिट के करीब कुछ भी दिखाई नहीं देता है (वास्तव में नहीं); और कुछ कच्चे आउटपुट, जो सुझाव देते हैं कि मॉडल अधिकतम भविष्यवाणी करने में बहुत डरपोक है, यह भविष्यवाणी करने के पक्ष में गलत है कि कोई भी इनपुट अधिकतम नहीं है। शायद उद्देश्य को संशोधित करने में मदद मिल सकती है, लेकिन इस बिंदु पर मैंने पहले ही बहुत अधिक समय लगा दिया है; अगर किसी को दृष्टिकोण में सुधार करने की परवाह है, तो खेलने के लिए स्वतंत्र महसूस करें (यदि आप चाहें तो कलैब में) और मुझे बताएं।


मैंने अभी तक कागज के चारों ओर अपना सिर नहीं लपेटा है (जो गणित-भारी है ... और आश्चर्यजनक रूप से पुराना ...), लेकिन भले ही यह अस्पष्ट शब्द "नेटवर्क" हो सकता है, जो इस संघ को मेरे दिमाग में लाया, मैंने आश्चर्य है कि क्या कोई एक तंत्रिका नेटवर्क को डिजाइन कर सकता है जो अनिवार्य रूप से एक सॉर्टिंग नेटवर्क का "अनुकरण" करता है ...
Marco13

@ Marco13, निश्चित रूप से, मुझे लगता है कि तुलना करने के लिए NN का उत्पादन करने के लिए उस कागज का उपयोग करना छँटाई नेटवर्क के एक NN अनुकरण का उत्पादन करेगा। यह कागज की तुलना में काफी गहरा होगा, लेकिन चौड़ाई रैखिक आकार तक सिकुड़ सकती है?
बेन रेइनिगर

बेशक, मैं एनएन के बारे में गहराई से शामिल नहीं हूं क्योंकि मुझे कुछ गहरा कहने की आवश्यकता है। लेकिन ~ जैसी चीजें "आप दो परतों के साथ सब कुछ अनुकरण कर सकते हैं" निम्न-स्तरीय सर्किट डिज़ाइन से परिणामों की तरह थोड़ा सा लगता है, जहां आप कहते हैं कि आप "प्रत्येक फ़ंक्शन को NAND गेट्स की दो परतों के साथ लागू कर सकते हैं" या whatnot। मुझे लगता है कि हाल ही में जांच की गई NN में से कुछ केवल 50 साल पहले की खोज की गई चीजों के फैंसी संस्करण हैं, लेकिन शायद यह एक गलत धारणा है ...
Marco13

0

हां, साधारण लीनियर वर्ग के रूप में साधारण मशीन लर्निंग भी ऐसा कर सकता है यदि आप कुछ लागू होशियारी का उपयोग करते हैं।

(लेकिन अधिकांश इसे काफी भयानक ओवरकिल मानते हैं)।

(मुझे लगता है कि हम इनपुट वेक्टर के अधिकतम पेट को प्राप्त करना चाहते हैं):

  1. निरपेक्ष मान का एक नीरस रूप से कम होने वाला कार्य चुनें, उदाहरण के लिए
    f(x)=1x2
  2. विकर्ण मैट्रिक्स । हम इसेf(r)Cr
  3. लोगों से भरा वेक्टर बिल्ड ।S
  4. समीकरण प्रणाली(ϵI+103StS+Cr)1(103St)
  5. हमें परिणाम वेक्टर , यह एक प्रायिकता माप होगा (sums to 1), हम इसे nonlinearly reweigh कर सकते हैं, उदाहरण के लिएp
    pi=pik|pi|k
  6. बस सूचकांक वेक्टर और गोल के साथ अदिश उत्पाद की गणना करें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.