Нейронные сети на JS
ВСЕВОЛОД РОДИОНОВ (@JABHER)
Not in a very distant
code hosting not so
long ago
Javascipt
fatique
кто-то сделал
новый фреймворк
КОГДА В ТВИТТЕРЕ УЗНАЛИ, ЧТO
КАК JS ЗАХВАТИЛ МИР
ТИХАЯ РЕВОЛЮЦИЯ
Веб-серверы
Low-level
Интерфейсы
DevOps
Blockchain
Научные
инструменты
КАК JS ЗАХВАТИЛ МИР
ТИХАЯ РЕВОЛЮЦИЯ
Веб-серверы "Node is new Java"
Low-level
Интерфейсы
DevOps
Blockchain
Научные
инструменты
КАК JS ЗАХВАТИЛ МИР
ТИХАЯ РЕВОЛЮЦИЯ
Веб-серверы "Node is new Java"
Low-level Espruino/edison/raspberry
Интерфейсы
DevOps
Blockchain
Научные
инструменты
КАК JS ЗАХВАТИЛ МИР
ТИХАЯ РЕВОЛЮЦИЯ
Веб-серверы "Node is new Java"
Low-level Espruino/edison/raspberry
Интерфейсы ага
DevOps
Blockchain
Научные
инструменты
КАК JS ЗАХВАТИЛ МИР
ТИХАЯ РЕВОЛЮЦИЯ
Веб-серверы "Node is new Java"
Low-level Espruino/edison/raspberry
Интерфейсы ага
DevOps
успешная конкуренция:
микросервисы (now) и лямбды
Blockchain
Научные
инструменты
КАК JS ЗАХВАТИЛ МИР
ТИХАЯ РЕВОЛЮЦИЯ
Веб-серверы "Node is new Java"
Low-level Espruino/edison/raspberry
Интерфейсы ага
DevOps
успешная конкуренция:
микросервисы (now) и лямбды
Blockchain
Etherium работает на
JS + JS-alike typed language
Научные
инструменты
КАК JS ЗАХВАТИЛ МИР
ТИХАЯ РЕВОЛЮЦИЯ
Веб-серверы "Node is new Java"
Low-level Espruino/edison/raspberry
Интерфейсы ага
DevOps
успешная конкуренция:
микросервисы (now) и лямбды
Blockchain
Etherium работает на
JS + JS-alike Solidity
Научные
инструменты УПС
Я УВЕРЕН, ДЛЯ
ЭТОГО ЕСТЬ ПАКЕТ В
NPM
Любой JS-хипстер
нiт
data science is
new hype train
TEXT
WHO'S ON THE TRAIN
▸ Google
▸ Facebook
▸ Nvidia
▸ Tesla
▸ Microsoft
▸ Apple
▸ IBM
Не надо стоять
на пути
паравоза
НЕ ВСЕГДА ЛОГИКА ОПИСЫВАЕМА
function() {[native
code]}
НЕ ВСЕГДА ЛОГИКА ОПИСЫВАЕМА
Реальный мир -
это [native code]
a + b * x = y
a + b * x = y
рост = 100 + вес
a + b * x = y
рост = 100 + вес
с ошибкой в n%
Даннные важнее
алгоритмов
Даннные важнее
алгоритмов
Это все
про data flow
ReactiveX.io
/rxjs
Показывай
уже
ПОКАЗЫВАЙ УЖЕ
new Model([40, 128])
.pipe(new LSTM(128))
.pipe(new Dense(40))
.pipe(new Softmax())
.compile()
ПОКАЗЫВАЙ УЖЕ
new Model([40, 128])
.pipe(new LSTM(128))
.pipe(new Dense(40))
.pipe(new Softmax())
.compile()
:rxjs$Subject
<ndarray, ndarray>;
ПОКАЗЫВАЙ УЖЕ
model
.loss(new X_entropy())
.optimize(new SGD(.1))
ПОКАЗЫВАЙ УЖЕ
model
.loss(new X_entropy())
.optimize(new SGD(.1))
.compile()
:rxjs$Subject
<{in, expectedOut},
number>;
ГЕНЕРАЦИЯ ТЕКСТА
codec = new Codec(text);
input = new Subject()
.map(codec.encode);
stream = model
.compile(input)
.map(codec.decode);
stream.next('hell');'o'
ГЕНЕРАЦИЯ ТЕКСТА
stream.next('he');'l'
ГЕНЕРАЦИЯ ТЕКСТА
stream.next('he');'l'
stream.next('hel');'l'
ГЕНЕРАЦИЯ ТЕКСТА
stream.next('he');'l'
stream.next('hel');'l'
stream.next('hell');'o'
ГЕНЕРАЦИЯ ТЕКСТА
stream.next('h');'e'
stream.next('e');'l'
stream.next('l');'l'
stream.next('l');'o'
ГЕНЕРАЦИЯ ТЕКСТА
ГЕНЕРАЦИЯ ТЕКСТА
ГЕНЕРАЦИЯ ТЕКСТА
РАСПОЗНАВАНИЕ ИЗОБРАЖЕНИЙ
new Model([256, 256])
.pipe(
new Convolution2D(3, 3)
).pipe(
new Flatten()
).pipe(
new Sigmoid()
)
РАСПОЗНАВАНИЕ ИЗОБРАЖЕНИЙ
РАСПОЗНАВАНИЕ ИЗОБРАЖЕНИЙ
ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЙ
ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЙ
ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЙ
Much deep
So wow
Very neural
ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЙ
REENFORCEMENT LEARNING
REENFORCEMENT LEARNING
REENFORCEMENT LEARNING
To be done
КАК УЛУЧШИТЬ ОБУЧЕНИЕ
БОЛЬШЕ СЛОЕВ?
КАК УЛУЧШИТЬ ОБУЧЕНИЕ
КАК УЛУЧШИТЬ ОБУЧЕНИЕ
ПОКАЗЫВАЙ УЖЕ
model
.loss(new X_entropy())
.optimize(new SGD(.1))
.compile()
:rxjs$Subject
<{in, expectedOut},
number>;
КАК УЛУЧШИТЬ ОБУЧЕНИЕ
ОПТИМИЗАТОРЫ
ПРОБЛЕМЫ
НЕТ МОЩНЫХ РЕШЕНИЙ
▸ Synaptic 1 - только RNN/LSTM
▸ ConvnetJS - только Convolution
▸ Другие решения от Andrej Karpatny очень специфичны
▸ Brain.JS - нет computer science
▸ Keras.JS - только плеер
▸ MXnet - порт Asm.JS; довольно сложный в использовании
▸ NeuroJS - на самом деле вроде хорош, если не считать
отсутствия документации
Special thanks
Special thanks
github.com/floridajs
ВСЕВОЛОД РОДИОНОВ
WE@ARKTUR.IO

Нейронные сети на JS