प्रौद्योगिकी साझेदारी

57. संभाव्यतावादी तंत्रिकाजालस्य (PNN) (matlab) आधारेण वर्गीकरणं .

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. संभाव्यतावादी तंत्रिकाजालस्य (PNN) आधारितवर्गीकरणस्य परिचयः

PNN (Probabilistic Neural Network, probabilistic neural network) संभाव्यतासिद्धान्ते आधारितं तंत्रिकाजालप्रतिरूपं भवति, यस्य उपयोगः मुख्यतया वर्गीकरणसमस्यानां समाधानार्थं भवति । पीएनएन प्रथमवारं १९९३ तमे वर्षे माकोव्स्की-मासिकिन्-इत्यनेन प्रस्तावितं ।इदं अतीव प्रभावी वर्गीकरण-एल्गोरिदम् अस्ति ।

पीएनएन-सिद्धान्तस्य संक्षेपेण निम्नलिखितपदार्थाः इति सारांशः कर्तुं शक्यते ।

  1. डाटा इनपुट लेयर: क्रमशः इनपुट् नमूनादत्तांशं मॉडल् मध्ये प्रविशन्तु ।
  2. प्रतिरूपस्तरः : १.प्रत्येकं निवेशदत्तांशस्य उपरि प्रतिरूपमेलनं कुर्वन्तु तथा च तस्य निर्दिष्टवर्गस्य च मध्ये समानतास्कोरस्य गणनां कुर्वन्तु ।
  3. प्रतिरूपतुलनास्तरः : १.सर्वेषां वर्गानां समानता-अङ्कानां तुलनां कृत्वा अन्तिम-वर्गीकरण-परिणामरूपेण सर्वोच्च-अङ्कं प्राप्तं वर्गं ज्ञातव्यम् ।

पीएनएन इत्यस्य निम्नलिखितगुणाः सन्ति ।

  1. कुशलता: पीएनएन इत्यस्य प्रशिक्षणवेगः द्रुततरः भवति तथा च व्यावहारिकप्रयोगेषु वर्गीकरणसटीकताम् अधिका दर्शयति।
  2. दृढता : १.पीएनएन-इत्यस्य शोरस्य, बहिर्मुखस्य च प्रति प्रबलं दृढता अस्ति तथा च जटिलवर्गीकरणसमस्यानां प्रभावीरूपेण निबन्धनं कर्तुं शक्नोति ।
  3. व्याख्यातुं सुलभम् : १.पीएनएन-परिणामानां व्याख्या सहजतया कर्तुं शक्यते, येन उपयोक्तारः आदर्शस्य वर्गीकरण-आधारं अधिकतया अवगन्तुं शक्नुवन्ति ।

सामान्यतया पीएनएन अतीव प्रभावी वर्गीकरण-एल्गोरिदम् अस्ति तथा च विभिन्नक्षेत्रेषु वर्गीकरणसमस्यानां कृते उपयुक्तः अस्ति, यथा चित्रपरिचयः, पाठवर्गीकरणं इत्यादिषु

2. संभाव्यतावादी तंत्रिकाजालस्य (PNN) आधारितं वर्गीकरणवर्णनं प्रमुखकार्यं च

१) वर्णनम्

तत्र त्रयः द्विचक्रीयनिवेशसदिशाः X सन्ति तथा च तेषां सम्बद्धाः वर्गाः Tc ।
एतेषां सदिशानां सम्यक् वर्गीकरणार्थं संभाव्यतावादी तंत्रिकाजालं रचयन्तु ।

2) महत्त्वपूर्ण कार्य

newpnn () फ़ंक्शन: 1 .संभाव्यतावादी तंत्रिकाजालस्य परिकल्पना

संभाव्यतावादी तंत्रिकाजालम् (PNN) वर्गीकरणसमस्यानां कृते उपयुक्तं रेडियल आधारजालम् अस्ति ।

व्याकरणम्

net = newpnn(P,T,spread)% द्वौ वा त्रीणि वा पैरामीटर्स् स्वीकुर्वति तथा च नूतनं संभाव्यतावादीं तंत्रिकाजालं प्रत्यागच्छति ।

