В своей влиятельной статье [1] пионер машинного обучения Артур Сэмюэл дал следующее описание «обучающейся» машины, которое мы объясним позже:

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

Чтобы более четко понять, как машина может «учиться» на собственном опыте, мы рассмотрим более подробно, взяв классический пример распознавания изображений рукописной цифры (см. Базу данных MNIST [2] для справки).

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

Изображение в градациях серого означает, что каждый пиксель, составляющий изображение, представляет собой число от 0 (белый) до 255 (черный). Наши квадратные изображения будут иметь размер 28 на 28 пикселей.

На этом конкретном примере мы проиллюстрируем проницательность Артура Самуэля, чтобы понять, как это можно сделать на практике.

A. Модель инициализация.

В нашем примере наша модель представляет собой изображение, которое будет составлено из случайных значений для каждого пикселя, называемого весом (28 * 28 целых значений от 0 до 255).

Б. Для каждого изображения, используемого для обучения нашей модели (6000 рукописных изображений 1).

  1. Оцените эффективность нашей модели.

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

2. Рассчитайте градиент, чтобы узнать, как добиться максимальной производительности.

Градиент - это набор частных производных для каждого пикселя.

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

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

3. Заставьте нашу модель «учиться» на этом обучающем изображении.

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

Существует несколько методов [3] для оптимизации скорости обучения в процессе обучения: это одна из важнейших тем в машинном обучении.

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

Использованная литература:

[1] Артур Сэмюэл, Искусственный интеллект: рубеж автоматизации, 1962 г.

[2] MNIST http://yann.lecun.com/exdb/mnist/

[3] Паттерсон, Джош; Гибсон, Адам (2017). Понимание темпов обучения. Глубокое обучение: подход практикующего. О'Рейли. С. 258–263. ISBN.