• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Perceptron prosty

Fiszki IT
Fiszki IT
0 głosów
67 wizyt
pytanie zadane 9 listopada 2019 w Inne języki przez tralnia Nowicjusz (150 p.)
Zadania:
 Wygenerować zbiór danych uczących 2-wymiarowy, w którym będą dwie klasy (klasy są liniowo separowane) i graficznie pokazać wygenerowany zbiór, rozróżniając przynależność elementów zbioru do poszczególnych klas.
 Utworzyć perceptron prosty.
 Przeprowadzić uczenie neuronu i po nauczeniu, wyrysować linię decyzyjną.
 Przeprowadzić symulację nauczonego neuronu.
 Graficznie pokazać, do której klasy przynależy element x.

// Przykład generowania danych wzorcowych 2-wymiarowych
n = 50 //liczba wzorcw
K1 = 15*rand(2,n)+5 // klasa I
K2 = 15*rand(2,n)+25 // klasa II
P = [K1,K2] // połączenie wzorców w jeden zbiór
plot(K1(1,:), K1(2,:),'rx', K2(1,:), K2(2,:),'bo') //rysunek

 

Jak ten kod ma wygląć w SCILAB ?
komentarz 9 listopada 2019 przez reaktywny Nałogowiec (25,440 p.)

Szukasz rozwiązania zadania, którego nie zrobi się w kilka minut... To jest bardziej mini projekt, czyli zlecenie płatne w mojej ocenie. Widziałem na OLX osoby, które wykonują takie rzeczy, ale to jest 500+ zł :)

Jak szukasz pomocy, pokaż kod który już zrobiłeś i powiedz w którym punkcie masz problemy, wątpliwości, etc.

komentarz 9 listopada 2019 przez tralnia Nowicjusz (150 p.)
n = 50  //liczba wzorcw  
K1 = 15*rand(2,n)+5 // klasa I
K2 = 15*rand(2,n)+25 // klasa II 
p = [K1,K2] // połączenie wzorców w jeden zbiór 
plot(K1(1,:), K1(2,:),'rx', K2(1,:), K2(2,:),'bo') //rysunek 

for i = 1:n
    W(1,i) = rand()
    W(2,i) = rand()
    W(3,i) = rand()
end

K3 = -1
f = 1
a = 0.2
w_zadana = 1
D1 = 0*rand(2,n)
D2 = 0*rand(2,n) + 1
d = [D1, D2]

while(f)
    pob = 0
    for i = 1:n
        pob = pob + p(1,i)*W(1,i) + p(2,i)*W(2,i) + K3*W(3,i)  
    end
    
    disp(pob)

    if pob > 0 then
            f = 1
            for i = 1:n
                if (d(1,i) - f) <> 0
                    W(1,i) = W(1,i) + a * (d(1,i) - f) * p(1,i)
                end
                if (d(2,i) - f) <> 0
                    W(2,i) = W(2,i) + a * (d(2,i) - f) * p(2,i)
                end
                if (w_zadana - f) <>  0
                    W(3,i) = W(3,i) + a * (w_zadana - f) * K3
                end
            end
    else
            f = 0
    end  
end

x=0:0.5:50
y = -(W(1,:)/W(2,:))*x + (W(3,:)/W(2,:))

plot(x,y, p(1,:),p(2,:), 'ro')

     
 

Neuron nie dziala

1 odpowiedź

–1 głos
odpowiedź 9 listopada 2019 przez spamator12 Pasjonat (24,870 p.)
Nie jest to az tak skomplikowane, co nie zmienia faktu ze raczej wiadomo do czego to jest potrzebne i nie dostaniesz gotowca.
komentarz 9 listopada 2019 przez tralnia Nowicjusz (150 p.)
n = 50  //liczba wzorcw  
K1 = 15*rand(2,n)+5 // klasa I
K2 = 15*rand(2,n)+25 // klasa II 
p = [K1,K2] // połączenie wzorców w jeden zbiór 
plot(K1(1,:), K1(2,:),'rx', K2(1,:), K2(2,:),'bo') //rysunek 

for i = 1:n
    W(1,i) = rand()
    W(2,i) = rand()
    W(3,i) = rand()
end

K3 = -1
f = 1
a = 0.2
w_zadana = 1
D1 = 0*rand(2,n)
D2 = 0*rand(2,n) + 1
d = [D1, D2]

while(f)
    pob = 0
    for i = 1:n
        pob = pob + p(1,i)*W(1,i) + p(2,i)*W(2,i) + K3*W(3,i)  
    end
    
    disp(pob)

    if pob > 0 then
            f = 1
            for i = 1:n
                if (d(1,i) - f) <> 0
                    W(1,i) = W(1,i) + a * (d(1,i) - f) * p(1,i)
                end
                if (d(2,i) - f) <> 0
                    W(2,i) = W(2,i) + a * (d(2,i) - f) * p(2,i)
                end
                if (w_zadana - f) <>  0
                    W(3,i) = W(3,i) + a * (w_zadana - f) * K3
                end
            end
    else
            f = 0
    end  
end

x=0:0.5:50
y = -(W(1,:)/W(2,:))*x + (W(3,:)/W(2,:))

plot(x,y, p(1,:),p(2,:), 'ro')

     
 

Neuron nie dziala

Podobne pytania

0 głosów
0 odpowiedzi 24 wizyt
0 głosów
0 odpowiedzi 1,606 wizyt
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

84,794 zapytań

133,600 odpowiedzi

296,073 komentarzy

56,043 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...