Команда искусственного интеллекта Uber опубликовала в этот понедельник пять работ, в которых они наезжают на классический stochastic gradient descent (SGD) в глубоком обучении и провозглашают начало эры глубокой нейроэволюции, хотя и с некоторыми оговорками --
https://eng.uber.com/deep-neuroevolution/ (и там в конце аннотирующего текста ссылки в arxiv на все пять работ).
Тут можно было бы похихикать над наглостью выскочек из Uber, но закопёрщиком там Kenneth O. Stanley, о работах которого я пишу регулярно (вот, например, в марте 2016 я поминал его книжку про мифы целеполагания
http://ailev.livejournal.com/1250672.html, и даже написал пост "против целей"
https://ailev.livejournal.com/1254147.html. А уже в мае 2017 я писал (
https://ailev.livejournal.com/1266061.html): " Из интереснейших новостей использование эволюционного поиска вместо SGD для обучения нейросетей, это работа того же Stanley, который написал книжку против целей --
http://eplex.cs.ucf.edu/publications/2016/morse-gecco16, "these initial results suggest the possibility that EAs could be the first viable training alternative for deep learning outside of SGD, thereby opening up deep learning to all the tools of evolutionary computation". Круто, нет?". Ага, так и оказалось: круто!
Текст нужно читать внимательно, там много интересного. Вот только несколько мыслей:
-- нейроэволюция принципиально масштабируется лучше, чем классический deep learning, потому как лучше параллелится. Поэтому отмахнуться от неё нельзя, и чем сложней для классического deep learning задачи, тем внимательней нужно будет к ней относиться.
-- старых алгоритмов в самых разных "многообещающих областях" уже наработано мама не горюй. Всё, что нужно добавить, чтобы они оказались рабочими -- вычислительной мощности. То есть берём GPU и начинаем очередную "новую эру", как это начали с deep learning в 2011 и в 2017 с deep neuroevolution. Хотя опубликованные работы таки предложили алгоритмические новинки, но суть не в них.
-- всякие поиски в пространствах многих размерностей вести даже легче, чем в пространствах малых размерностей, ибо не попадаешь в локальные минимумы. То есть "сложней даже легче", но только если хватает вычислительной мощности. И вообще, всякие выводы про глубокое обучение и магические свойства "чего ж оно так хорошо работает" вполне распространяются и на deep neuroevolution.
-- следующее, чего можно ожидать -- так это слияние байесовщины и глубокой нейроэволюции, примерно так же, как оно происходит в deep learning.
-- поскольку теорему отсутствия бесплатных обедов никто не отменял, для нейроэволюции всегда найдутся задачи, которые она решит лучше классического deep learning с SGD не столько за счёт возможности бОльшей параллельности и поэтому более короткого времени вычислений, сколько за счёт просто другого поведения алгоритмов поиска максимума в многомерном пространстве. Впрочем, и обратное тоже верно, кое-что будет решать попроще с SGD. Так что вопрос кто кого сборет -- слон или кит -- остаётся принципиально неотвеченным.
Аппаратура ускорения вычислений для глубокой нейроэволюции и классического глубокого обучения может оказаться существенно разной. Так что 2018 год будет очень, очень любопытным. Никто никуда ещё не опоздал, всё самое интересное только начинается -- кто был никем, тот ещё вполне может стать всем. Берите все подряд алгоритмы поиска, перекладывайте на GPU и напускайте на нейросети -- и будет вам счастье. Алгоритмов-то до чёртиков, и на каждый частный случай нужен будет какой-то свой вариант. Как с дифурами, где главная проблема как раз разнообразие способов их решения для хитрых случаев. И делать (например, на Julia) фреймворк для мультиразмерного поиска, типа фреймворков для дифуров --
http://www.stochasticlifestyle.com/comparison-differential-equation-solver-suites-matlab-r-julia-python-c-fortran/