Шрифт:
Интервал:
Закладка:
Не добавляет ясности и история происхождения самого термина. Впервые он появился в работе[1436] израильской исследовательницы Рины Дехтер в 1986 г. Проблема, правда, заключается в том, что использован он был хотя и в контексте машинного обучения, но не по отношению к нейросетевым моделям. В работе Дехтер рассматриваются задачи поиска решения, удовлетворяющего некоторым ограничениям (constraint-satisfaction-problems, CSP), при этом способом решения является перебор вариантов. Deep learning — название, которое автор работы дала одной из разновидностей этого перебора. В 1980-е и 1990-е гг. слово deep в мире ИИ принадлежало скорее к области переборных алгоритмов — появившись в названии Deep Thought (затем Deep Blue), оно быстро утвердилось как приставка в названии шахматных программ, использовавших параллельные вычисления (Deep Fritz, Deep Shredder, Deep Junior и т. д.).
Широко распространено мнение[1437], [1438], [1439], что первое применение определения «глубокий» в отношении искусственных нейронных сетей (и/или их обучения) относится к 2000 г., когда свет увидела книга «Многоуровневые и универсальные бинарные нейроны» (Multi-Valued and Universal Binary Neurons. Theory, Learning and Applications)[1440], написанная Игорем Айзенбергом, Наумом Айзенбергом и Йосом Вандевалле. Однако, по моему мнению, в данном случае речь вовсе не идёт о глубоких нейросетевых моделях. Судите сами, вот как выглядит фрагмент, в котором современные историки нейронных сетей видят первое упоминание глубокого обучения: «1960-е — интенсивное развитие пороговой логики, начало которому было положено предшествующими результатами в теории перцептронов. Глубокое изучение свойств пороговых булевских функций, как одних из наиболее важных объектов, рассматриваемых теорией перцептронов и нейронных сетей» [1960-s — intensive development of the threshold logic, initiated by previous results in perceptron theory. A deep learning of the features of threshold Boolean functions, as one of the most important objects considered in the theory of perceptrons and neural networks]. Далее в качестве примеров этого «глубокого изучения» идут ссылки на монографии Дертоузоса[1441] и Муроги[1442], в которых действительно исследуются вопросы синтеза схем, построенных из пороговых элементов (аналогичных нейронам перцептрона Розенблатта). В этих забытых образчиках исследований времён первой коннекционистской весны действительно можно найти некоторые архитектуры, которые можно было бы отнести к глубоким нейронным сетям. Например, на рисунке ниже показана любопытная архитектура, рассматриваемая в монографии Дертоузоса, — так называемая порогово-каскадная сеть (Threshold-Cascade Network).
Рис. 101. Архитектура порогово-каскадной сети из монографии Дертоузоса
Сигналы входов этой сети транслируются сразу во все её слои. Эти «перепрыгивающие» соединения роднят порогово-каскадную сеть с некоторыми современными нейросетевыми архитектурами, однако в каждом слое порогово-каскадной сети есть всего один нейрон. В целом работы Дертоузоса и Муроги посвящены детальному анализу свойств сетей (при помощи весьма оригинальных математических методов, таких, например, как спектральный анализ), состоящих из одного или крайне небольшого числа элементов. Хотя некоторые из изученных в вышеозначенных работах архитектур можно отнести к многослойным нейронным сетям, внимательное чтение «Многоуровневых и универсальных бинарных нейронов» позволяет понять, что авторы этой книги не пытались ни ввести новое понятие, ни сказать, что работы Дертоузоса и Муроги стали началом нового направления. Напротив, авторы повторяют широко распространённое заблуждение о том, что Минский и Пейперт в «Перцептронах» указали на наличие ограничений у «однослойных» перцептронов и что в результате одним из направлений дальнейшего развития искусственных нейронных сетей стало создание многослойных перцептронов. Это выглядит вдвойне странно, если учесть, что монография Дертоузоса была написана за четыре года до книги Минского и Пейперта. Словом, ни «Многоуровневые и универсальные бинарные нейроны», ни тем более работа Дины Рехтер не имеют отношения к появлению термина «глубокое обучение» в его современном значении. Но тогда возникает вопрос: кто и когда на самом деле ввёл в оборот это понятие?
По всей видимости, первенство здесь принадлежит Джеффри Хинтону и его коллегам. В 2006 г. в своих работах[1443], [1444] они используют термины «глубокий автокодировщик» [deep autoencoder], «глубокая сеть» [deep network], а также вводят в оборот новую модель — «глубокие сети доверия» (Deep Belief Networks, DBN). Интересно, что в том же году авторы статьи «Цифровая многослойная нейронная сеть, устойчивая к сбоям множества весов и нейронов» (A Multiple-Weight-and-Neuron-Fault Tolerant Digital Multilayer Neural Network)[1445] Тадаёси Хорита, Такуроу Мурата и Ицуо Таканами используют в ней термин «метод глубокого обучения» [deep learning method] в качестве названия для созданного ими алгоритма обучения многослойных нейронных сетей. Термин «глубокое обучение» окончательно утвердился в среде специалистов по нейронным сетям только с выходом в 2016 г. одноимённой статьи[1446] в журнале Nature. Словом, несмотря на то что сами многослойные искусственные нейронные сети были известны уже давно, понятие «глубокое обучение» является довольно молодым. Вообще, идея, что для решения сложных задач ИИ, по всей видимости, нужно стремиться к созданию больших многослойных сетей, была очевидна ещё на заре коннекционизма — решение подсказывала сама природа. Однако проблема заключалась в том, чтобы научиться эффективно обучать такие сети. В первую очередь стоял вопрос о том, как нужно изменить сами многослойные сети, чтобы сделать их обучаемыми.
Среди шутливых хакерских коанов есть один, в котором упоминаются одновременно Марвин Минский и нейронные сети:
Однажды, когда Сассман, будучи ещё простым послушником, сидел за терминалом PDP-6, к нему подошёл Минский.
— Что ты делаешь? — спросил Минский.
— Я обучаю случайно соединённую нейронную сеть играть в крестики-нолики, — ответил Сассман.
— А почему твоя сеть соединена случайным образом? — поинтересовался Минский.
— Чтобы у неё не было никаких предубеждений о том, как нужно играть.
Тогда Минский закрыл глаза.
— Зачем ты закрыл глаза? — спросил Сассман своего учителя.
— Чтобы эта комната стала пуста.
В этот момент Сассман просветлился[1447].
По всей видимости, в основе этого коана лежит реальная история. Сассман действительно сказал Минскому, что использует в своей программе метод рандомизации, поскольку хочет, чтобы у машины не было никаких предзаданных представлений о задаче. Минский ответил: «Ну, они у неё есть, просто ты не знаешь, какие именно». Эти слова произвели большое впечатление на Сассмана. Затем Минский продолжил, сказав Сассману, что мир построен определённым образом и самое важное, что мы можем сделать с этим миром, — это избежать случайности и выяснить способы, с помощью которых можно было бы