|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Пусть мы производим оптимизацию каким-то более-менее случайным методом проверки точек (исследуемого пространства). И, предположим, мы накапливаем гистограмму всех полученных нами -- в процессе перебора -- значений целевой функции. И видим на этой гистограмме -- более менее вблизи текущего найденного лучшего её значения (а не где-то "ниже плинтуса") -- области сгущения (пики гистограммы) и области разряжения (впадины гистограммы) плотности встреченных нами значений (целевой функции). Вопрос: какие из этих двух типов (областей) более перспективны для исследования (то есть продолжения случайного поиска)? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2020, 20:08 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Для начала я тоже помедитирую, с опорой на методы кластеризаии. И с оглядкой на отжиг,потому что со сферической случайностью дело тёмное: либо она равномерная (или белый шум), либо она даёт клоастеры (напр, Гаусс). Кластеры (например в естественных предм. областях могут тоже разбросаны или сгруппированы). Предполагаю с сомнением. Допустим мы как в соцопросах провели представительное предварительное тестирование. А как вела себя в динамике дисперсия по Х для сгустков F(x) и пустот? Если как в отжиге: -->0, я возьму сгустки. Если неизвестно как - а такое возможно? Постоянная - тем более. А после нескольких таких проб вдруг бац! - облом, надо было пустоты изучать. Так опыт и нарабатывается. Пока могу только для сферического распределения подходить так, как выполняют разведочный анализ (см. Мешалкин,Айвазян или аналогия с соцопросом) Начальная оценка Д и МО, потом тестирование, уточнение Д и МО. И т.д итерационно. Целая наука. Скажу только, что проведя тесты, не имеем гарантии т.н. "ураганных проб" из геологии. против них специально изобретали робастные методы оценок (в данном случае речь об априорном стат. оценивании показателей Д и МО). Как ни странно, адаптивные оценки на основе медианы в свое время показали себя лучше других. Ясны же истоки вопроса: как с завязанными глазами отличить локальную лужу от глобального болота. Носить с собой шарик на длинной резинке, забрасывать его в разные стороны и ждать, когда скатится. Сколько ждать? хороший вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2020, 21:46 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Иван FXS, а не проще искать чем ни будь более обоснованным с таких мест? н-р, Алгоритм Левенберга — Марквардта ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2020, 22:06 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
exp98 Ясны же истоки вопроса При том что ресурсы (памяти) современного железа позволяют вообще ничего отбрасывать, но весь процесс блуждания по исследуемому пространству сохранять. Однако сохранить-то можно -- вопрос: как задействовать этот массив информации в повышении эффективности поиска? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 01:25 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
А каким подходом найти минимум стохастической функции? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 12:24 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Иван FXS При том что ресурсы (памяти) современного железа позволяют вообще ничего отбрасывать, но весь процесс блуждания по исследуемому пространству сохранять. Если ресурсы это позволяют, то и блуждание не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 14:19 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ресурсы позволяют это , но всё-таки не всё (что душе угодно). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2020, 16:13 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Вместо отжига сделал просотой вариант на VBA. Метод роящихся частиц для 1-мерной ф-ции. Делал, чтоб скорее. Выглядит как готовый макрос для эксэлки-2003. Можно на этом макете обдумать подходы к сферической случайности для сферической ф-ции. - В чистой книге открыть "Вижуал бэйсик". - Через меню вставить новый "Модуль". - В чистоеполедля кода Модуля вставить текст проги. - Дополнительно открыть окно "Immidiate" - туда пойдут отладочные принты. - "F5" = start, и подождать недолго. В случе чего "ESC". В основном описал параметры в начале проги. Кратенько описание остального. Главные недостатки примера: ф-ция одномерная, дискретная (150 значений), её аргументы целочисленные, случ.величины не явл. независимыми, все из одной последоват-сти. ГПСЧ сам по себе недостаток. Параметры метода подбирать рукми. С т.зр. модульности оформлено так: Собственно метод "Function roen()" Над ним обёртка "Sub test()". Она запускает послед-ность прогонов одного теста. Работает так: 52 раза Х 800 прогонов. Разница у погонов в том, что после вызова roen() там внутри ГПСЧ стартует заново с другого значения (секунды от полуночи). Окончив прогон, roen() возвращает приближённое значени миниммуа ф-ции. И так 800 раз. Затем test() печатает МОж и СКО от полученных 800 значений. И так 52 раза, из к-рых первые 2 раза для предположительного "разогрева" ГПСЧ. Затем копируем 3-52 разы на лист в эксэлу и смотри графики. Потом, как это делал я, для разных параметров метода можно сравнивать общее среднее этих средних или их медиану, чтобы понимать точность матода. Сейчас roen() возвращаетв test() оценку минимума в массиве структур "f0().fm". В test() МатОж и СКО считаются для минимума. Лёгким движением руки их можно считать для номера точки "f0().ym". Учитывая недостаток (целочисленность аргументов ф-ции), подбор параметров менее очевиден, чем для непрерывного случая. Поскольку точки должны прыгать на целое число шагов. Но в отжиге прыгает одна точка, а в отжиге их несколько и в конце итераций они могут сходиться друг к другу. Эти прыжки в процессе уменьшаются и чем-то похожи на прыжки в отжиге, так что есть и общее у обоих методов. И конечно никакой гарантии точного поиска. Здесь текст проги на VBA (133 строки). Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2020, 02:35 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Считаю полезным дополнить. К недостаткам реализации. Поведение вектора скорости на краях области определения ф-ции (т.е. на концах отрезка). Ну я просто сажаю точку в границу отреза, 1 или к соответственно. К вопросу о скорости работы. Ф-ция задана в 150 точках, среди к-рых 5-7-10 точек роятся в течение 100 итераций, и для них на каждой итерации считается 2 случ значения. Конечно быстрее найти точный минимум полным перебором среди 150 значений. Тем более статметод в половине случаев не даёт глобального минимума (точный минимум= 0.0093 в 33-й точке). Я сравнивал точность для роев из 5, 7 и 10 точек при 10 и 100 итерациях алгоритма. 100 итераций в данном случае избыточны, но 10 итераций может не хватить. При M= 7 и 10, и NN=100 оценка минимума практически одинаковая ~0,1116. Но при М=5 для NN=10 оценка ~0,13, а для NN=100 она ~0,12. Значения конечно зависят от весов, используемых для расчёта скорости каждой точки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2020, 22:04 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Теперь можно потрогать вариант метода для непрерывной ф-ции. Сама ф-ция та же самая. Изменения в порге минимальные. Зато изменения в параметрах весьма значительны: 52*80прогонов по 10^3 итераций M=40 точек на [1; 15] MO= 0,6089 mediana= 0,6016 СКО= 0,6087 - Начальная скорость= 1+Rnd (на первой итерации метода). - Кол-во точек M= 40 (вмесо 10). Даже этого недостаточно, из-за вида непрерывной ф-ции. Шаг=+1.0 теряет слишком много подробностей. Уменьшил область определения ф-ции до отрезка [1; 15] (вмесо 1-150). - Кол-во итераций одного прогона NN = 10^3 (и скажу, даже этого недостаточно, но может сгодиться для разведочного анализа). - Чтобы не терять время коло-во прогонов для усреднения tn= 80 (вместо 800). - Учитывая, что аргументы ф-ции теперь непрерывные и double, округление их до целого не выполнять. И всё равно судя по тестовым прогонам оценка глобального минимума на [1; 15] очень неточна. При шаге дискретизации =+0.1 глобальный мин на отрезке = 0,043. Ещё кучка локальных минимумов на уровнях 0,5 1,0 1,5 2,0. Однако судя по СКО==МО, на 80 прогонах оценка гуляла по всем перечисленным уровням. Причём похоже, что именно уровень глобального мин. достигался реже всего. Неудивительно, поскольку впадин уровня ~ 0.000 меньше,чем на других уровнях. Как может помочь гибрид Ньютона и градиента, не представляю. А значит проще всего в такой ситуации (если ф-ция вычисляется достаточно быстро) полный перебор с достаточно мелким шагом. Но надо ещё выбрать этот шаг. ИМХО, без разведочного анализа не обойтись. Теперь вариант проги для непрерывного случая (точнее сказать ф-ция,опредедлена на отрезке): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 20:20 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
...но не успел рисунок подцепить. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 20:30 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Ещё немножко подумал. Может оказаться, что, зафиксировав шаг дискретизации ф-ции, и проведя развед. анализ (вкл. тот, что я здесь сделал),так вот,может оказаться, что после этоголучше перейти к дискретному варианту метода. Поскольку (ИМХО) в нём прыжки целочисленные, это напоминает как бы доработку непрерывного метода путём добаваки случайных прыжков. А также проделанный предв. анализ дискретных случаев хочет убедить меня в том, что локализовав начальные М точек, мы скорее найдём ещё лучшую оценку для глоб. минимума. И так 10 раз, т.к. изначально был дан отрезок [1; 150]. Затем иерархически дробим каждый отрезок более мелкой дискретизацией ... И т.д. Придётся придумать критерий, когда остановиться для взятой сферической ф-ции. И как выполнять разведочные анализы автоматически. Заключение. Примерно так мне видится запрашиваемая альтернатива с поправками на к-нибудь другой статметод локального поиска. Вы готовы к этому? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 20:52 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
exp98 Но надо ещё выбрать этот шаг. Он задаётся ещё на этапе постановки задачи. В пункте "допустимое отклонение". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 14:02 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Разведка всё равно нужна. В задачах, прикладных (к природе или технике), этого шага не знают обычно. Могут задать точность самого минимума, а локализация его места на Х скорее всего будет физико-техническим параметром устройства или модели, для к-рых будет расчёт. И если заранее загрубить шаг, то (как в примере), позиция минимума выскочит куда-нить вроде того: газануть педалью в пол, вместо лёгкого нажатия. И это мож оказаться не физичным или неприемлемым решением. Помимо того, что значение оптимума будет вообще далёким от оптимума. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 15:46 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Интересно сравнить метод Роя с методами Отжига и ГА. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 11:24 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Сравниьт можно, время выделить - не знаю. С моей колокольни отжиг проще ГА. И есть нюанс для обоих троих: кучка модификаций на разные случаи жизни. Я взял как проще, поскольку отжигу требовались конкретные распределения, а их надо реализовывать, а я не люьлю чужое искать, ну и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 18:12 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Помнишь мою задачу по поиску границ 2-3 фотографий в фотоальбоме? Отжиг справится? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 18:19 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Как не помнить, всё жду возможностей продолжить, зацепило. Есть сомнение, чиой-то не могу найти на диске. Ай, балда садовая, они на другом ноте. Тогда словами. Поиск минимума (максимума) яркости я пробовал. Не всегда надёжно. Могут быть фоты, где фон тоже белый. Могут быть - совсем криво размещённые. Я остановился на том, что сначала делю лист вертикально. Потом на каждой половинке фоты надо сегментировать. Вот на этом месте всё и осталось ... То есть идею проверить не успел. Сранно, что никто больше не захотел. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 18:26 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Хм.. я тоже долго искал. Оказывается в архивариусе (где-то 10 страница) https://www.sql.ru/forum/1282300-10/chetvergovyy-arhivarius ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 18:29 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Причём, я не просто пробовал искать минимумы. Это была главная гипотеза для нарезки каждой половинки: проектировать пикселы в направлении найденных квазипрямых. Но из-за шумов фото нужно производить отбор из множества претендентов на главное направление. Вот сейчас я это вспомнил. Так что это "to do". У меня секретов нет)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 18:44 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Я умру на перформансе. Просто не дождусь результатов. Поэтому решать задачу на оригинальном разрешении фоток не буду. Их надо уменьшить хотя-бы до 64х64 pix. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 18:59 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Вместо того, я картинку сравнения даю о последнем эксперименте по Роению. Напомню, последние параметры были автор52*80прогонов по 10^3 итераций M=40 точек на [1; 15] ф-ция непрерывна, MO= 0,6089 mediana= 0,6016 СКО= 0,6087 Если бцть уверенным, что ищем минимум, и видим, что MO-СКО=0, то наверное его и надо брать за оценку минимума. А на рисунке 3 варианта. Верхний - непрерывная ф-ция, 2 нижних - дискретная. Для дисретных параметры такие, но вдруг я всё уже спутал, надёжнее проверить: NN=10^2 M=10 tn=800 МО=0,2587 СКО= 0,2509 alf=0.80 bet=0.3 gam=0.3 NN=10^2 M=10 tn=800 МО=0,3589 СКО=0,4444 alf=0.95 bet=0.2 gam=0.2 Зато точно, что МО-СКО в обоих случаях ~0. Итого во всех случаях МО-СКО~0. Беда в том, что ф-ция модет оказаться настолко изгибистой, что распределение в тестах станет многомодальнымили хот ябы как в Пуассоне, а дисперсия огромной, и тогда МО-СКО<< Min(f()). И неизвестно в какой точке. И придётся точку искать, а она не существует и ... за что боролись статметодами? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 19:02 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 19:04 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
mayton Их надо уменьшить хотя-бы до 64х64 pix. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2020, 19:14 |
|
Медитация над полной гистограммой оптимизации
|
|||
---|---|---|---|
#18+
Ну вотдля сравнения рез-ты некоторым отжигом. Быстренько переделал прямо в прежней проге, по живому резал, оставив много лишнего. Из выводов. Да, действительно простой отжиг требует много-много итераций. Да даже и так понятно, в Роении много точек, здесь одна. Когда ещё она запрыгнет во все нужные ямы ... И надо добиться, чтобы это случилось при подходящей температуре, чтобы не выпрыгнуть тут же из нужной ямы. По крайней мере я не смог обеспечить нужную. Ну и тот самый вывод. При сравнимых с Роением кол-ве итераций Отжиг хорош для низкочвстотных ям. Требует нудной настройки. "Суперотжиг" не пробовал и не хочу. Дальнейшее без комментариев. Результаты, 10*5 прогонов, Т0 - начальная температура, NN=10^4 итераций отжига. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Как бы отжиг: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2020, 19:58 |
|
|
start [/forum/topic.php?fid=16&msg=40006350&tid=1339726]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 177ms |
0 / 0 |