Лазаренко Виктория Сергеевна студент, Ставропольский государственный педагогический институт, РФ, г. Ставрополь Кузина Наталья николаевна научный руководитель, Старший преподаватель кафедры математики и информатики, Ставропольский государственный педагогический институт, РФ, г. Ставрополь
« РЕАЛИЗАЦИЯ МНОГОМЕРНЫХ ЗАДАЧ ОПТИМИЗАЦИИ В excel» Аннотация: В статье рассмотрены основные методы многомерной оптимизации, ПРИВЕДЁН ПРИМЕР РЕАЛИЗАЦИИ ЗАДАЧИ БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ (МЕТОДА ПОКООРДИНАТНОГО СПУСКА) В среде Excel. КЛЮЧЕВЫЕ СЛОВА: многомерная оптимизация, условная оптимизация, БЕЗУСЛОВНАЯ ОПТИМИЗАЦИЯ.
Введение
Исследование задач многомерной оптимизации сводится к поиску точек минимума функции многих переменных на всем пространстве соответствующей размерности. Такая задача сложнее задачи минимизации функции одной переменной, так как с ростом размерности пространства переменных возрастают объем вычислений и сложность алгоритмов, затрудняется анализ поведения целевой функции.
В этой статье мы рассмотрим численные методы оптимизации,т.е. методы построения алгоритмов нахождения оптимального (минимального или максимального) значения некоторой функции.
Численные методы многомерной оптимизации
Численные методы оптимизации различаются по характеру изменения целевой функции: если нет никаких ограничений ни на изменение независимых переменных, ни на значения целевой функции, то это методы безусловной оптимизации. Сущность методов безусловной оптимизации состоит в поиске минимуму функции Y = Dх) путем многократных вычислений, при различных значениях параметров х = {xk}, k = 0, 1, 2, …, причем на каждом k-м шаге вычислений контролируют выполнение условий. При наличии каких-либо ограничений используются методы условной оптимизации. Задача условной оптимизации заключается в поиске минимального или максимального значения скалярной функции f(x) n-мерного векторного аргументах. Решение задачи основывается на линейной или квадратичной аппроксимации целевой функции для определения приращений x1, …,xn на каждой итерации.
Кроме того, методы многомерной оптимизации классифицируются по возможности использования частных производных от целевой функции: если производные не используются, то это — методы прямого поиска,основанные на вычислении только значений целевой функции; градиентные методы, в которых используются точные значения первых производных функции.
Существуют различные методы безусловной и условной оптимизации:
Безусловная оптимизация: Метод покоординатного спуска;
Безусловная оптимизация: метод наискорейшего спуска;
Безусловная оптимизация: подпрограмма EXCEL “Поиск решения”;
Условная оптимизация: метод штрафных функций;
Условная оптимизация: подпрограмма EXCEL “Поиск решения”;
Условная оптимизация: линейное программирование.
Рассмотрим наиболее подробно безусловную оптимизацию, её методы и реализацию примера в Excel.
Метод покоординатного спуска (метод прямого поиска), в котором используются только значения целевой функции. Чтобы воспользоваться этим методом, необходимо иметь следующие исходные данные:
а) формулу целевой функции f(X1,X2, … , Xn),
б) Е — точность нахождения значений независимых переменных, при которых функция достигает минимума,
в) начальные приближения X10,X20 … , Xn0.
Необходимо отметить, что метод покоординатного спуска сводит многомерную задачу оптимизации к многократному решению одномерных задач по каждой независимой переменной.
Приведём пример, чтобы показать наглядно суть метода и его разрешение.
Условие задачи: число независимых переменных равняется двум. Ограничения отсутствуют. Требуется найти минимум функции
u = (X2-X12)2+ (1-X1)2
из начальной точки (0,5;0,5) c точностью 0,0001. Проанализировав функцию, заметим, что она будет иметь минимум, равный нулю. Для чего и первое, и второе слагаемое тоже должны быть равны нулю. Откуда координаты точки минимума (1;1).
Решим эту задачу на EXCEL. Откроем новый рабочий лист, где столбец А -значения X1, столбец В — значения X2, а столбец С — значения целевой функции и, наконец, столбец D — значения погрешности D.
Занесем в ячейки А3 и В3 значения начальных приближений, равных 0,5 и в ячейку С3 формулу =(В3-А3^2)^2+(1-A3)^2. Скопируем эту формулу в блок ячеек С4:С17. На этом заканчивается подготовительный этап.
Опишем первую итерацию пошагово:
1 шаг. Скопируем содержимое ячейки В3 в ячейку В4. Сделаем текущей ячейку С4. Процесс одномерной оптимизации для нахождения X1выполним с помощью подпрограммы EXCEL Поиск решения. Вызовем эту подпрограмму командой меню Сервис- Поиск решения.
2 шаг. Скопируем содержимое ячейки А4 в ячейку А5. Сделаем текущей ячейку С5. Дадим команду меню Сервис- Поиск решения. В открывшемся диалоге в поле Установить целевую ячейку занесем адрес С5, а в поле Изменяя ячейки — адрес В5. В результате в ячейке В5 получим числовое значение, при котором целевая функция достигает минимального значения в ячейке С5 по координате X2.
3 шаг. Занесем в ячейку D5 формулу =ABS(A3-A5)+ABS(B3-B5) для вычисления погрешности решения на первом шаге. На этом заканчивается первая итерация.
Вторая и все последующие итерации проводятся аналогично, но с учетом соответствующих адресов ячеек.
Можно построить диаграмму изменения на каждой итерации, на которой видны перпендикулярные ломаные линии движения от точки к точке параллельно одной из осей координат.
Реализация метода покоординатного спуска представлена в Excel на рисунке 1.
Рисунок 1. Метод покоординатного спуска
Заключение
Сегодня оптимизационные задачи и задачи принятия решений моделируются и решаются в самых различных областях техники [1]. К навыкам математического обоснования принятия решений относятся навыки математического моделирования оптимизационных задач, выбора адекватного математического обеспечения (метода, алгоритма, программной системы) с необходимым обоснованием.
Практика порождает все новые и новые задачи оптимизации, причем их сложность растет. Требуются новые математические модели и методы, которые учитывают наличие многих критериев, проводят глобальный поиск оптимума. Другими словами, жизнь заставляет развивать математический аппарат оптимизации.
Реальные прикладные задачи дискретной оптимизации очень сложны. Современные методы оптимизации далеко не всегда справляются с решением реальных задач без помощи человека. Нет, пока такой теории, которая учла бы любые особенности функций, описывающих постановку задачи. Следует отдавать предпочтение таким методам, которыми проще управлять в процессе решения задачи.
Список литературы
1. Корнеенко В. П. Методы оптимизации: Учебник / В. П. Корнеенко. — М.: Высш. шк., 2007.
2. Пантелеев А. В. Методы оптимизации в примерах и задачах: Учеб. пособие / А. В. Пантелеев, Т. А. Летова. — М.: Высш. шк., 2005.
3. Батищев Д. И. Оптимизация в САПР: Учебник / Д. И. Батищев, Я. Е. Львович, В. Н. Фролов. — Воронеж: Изд-во ВГУ, 1997.
Grilled Giardiniera-Stuffed Steak Sandwich
This rolled flank steak is inspired by the Italian beef sandwich, a Chicago delicacy typically consisting of chopped thin slices of roast beef stuffed…
Provided by Food Network Kitchen
Mapo Potato
Let’s be clear: Nothing surpasses the hearty deliciousness of a traditional mapo tofu. But for those days when you find yourself without soft tofu in the…
Provided by Hetty McKinnon
Chili
This is a spicy, smoky and hearty pot of chili. It’s the kind of chili you need after a long day skiing — or hibernating. To create a rich and thick sauce,…
Provided by Ali Slagle
Banket
This recipe is from my mother. It is the one she taught me with a slight tweak. In my home on the holidays one way to show someone or a family they were…
Provided by Jena Lewis
Moroccan Nachos
This Moroccan twist on the much-loved appetizer features kefta, a ground beef (or lamb) mixture seasoned with parsley, cilantro, mint, paprika and cumin,…
Provided by Nargisse Benkabbou
Peanut Butter Brownie Cups
I’m not a chocolate fan (atleast not the kind made in the U.S.), but I LOVE peanut butter and chocolate and this hit the spot. I found the recipe in 2007…
Provided by AmyZoe
Banana Cream Pudding
This fabulous version of the favorite Southern dessert boosts the banana flavor by infusing it into the homemade vanilla pudding, in addition to the traditional…
Provided by Martha Stewart
Lemon Russian Tea Cakes
I love lemon desserts,these are a simple cookie I can make quickly. The recipe is based on the pecan Russian tea cakes.I don’t like lemon extract,instead…
Provided by Stephanie L. @nurseladycooks
Easy Churros with Mexican Chocolate Sauce
Forgo the traditional frying — and mixing up the batter! — for this Latin American treat. Instead, bake store-bought puff pastry for churros that are…
Provided by Martha Stewart
Easy Lasagna
Everyone loves lasagna. It’s perfect for feeding a big crowd and a hit at potlucks. But most people reserve it for a weekend cooking project since it can…
Provided by Food Network Kitchen
Grilled Vegetables Korean-Style
Who doesn’t love grilled vegetables — the sauce just takes them over the top.
Provided by Daily Inspiration S @DailyInspiration
Outrageous Chocolate Cookies
From Martha Stewart. I’m putting this here for safe keeping. This is a chocolate cookie with chocolate chunks. Yum! Do not over cook this cookie since…
Provided by C. Taylor
CERTO® Citrus Jelly
A blend of freshly squeezed orange and lemon juices puts the citrusy deliciousness in this CERTO Citrus Jelly.
Provided by My Food and Family
Previous
Next
HOW TO CALCULATE THE GRADIENT OF A LINE IN EXCEL TUTORIAL
WebMay 19, 2020 How To Calculate the Gradient of a Line in Excel Tutorial The Complete Guide to Everything 72.9K subscribers Subscribe 334 65K views 2 years ago In this tutorial I will teach …
From youtube.com
Author The Complete Guide to Everything
Views 70K
May 19, 2020 How To Calculate the Gradient of a Line in Excel Tutorial The Complete Guide to Everything 72.9K subscribers Subscribe 334 65K views 2 years ago In this tutorial I will teach …»>
See details
UNDERSTANDING GRADIENT DESCENT USING EXCEL — YOUTUBE
WebFeb 25, 2022 This video describes the working of Gradient Descent using an example of Multiple Linear Regression in Excel. This video was inspired by the article in KDNug…
From youtube.com
Author Sandesh Sharma
Views 99
Feb 25, 2022 This video describes the working of Gradient Descent using an example of Multiple Linear Regression in Excel. This video was inspired by the article in KDNug…»>
See details
LINEAR REGRESSION FROM SCRATCH IN EXCEL | BY ANGELA SHI
WebAug 16, 2022 Before implementing the gradient descent for the Linear Regression, we can first do it for a simple function: (x-2)^2. The idea is to …
From towardsdatascience.com
Author Angela Shi
Estimated Reading Time 3 mins
Aug 16, 2022 Before implementing the gradient descent for the Linear Regression, we can first do it for a simple function: (x-2)^2. The idea is to …»>
See details
HOW TO APPLY A COLOR SCALE BASED ON VALUES IN MICROSOFT …
WebJul 14, 2021 With conditional formatting, you can apply a gradient color scale in just minutes. Excel offers two- and three-color scales with primary colors that you can select from, along with the option to pick your own …
From howtogeek.com
Jul 14, 2021 With conditional formatting, you can apply a gradient color scale in just minutes. Excel offers two- and three-color scales with primary colors that you can select from, along with the option to pick your own …»>
See details
NEURAL NETWORK FROM SCRATCH IN EXCEL — TOWARDS DATA …
WebJan 29, 2022 As you can see, for a dataset of 12 observations, we can implement the gradient descent in Excel. With 300 iterations, a step of 0.1, and some well-chosen initial values, we can create some nice …
From towardsdatascience.com
Jan 29, 2022 As you can see, for a dataset of 12 observations, we can implement the gradient descent in Excel. With 300 iterations, a step of 0.1, and some well-chosen initial values, we can create some nice …»>
See details
MACHINE LEARNING WITH SPREADSHEETS! PART 1: GRADIENT …
WebJan 27, 2018 Gradient descent is like terminator’s compass and it will always lead it down the mountain towards humans. It is the process used to tweak the model’s weights and improve the accuracy…after…
From medium.com
Jan 27, 2018 Gradient descent is like terminator’s compass and it will always lead it down the mountain towards humans. It is the process used to tweak the model’s weights and improve the accuracy…after…»>
See details
FOOD INGREDIENT REVERSE-ENGINEERING THROUGH GRADIENT …
WebDec 20, 2017 Food Ingredient Reverse-Engineering Through Gradient Descent Back with another weird idea which is, as always, another pretext to learn something new. This …
From towardsdatascience.com
Estimated Reading Time 6 mins
Dec 20, 2017 Food Ingredient Reverse-Engineering Through Gradient Descent Back with another weird idea which is, as always, another pretext to learn something new. This …»>
See details
MASTERING LINEAR REGRESSION WITH GRADIENT DESCENT IN EXCEL
2023-04-06
From medium.com
Author Angela Shi
STOCHASTIC GRADIENT DESCENT EXPLAINED IN REAL LIFE
WebJun 2, 2021 Image by author. Gradient Descent is one of the most popular methods to pick the model that best fits the training data. Typically, that’s the model that minimizes …
From towardsdatascience.com
Jun 2, 2021 Image by author. Gradient Descent is one of the most popular methods to pick the model that best fits the training data. Typically, that’s the model that minimizes …»>
See details
4-10: HOW TO ADD A GRADIENT EFFECT (GRADIENT FILL) TO EXCEL CELLS
WebThis tutorial shows how to add gradient effects to Excel cells. You’ll add a gradient fill effect between two blocks of cells. The Fill Effects Gradient di…
From youtube.com
This tutorial shows how to add gradient effects to Excel cells. You’ll add a gradient fill effect between two blocks of cells. The Fill Effects Gradient di…»>
See details
GRADIENT BOOSTED LINEAR REGRESSION IN EXCEL | BY ANGELA SHI | MAR, …
WebMar 17, 2023 Gradient Descent is a fitting algorithm that can be applied to linear regression. But it is not the only one. In the case of linear regression, there is an exact …
From towardsdatascience.com
Mar 17, 2023 Gradient Descent is a fitting algorithm that can be applied to linear regression. But it is not the only one. In the case of linear regression, there is an exact …»>
See details
GRADIENT DESCENT FOR LOGISTIC REGRESSION: A NON-PROGRAMMING
WebMar 15, 2023 The gradient descent algorithm involves the following main steps: Initialize the coefficients (a and b) with some arbitrary values. Calculate the predicted values of y …
From medium.com
Mar 15, 2023 The gradient descent algorithm involves the following main steps: Initialize the coefficients (a and b) with some arbitrary values. Calculate the predicted values of y …»>
See details
3 DIFFERENT WAYS TO PERFORM GRADIENT DESCENT IN TENSORFLOW 2.0 …
WebOct 20, 2019 Gradient descent in Math Step 1, find the partial derivatives of x and z with respective to y. Step 2, randomly choose a value of x and z as an initializer. Let say we …
From medium.com
Oct 20, 2019 Gradient descent in Math Step 1, find the partial derivatives of x and z with respective to y. Step 2, randomly choose a value of x and z as an initializer. Let say we …»>
See details
SIMPLE REGRESSION USING GRADIENT DESCENT (IN VBA)
WebDec 6, 2022 Gradient descent finds the minimum of a function. It’s used in machine learning a lot. I created an Excel macro that uses it find the slope and intercept of a trend …
From mrexcel.com
Dec 6, 2022 Gradient descent finds the minimum of a function. It’s used in machine learning a lot. I created an Excel macro that uses it find the slope and intercept of a trend …»>
See details
LOGISTIC REGRESSION WITH GRADIENT DESCENT IN EXCEL
WebNow let’s find the optimal parameters a and b. For this, we have to find the derivatives of the loss function with respect to a and b. In the sheet “graddesc”, you will find all the Excel …
From towardsdatascience.com
Now let’s find the optimal parameters a and b. For this, we have to find the derivatives of the loss function with respect to a and b. In the sheet “graddesc”, you will find all the Excel …»>
See details
GRADIENT DESCENT IN LINEAR REGRESSION — ANALYTICS VIDHYA
WebApr 9, 2021 Step by Step Algorithm: 1. Let m = 0 and c = 0. Let L be our learning rate. It could be a small value like 0.01 for good accuracy. Learning rate gives the rate of speed …
From analyticsvidhya.com
Apr 9, 2021 Step by Step Algorithm: 1. Let m = 0 and c = 0. Let L be our learning rate. It could be a small value like 0.01 for good accuracy. Learning rate gives the rate of speed …»>
See details
GRADIENT DESCENT METHOD — EXCEL/VBA — YOUTUBE
Web0:00 / 18:29 8 — Numerical Optimization — EXCEL/VBA Gradient Descent Method — EXCEL/VBA Shams ElFouly 1.11K subscribers Subscribe 1.8K views 3 years ago In this …
From youtube.com
0:00 / 18:29 8 — Numerical Optimization — EXCEL/VBA Gradient Descent Method — EXCEL/VBA Shams ElFouly 1.11K subscribers Subscribe 1.8K views 3 years ago In this …»>
See details
NETFLIX AND CHILL: BUILDING A RECOMMENDATION SYSTEM IN EXCEL
WebJul 5, 2018 Weights = Random sample from a normal distribution using a mean of 0 and a standard deviation of (=SquareRoot (2/# of features)). Excel formula used to find the …
From towardsdatascience.com
Jul 5, 2018 Weights = Random sample from a normal distribution using a mean of 0 and a standard deviation of (=SquareRoot (2/# of features)). Excel formula used to find the …»>
See details
LEAST SQUARES OPTIMIZATION AND GRADIENT DESCENT ALGORITHM — UMD
WebGRADIENT DESCENT Algorithm for any* hypothesis function , loss function , step size : Initialize the parameter vector: • Repeat until satisfied (e.g., exact or approximate …
From cs.umd.edu
GRADIENT DESCENT Algorithm for any* hypothesis function , loss function , step size : Initialize the parameter vector: • Repeat until satisfied (e.g., exact or approximate …»>
See details
EXAMPLE OF GRADIENT DESCENT FOR LINEAR REGRESSION — YOUTUBE
WebThis is an example, in excel, where I try to find parameters of a linear regression. (Correction: The error is not well computed. Need to add the squares of …
From youtube.com
This is an example, in excel, where I try to find parameters of a linear regression. (Correction: The error is not well computed. Need to add the squares of …»>
See details
LEARN UNDER THE HOOD OF GRADIENT DESCENT ALGORITHM USING EXCEL
WebApr 17, 2017 Gradient descent is an optimization algorithm that finds the optimal weights (a,b) that reduces prediction error. Lets now go step by step to understand the Gradient …
From datasciencecentral.com
Apr 17, 2017 Gradient descent is an optimization algorithm that finds the optimal weights (a,b) that reduces prediction error. Lets now go step by step to understand the Gradient …»>
See details
GRADIENT DESCENT (ARTICLE) | KHAN ACADEMY
WebGradient descent is an algorithm that numerically estimates where a function outputs its lowest values. That means it finds local minima, but not by setting nabla f = 0 ∇f = 0 like …
From khanacademy.org
Gradient descent is an algorithm that numerically estimates where a function outputs its lowest values. That means it finds local minima, but not by setting nabla f = 0 ∇f = 0 like …»>
See details
GRADIENT DESCENT IN EXCEL DEMO — YOUTUBE
WebJan 1, 2018 An explanation of gradient decent (used to optimise neural Networks in back propagation) using graphs in excel Show more How to Perform Linear Regression in …
From youtube.com
Jan 1, 2018 An explanation of gradient decent (used to optimise neural Networks in back propagation) using graphs in excel Show more How to Perform Linear Regression in …»>
See details
Так вы сможете лучше понять, как работает линейная регрессия
Хотя использование Excel / Google Sheet для решения реальной проблемы с алгоритмами машинного обучения может быть плохой идеей, реализация алгоритма с нуля с помощью простых формул и простого набора данных очень полезна. чтобы понять, как работает алгоритм. После того, как я проделал это почти для всех распространенных алгоритмов, включая нейронную сеть, это мне очень помогает.
В этой статье я расскажу, как я реализовал простую линейную регрессию с градиентным спуском. Вы можете использовать ссылку Простая линейная регрессия с градиентным спуском, чтобы получить файл Excel / Google Sheet.
А теперь пачкаем руки!
Использование простого набора данных
Сначала я использую очень простой набор данных с одной функцией, вы можете увидеть график ниже, показывающий целевую переменную y и переменную функции x.
Создание линейной модели
В Google Sheet или Excel вы можете добавить линию тренда. Итак, вы получите результат линейной регрессии.
Но если вы хотите использовать модель для прогнозирования, тогда необходимо реализовать модель, и в этом случае модель довольно проста: для каждого нового наблюдения x мы можем просто создать формулу: y = a * x + б. Где a и b — параметры модели.
Функция стоимости модели
Как мы можем получить параметры a и b? Что ж, оптимальные значения для a и b — это те, которые минимизируют функцию стоимости, которая является квадратом ошибки модели. Таким образом, для каждой точки данных мы можем вычислить квадратичную ошибку.
Квадратная ошибка = (прогнозируемое действительное значение) ² = (a * x + b-действительное значение) ²
Чтобы найти минимум функции стоимости, мы используем алгоритм градиентного спуска.
Простой градиентный спуск
Перед реализацией градиентного спуска для линейной регрессии мы можем сначала сделать это для простой функции: (x-2) ^ 2.
Идея состоит в том, чтобы найти минимум этой функции, используя следующий процесс:
- Сначала мы случайным образом выбираем начальное значение.
- Затем для каждого шага мы вычисляем значение производной функции df (для этого значения x): df (x)
- И следующее значение x получается путем вычитания значения производной, умноженного на размер шага: x = x — step_size * df (x)
Вы можете изменить два параметра градиентного спуска: начальное значение x и размер шага.
А в некоторых случаях градиентный спуск не сработает. Например, если размер шага слишком велик, значение x может взорваться.
Градиентный спуск для линейной регрессии
Принцип алгоритма градиентного спуска тот же, что и для линейной регрессии: мы должны вычислить частные производные функции стоимости по параметрам a и b. Обозначим их как da и db.
Квадратная ошибка = (прогнозируемое действительное значение) ² = (a * x + b-действительное значение) ²
da = 2 (a * x + b-действительное значение) * x
db = 2 (a * x + b-действительное значение)
На следующем графике вы можете увидеть, как a и b сходятся к целевому значению.
На практике у нас есть много наблюдений, и это нужно делать для каждой точки данных. Вот тут-то и сходят с ума в Google Sheet. Итак, мы используем всего 10 точек данных.
Вы увидите, что сначала я создал таблицу с длинными формулами для вычисления da и db, которые содержат сумму производных всех наблюдений. Затем я создал еще один лист, чтобы показать все детали.
Если вы откроете Google Sheet, вы можете поиграть, изменив параметры градиентного спуска: начальные значения a и b и размер шага. Наслаждаться!
Теперь, если вы хотите разобраться в других алгоритмах, скопируйте эту таблицу Google и немного измените ее для логистической регрессии или даже для нейронной сети.
Искусственный интеллект использует excel и python для достижения градиентного спуска унарных и двоичных функций
- Резюме и сравнение метода градиентного спуска и метода Ньютона
- Один, метод градиентного спуска
- 1. Метод пакетного градиентного спуска
- 2. Метод стохастического градиентного спуска.
- 3. Сравнение стохастического градиентного спуска и градиентного спуска.
- 2. Метод Ньютона.
- 3. Сравнение метода Ньютона и метода градиентного спуска.
- Унарная функция градиентного спуска
- Бинарная функция градиентного спуска
- 1. Реализуйте с помощью excel
- 2. Реализуйте с помощью кода Python
- Импортируйте необходимые библиотечные функции
- f2 — исходная функция; hx1 — частная производная от x1; hx2 — частная производная от x2.
- Создать случайную матрицу для облегчения рисования
- Установите начальное значение на x1 = 1 x2 = 2 Установите точность итерации на 0,1. Инициализируйте количество итераций на 0.
- Видимый: результаты, полученные с помощью кода python, точно такие же, как и результаты, полученные с помощью excel.
Резюме и сравнение метода градиентного спуска и метода Ньютона
Суть машинного обучения заключается в создании модели оптимизации. Используя методы оптимизации, перебирайте векторы параметров, чтобы найти вектор параметров, который оптимизирует целевую функцию. Наконец построим модель
Обычно используются методы оптимизации: метод градиентного спуска, метод Ньютона, метод квазиньютона и др. Суть этих методов оптимизации заключается в обновлении параметров.
Один, метод градиентного спуска
0, идея градиентного спуска
Обновите параметры путем поиска направления и длины шага. Направление поиска — это направление отрицательного градиента целевой функции в текущей позиции. Потому что это направление — самое быстрое нисходящее направление. Размер шага определяет размер капли в этом направлении поиска.
Итерационный процесс похож на непрерывный спуск, и, наконец, он достигает уклона.
Следующая целевая функция в качестве примера использует целевую функцию линейной регрессии:
1. Метод пакетного градиентного спуска
2. Метод стохастического градиентного спуска.
3. Сравнение стохастического градиентного спуска и градиентного спуска.
Пакетный градиентный спуск: 1. Минимизируйте функцию потерь всех образцов и, наконец, получите глобальное оптимальное решение.
2. Поскольку все образцы необходимо переобучать каждый раз при обновлении параметров, стоимость относительно высока, что подходит для обучения мелкомасштабной выборки.
Стохастический градиентный спуск: 1. Оптимизация функции потерь для каждой выборки. Функция потерь, полученная на каждой итерации, каждый раз не приближается к глобальному оптимуму, а обычно приближается к глобальному оптимуму, и конечный результат часто близок к оптимальному решению.
2. Когда целевая функция выпуклая, результатом должно быть глобальное оптимальное решение.
3. Подходит для обучения на больших выборках.
Небольшой пакетный градиентный спуск
Объедините два вышеуказанных метода. Каждый раз небольшая часть данных используется для обновления параметров итерации. То есть выборка находится между 1 и m.
2. Метод Ньютона.
Прежде всего, метод Ньютона — это метод нахождения значения независимой переменной, когда значение функции равно 0.
Использование метода Ньютона для нахождения минимального значения целевой функции фактически преобразуется в значение параметра, которое делает первую производную целевой функции равной нулю. Теоретической основой для этого преобразования является то, что первая производная в крайней точке функции равна 0.
Итерационный процесс состоит в том, чтобы найти касательную функции в текущей позиции x0 и точку x1 пересечения касательной и оси x в качестве нового x0, повторять этот процесс до тех пор, пока точка пересечения не совпадет с нулевой точкой функции. Значение параметра в это время является значением параметра, при котором целевая функция получает экстремальное значение.
Итерационный процесс выглядит следующим образом:
Итерационная формула выглядит следующим образом:
Когда θ — вектор, метод Ньютона может быть выражен следующей формулой:
где H называется матрицей Гессе, которая фактически является второй производной целевой функции по параметру θ.
3. Сравнение метода Ньютона и метода градиентного спуска.
1. Метод Ньютона: путем решения параметров, когда первая производная целевой функции равна 0, а затем нахождения параметров, когда целевая функция является минимальным значением.
Скорость сходимости очень высокая.
Матрица, обратная матрице Гессе, постоянно уменьшается в итерационном процессе, что может привести к постепенному уменьшению размера шага.
Недостатки: обратное вычисление матрицы Гессе сложное и дорогостоящее, поэтому существует квазиньютоновский метод.
2. Метод градиентного спуска: это параметр, при котором минимальное значение целевой функции напрямую решается через направление градиента и длину шага.
Чем ближе к оптимальному значению, тем размер шага следует постоянно уменьшать, иначе он будет колебаться около оптимального значения.
Унарная функция градиентного спуска
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import math
from mpl_toolkits.mplot3d import Axes3D
import warnings
"""
Найдите точку минимума для текущего одномерного исходного изображения:
1. Возьмите случайную точку (абсцисса - x) и установите значение параметра alpha.
2. Найдите производную этой точки x = x-α * (dY / dx).
3. Повторите второй шаг и установите итерацию y меньше, чем то, насколько изменение не приведет к продолжению итерации.
"""
# Производная
def h1(x):
return 0.5 * 2 * (x-0.25)
X = np.arange(-4,4,0.05)
Y = np.array(list(map(lambda t: f1(t),X)))
Y
x = 4
alpha = 0.5
f_change = f1(x) # y изменение
iter_num = 0 # Количество итераций
GD_X = [x] # Сохраните точки, полученные при градиентном спуске
GD_Y = [f1(x)]
while(f_change > 1e-10) and iter_num<100:
tmp = x - alpha * h1(x)
f_change = np.abs(f1(x) - f1(tmp))
x = tmp
GD_X.append(x)
GD_Y.append(f1(x))
iter_num += 1
print(u«Окончательный результат: (% .5f,%. 5f)»%(x,f1(x)))
print(u«Значение X во время итерации, количество итераций:% d» % iter_num)
print(GD_X)
%matplotlib inline
plt.figure(facecolor='w')
plt.plot(X,Y,'r-',linewidth=2) # Третий параметр - это цвет и форма, красный круг - это ро-, красная прямая линия - р-
plt.plot(GD_X, GD_Y, 'bo-', linewidth=2)
plt.title(u'Функция $ y = 0,5 * (x-0,25) ^ 2 $; nОбучение% .3f; Окончательное решение: (% .3f,%. 3f), количество итераций:% d'%(alpha,x,f1(x),iter_num))
Бинарная функция градиентного спуска
1. Реализуйте с помощью excel
2. Реализуйте с помощью кода Python
Импортируйте необходимые библиотечные функции
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import math
from mpl_toolkits.mplot3d import Axes3D
import warnings
f2 — исходная функция; hx1 — частная производная от x1; hx2 — частная производная от x2.
def f2(x, y):
return 41.5*x-0.3*y+65.3
## Частичная функция
def hx1(x, y):
return 41.5
def hx2(x, y):
return 0.3
Создать случайную матрицу для облегчения рисования
X1 = np.arange(-4,4,0.2)
X2 = np.arange(-4,4,0.2)
X1, X2 = np.meshgrid(X1, X2) # Сгенерировать xv, yv, превратить X1 и X2 в матрицы размером n * m для облегчения последующего рисования
Y = np.array(list(map(lambda t : f2(t[0],t[1]),zip(X1.flatten(),X2.flatten()))))
Y.shape = X1.shape Изображение Y # 1600 восстановлено до исходного (40,40)
Установите начальное значение на x1 = 1 x2 = 2 Установите точность итерации на 0,1 Инициализируйте количество итераций на 0
x1 = 1
x2 = 1
alpha = 0.1
# Сохраняем точки, пройденные градиентным спуском
GD_X1 = [x1]
GD_X2 = [x2]
GD_Y = [f2(x1,x2)]
# Определить изменение y и количество итераций
y_change = f2(x1,x2)
iter_num = 0
while(y_change > 1e-10 and iter_num < 100) :
tmp_x1 = x1 - alpha * hx1(x1,x2)
tmp_x2 = x2 - alpha * hx2(x1,x2)
tmp_y = f2(tmp_x1,tmp_x2)
f_change = np.absolute(tmp_y - f2(x1,x2))
x1 = tmp_x1
x2 = tmp_x2
GD_X1.append(x1)
GD_X2.append(x2)
GD_Y.append(tmp_y)
iter_num += 1
print(u«Конечный результат: (% .5f,% .5f,% .5f)» % (x1, x2, f2(x1,x2)))
print(u«Значение X во время итерации, количество итераций:% d» % iter_num)
print(GD_X1)
Окончательный результат: (-414.00000, -2.00000, -17115.10000)
Значение X на итерации, количество итераций: 100
[1, -3.1500000000000004, -7.300000000000001, -11.450000000000001, -15.600000000000001, -19.75, -23.9, -28.049999999999997, -32.199999999999996, -36.349999999999994, -40.49999999999999, -44.64999999999999, -48.79999999999999, -52.94999999999999, -57.09999999999999, -61.249999999999986, -65.39999999999999, -69.55, -73.7, -77.85000000000001, -82.00000000000001, -86.15000000000002, -90.30000000000003, -94.45000000000003, -98.60000000000004, -102.75000000000004, -106.90000000000005, -111.05000000000005, -115.20000000000006, -119.35000000000007, -123.50000000000007, -127.65000000000008, -131.80000000000007, -135.95000000000007, -140.10000000000008, -144.25000000000009, -148.4000000000001, -152.5500000000001, -156.7000000000001, -160.8500000000001, -165.0000000000001, -169.15000000000012, -173.30000000000013, -177.45000000000013, -181.60000000000014, -185.75000000000014, -189.90000000000015, -194.05000000000015, -198.20000000000016, -202.35000000000016, -206.50000000000017, -210.65000000000018, -214.80000000000018, -218.9500000000002, -223.1000000000002, -227.2500000000002, -231.4000000000002, -235.5500000000002, -239.70000000000022, -243.85000000000022, -248.00000000000023, -252.15000000000023, -256.30000000000024, -260.4500000000002, -264.6000000000002, -268.75000000000017, -272.90000000000015, -277.0500000000001, -281.2000000000001, -285.3500000000001, -289.50000000000006, -293.65000000000003, -297.8, -301.95, -306.09999999999997, -310.24999999999994, -314.3999999999999, -318.5499999999999, -322.6999999999999, -326.84999999999985, -330.99999999999983, -335.1499999999998, -339.2999999999998, -343.44999999999976, -347.59999999999974, -351.7499999999997, -355.8999999999997, -360.04999999999967, -364.19999999999965, -368.3499999999996, -372.4999999999996, -376.6499999999996, -380.79999999999956, -384.94999999999953, -389.0999999999995, -393.2499999999995, -397.39999999999947, -401.54999999999944, -405.6999999999994, -409.8499999999994, -413.9999999999994]
Видимый: результаты, полученные с помощью кода python, точно такие же, как и результаты, полученные с помощью excel.
# Рисование
fig = plt.figure(facecolor='w',figsize=(20,18))
ax = Axes3D(fig)
ax.plot_surface(X1,X2,Y,rstride=1,cstride=1,cmap=plt.cm.jet)
ax.plot(GD_X1,GD_X2,GD_Y,'ko-')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_title(u'$ y = x1^2+2(x2)^2 - 4(x1)-2(x1) (x2) $')
ax.set_title(u'Функция; n Скорость обучения:% .3f; Окончательное решение: (% .3f,% .3f,% .3f); Количество итераций:% d' % (alpha, x1, x2, f2(x1,x2), iter_num))
plt.show()
Помогаю со студенческими работами здесь
Метод градиентного спуска
Помогите с заданием. Дали курсовую. там 6 заданий, 5 сделал ,осталось одно вот такое ===>…
Метод градиентного спуска
Подскажите на примере, как осуществить решение для системы нелинейных уравнений методом…
Метод градиентного спуска
Доброго времени суток. Необходимо минимизировать функцию методом градиентного спуска.
эпсилон в…
Метод градиентного спуска
Доброго времени суток! прошу прощения за подъём старой темы, которую здесь многократно пытались…
Искать еще темы с ответами
Или воспользуйтесь поиском по форуму: