0

我有兩個高斯分佈樣本,一個高斯包含10,000個樣本,另一個高斯也包含10,000個樣本,我想用這些樣本訓練一個前饋神經網絡,但我不知道有多少爲了得到最佳的決策邊界,我必須採取樣本。 這是代碼,但我不知道確切的解決方案和輸出是怪異的。在Matlab中的前饋神經網絡分類

x1 = -49:1:50; 
x2 = -49:1:50; 
[X1, X2] = meshgrid(x1, x2); 
Gaussian1 = mvnpdf([X1(:) X2(:)], mean1, var1);// for class A 
Gaussian2 = mvnpdf([X1(:) X2(:)], mean2, var2);// for Class B 
net = feedforwardnet(10); 
G1 = reshape(Gaussian1, 10000,1); 
G2 = reshape(Gaussian2, 10000,1); 
input = [G1, G2]; 
output = [0, 1]; 
net = train(net, input, output); 

當我運行代碼時,它給了我奇怪的結果。 如果代碼不正確,有人可以給我建議,這樣我就可以得到這兩個分佈的決定邊界。

+0

我不清楚你真正想要什麼。你能更具體地描述你的訓練集嗎? –

+0

簡而言之,我想要找到這個前饋NN的準確性,我想爲這個高斯分佈畫出這個分類器的決策邊界。 :) – ASAD

+0

要繪製決策邊界,這篇文章可能會有一些幫助:http://stackoverflow.com/questions/33502666/draw-divisory-mlp-line-together-with-chart-in-matlab/33503674#33503674 – rayryeng

回答

0

我很確定輸入必須是高斯分佈(而不是x座標)。實際上NN必須理解你感興趣的現象本身(高斯分佈)和輸出標籤之間的關係,而不是包含現象和標籤的空間之間的關係。此外,如果選擇座標,神經網絡將嘗試理解後者與輸出標籤之間的某種關係,但x可能是恆定的(即,輸入數據可能甚至都是相同的,因爲您可以擁有非常不同的高斯分佈在x座標的相同範圍內,僅改變均值和方差)。因此,神經網絡最終會被混淆,因爲相同的輸入數據可能會有更多的輸出標籤(並且你不希望發生這種情況!!!)。
我希望我是有幫助的。

P.S .:爲了懷疑,我必須告訴你,如果你有一個小的訓練集,神經網絡不能很好地擬合數據。此外,不要忘記使用交叉驗證技術驗證您的數據模型(一個好的經驗法則是將20%的訓練集用於交叉驗證集,另外20%是同一套測試集設置並因此只使用剩餘的60%訓練集來訓練你的模型)。

+0

確實,我將使用高斯分佈作爲輸入和標籤[0,1]作爲輸出。但我有另一個問題,我的第一個高斯分佈有100x100 = 10,000個樣本,另一個高斯分佈也有100x100 = 10,000個樣本總數樣本20,000,我不知道我需要採取多少樣本才能在這兩個類之間作出合理的決定。 – ASAD

+0

糾正我,如果我誤解了:你有一個多元正態分佈(或多維高斯),你想研究後者高斯概率分佈與一些類別的關係。對?在這種情況下,你希望你的100x100矩陣是你假設函數的特徵。因此,你爲什麼要在這個訓練集上只用兩個例子來使用NN? – Danix89

+0

我有兩個gaussians G1和G2,並且使用貝葉斯定理我已經計算了這些gaussians的後驗概率,然後繪製了這些分佈之間的決策邊界,現在我的下一個任務是使用相同的高斯分佈樣本並將它們應用於前饋NN並比較結果。我希望這將清除問題的含義。 – ASAD