Искусственный интеллект

Домой Что такое ИИ? Человеческий интеллект История языков История чисел История вычислений Роботы Замена работы Примеры ИИ Теория разума Программирование JavaScript ИИ в браузере

Математика

Математика Линейные функции Линейная алгебра Векторы Матрицы Тензоры

Статистика

Вероятность Статистика Распределение

Графика

ИИ-плоттер Линейные графики ИИ Диаграммы рассеяния ИИ

Наука ИИ

наук Сбор данных Кластеризация Регрессии Машинное обучение Нейронные сети

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

Персептроны Признание Обучение Тестирование Обучение Терминология Мозг.js

ТензорФлоу

Учебник по TFJS Операции TFJS Модели TFJS Средство просмотра TFJS

Пример 1

Ex1 Введение Ex1 данные Модель Ex1 Ex1 Обучение

Пример 2

Ex2 Введение Ex2 Данные Модель Ex2 Ex2 Обучение

JS-графика

вступление Графическое полотно График Plotly.js График Chart.js График Google График D3.js

Пример 1 Модель


Перемешать данные

Всегда перемешивайте данные перед тренировкой.

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

Пример

tf.util.shuffle(data);

Тензоры TensorFlow

Чтобы использовать TensorFlow, входные данные необходимо преобразовать в тензорные данные:

// Map x values to Tensor inputs
const inputs = values.map(obj => obj.x);
// Map y values to Tensor labels
const labels = values.map(obj => obj.y);

// Convert inputs and labels to 2d tensors
const inputTensor = tf.tensor2d(inputs, [inputs.length, 1]);
const labelTensor = tf.tensor2d(labels, [labels.length, 1]);

Нормализация данных

Данные должны быть нормализованы перед использованием в нейронной сети.

Диапазон от 0 до 1 с использованием min-max часто лучше всего подходит для числовых данных:

const inputMin = inputTensor.min();
const inputMax = inputTensor.max();
const labelMin = labelTensor.min();
const labelMax = labelTensor.max();
const nmInputs = inputTensor.sub(inputMin).div(inputMax.sub(inputMin));
const nmLabels = labelTensor.sub(labelMin).div(labelMax.sub(labelMin));

Модель тензорного потока

Модель машинного обучения — это алгоритм, который производит вывод из ввода.

В этом примере используются 3 строки для определения модели ML :

const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));
model.add(tf.layers.dense({units: 1, useBias: true}));

Последовательная модель машинного обучения

константная модель = tf.sequential(); создает последовательную модель ML .

В последовательной модели вход течет непосредственно к выходу. Другие модели могут иметь несколько входов и несколько выходов. Sequential — самая простая модель ML. Это позволяет вам строить модель слой за слоем с весами, соответствующими следующему слою.

Слои TensorFlow

model.add() используется для добавления двух слоев к модели.

tf.layer.dense — это тип слоя, который работает в большинстве случаев. Он умножает свои входные данные на матрицу весов и добавляет число (смещение) к результату.

Формы и единицы измерения

inputShape: [1] , потому что у нас есть 1 вход (x = лошадиные силы).

Единицы: 1 определяет размер матрицы весов: 1 вес для каждого входа (значение x).


Компиляция модели

Скомпилируйте модель с заданным оптимизатором и функцией потерь :

model.compile({loss: 'meanSquaredError', optimizer:'sgd'});

Компилятор настроен на использование оптимизатора sgd . Он прост в использовании и достаточно эффективен.

meanSquaredError — это функция, которую мы хотим использовать для сравнения предсказаний модели и истинных значений.