До людей постепенно начинает доходить, что низкая проходимость функции потерь гораздо большая проблема чем скорость достижения ближайшей приличной местности. Очень постепенно, учитывая как много времени люди тратят на эту отрасль в последнее время. :)
Из личного опыта — на многих задачах ситуация когда качество решения зримо улучшаться и алгоритм вышел на полку, это только первая половина, если не первая четверть решения. потому что вы выходите в область функции потерь состоящую из длиннющих извилистых ложбин с очень низким изменением градиента. И вполне возможно, если ваш алгоритм умеет путешествовать по таким областям, сможете улучшить своё решение ещё раза в полтора-два.
Также из личных наблюдений, в такой ситуации возможность посчитать вторую производную не просто не помогает, а буквально вредит. Я когда-то сделал алгоритм, вычисляющий точную вторую производную всего за троекратное примерно время от получения первой производной. Каково было моё разочарование, когда выяснилось, что такой алгоритм в локальных минимумах вдоль ложбин вязнет на много прочнее, чем гораздо более простые алгоритмы, и польза от него только на первой части решения, потом вред один.
Из всего этого один простой вывод — другие типы простых задач нужно ставить в качестве модельних для изучения алгоритмов. Возьмите, например, функцию sin(x)+sin(50x) + cos(50y) + cos(500 y) — (x^2+y^2)/1000 и попробуйте свой алгоритм на такой функции потерь запустить, и посмотрите на сколько он хорош. Реальные задачи на такое похожи гораздо больше чем на то, что показано в иллюстрациях в статьях. Это ещё не лучший пример функции, потому что у неё длинных ложбин нет. Лучше было бы что-то типа суммы пересекающихся спиралей с разными центрами.
имхо, но это очень и очень сильно зависит от задачи. Если у вас плохой ландшафт, то возможно правильней попробовать найти другую формулировку задачи, или же добавить регуляризацию
В общем виде данная задача не разрешима иначе бы из нее следовало бы решение любого диафантового уравнения.
пусть
A(x1,x2,x3...)=0 диафантово уравнние
тогда A(x)^2+sin^2(pi*x1)+sin^2(pi*x2)… = 0 -> диафантово уравнение имеет корень -> минимум уравнения 0 т.е. нельзя построить алгоритм который в произвольном случае найдет глобальный минимум.
Мир нейросетей для того и существует чтобы приближённо решать задачи, которые аналитически неразрешимы вообще или за разумное время. Всё что можно сделать аналитически лучше и быстрее делать аналитически.
Вероятно, перед формулой должен быть минус, иначе около нуля будет максимум, а не минимум. ES-подход отработает хорошо, если задать достаточно большую сигму. Текущую точку будет постоянно «выбрасывать» из (0, 0) из-за нестабильности градиентов, но это не проблема, если хранить самую лучшую точку. Соответственно, VO-подход тоже должен приземлиться в центр, если начать с достаточно большой сигмой. По самой последней ссылке в статье есть картинки с похожей функцией.
> Реальные задачи на такое похожи гораздо больше чем на то, что показано в иллюстрациях в статьях.
Я много раз слышал это утверждение. Вроде как это подтверждают визуализации в вашей статье. Есть ли реально какие-то формальные исследования на эту тему? Я видел в основном утверждения, что за пределами первой фазы обучения лежит ландшафт с кучей седловых точек. К тому же, непонятно, какого улучшения выхлопа от сети можно достичь, если хорошо преодолеть этот ландшафт (10%, 100%, 1000%?).
Я очень слабо слежу за литературой по этой теме, так что не смогу ответить. Но визуализаций, подобных моим, которые бы позволяли как-то изучать свойства рельефов на реальных задачах не только не встречал, но большинство тех с кем случалось разговаривать об этом даже не понимает постановки задачи или считают её не интересной.
Знаю, что в биологии было два исследования на тему было. В одном случае исчерпывающе изучили все пути по ландшафту образованному всего 5 однобуквенными заменами в белке, приспосабливающемся, к новому антибиотику. Из 120 основных путей без откатов путей только 5 оказались в принципе проходимы, и в 99% случаев эволюция шла по одному из них. Другое исследование было про влияние изменчивости в активной зоне белка, там где определяются не структурные свойства белка, а его каталитическая активность. И там почти все варианты оказались жизнеспособными и на эффективность выполнения белком своей функции влияли всего на десятки процентов. Абстракты обоих статей на Элементах выкладывал Маркин с разрывом в несколько лет.
Я для себя из этого делаю вывод, что вообще проходимость ландшафта в биологии очень плохая, но если эволюции это конкретно нужно она способна управлять проходимостью: порождать конструкции, делающие ландшафт на каком-то участке генома более толерантным к изменениям.
Подобный подход может что-то (разумное, доброе, долговечное) привнести в поле взаимодействия физики и эволюционной биологии? Как-то это соотносится со статьей
Towards physical principles of biological evolution (https://www.biorxiv.org/content/biorxiv/early/2017/08/30/182378.full.pdf)?
Прочёл несколько статей по нейроэволюции и заметил одну особенность: похоже, все варианты нейроэволюции реализованы на множественном CPU, а не на GPU. Этому есть какие-нибудь объяснения?
Вообще, есть успешные примеры нейроэволюции на GPU?
Это матожидание не от куба дисперсии, а от куба случайной величины. Если случайная величина распределена симметрично относительно нуля, но матожидание от любой её нечётной степени будет равняться нулю.
Случайные эволюционные стратегии в машинном обучении