9-Amaliy mashgʻulot: Perseptron modeli. Perseptron



Yüklə 252,92 Kb.
Pdf görüntüsü
tarix07.06.2023
ölçüsü252,92 Kb.
#115964
9-mavzu



9-Amaliy mashgʻulot: Perseptron modeli. Perseptron 
Preseptron algoritmi ikkita (binar) sinfni klassifikasiya qiluvchi algoritmidir. Bu 
model yagona neyrondan tarkib topgan bo’lib kirish qiymatini olib qaysi sinfga 
tegishli ekani bashorat qiladi. Buning uchun kirish qiymatlarining vaznlarga 
ko’paytmasi xisoblanadi. Kirish qiymatlarining vaznlarga ko’paytmasi yig’indisi 
faollashtirish deyiladi.
Faollashtirish = vaznlar * kirish qiymatlari + b 
Agar faollashtirish 0.0 dan yuqori bo’lsa, model 1.0 qiymatni chiqaradi; aks holda 
0.0 qiymat chiqaradi. 
Bashorat qilinadi 1: agar faollashtirish > 0.0 
Bashorat qilinadi 0: agar faollashtirish <= 0.0 
Perseptronning sxematik chizmasidan ko’rinib turibdiki kirish x
i
qiymatlariga mos 
w
i
vazn qiymatlari ko’paytirilib yig’indisi xisoblanadi. Chiqishda faollashtirish 
funksiyasi (bu yerda qadam “step” funksiya) yig’indini qiymati bo’sag’a qiymatidan 
katta yoki kichikligiga qarab 1 yoki 0 qiymatni beradi. 


Bo’sag’a faollashtirish funksiyasi 
Bo’sag’a faollashtirish funksiyasidan foydalanilganda vaznlar bilan kirish 
qiymatlari ko’paytmasi yig’indisi bo’sag’a qiymatidan katta bo’lsa neyron 
faollashadi aks holda neyron faollashmaydi. 
f(s) 

1:
agar s > 0.0 
f(s) 

0:
agar s <= 0.0 
Yuqoridagi formuladan ko’rinib turibdiki agar yig’indi s ning qiymati musbat bo’lsa 
f(s) funksiya qiymati 1 ga teng bo’ladi aks holda 0 ga teng bo’ladi. Funksiya qiymati 
1 ga teng bo’lganda keyingi qatlamdagi neyron kirishiga yoki chiqishga qiymat 
beriladi. 
using System; 
namespace test{ 
class Program 

static void Main(string[] args) 

int[,] input = new int[,] { {1,0}, {1,1}, {0,1}, {0,0} }; 
int[] outputs = { 0, 1, 0, 0 }; 
Random r = new Random(); 
double[] weights = { r.NextDouble(), r.NextDouble(), r.NextDouble() }; 
double learningRate = 1; 
double totalError = 1; 
while (totalError > 0.2) 

totalError = 0; 
for (int i = 0; i < 4; i++) 

int output = calculateOutput(input[i, 0], input[i, 1], weights); 
int error = outputs[i] - output; 
weights[0] += learningRate * error * input[i, 0]; 
weights[1] += learningRate * error * input[i, 1]; 
weights[2] += learningRate * error * 1; 
totalError += Math.Abs(error); 

}
Console.WriteLine("Results:"); 


for (int i = 0; i < 4; i++) 
Console.WriteLine(calculateOutput(input[i, 0], input[i, 1], weights)); 
Console.ReadLine(); 

private static int calculateOutput(double input1, double input2, double[] 
weights) 

double sum = input1 * weights[0] + input2 * weights[1] + 1 * weights[2]; 
return (sum >= 0) ? 1 : 0; 




Yüklə 252,92 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə