Нейронные сети на JS// А зачем?
JS Backend developer
Мой путь: C - PHP- Python - JS
Пробовал: C++, Ruby, Go, Scala, Haskell
Нравится все новое и хайповое
Два года пытаюсь в свободное время заниматься NLP
Участвовал в MlonCode, занимаюсь в свободное время анализом Js кода

О себе

1. Причины, зачем JS девелоперу это
2. Основные тренды в нейронных сетях
3. Основные инструменты для JS
4. Мотивирующие примеры
Что я расскажу
Я не буду объяснять, что такое нейронная сеть.

Причины
1. Не надо изучать новый язык
2. Есть инструменты
3. Есть практическое применение
4. Чем больше проектов на JS, тем больше JS связан с будущим
Почему JS
Меняйтесь раньше, чем вас заставят это сделать.
Джек Уэлч
Последняя миля

Тренды
1. Computer vision
2. Audio
3. NLP
4. Video
5. Code
6. Logs
Типы применения
2010 - ImageNet, ILSVCR

2012 - CNN(16%)

2015 - LSTM
(Google Voice - 49%)

2017 - GAN
(2018 - Grand Pale)

2019 - BERT
(Google Search, SQuAD - 93,2%)




Реальный пример
Инструменты

1. Похож на Keras
2. Использует GPU через Canvas
3. Можно выгружать в Web-Worker
4. Можно использовать keras, pytorch модели
5. Handwritten - https://codelabs.developers.google.com/codelabs/tfjs-training-classfication/index.html#4
Особенности
Особенности



Brain.js

1. Использование GPU как демо
2. С 2010
3. Легкий в усвоении, если не знаешь Keras
4. Основные типы нейронных сетей есть
5. Typescript
6. 648 kb
Это важно, потому что


Ml5.js

1. Очень простой
2. Высокоуровневый
3. Над Tensorflow.js
4. Много готовых заготовок
5. Размер - 1,5 mb
6. Face-api - 700kb, MNIST - 200kb, MobileNet -2 mb
Преимущества

1. Stdlib-js
2. Machinelearn.js
3. Math.js
4. Face-api.js
5. R-js
6. Natural
Еще!

Загрузка данных


D3, Pandas.js, Data-forge, dataframe-js


Преобразования

node-word2vec


Code2Vec

Code2Sec
Статистика по данным

Графики по данным



Примеры


- 783 kb
- При загрузке MobileNetV2 - без тормозов
Teachable Machine
Mortal Combat with movement.js
MLonCode
Наборы данных
- Javascript dataset: https://www.sri.inf.ethz.ch/js150
- Javascript dataset: https://archive.org/details/javascript-sources-oct2016.sqlite30
- Names in source codes: https://data.world/vmarkovtsev/github-source-code-names
- Models: https://github.com/src-d/models
- CodeSearchNet: https://github.com/github/CodeSearchNet
Pix2Code
Code2Pix:
https://github.com/ngundotra/code2pix
Pix2Code:
https://github.com/tonybeltramelli/pix2code
Company: https://uizard.io/research/#pix2code


Getafix - facebook fix manager
Sapienz - facebook search test suites

Aroma

Naturalize
Repo: https://github.com/mast-group/naturalize
More description names

Naturalize
Repo: https://github.com/mast-group/naturalize
More description names

Typilus
Repo: https://github.com/typilus/typilus-action
Action names for python


Aicodoo

Workshop
@cloudkserg
Q&A
source{d}
MLonCode
BecomingHuman
@alexanderksen1
ai.facebook
Vadim Markovtsev
@headinthebox
go-bully
@miltos1
@francesc
Tiferet Gazit
code defect ai from Microsoft
ibm/clai
Нейронные сети на JS// А зачем?
By cloudkserg
Нейронные сети на JS// А зачем?
- 221