Знакомство с нейросетями и немного магии на JavaScript

Содержание

Слайд 2

Что такое нейросеть?

Что такое нейросеть?

Слайд 3

Что такое нейросеть?

Нейро́нная сеть (также искусственная нейронная сеть, ИНС) — математическая модель,

Что такое нейросеть? Нейро́нная сеть (также искусственная нейронная сеть, ИНС) — математическая
а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма.

Слайд 4

Мозг и нейроны

Мозг и нейроны

Слайд 5

Мозг и нейроны

!!ПРЕДУПРЕЖДЕНИЕ!!!!
Я не биолог, а программист и могу высказывать сильно упрощенные,

Мозг и нейроны !!ПРЕДУПРЕЖДЕНИЕ!!!! Я не биолог, а программист и могу высказывать
либо ошибочные суждения (не нарочно).
Меня успокаивает только то, что большинство биологов будут точно так же плавать в области программирования.

Слайд 6

Мозг и нейроны

Нейрон - нервная клетка, основная функциональная и структурная единица нервной

Мозг и нейроны Нейрон - нервная клетка, основная функциональная и структурная единица
системы; принимает сигналы, поступающие от рецепторов и других нейронов, перерабатывает их и в форме нервных импульсов передаёт к эффекторным нервным окончаниям

Слайд 7

Мозг и нейроны

Мозг и нейроны

Слайд 8

Мозг и нейроны

Датчики Глаза, Уши, Язык, Кожа, Нос

Обработка

Команды Мышцы, Железы и т.д.

Мозг и нейроны Датчики Глаза, Уши, Язык, Кожа, Нос Обработка Команды Мышцы, Железы и т.д.

Слайд 9

Большой палец

Указательный

Мизинец

Чувствительные нейроны кожи

Большой палец Указательный Мизинец Чувствительные нейроны кожи

Слайд 10

Большой палец

Указательный

Мизинец

Нейроны сложения импульсов

Большой палец Указательный Мизинец Нейроны сложения импульсов

Слайд 11

Большой палец

Указательный

Мизинец

отдернуть указательный

отдернуть большой палец

отдернуть мизинец

Моторные нейроны

Большой палец Указательный Мизинец отдернуть указательный отдернуть большой палец отдернуть мизинец Моторные нейроны

Слайд 12

Большой палец

Указательный

Мизинец

отдернуть указательный

отдернуть большой палец

отдернуть мизинец

отдернуть руку

Большой палец Указательный Мизинец отдернуть указательный отдернуть большой палец отдернуть мизинец отдернуть руку

Слайд 13

Большой палец

Указательный

Мизинец

отдернуть указательный

отдернуть большой палец

отдернуть мизинец

отдернуть руку

Так задумано

Е

Большой палец Указательный Мизинец отдернуть указательный отдернуть большой палец отдернуть мизинец отдернуть руку Так задумано Е

Слайд 14

Простейшая мат. модель. Перцептрон

Простейшая мат. модель. Перцептрон

Слайд 15

Создание и обучение нейросети

Создание и обучение нейросети

Слайд 16

Создание и обучение нейросети

100

Создание и обучение нейросети 100

Слайд 17

Создание и обучение нейросети

[1, 200] = left [150, 50] = right [80, 100] =

Создание и обучение нейросети [1, 200] = left [150, 50] = right
left [120, 150] = right [110, 4] = right [20, 120] = left [80, 80] = left [115, 30] = right [48, 19] = left [152, 93] = right

Слайд 18

Создание и обучение нейросети

20

50

2

4

10

Лево

Право

+1

+1

+1

+1

+1

+1

+5

-8

-1

1

+3

18

Создание и обучение нейросети 20 50 2 4 10 Лево Право +1

Слайд 19

Создание и обучение нейросети

Идеал: [1, 200] = left [150, 50] = right [80, 100] =

Создание и обучение нейросети Идеал: [1, 200] = left [150, 50] =
left [120, 150] = right [110, 4] = right [20, 120] = left [80, 80] = left [115, 30] = right [48, 19] = left [152, 93] = right