पैरामीटर्

प : ९.Q इनपुट सदिशों के r × Q मैट्रिक्स

त: ९.Q लक्ष्य वर्ग सदिशों के s × Q मैट्रिक्स

विस्तीर्णम्‌: प्रसारित त्रिज्या आधारफलकानां विस्तारः (पूर्वनिर्धारितः = 0.1)

यदि प्रसारः शून्यस्य समीपे भवति तर्हि जालम् समीपस्थस्य प्रतिवेशिनः वर्गीकरणस्य कार्यं करोति । यदा स्केलिंग् बृहत् भवति तदा डिजाइनं कृतं जालं समीपस्थं कतिपयान् डिजाइन सदिशान् विचारयति ।

sim() function: तंत्रिकाजालस्य अनुकरणं कुर्वन्तु

व्याकरणम्

[Y,Xf,Af] = sim(net,X,Xi,Ai,T) 
पैरामीटर्

net: जालम्

X: जालपुटे निवेशः

Xi: प्रारम्भिक इनपुट विलम्ब स्थिति (पूर्वनिर्धारित = 0)

ऐ: प्रारम्भिक स्तर विलम्ब स्थिति (पूर्वनिर्धारित = 0)

T: संजाल लक्ष्य (पूर्वनिर्धारित = 0) .

3. दत्तांशसमूहः प्रदर्शनं च

कोड

  1. X = [1 2; 2 2; 1 1]';
  2. Tc = [1 2 3];
  3. figure(1)
  4. plot(X(1,:),X(2,:),'.','markersize',30)
  5. for i = 1:3, text(X(1,i)+0.1,X(2,i),sprintf('class %g',Tc(i))), end
  6. axis([0 3 0 3])
  7. title('三个二元向量及分类')
  8. xlabel('X(1,:)')
  9. ylabel('X(2,:)')

प्रभावं पश्यन्तु

4d5fefa895b64a729f35c0ae3f875dfa.png

4. डिजाइन इनपुट वेक्टर् इत्यस्य आधारेण जालस्य परीक्षणं कुर्वन्तु

१) वर्णनम्

लक्ष्यवर्गसूचकाङ्कः Tc सदिश T मध्ये परिवर्तयन्तु
y संभाव्यतावादी तंत्रिकाजालस्य डिजाइनं कर्तुं NEWPNN इत्यस्य उपयोगं कुर्वन्तु
SPREAD इत्यस्य मूल्यं 1 अस्ति यतोहि एतत् निवेशसदिशयोः मध्ये विशिष्टं दूरं भवति ।

२) परीक्षणजालम्

कोड

  1. T = ind2vec(Tc);
  2. spread = 1;
  3. net = newpnn(X,T,spread);
  4. %测试网络
  5. %基于输入向量测试网络。通过对网络进行仿真并将其向量输出转换为索引来实现目的。
  6. Y = net(X);
  7. Yc = vec2ind(Y);
  8. figure(2)
  9. plot(X(1,:),X(2,:),'.','markersize',30)
  10. axis([0 3 0 3])
  11. for i = 1:3,text(X(1,i)+0.1,X(2,i),sprintf('class %g',Yc(i))),end
  12. title('测试网络')
  13. xlabel('X(1,:)')
  14. ylabel('X(2,:)')

प्रभावं पश्यन्तु

99dcaabffb554913b0d153b807c6b7e2.png

३) नवीनं दत्तांशपरीक्षणजालम्

कोड

  1. x = [2; 1.5];
  2. y = net(x);
  3. ac = vec2ind(y);
  4. hold on
  5. figure(3)
  6. plot(x(1),x(2),'.','markersize',30,'color',[1 0 0])
  7. text(x(1)+0.1,x(2),sprintf('class %g',ac))
  8. hold off
  9. title('新数据分类')
  10. xlabel('X(1,:) and x(1)')
  11. ylabel('X(2,:) and x(2)')

प्रभावं पश्यन्तु

03a46217cb4840ddb1d7a4da2b249be4.png

