ݺߣ

ݺߣShare a Scribd company logo
JESTEM TOMEK
… i lubię dzielić się wiedzą :)
TRYWIALNY
PROBLEMALE NIETYPOWE
ROZWIĄZANIE
AUTOMATYCZNY BRAMKARZ
KLUBOWY
JAK NAUCZYĆ
CZEGOŚ
KOMPUTER?
Jak bramkarz ocenia klubowiczów?
0 Szpilki
1 Adidasy
2 Dready
3 Kobieta
4 Mężczyzna
5 Koszula
6 Sukienka
0 Nie wpuścić
1 Wpuścić
7 neuronów wejściowych
2 neurony wyjściowe
Rezultat
Cechy wejściowe
TRENOWANIE
SIECI
Szkolenie dla bramkarza
Kobieta Mężczyzna Szpilki Adidasy Sukienka Koszula Dready Wynik
1 0 1 0 1 0 0 WPUŚĆ
0 1 1 0 1 0 0 OLEJ
BRAMKARZU,
JAKI TWÓJ
WERDYKT?
Jak uzyskać odpowiedź od sieci?
Wynik: WPUŚĆ Wynik: OLEJ
1,982309203923% 98,017690796077%
POKAŻ MI W
KOŃCU KOD!
Zobaczmy, jak to zrobić :)
RST CodeMeeting: SI praktycznie - czyli od pomysłu do realizacji sieci neuronowej w Twojej przeglądarce! - Tomasz Banasiak
● Nie najgorzej zaprojektowana
● Lekka
● Aktywnie rozwijana
● Dużo przykładów i tutoriali
<html>
<head>
<!-- Include synaptic.js deep
learning network library -->
<script
src=/slideshow/rst-codemeeting-si-praktycznie-czyli-od-pomysu-do-realizacji-sieci-neuronowej-w-twojej-przegldarce-tomasz-banasiak/79241567/"https:/cdnjs.cloudflare.com/aja
x/libs/synaptic/1.0.8/synaptic.min.js
"></script>
// Prepare input vector from params
function prepareInputVector(heels,
sneakers, dreads, female, male, shirt,
dress) {
return [
!!heels,
!!sneakers,
!!dreads,
!!female,
!!male,
!!shirt,
!!dress
];}
// Set up the network
var clubGuard = new
synaptic.Architect.Perceptron(
7, // Input layer with 7 neurons
3, // First hidden layer with 3
neurons
3, // Second hidden layer with 3
neurons
2 // Output layer with 2 neurons
);
// Prepare training for our door keeper
var clubGuardTrainer = new
synaptic.Trainer(clubGuard); // Create
trainer
clubGuardTrainer.train(trainingData, {
rate: 0.1,
iterations: 10000,
shuffle: true
}); // Train with training data
var trainingData = [];
var enter = [0,1]
var leave = [1,0]
trainingData.push({
input: [0,0,0,0,0,0,0],
output: enter
});
// ...
var response = clubGuard.activate(client);
console.log('Should leave ', response[0]);
console.log('Should enter ', response[1]);
// Female client in heels and dress
var client =
prepareInputVector(1,0,0,0,1,0,1);
var response = clubGuard.activate(client);
console.log('Should leave ', response[0]);
console.log('Should enter ', response[1]);
// Result:
Should leave 0.0002799864528963862
Should enter 0.9997194697416417
DEM
O!
… I CO DALEJ? :)
Rozwiń umiejętności swojego
bramkarza!
… I CO DALEJ? :)
●Dane wejściowe były już
opracowane
●Mało danych treningowych
●Nierzeczywiste dane treningowe
●Sieć o niskim poziomie
… I CO DALEJ? :)
●http://playground.tensorflow.org/
●Zabawa i zrozumienie podstaw
●Więcej modelu, mniej kodu
PYTANIA? ;-)
Możecie mnie znaleźć tutaj:
http://banasiak.pro
RST CodeMeeting: SI praktycznie - czyli od pomysłu do realizacji sieci neuronowej w Twojej przeglądarce! - Tomasz Banasiak

More Related Content

RST CodeMeeting: SI praktycznie - czyli od pomysłu do realizacji sieci neuronowej w Twojej przeglądarce! - Tomasz Banasiak

  • 1. JESTEM TOMEK … i lubię dzielić się wiedzą :)
  • 5. 0 Szpilki 1 Adidasy 2 Dready 3 Kobieta 4 Mężczyzna 5 Koszula 6 Sukienka 0 Nie wpuścić 1 Wpuścić 7 neuronów wejściowych 2 neurony wyjściowe Rezultat Cechy wejściowe
  • 7. Kobieta Mężczyzna Szpilki Adidasy Sukienka Koszula Dready Wynik 1 0 1 0 1 0 0 WPUŚĆ 0 1 1 0 1 0 0 OLEJ
  • 9. Wynik: WPUŚĆ Wynik: OLEJ 1,982309203923% 98,017690796077%
  • 10. POKAŻ MI W KOŃCU KOD! Zobaczmy, jak to zrobić :)
  • 12. ● Nie najgorzej zaprojektowana ● Lekka ● Aktywnie rozwijana ● Dużo przykładów i tutoriali
  • 13. <html> <head> <!-- Include synaptic.js deep learning network library --> <script src=/slideshow/rst-codemeeting-si-praktycznie-czyli-od-pomysu-do-realizacji-sieci-neuronowej-w-twojej-przegldarce-tomasz-banasiak/79241567/"https:/cdnjs.cloudflare.com/aja x/libs/synaptic/1.0.8/synaptic.min.js "></script>
  • 14. // Prepare input vector from params function prepareInputVector(heels, sneakers, dreads, female, male, shirt, dress) { return [ !!heels, !!sneakers, !!dreads, !!female, !!male, !!shirt, !!dress ];}
  • 15. // Set up the network var clubGuard = new synaptic.Architect.Perceptron( 7, // Input layer with 7 neurons 3, // First hidden layer with 3 neurons 3, // Second hidden layer with 3 neurons 2 // Output layer with 2 neurons );
  • 16. // Prepare training for our door keeper var clubGuardTrainer = new synaptic.Trainer(clubGuard); // Create trainer clubGuardTrainer.train(trainingData, { rate: 0.1, iterations: 10000, shuffle: true }); // Train with training data
  • 17. var trainingData = []; var enter = [0,1] var leave = [1,0] trainingData.push({ input: [0,0,0,0,0,0,0], output: enter }); // ...
  • 18. var response = clubGuard.activate(client); console.log('Should leave ', response[0]); console.log('Should enter ', response[1]);
  • 19. // Female client in heels and dress var client = prepareInputVector(1,0,0,0,1,0,1); var response = clubGuard.activate(client); console.log('Should leave ', response[0]); console.log('Should enter ', response[1]); // Result: Should leave 0.0002799864528963862 Should enter 0.9997194697416417
  • 21. … I CO DALEJ? :) Rozwiń umiejętności swojego bramkarza!
  • 22. … I CO DALEJ? :) ●Dane wejściowe były już opracowane ●Mało danych treningowych ●Nierzeczywiste dane treningowe ●Sieć o niskim poziomie
  • 23. … I CO DALEJ? :) ●http://playground.tensorflow.org/ ●Zabawa i zrozumienie podstaw ●Więcej modelu, mniej kodu
  • 24. PYTANIA? ;-) Możecie mnie znaleźć tutaj: http://banasiak.pro

Editor's Notes

  • #13: 10kb synaptic, 34kb jquery