Brain js — это библиотека javascript, которая позволяет нам легко использовать машинное обучение.

Машинное обучение

Машинное обучение — это область компьютерных наук, в которой используются статистические методы, чтобы дать компьютерным системам возможность «обучаться с данными без явного программирования». — https://en.wikipedia.org/wiki/Machine_learning

Проще говоря, машинное обучение обучает машину, предоставляя ей данные, а не программируя ее напрямую для изучения конкретных задач. Это означает, что при применении машинного обучения «учащийся» должен иметь возможность выполнять задачи, аналогичные тем, которым его учили. При правильном обучении машина должна теперь выполнять похожие, но не идентичные задачи.

Зачем мне?

Потому что мы ленивы. Машинное обучение предоставляет очень эффективные средства для повторяющихся и, возможно, очень сложных задач. Если мы можем научить компьютер выполнять задачу за нас, это сэкономит нам время. Машина может непрерывно работать без перерывов гораздо дольше, чем человек. Кроме того, машины обладают вычислительной мощностью, позволяющей вычислять возможности гораздо быстрее, чем человек. Успешное использование машинного обучения в любом приложении может означать значительную экономию времени и достижение большего прогресса.

Как?

Используя библиотеку Brain.js, мы можем использовать возможности машинного обучения без необходимости применять сложную математику, которая требуется традиционно. Как это работает, разбито на 3 шага:

  1. Предоставьте обучающие данные
  2. Обработка обучающих данных
  3. Прогноз возврата

Шаг 1. Предоставление обучающих данных. Обучение машины может быть очень похоже на обучение человека. В этом случае мы должны предоставить компьютеру ответы и «не-ответы», чтобы он мог сделать точный прогноз. Качество прогноза зависит от качества обучающих данных.

Шаг 2. Как только мы собрали удовлетворительный набор данных для нашей машины, его просто нужно обработать. К счастью, Brain.js делает это очень простым, поскольку мы можем просто передать данные через функцию (или сеть).

Шаг 3. Теперь, когда данные переданы в сеть для обработки, мозг машины считается обученным. Мы можем протестировать его, предоставив ему разные данные, и он скажет нам, насколько он уверен, что предоставленные данные являются ответом.

Пример

Например, мы собираемся обучить нашу собственную сеть распознавать наши любимые цвета.

Установка

Прежде чем мы сможем начать использовать Brain.js, требуется небольшая настройка. Сначала мы импортируем brain.js. Код файла можно найти здесь: https://raw.githubusercontent.com/harthur-org/brain.js/master/browser.js. Это можно скопировать и вставить в файл .js и сохранить как brain.js.

Наша первая нейронная сеть

Теперь, когда brain.js импортирован, у нас есть доступ к созданию нового мозга (или нейронной сети). Использование приведенного выше кода создаст для нас новый мозг.

Обучение

Теперь, если вы помните, чтобы тренировать наш машинный мозг, мы должны давать ему ответы и «не-ответы». По сути, мы хотим показать и сообщить нашему мозгу данные, которые соответствуют желаемым результатам и, наоборот, тем, которые нам не нужны.

Таким образом, в этом примере вход представляет нормализованное значение RGB (или разделенное на 255). Мы нормализуем данные, чтобы brain.js мог работать с меньшими числами и более эффективно вычислять прогнозы. Мы используем 255, потому что это хорошее число, а в спектре RGB есть 255 значений.

Выходным данным присваивается значение либо 1, либо 0. Где 1 представляет 100% уверенность или ответ, а 0 — 0% не является ответом. Здесь мы используем 1 для обозначения «цвета, который мне нравится», а 0 для обозначения «цвета, который мне не нравится».

Запуск функции ниже обучит нашу сеть обучающим данным.

Беги вместе с маленьким парнем

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

Результаты

Вот визуализация того, как это выглядит. Хорошие цвета — это тренировочные данные с выходом 1, а плохие — 0. Мы получили значения RGB всех хороших и плохих цветов, нормализовали их, а затем поместили в наши тренировочные данные.

Как только мозг обучен, мы теперь можем дать ему любой случайный цвет, и он вернет, насколько он уверен, что нам понравится этот цвет. На картинке выше мы видим, что сеть на 84% уверена, что этот цвет нам может понравиться.

Вывод

Brain.js позволяет нам заглянуть в возможности машинного обучения. Мы можем получить невероятно мощные рекомендации в больших масштабах с помощью машинного обучения.

Крутая вещь

https://www.youtube.com/watch?v=9Hz3P1VgLz4

https://itnext.io/you-can-build-a-neural-network-in-javascript-even-if-you-dont-really-understand-neural-networks-e63e12713a3

Ссылки:
Источник изображения 1: https://www.ie.edu/exponential-learning/blog/bootcamps/machine-learning-marketing/