5. संभाव्यतावादी तंत्रिकाजालं निवेशस्थानं त्रयः वर्गेषु विभजति ।

दृष्टान्तरूपेण दर्शयतु

त्रयः वर्गाः विभक्ताः

कोड

  1. x1 = 0:.05:3;
  2. x2 = x1;
  3. [X1,X2] = meshgrid(x1,x2);
  4. xx = [X1(:) X2(:)]';
  5. yy = net(xx);
  6. yy = full(yy);
  7. m = mesh(X1,X2,reshape(yy(1,:),length(x1),length(x2)));
  8. m.FaceColor = [0 0.5 1];
  9. m.LineStyle = 'none';
  10. hold on
  11. m = mesh(X1,X2,reshape(yy(2,:),length(x1),length(x2)));
  12. m.FaceColor = [0 1.0 0.5];
  13. m.LineStyle = 'none';
  14. m = mesh(X1,X2,reshape(yy(3,:),length(x1),length(x2)));
  15. m.FaceColor = [0.5 0 1];
  16. m.LineStyle = 'none';
  17. plot3(X(1,:),X(2,:),[1 1 1]+0.1,'.','markersize',30)
  18. plot3(x(1),x(2),1.1,'.','markersize',30,'color',[1 0 0])
  19. hold off
  20. view(2)
  21. title('三分类')
  22. xlabel('X(1,:) and x(1)')
  23. ylabel('X(2,:) and x(2)')

try effect

d9f88e5a4a194cdab4a7d4c903d77645.png

6. सारांशः

संभाव्यतावादी तंत्रिकाजालम् (PNN) एकं कृत्रिमं तंत्रिकाजालं प्रतिरूपवर्गीकरणार्थं प्रयुक्तम् अस्ति । इदं बेयस्-प्रमेयस्य गाउसीयमिश्रणप्रतिरूपस्य च आधारेण भवति, तस्य उपयोगः विविधप्रकारस्य आँकडानां संसाधनार्थं भवति, यत्र निरन्तरदत्तांशः, असततदत्तांशः च सन्ति वर्गीकरणसमस्यानां निवारणे पारम्परिक-तंत्रिकाजालस्य अपेक्षया पीएनएन अधिकं लचीलं भवति, तथा च अधिकसटीकता सामान्यीकरणक्षमता च अस्ति ।

पीएनएन इत्यस्य मूलभूतकार्यसिद्धान्तः अस्ति यत् नमूनासमूहे निवेशदत्तांशसमूहस्य प्रत्येकस्य नमूनायाश्च समानतायाः गणना, समानतायाः आधारेण निवेशदत्तांशस्य वर्गीकरणं च पीएनएन इत्यत्र चत्वारि स्तराः सन्ति : इनपुट् लेयर, पैटर्न् लेयर, कम्पटीशन लेयर, आउटपुट् लेयर च । निवेशदत्तांशः प्रथमं निवेशस्तरद्वारा प्रतिरूपस्तरं प्रति प्रसारितः भवति, ततः प्रतियोगितास्तरद्वारा समानतायाः गणना भवति, अन्ते च समानतायाः अनुसारं निर्गमस्तरस्य वर्गीकरणं भवति

Matlab मध्ये, भवान् PNN वर्गीकरणं कार्यान्वितुं प्रासंगिकसाधनपेटिकानां उपयोगं कर्तुं शक्नोति अथवा स्वयमेव प्रोग्रामं कर्तुं शक्नोति । प्रथमं भवद्भिः प्रशिक्षणदत्तांशसमूहः परीक्षणदत्तांशसमूहः च सज्जीकर्तुं आवश्यकः, ततः प्रशिक्षणदत्तांशसमूहस्य माध्यमेन PNN मॉडलं प्रशिक्षितव्यः । प्रशिक्षणं समाप्तं कृत्वा परीक्षणदत्तांशसमूहस्य उपयोगः पीएनएन-वर्गीकरणप्रदर्शनस्य मूल्याङ्कनार्थं भविष्यवाणीं च कर्तुं शक्यते ।

