|
Студент
|
|
Наискорейший градиентный спуск с вычислением величины шага методом Дихотомии14.03.2015, 19:52. Показов 6412. Ответов 16
Метки нет (Все метки)
Добрый вечер!
Пишу программу для нахождения локального минимума функции методом наискорейшего градиентного спуска. Не могу сообразить по какой функции производить расчет шага. В книге есть два метода расчета, один из них отдан на откуп численным методам... Я выбрал дихотомию. Всё отладил, пришло время подключать к программе... и столкнулся с проблемой - я не знаю по какой функции считать... Для примера выбрал уравнение учебника - При решении примера в учебнике не используется какой-либо численный метод. Помогите пожалуйста! Книга Пантелеев 2005г. "Методы оптимизации в примерах". На 187 странице начинается пример.
0
|
|
| 14.03.2015, 19:52 | |
|
Ответы с готовыми решениями:
16
Наискорейший градиентный спуск
Наискорейший спуск |
|
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
|
|
| 21.03.2015, 19:17 | |
|
Берёте функцию, вычисляете градиент, после этого вам нужно найти экстремум функции вдоль прямой в направлении градиента. То есть многомерную оптимизацию вы сводите к одномерной.
Вот и ищете. Сначала крупными шажками, потом шажки уменьшаете. В чём вопрос-то?
1
|
|
|
Студент
|
|||
| 21.03.2015, 22:39 [ТС] | |||
|
Или может быть покажите на примере... Спасибо! Окей. Какой мать её функции???? Мне брать х1 и х2? Так получается что я работаю и с x1 и с x2... Я тупо запнулся об этот камень, и не могу обойти его. -_-
0
|
|||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 25.03.2015, 20:07 | ||
Сообщение было отмечено _include как решение
РешениеВ своей программе зададите диапазон поиска оптимального шага в котором ищете минимум своей функции методом дихотомии.
1
|
||
|
Студент
|
||
| 27.03.2015, 15:13 [ТС] | ||
|
Если я правильно понял, формула по которой я буду считать находится на 188 странице, где х1 и х2 предыдущая и последующая точка?
0
|
||
|
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
|
|
| 27.03.2015, 15:32 | |
|
Находите производные dy/dx1 и dy/dx2 в этой точке.
dy/dx1=4x1+x2 dy/dx2=x1+4x2 Берёте какую-нибудь начальную точку, например, x1=1, x2=2. Т.е. А0=(1,2). Значение функции в этой точке 12, градиент в этой точке (6,9). Делаете шажок из начальной точки в направлении градиента: A1= (1,2)+k*(6,9). Берём, например, для начала k=-0.1. A1= (1,2)-0.1*(6,9)=(0.4;1.1). Вычисляете функцию в новой точке, смотрите, уменьшилась она или увеличилась...
1
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 27.03.2015, 16:42 | ||
|
1
|
||
|
Студент
|
|
| 27.03.2015, 17:19 [ТС] | |
|
S_el, AdmiralHood, Меня посетило сомнение - я реализовал метод дихотомии для простого уравнения типа x^3-6x^2+9x = 0.
Из написанного выше, я понял что такое х1 и х2. Как мне выбрать интервал [a;b]? В него должна входить точка x1 и точка х2? Или я отдельно считаю минимум для x1 и отдельно для х2? И мне все равно не понятно какую функцию использовать для счета =_=
0
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 27.03.2015, 17:24 | |
|
1
|
|
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 27.03.2015, 17:38 | ||
|
Если вам она нужна для поиска оптимального шага в двумерной,тогда за интервал можете взять...например,от 0 до 2.Надо будет поискать в учебниках рекомендации по выбору этого интервала.
1
|
||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 27.03.2015, 18:29 | ||
|
1
|
||
|
477 / 280 / 90
Регистрация: 15.11.2013
Сообщений: 530
|
|
| 29.03.2015, 18:13 | |
|
Представьте себе, что вы оператор радиоуправляемого робота, и вам нужно этого робота вывести на вершину холма, чтобы он воткнул там флаг России.
Вот эта аллегория — один к одному то, что вам нужно сделать. Потому что функция двух переменных - это некий трёхмерный рельеф, топографическая карта. X1 и X2 - это широта и долгота, а значение функции — высота над уровнем моря. И вот ваш робот стоит в некой точке (X1;X2) и вычисляет градиент. Не важно, каким образом, важно, что градиент — это направление, вдоль которого функция возрстает быстрее всего. То есть можно надеяться, что это ближайший путь к вершине. Проблема в том, что градиент всегда указывает точно на вершину только для осесимметричных рельефов. На реальной горке вы по градиенту пройдёте мимо вершины. Градиент - штука локальная. В других точках на склоне его направление может быть другим. Беллетристику на эту тему можно почитать здесь: http://vladfotki.narod.ru/__hb... irabok.djv. Начиная со стр. 17. В принципе можно просто прочитать подписи под картинками и всё будет ясно. Так вот, вы задаёте роботу направление и он идёт по нему, через каждые 100 метров измеряя высоту рельефа: 140, 160, 175, 180, 174... Очевидно, что между двумя последними замерами вы проскочили точку максимума. Конечно, это не глобальный максимум, это всего лишь максимум вдоль выбранного направления, но вам нужно его найти, чтобы сделать его отправной точкой для дальнейшего поиска. Поэтому вы уменьшаете шаг двое (лично я бы уменьшил в 4 раза, но раз такое задание, пусть будет в 2 раза), до 50 метров, и возвращаетесь на 50 метров назад. В этой точке высота 182. Тут возникает некий дуализм (именно поэтому я не рекомендую уменьшать шаг вдвое). Непонятно, где теперь находится максимум — между точками 180 и 182 или между 182 и 174. В наихудшем случае придётся проверить обе. Уменшаем шаг до 25 метров и идём в точку посередине между 182 и 174. Там высота 186. Угадали. Снова оказываемся в ситуации дуализма. Уменьшаем шаг до 12,5 м и делаем то же самое, что на предыдущем шаге. В конце концов находим максимум вдоль выбранного направления. Эту точку берём в качестве новой отправной точки и далее см. самое начало текста. Добавлено через 28 минут Когда вы ищете оптимум локально (то есть, грубо говоря, ваш робот находится в темноте или густом тумане и знает только то, что делается непосредственно под его членистыми лапами), то есть две проблемы. Самая главная пробема — понять, что вы ищете, минимум или максимум. По направлению градиента функция увеличивается, но это только в географии у каждой горки есть вершины. В абстрактной задаче оптимизации максимума может не быть, функция может возрастать до бесконечности. Поэтому сначала идём по градиенту и пытаемся выяснить, нет ли максимума. Если нет, идём в другую сторону и проверяем, нет ли минимума. Тут возникает вторая проблема — как долго идти? Скажем, максимум находится на расстоянии 1000 км (априориы это неизвестно, конечно), а вы идёте к нему 10-метровыми шажками. До-олго будете идти. Тут поможет только адаптивный шаг. Если за некоторое количество шагов (скажем, за 4 шага) признаков экстемума не обнаружено, увеличиваете шаг вдвое и снова делаете определённое количество шагов. Если же область экстремума нашлась, начинаете уменьшать шаг, локализуете экстремум.
1
|
|
|
0 / 0 / 0
Регистрация: 16.12.2019
Сообщений: 7
|
||
| 22.12.2019, 15:13 | ||
|
Извиняюсь (всем привет), может кто-нибудь объяснить, у меня просто такое же задание - реально я что-то не понимаю, градиент же по-другому находится grad = частная производная(x1)^2 + частная производная (x2)^2 и всё это под корнем ?
0
|
||
| 22.12.2019, 15:13 | |
|
Помогаю со студенческими работами здесь
17
Градиентный спуск
Ускоренный градиентный спуск
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|