Similar presentations:
Знакомство с нейросетями и немного магии на JavaScript
1.
Знакомство с нейросетямии немного магии на
JavaScript
https://cutt.ly/quantorium-neural
2.
Что такое нейросеть?3.
Что такое нейросеть?Нейро́нная сеть (также искусственная нейронная сеть, ИНС)
— математическая модель, а также её программное или
аппаратное воплощение, построенная по принципу
организации и функционирования биологических нейронных
сетей — сетей нервных клеток живого организма.
4.
Мозг и нейроны5.
Мозг и нейроны!!ПРЕДУПРЕЖДЕНИЕ!!!!
Я не биолог, а программист и могу высказывать сильно
упрощенные, либо ошибочные суждения (не нарочно).
Меня успокаивает только то, что большинство биологов
будут точно так же плавать в области программирования.
6.
Мозг и нейроныНейрон - нервная клетка, основная функциональная и структурная
единица нервной системы; принимает сигналы, поступающие от
рецепторов и других нейронов, перерабатывает их и в форме нервных
импульсов передаёт к эффекторным нервным окончаниям
7.
Мозг и нейроны8.
Мозг и нейроныДатчики
Глаза, Уши, Язык, Кожа, Нос
Обработка
Команды
Мышцы, Железы и т.д.
9.
Большой палецУказательный
Мизинец
Чувствительные
нейроны кожи
10.
Большой палецУказательный
Мизинец
Нейроны сложения
импульсов
11.
Большой палецМоторные нейроны
отдернуть
большой палец
отдернуть
указательный
отдернуть
мизинец
Указательный
Мизинец
12.
Большой палецУказательный
Мизинец
отдернуть
большой палец
отдернуть
указательный
отдернуть руку
отдернуть
мизинец
13.
Большой палецУказательный
Мизинец
Так
задумано
отдернуть
большой палец
отдернуть
указательный
отдернуть руку
отдернуть
мизинец
Е
14.
Простейшая мат. модель. Перцептрон15.
Создание и обучение нейросети16.
Создание и обучение нейросети100
17.
Создание и обучение нейросети[1, 200] = left
[150, 50] = right
[80, 100] = left
[120, 150] = right
[110, 4] = right
[20, 120] = left
[80, 80] = left
[115, 30] = right
[48, 19] = left
[152, 93] = right
18.
Создание и обучение нейросети20
+1
+5
+1
+1
+1
-8
10
1
+1
+1
Лево
2
Право
+3
-1
18
50
4
19.
Создание и обучение нейросетиИдеал:
[1, 200] = left
[150, 50] = right
[80, 100] = left
[120, 150] = right
[110, 4] = right
[20, 120] = left
[80, 80] = left
[115, 30] = right
[48, 19] = left
[152, 93] = right
Коэффициент
различия
2
2
Факт:
[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
20.
Создание и обучение нейросети20
+1
+5
+1
+1
+1
-8
10
1
+1
+1
Лево
2
Право
+3
-1
18
50
4
21.
Создание и обучение нейросети10
+1
+5
-1
+12
0
-8
5
1
+1
+1
Лево
2
Право
+3
-1
18
11
4
22.
Создание и обучение нейросетиИдеал:
[1, 200] = left
[150, 50] = right
[80, 100] = left
[120, 150] = right
[110, 4] = right
[20, 120] = left
[80, 80] = left
[115, 30] = right
[48, 19] = left
[152, 93] = right
Коэффициент
различия
1
8
Факт:
[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
23.
Создание и обучение нейросети100
24.
Создание и обучение нейросети25.
Создание и обучение нейросети26.
Глубокое обучениеТо есть нейросеть не просто работает по какому то алгоритму, а сама вырабатывает
алгоритм. Причем описание такого алгоритма чаще всего слишком огромно и сложно для
восприятия человеком.
В результате нейронная сеть способна выявить такие закономерности, из набора
неструктурированных входных данных, которые сложно выразить в виде формул, да и
вообще заметить человеку.
27.
Зачем JS?1. Потому что я знаю JS
2. Потому что на JS можно писать кучу всего из совершенно разных
областей
- Сайты и веб-приложения
- Мобильные приложения
- VR и AR
- Нейросети
- 3D графика
- и т.д.
Разумеется, при такой разноплановости, JS проигрывает
специализированным решениям, но его универсальность решает.
28.
За что схватиться?https://learn.ml5js.org/#/
https://www.tensorflow.org/js
29.
Создаем и обучаем нейросеть на ML5const nn = ml5.neuralNetwork({
task: 'classification',
debug: true
});
nn.addData([1, 200], ['left']);
…
nn.normalizeData();
nn.train({
epochs: 300,
batchSize: 12
}, finishedTraining);
30.
Классифицируем данныеfunction finishedTraining() {
nn.classify([3, 3], console.log);
}
Здесь у меня видимо было что-то с компьютером. На другом компьютере нейросеть отработала
штатно, и сразу сказала верный ответ.
После перезагрузки и на первом компьютере все заработало штатно.
Приношу извинения за неполадки в оборудовании.
31.
Предобученные нейросети32.
<html><body>
<p>The model labeled this as <span id="result">...</span> with a confidence of <span
id="probability">...</span>.</p>
<img src="https://i.insider.com/5ba126df3cccd120008b4568?width=1100&format=jpeg&auto=webp"
id="image" width="400" crossorigin="anonymous" />
</body>
<script src="https://unpkg.com/ml5@latest/dist/ml5.min.js" type="text/javascript"></script>
<script>
const image = document.getElementById('image'); // The image we want to classify
const result = document.getElementById('result'); // The result tag in the HTML
const probability = document.getElementById('probability'); // The probability tag in the HTML
ml5.imageClassifier('MobileNet')
.then(classifier => classifier.classify(image))
.then(results => {
console.log(results);
result.innerText = results[0].label;
probability.innerText = results[0].confidence.toFixed(4);
});
</script>
</html>
33.
Обучаем сеть распознавать изображенияhttps://teachablemachine.withgoogle.com/train
34.
35.
Домашнее задание1) Используя тип - regression, и и метод predict научите нейросеть
складывать три числа.
2) Научите нейросеть распознавать ваши жесты
3) Для тех, кто хочет поковыряться: Подключитесь к веб-камере и сделайте
разблокирование области сайта жестом.