Факт: [1, 200] = right [150, 50] = right [80, 100] = right [120, 150] = right [110, 4] = left [20, 120] = left [80, 80] = left [115, 30] = left [48, 19] = left [152, 93] = right

Коэффициент различия

22

Слайд 20

Создание и обучение нейросети

20

50

2

4

10

Лево

Право

+1

+1

+1

+1

+1

+1

+5

-8

-1

1

+3

18

Создание и обучение нейросети 20 50 2 4 10 Лево Право +1

Слайд 21

Создание и обучение нейросети

10

11

2

4

5

Лево

Право

+1

-1

+12

0

+1

+1

+5

-8

-1

1

+3

18

Создание и обучение нейросети 10 11 2 4 5 Лево Право +1

Слайд 22

Создание и обучение нейросети

Идеал: [1, 200] = left [150, 50] = right [80, 100] =

Создание и обучение нейросети Идеал: [1, 200] = left [150, 50] =
left [120, 150] = right [110, 4] = right [20, 120] = left [80, 80] = left [115, 30] = right [48, 19] = left [152, 93] = right

Факт: [1, 200] =left [150, 50] = right [80, 100] = right [120, 150] = right [110, 4] = right [20, 120] = left [80, 80] = left [115, 30] = right [48, 19] = left [152, 93] = right

Коэффициент различия

18

Слайд 23

Создание и обучение нейросети

100

Создание и обучение нейросети 100

Слайд 24

Создание и обучение нейросети

Создание и обучение нейросети

Слайд 25

Создание и обучение нейросети

Создание и обучение нейросети

Слайд 26

Глубокое обучение

То есть нейросеть не просто работает по какому то алгоритму, а

Глубокое обучение То есть нейросеть не просто работает по какому то алгоритму,
сама вырабатывает алгоритм. Причем описание такого алгоритма чаще всего слишком огромно и сложно для восприятия человеком. В результате нейронная сеть способна выявить такие закономерности, из набора неструктурированных входных данных, которые сложно выразить в виде формул, да и вообще заметить человеку.

Слайд 27

Зачем JS?

Потому что я знаю JS
Потому что на JS можно писать кучу

Зачем JS? Потому что я знаю JS Потому что на JS можно
всего из совершенно разных областей - Сайты и веб-приложения - Мобильные приложения - VR и AR - Нейросети - 3D графика - и т.д.
Разумеется, при такой разноплановости, JS проигрывает специализированным решениям, но его универсальность решает.

Слайд 28

За что схватиться?

https://learn.ml5js.org/#/

https://www.tensorflow.org/js

За что схватиться? https://learn.ml5js.org/#/ https://www.tensorflow.org/js

Слайд 29

Создаем и обучаем нейросеть на ML5

const nn = ml5.neuralNetwork({
task: 'classification',
debug:

Создаем и обучаем нейросеть на ML5 const nn = ml5.neuralNetwork({ task: 'classification',
true
});
nn.addData([1, 200], ['left']);

nn.normalizeData();
nn.train({
epochs: 300,
batchSize: 12
}, finishedTraining);

Слайд 30

Классифицируем данные

function finishedTraining() {
nn.classify([3, 3], console.log);
}

Здесь у меня видимо было

Классифицируем данные function finishedTraining() { nn.classify([3, 3], console.log); } Здесь у меня
что-то с компьютером. На другом компьютере нейросеть отработала штатно, и сразу сказала верный ответ. После перезагрузки и на первом компьютере все заработало штатно. Приношу извинения за неполадки в оборудовании.

Слайд 31

Предобученные нейросети

Предобученные нейросети

Слайд 32



The model labeled this as ... with a confidence

The model labeled this as ... with a confidence of ... .
of ....







Слайд 33

Обучаем сеть распознавать изображения

https://teachablemachine.withgoogle.com/train

Обучаем сеть распознавать изображения https://teachablemachine.withgoogle.com/train