समग्रतया पीएनएन विविधवर्गीकरणसमस्यानां कृते उपयुक्ता शक्तिशालिनी वर्गीकरणपद्धतिः अस्ति । व्यावहारिकप्रयोगेषु वर्गीकरणप्रदर्शने सुधारं कर्तुं विशिष्टसमस्यानां अनुसारं समुचितविशेषतानां, आदर्शमापदण्डानां च चयनं कर्तुं शक्यते । Matlab इत्येतत् साधनानां, कार्यसमर्थनस्य च धनं प्रदाति, येन PNN इत्यस्य कार्यान्वयनम्, प्रयोक्तुं च सुलभं भवति ।

7. स्रोतसङ्केतः

कोड

  1. %% 基于概率神经网络(PNN)的分类(matlab)
  2. %此处有三个二元输入向量 X 和它们相关联的类 Tc。
  3. %创建 y 概率神经网络,对这些向量正确分类。
  4. %重要函数:NEWPNN 和 SIM 函数
  5. %% 数据集及显示
  6. X = [1 2; 2 2; 1 1]';
  7. Tc = [1 2 3];
  8. figure(1)
  9. plot(X(1,:),X(2,:),'.','markersize',30)
  10. for i = 1:3, text(X(1,i)+0.1,X(2,i),sprintf('class %g',Tc(i))), end
  11. axis([0 3 0 3])
  12. title('三个二元向量及分类')
  13. xlabel('X(1,:)')
  14. ylabel('X(2,:)')
  15. %% 基于设计输入向量测试网络
  16. %将目标类索引 Tc 转换为向量 T
  17. %用 NEWPNN 设计 y 概率神经网络
  18. % SPREAD 值 1,因为这是输入向量之间的 y 典型距离。
  19. T = ind2vec(Tc);
  20. spread = 1;
  21. net = newpnn(X,T,spread);
  22. %测试网络
  23. %基于输入向量测试网络。通过对网络进行仿真并将其向量输出转换为索引来实现目的。
  24. Y = net(X);
  25. Yc = vec2ind(Y);
  26. figure(2)
  27. plot(X(1,:),X(2,:),'.','markersize',30)
  28. axis([0 3 0 3])
  29. for i = 1:3,text(X(1,i)+0.1,X(2,i),sprintf('class %g',Yc(i))),end
  30. title('测试网络')
  31. xlabel('X(1,:)')
  32. ylabel('X(2,:)')
  33. %数据测试
  34. x = [2; 1.5];
  35. y = net(x);
  36. ac = vec2ind(y);
  37. hold on
  38. figure(3)
  39. plot(x(1),x(2),'.','markersize',30,'color',[1 0 0])
  40. text(x(1)+0.1,x(2),sprintf('class %g',ac))
  41. hold off
  42. title('新数据分类')
  43. xlabel('X(1,:) and x(1)')
  44. ylabel('X(2,:) and x(2)')
  45. %% 概率神经网络将输入空间分为三个类。
  46. x1 = 0:.05:3;
  47. x2 = x1;
  48. [X1,X2] = meshgrid(x1,x2);
  49. xx = [X1(:) X2(:)]';
  50. yy = net(xx);
  51. yy = full(yy);
  52. m = mesh(X1,X2,reshape(yy(1,:),length(x1),length(x2)));
  53. m.FaceColor = [0 0.5 1];
  54. m.LineStyle = 'none';
  55. hold on
  56. m = mesh(X1,X2,reshape(yy(2,:),length(x1),length(x2)));
  57. m.FaceColor = [0 1.0 0.5];
  58. m.LineStyle = 'none';
  59. m = mesh(X1,X2,reshape(yy(3,:),length(x1),length(x2)));
  60. m.FaceColor = [0.5 0 1];
  61. m.LineStyle = 'none';
  62. plot3(X(1,:),X(2,:),[1 1 1]+0.1,'.','markersize',30)
  63. plot3(x(1),x(2),1.1,'.','markersize',30,'color',[1 0 0])
  64. hold off
  65. view(2)
  66. title('三分类')
  67. xlabel('X(1,:) and x(1)')
  68. ylabel('X(2,:) and x(2)')