- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун
Шрифт:
Интервал:
Закладка:
Данный принцип применим не только к простым моделям, таким как перцептрон, в которых обучается лишь последний слой, но и почти ко всем контролируемым методам обучения, в частности к многослойным нейронным сетям с непрерывным обучением, о которых мы поговорим в следующей главе.
Таким образом, обучение путем минимизации функции стоимости является ключевым элементом функционирования искусственного интеллекта.
Функция стоимости
Повторим еще раз: обучение – это настройка алгоритма, то есть постепенное уменьшение количества ошибок, которые делает система. Она пытается, она ошибается, она корректирует себя. Каждая перенастройка параметров перезаписывает предыдущие значения этих параметров. Для любого обучающего примера, например, изображения x, связанного с выходом y, ошибка представляет собой простое число, которое измеряет расстояние между выходом, произведенным машиной yp = f (x, w), и желаемым выходом y. Для справки, w – это вектор параметров. Для каждого обучающего примера или каждой пары (x, y) ошибка измеряется функцией стоимости C (x, y, w). Один из способов выразить эту стоимость – возвести в квадрат разницу между выходом, произведенным системой, и желаемым выходом y:
c = (y – f(x, w)) ** 2
Есть много типов функций стоимости. Предыдущая формула применима, если машина имеет только один выход, то есть если yp и y – это просто числа.
Если нам нужна система, которая может расклассифицировать изображения на собак, кошек и птиц, нам нужно три выхода. Затем выход выражается в виде вектора, а не числа. Каждый из этих выходов дает оценку по каждой из трех категорий. Например, если первый результат соответствует категории «собака», второй – «кошка», а третий – «птица», вектор выхода со значениями [0.4, 0.9, 0.2] означает, что система распознала кошку, так как категория «кошка» получила наивысшую оценку. Во время обучения желаемый выход для категории собак будет [1, 0, 0], для кошки [0, 1, 0] и для птицы [0, 0, 1].
Рис. 4.1. Классификатор с тремя категориями
Машина выдает три оценки – по одной для каждой категории – в виде трехмерного вектора. В данном примере машина создает вектор оценок [0.4, 0.9, 0.2] и поэтому классифицирует изображение как «кошка», однако желаемый (оптимальный) результат для категории «кошка» – вектор [0, 1, 0].
Стоимость должна измерять расстояние между произведенным и желаемым выходами, например, сумму квадратов ошибок для трех выходов:
yp = f(x, w) # yp – это трехмерный вектор
c = (y[0] – yp[0]) ** 2 + (y[1] – yp[1])** 2 + (y[2] – yp[2]) ** 2
На практике для многоклассовой классификации модель часто строится таким образом, чтобы получить оценки, которые могут быть сопоставимы с вероятностями (оценки от 0 до 1, и сумма которых равна 1), и используется другая функция стоимости, называемая «перекрестной энтропией», которая подталкивает выход желаемой категории к 1, а остальные – к 0. Но принцип остается прежним.
Данную функцию стоимости C(x, y, w) можно вычислить с помощью небольшой функции в Python[46], например:
# функция расчета стоимости для примера
# x: вектор входа
# y: вектор желаемого выхода
# w: вектор параметров
def C(x, y, w):
yp = f(x, w) # вычислить выход
c = 0 # задать начальную стоимость
for j in range (len(y)): # выходной цикл
c = c + (y[j] – yp[j]) ** 2 # накопить стоимость
return c # возврат результирующей стоимости
Поскольку набор обучения с примерами p является вектором X (каждый элемент которого сам по себе является вектором входа):
[X[0], X[1], X[2],…, X[p-1]]
а вектор Y (каждый элемент которого сам по себе является желаемым вектором выхода)
[Y[0], Y[1], Y[2],…, Y[p-1]]
то к такой функции можно обратиться для расчета стоимости любого обучающего примера (в данном случае под номером 3):
c = C(X[3], Y[3], w)
Необходимо рассчитать стоимость обучения, которая является средним значением данной функции стоимости по обучающей выборке:
L(X, Y, w)=1/p*(C(X[0], Y[0], w)+C(X[1], Y[1], w)+…C(X[p-1], Y[p-1], w))
Опять же, мы можем написать для этого небольшую программу:
# функция расчета средней стоимости на наборе примеров
# X: таблица записей набора данных
# Y: массив желаемых выходов
# w: вектор параметров
def L(X, Y, w):
p = len(X) # p – количество примеров
s = 0 # переменная для накопления суммы стоимости
for i in range (p) # цикл примеров
s = s + C(X[i], Y[i], w) # накопить стоимость
return s/p # вернуть среднюю стоимость
Можно рассчитать стоимость обучения по множеству х, у, записав:
cout = L(X, Y, w)
В этой функции цикл for проходит через все обучающие примеры и накапливает (суммирует) стоимость каждого примера в переменной s. В конце функция возвращает накопленную сумму, деленную на количество примеров p. Значение, вычисляемое этой программой, зависит от вектора параметров w через функцию C(x, y, w), которая сама по себе зависит от f(х, w), которая сама по себе зависит от w.
Процедура обучения будет пытаться минимизировать данную стоимость, регулируя параметры системы w, то есть находя значение w, которое дает наименьшее возможное значение L. Для данного набора примеров обучения каждая конфигурация параметров w соответствует значению стоимости обучения.
Современные обучаемые системы обладают миллионами, если не миллиардами регулируемых параметров. Другими словами, вектор w может иметь несколько миллионов или миллиардов компонентов. В общем – скромные цифры… по сравнению с количеством синапсов в человеческом мозгу.
Как спуститься на дно долины
Как найти минимум функции стоимости? Для простоты представим себе машину, имеющую только два обучаемых параметра: w[0] и w[1]. Для данного обучающего набора каждая точка координат (w[0], w[1]) соответствует значению стоимости.
Изначально веса устанавливаются произвольно. До начала обучения стоимость, вероятно, будет высокой. Сеть скорректирует свои параметры, чтобы снизить стоимость.
Учитывая сохраненный обучающий набор[47] в X и Y, мы можем поместить значения 6.0 в w[0] и 5.0 в w[1] и рассчитать соответствующую стоимость обучения следующим образом:
w[0] = 6.0
w[1] = 5.0
стоимость = L (X, Y, w)