// Simulator FSIT dostupan je u rubrici "Simulatori" na: // http://www.zemris.fer.hr/predmeti/su/ // ------------------------------------------------------------------------- // Tajnice; -1 je "ne-dobra", 1 je "dobra" // Nema učenja; ispisuje samo tablicu za sve uzorke Perceptron p ( SampleDimension(2), Samples( ( 2, 5, 1), ( 5, 2, 1), ( 1, 5,-1), ( 5, 1,-1)), Type("TLU:-1,1"), LearnMethod("Basic"), InputWeights(1,1.3,-5.85), Options( IterationLimit=1, LearningRate=0.00, ProduceRaport=true, LearnNow=true ) ); // ------------------------------------------------------------------------- // Tajnice; -1 je "ne-dobra", 1 je "dobra" // Postupak učenja po Rosenblatu Perceptron p ( SampleDimension(2), Samples( ( 2, 5, 1), ( 5, 2, 1), ( 1, 5,-1), ( 5, 1,-1)), Type("TLU:-1,1"), LearnMethod("Basic"), InputWeights(1,1.3,-5.85), Options( IterationLimit=5, LearningRate=0.02, ProduceRaport=true, LearnNow=true ) ); // ------------------------------------------------------------------------- // Primjer učenja TLU perceptrona logičkoj funkciji XOR, pri čemu je nisko stanje označeno sa -1 a visoko sa 1. // Treba se prisjetiti da je perceptron linearni klasifikator pa kao takav direktno ne moľe naučiti XOR funkciju. // Zbog toga dimenziju ulaznog uzorka umjetno povećavamo nadajući se da ćemo tako uspjeti naučiti perceptron - što // u ovom slučaju radi. Koristi se metoda učenja "Basic". Koristi se TLU sa izlazima -1 i 1 // (što nije navedeno u deklaraciji tipa perceptrona jer je to default). // XOR logička funkcija rješiva je perceptronom uz // prethodno proširenje dimenzije ulaznih uzoraka Perceptron p ( SampleDimension(2), Expansion( *(elem(2),elem(2)), // ovo je zapravo x2 na kvadrat *(elem(1),elem(1)), // ovo je zapravo x1 na kvadrat *(elem(2),elem(1)), // ovo je zapravo x2*x1 elem(2), // ovo je direktno x2 elem(1) // ovo je direktno x1 ), Samples((-1,-1,-1),(-1, 1,1),( 1,-1,1),( 1, 1, -1)), Type("TLU"), LearnMethod("Basic"), InputWeights(0.3,0.2,0.1,-0.2,-0.4,-0.3), Options( IterationLimit=5, LearningRate=0.5, ProduceRaport=true, LearnNow=true ) ); // ------------------------------------------------------------------------- // Rješenje XOR-a ako dobro znamo pogoditi transformaciju ulaza Perceptron p ( SampleDimension(2), Expansion( *(elem(2),elem(1)) // ovo je zapravo x2*x1 ), Samples((-1,-1,-1),(-1, 1,1),( 1,-1,1),( 1, 1, -1)), Type("TLU"), LearnMethod("Basic"), InputWeights(0.3,0.2), Options( IterationLimit=5, LearningRate=0.5, ProduceRaport=true, LearnNow=true ) ); // ------------------------------------------------------------------------- // Primjer učenja ADALINE_R perceptrona u kojem se izvodi linearna regresija. // Zadan je ulazni skup podataka koji poprilici odgovara pravcu y=2x. Metodom // učenja "OnLine" želi se naučiti perceptron da što bolje aproksimira ovu // funkciju. // y = 2x Perceptron p ( SampleDimension(1), Samples( (0,-0.1), (1,2.1), (2,3.9), (3,6.1), (4,8) ), Type("ADALINE_R"), LearnMethod("OnLine"), InputWeights(0.0), Options( IterationLimit=1, LearningRate=0.1, ProduceRaport=true, LearnNow=true ) ); // ------------------------------------------------------------------------- // Primjer učenja ADALINE_R perceptrona u kojem se izvodi linearna regresija. // Zadan je ulazni skup podataka koji poprilici odgovara pravcu y=2x. Metodom // učenja "Batch" želi se naučiti perceptron da što bolje aproksimira ovu // funkciju. // y = 2x Perceptron p ( SampleDimension(1), Samples( (0,-0.1), (1,2.1), (2,3.9), (3,6.1), (4,8) ), Type("ADALINE_R"), LearnMethod("Batch"), InputWeights(0.0), Options( IterationLimit=4, LearningRate=0.02, ProduceRaport=true, LearnNow=true ) );