Содержание
Нахождение градиента вектор-функции
Перевод
Ссылка на автора
Название изображения: Источник
В Часть 1 Нам поставили задачу: вычислить градиент этой функции потерь:
Изображение 1: функция потери
Чтобы найти градиент, мы должны найти производную функцию. В Часть 2 мы научились вычислять частную производную функции по каждой переменной. Однако большинство переменных в этой функции потерь являются векторами. Возможность найти частную производную векторных переменных особенно важна, поскольку нейронная сеть работает с большими объемами данных. Векторные и матричные операции — это простой способ представления операций с таким большим количеством данных. Как именно вы можете найти градиент вектор-функции?
Градиент скалярной функции
Скажи, что у нас есть функция,f (x, y) = 3x²y, Наши частные производные:
Изображение 2: Частичные производные
Если мы организуем эти части в горизонтальный вектор, мы получимградиентизР (х, у), или∇ f (x, y):
Изображение 3: Градиент f (x, y)
6yxэто изменение вР (х, у)в отношении изменения вИкс, в то время как3x²это изменение вР (х, у)в отношении изменения вY,
Что происходит, когда у нас есть две функции? Давайте добавим еще одну функцию,g (x, y) = 2x + y⁸, Частные производные:
Изображение 4: Частицы для g (x, y)
Таким образом, градиент g (x, y):
Изображение 5: градиент g (x, y)
Представляющие функции
Когда у нас есть несколько функций с несколькими параметрами, часто полезно представлять их более простым способом. Мы можем объединить несколько параметров функций в один векторный аргумент,Иксэто выглядит следующим образом:
Изображение 6: ВекторИкс
Следовательно,Р (х, у, г)станетF (x₁, x₂, x₃)который становитсяе (Икс).
Мы также можем объединить несколько функций в вектор, например так:
Изображение 7: ВекторY
В настоящее время,у = F (X)гдеF (X)является вектором из [f₁ (Икс), f₂ (Икс), f₃ (Икс) … п (Икс)]
Для нашего предыдущего примера с двумя функциями,f (x, y) ⇒ f (Икс)а такжеg (x, y) ⇒ g (Икс).Здесь векторИкс= [x₁, x₂], гдеx₁ = х, а такжеx₂ = у, Чтобы упростить его еще больше, мы можем объединить наши функции: [f (Икс),г(Икс)] = [f₁ (Икс), f₂ (Иксзнак равноf (x) = y.
Изображение 8: Уравнения в векторной функцииY
Зачастую количество функций и количество переменных будет одинаковым, поэтому для каждой переменной существует решение.
Градиент вектор-функции
Теперь, когда у нас есть две функции, как мы можем найти градиент обеих функций? Если мы организуем оба их градиента в одну матрицу, мы переместимся из векторного исчисления в матричное исчисление. Эта матрица и организация градиентов нескольких функций с несколькими переменными, известна какМатрица Якобиана,
Изображение 9: Якобиан
Есть несколько способов представления якобиана. Этот макет, где мы укладываем градиенты по вертикали, известен какмакет числителя, но другие документы будут использоватьрасположение знаменателя, который просто переворачивает его по диагонали:
Изображение 10: Расположение знаменателя якобиана
Градиент функции идентичности
Давайте возьмем функцию идентичности,у = ф (х) = х, гдеFi (Икс) = xiи найдите его градиент:
Изображение 11: функция идентификации
Так же, как мы создали наш предыдущий якобиан, мы можем найти градиенты каждой скалярной функции и сложить их вертикально, чтобы создать якобиан тождественной функции:
Изображение 12: Якобиан тождественной функции
Поскольку это функция идентичности, f₁ (Икс) = x₁, f₂ (Икс) = х₂ и тд. Следовательно,
Изображение 13: Якобиан тождественной функции
Частичная производная функции по переменной, которой нет в функции, равна нулю. Например, частная производная 2x² по y равна 0. Другими словами,
Изображение 14: частная производная функции по переменной, которой нет в функции, равна нулю
Поэтому все, что не на диагонали якобиана, становится равным нулю. Между тем, частная производная любой переменной по отношению к себе равна 1. Например, частная производнаяИксв отношенииИксравен 1. Следовательно, якобиан становится:
Изображение 15: Якобиан тождественной функции
Градиент комбинаций вектор-векторных функций
Элементарные бинарные операторыявляются операциями (такими как сложениевес+Иксиливес>Икскоторый возвращает вектор единиц и нулей), который применяет оператор последовательно, начиная с первого элемента обоих векторов, чтобы получить первый элемент вывода, затем второго элемента обоих векторов, чтобы получить второй элемент вывода… и так далее.
Эта статья представляет поэлементные бинарные операции с такими обозначениями:
Изображение 16: Поэлементная двоичная операция с f (x) и g (x)
Здесь ◯ означает любой поэлементный оператор (например, +), а не композицию функций.
Итак, как вы находите градиент поэлементной операции двух векторов?
Поскольку у нас есть два набора функций, нам нужны два якобиана, один из которых представляет градиент относительноИкси один по отношению квес:
Изображение 17: Якобиан по отношению квеса такжеИкс
Большинство арифметических операций нам понадобятся простые, поэтомуе (ш)часто просто векторвес, Другими словами,Fi (Wi) = Wi, Например, операцияW + хподходит к этой категории, так как она может быть представлена каке (ж) + д (х)гдеfi (wi) + gi (xi) = wi + xi.
При этом условии каждый элемент в двух якобианах упрощается до:
Изображение 18: Элементы в якобиане
На диагонали i = j, поэтому существует значение для частной производной. Вне диагонали, однако, i ≠ j, поэтому частные производные становятся равными нулю:
Изображение 19: Диагональный якобиан
Мы можем представить это более кратко как:
Изображение 20: Якобиан по отношению квеса такжеИкс
Попробуем найти градиент функцииW + х, Мы знаем, что все вне диагонали равно 0. Значения частичных по диагонали относительновеса такжеИксявляются:
Изображение 21: Частичное в отношениивеса такжеИкс
Итак, оба якобиана имеют диагональ 1. Это выглядит знакомо … это матрица тождеств!
Давайте попробуем это с умножением:ш * х, Значения частностей по диагонали относительновеса такжеИксявляются:
Изображение 22: Частичное в отношениивеса такжеИкс
Следовательно, градиент по отношению квесизш * хявляетсяDiag (Икс)в то время как градиент по отношению кИксизш * хявляетсяDiag (вес).
Применяя те же шаги для вычитания и деления, мы можем суммировать все это:
Изображение 23: Градиенты общих элементарных бинарных операций
Градиент векторных сумм
Одной из наиболее распространенных операций в глубоком обучении является операция суммирования. Как мы можем найти градиент функцииу = сумма (Икс)?
у = сумма (Икс)также может быть представлен как:
Изображение 24: у = сумма (Икс)
Следовательно, градиент может быть представлен как:
Изображение 25: Градиент у = сумма (Икс)
А так как частная производная функции по переменной, которой нет в функции, равна нулю, ее можно дополнительно упростить следующим образом:
Изображение 26: Градиент у = сумма (Икс)
Обратите внимание, что результатом является горизонтальный вектор.
Как насчет градиентау = сумма (Иксг)? Единственное отличие состоит в том, что мы умножаем каждый частный с константой, z:
Изображение 27: Градиент у = сумма (Икся) в отношенииИкс
Хотя это является производной по отношению кИкс, производная по скаляруZэто просто число:
Изображение 28: Градиент у = сумма (Иксz) относительно z
Градиент комбинаций векторных функций правила цепочки
В Часть 2 мы узнали о правилах цепей с несколькими переменными. Однако это работает только для скаляров. Давайте посмотрим, как мы можем интегрировать это в векторные вычисления!
Давайте возьмем векторную функцию,Yзнак равное(Икс)и найти градиент. Давайте определим функцию как:
Изображение 29:Yзнак равное(Икс)
И то и другоеf₁ (х)а такжеf₂ (х)являются составными функциями. Введем промежуточные переменные дляf₁ (х)а такжеf₂ (х)и переписать нашу функцию:
Изображение 30:Yзнак равное(г(Икс))
Теперь мы можем использовать наше правило цепочки переменных, чтобы вычислить производную вектораY, Просто вычислите производнуюf₁ (х)а такжеf₂ (х)и поместите их один над другим:
Изображение 31: ГрадиентYзнак равное(г(Икс))
Вуаля! У нас есть наш градиент. Однако мы пришли к нашему решению со скалярными правилами, просто сгруппировав числа в вектор. Есть ли способ представить правило цепи с несколькими переменными для векторов?
Прямо сейчас наш градиент вычисляется с помощью:
Изображение 32: ГрадиентYзнак равное(г(Икс))
Обратите внимание, что первый член градиентов обоихf₁ (х)а такжеf₂ (х)включает частичноеg₁надИкси второй член градиентов обоихf₁ (х)а такжеf₂ (х)включает частичноеg₂надИкс Это как умножение матриц! Поэтому мы можем представить это как:
Изображение 33: Векторное представление градиентаYзнак равное(г(Икс))
Давайте проверим наше новое представление правила цепочки векторов:
Изображение 34: Правило векторной цепи
Мы получаем тот же ответ, что и скалярный подход! Если вместо одного параметраИксу нас есть векторный параметрИкснам просто нужно немного изменить наше правило, чтобы получить полное правило цепочки векторов:
Изображение 35: Правило векторной цепи
Другими словами:
Изображение 36: Правило векторной цепи
В нашем примере выше,еэто чисто функцияг; то есть,фиявляется функциейсолдатно нетGJ(каждая функцияесоответствует ровно 1 функцииг),В этом случае все вне диагонали становится равным нулю, и:
Изображение 37: Особый случай векторного правила цепочки
Теперь у нас есть все части, которые мы находим в градиенте нейронной сети, с которой мы начали нашу серию:
Изображение 38: Функция стоимости
Проверять, выписываться Часть 4 чтобы узнать, как вычислить его производную!
Если вы еще этого не сделали, прочитайте части 1 и 2:
- Часть 1: Введение
- Часть 2: Частичные производные
Читать Часть 4 для грандиозного финала!
Скачать оригинал статьи Вот,
Если вам понравилась эта статья, не забудьте оставить несколько хлопков! Оставьте комментарий ниже, если у вас есть какие-либо вопросы или предложения 🙂
Растровый или векторный градиент? | Render.
ru
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
-
Автор темы
— -
Дата создания
Guest
#1
#1
Добрый день,
Часто слышал и читал, что при верстке макета для полиграфии к объектам лучше применять растровый градиент (т. е. объект заливается градиентом в Шопе), а потом уже этот растровый объект вставлять в Илле или Инди в макет.
Объясните пожалуйста, настолько ли это важно? Что может собственно произойти при фотовыводе (я имею ввиду возможные глюки при векторных градиентах)? Спасибо.
Guest
#2
#2
При относительно небольшом количестве воспроизводимых оттенков в каждом из четырех цветов слишком длинные градиенты могут пойти полосами. Подробнее изложено в Help’е в разделе «Printing gradients, mesh objects, and color blends» (AI CS). С небольшими изменениями этот раздел существует еще с 7-й версии AI (PC).
Простое растрирование такого «длиннного» градиента (mesh’а, blend’ы) особого эффекта не даст: практически получится то же на то же. Для избежания band’инга в растрированный градиент в Photoshop’е вносят небольшой шум (Filters —> Noise —>Add noise). Причем желательно вносить шум в каждый канал отдельно.
В PostScript Level 3 RIP’ах — а их сейчас достаточно много, встроена поддержка градиентов и mesh’ей. При этом число переходов практически ограничено числом воспроизводимых оттенков серого (см. указанный разд. Help’а) и может достигать 600 и более уровней серого. Соотвественно увеличивается допустимая длина градиента и снижается минимально допустимая «вилка» цвета.
Однако иногда RIP’ы, хотя и заявлены как Level3, «чудят» с градиентами. В таком случае при выводе или записи EPS’а устанавливать галку «Gradient & Mesh compаtible». В этом случае в PostScript’е градиент будет принудительно выгружен в семантике Level2, а число максимально возможных цветовых переходов будет снижено до 256. Реально из-за погрешеностей процессов изготовления формы и печати будет несколько ниже: практически пропадают светлые (процентов до 3-5%) и темные — процентов с 95 (во флексо — свои особенности).
Иногда, несмотря даже на принудительное установку Level 2 при выводе с градиентами (pattern’ми тоже) происходят нежелательные чудеса. Помогает ручное отключение Level 3 внутри записанного PostScript-файла заменой фрагмента:
/ps_level
/languagelevel where{
pop systemdict /languagelevel get exec
}{
1
}ifelse
def
на
/ps_level 2 def
Говорят также, что бывают проблемы с оч. маленькими по размеру градиетами.
Guest
#3
#3
1. ) PostScript Level 3 RIP от Adobe вычисляя значения градиента описанного оператором shfill получает 16 битные значения и это будет работать, если для растрирования используются 16 битные растры (Halftone Type 16). Причем, не все Halftone Type 16 — 16 битные. Растры от AGFA ABS (AGFA BALANCED SCREENING) 16 битные для всех RIP’ов от Agfa L3, они лицензированны многими производителями RIP’ов.
Чтобы не пропадали света (процентов до 3-5%) и тени — процентов с 95 на основе ABS были разработаны растры SUBLIMA это гибридные 16 битные растры. Что характерно, Sublima позволяет иметь линиатуру 340 на разрешении 2400. Если Вы скажете, что (2400/340)**2-1=47, то я Вас отошлю к PRLM third edition, параграф 7.4.8 Supercells.
Это не реклама — это реально работает.
2.) Idiom recognition. Даже если градиент построен в стиле L2, то в RIP’e L3 с помощью idiom’s оператор bind может переопределить процедуры рисования градиента в стиле L2 на оператор shfill.И в случае использования ABS получать замечательные результаты — проверено на практике в течении 3 лет.
Guest
#4
#4
учитывая незамысловатый стиль вопроса и замысловатый — ответа, так и хочется рассказать анекдот: «папа, а ты сейчас с кем разговаривал?..»
Guest
#5
#5
Нет, отчего же, всё понятно. Особенно, когда пару раз медленно прочтёшь
Большое спасибо Аркадий и igors.
Я послал запрос в типографию (они же выводят плёнки) насчёт их RIP-a и насчёт версии постскрипта.
А градиент у меня на тонкой рамке, там переходов резких нету. Скажем так — оттенки жёлтого (типа под золото). Просто не хочется качеством тиража рисковать, лучше спросить у знатоков
Спасибо ещё раз!
Guest
#6
#6
В догонку:
спросил в типографии, какой постскрипт у них RIP поддерживает.
Они мне пишут:
«Это вообще всё равно, какой у нас RIP, потому что мы ничего не можем изменить в получаемых файлах (JPG, TIF, PDF): ни шрифты, ни изображения, ничего… (дальше мусор и бред, что надо делать в CMYK-e и разрешение рекомендуется 300, но не больше.)
Ну и как вам этот ответ?)))
Типография в германии, нашёл по интернету.
Guest
#7
#7
>> …мы ничего не можем изменить в получаемых файлах
Может, оно и к лучшему
Guest
#8
#8
Попроси прислать PPD, из него и узнаешь какой RIP.
Понимание градиента – BetterExplained
Градиент – это причудливое слово для обозначения производной или скорости изменения функции. Это вектор (направление движения), который
- указывает в направлении наибольшего увеличения функции (интуиция почему)
- равен нулю на локальном максимуме или локальном минимуме (поскольку нет единого направления увеличения)
Термин «градиент» обычно используется для функций с несколькими входами и одним выходом (скалярное поле). Да, вы можете сказать, что линия имеет градиент (ее наклон), но использование «градиента» для функций с одной переменной излишне сбивает с толку. Будь проще.
«Градиент» может относиться к постепенным изменениям цвета, но мы будем придерживаться математического определения, если оно вас устраивает. Вы увидите, что значения связаны.
Свойства градиента
Теперь, когда мы знаем, что градиент является производной функции с несколькими переменными, давайте выведем некоторые свойства.
Обычная старая производная дает нам скорость изменения одной переменной, обычно $x$. Например, $\frac{dF}{dx}$ говорит нам, насколько изменится функция $F$ при изменении $x$. Но если функция принимает несколько переменных, таких как $x$ и $y$, у нее будет несколько производных: значение функции будет меняться, когда мы «качаем» $x$ ($\frac{dF}{dx}$ ) и когда мы покачиваем $y$ ($\frac{dF}{dy}$).
Мы можем представить эти множественные скорости изменения в виде вектора с одним компонентом для каждой производной. Таким образом, функция, которая принимает 3 переменные, будет иметь градиент с 3 компонентами:
- $F(x)$ имеет одну переменную и единственную производную: $\frac{dF}{dx}$
- $F(x,y,z)$ имеет три переменные и три производные: $\frac{dF}{dx}, \frac{dF}{dy}, \frac{dF}{dz}$
Градиент функции с несколькими переменными имеет компонент для каждого направления.
И точно так же, как обычная производная, градиент указывает в направлении наибольшего увеличения (и вот почему: мы меняем движение в каждом направлении достаточно, чтобы максимизировать выигрыш).
Однако теперь, когда у нас есть несколько направлений для рассмотрения ($x$, $y$ и $z$), направление наибольшего увеличения больше не просто «вперед» или «назад» вдоль оси $x$, как с функциями одной переменной.
Если у нас есть две переменные, то наш двухкомпонентный градиент может задавать любое направление на плоскости. Точно так же с 3 переменными градиент может указывать и направление в трехмерном пространстве, чтобы двигаться, чтобы увеличить нашу функцию.
Искривленный пример
Я большой поклонник примеров, помогающих закрепить объяснение. Предположим, у нас есть волшебная печь, на ней написаны координаты и есть специальный экран дисплея:
Мы можем ввести любые 3 координаты (например, «3,5,2»), и дисплей покажет нам градиент температуры в этой точке.
Микроволновая печь также оснащена удобными часами. К сожалению, у часов есть своя цена — температура внутри микроволновой печи сильно различается от места к месту. Но это того стоило: мы очень хотели эти часы.
Пока со мной? Мы вводим любую координату, и микроволновка выдает градиент в этом месте.
Будьте осторожны, не перепутайте координаты и градиент. Координаты — это текущее местоположение , измеренное по осям $x,y,z$. Градиент — это направление движения от нашего текущего местоположения, например, движение вверх, вниз, влево или вправо.
Теперь предположим, что нам нужна психиатрическая помощь, и мы поместим Мальчика с тестом Pillsbury в духовку, потому что мы думаем, что он будет вкусным. Он сделан из теста для печенья, верно? Мы размещаем его в случайном месте внутри духовки, и наша цель — приготовить его как можно быстрее. Градиент может помочь!
Градиент в любом месте точек в направлении наибольшего увеличения функции. В данном случае наша функция измеряет температуру. Таким образом, градиент говорит нам, в каком направлении нужно двигать пончика, чтобы он оказался в месте с более высокой температурой, чтобы приготовить его еще быстрее. Помните, что градиент , а не дает нам координаты, куда идти; это дает нам направление , чтобы двигаться , чтобы увеличить нашу температуру.
Таким образом, мы начали бы со случайной точки, такой как (3,5,2), и проверили бы градиент. В этом случае градиент равен (3,4,5). На самом деле мы бы не переместились на целых 3 единицы вправо, на 4 единицы назад и на 5 единиц вверх. Градиент — это просто направление, поэтому мы0003 следуйте по этой траектории чуть-чуть , а затем снова проверьте градиент.
Мы подходим к новой точке, довольно близкой к нашей исходной, которая имеет собственный градиент. Этот новый градиент является новым лучшим направлением для подражания. Мы будем продолжать повторять этот процесс: немного двигаться в направлении градиента, проверять градиент и немного двигаться в новом направлении градиента. Каждый раз, когда мы продвигались вперед и следовали градиенту, мы попадали во все более и более теплое место.
В конце концов, мы доберемся до самой горячей части духовки и останемся там, чтобы насладиться свежим печеньем.
Не ешь это печенье!
Но прежде чем вы съедите это печенье, давайте сделаем несколько замечаний по поводу градиента. Это веселее, правда?
Во-первых, когда мы достигаем самой горячей точки в духовке, какой там градиент?
Ноль. Нада. пшик. Почему? Что ж, как только вы окажетесь в максимальном месте, нет направления наибольшего увеличения . Любое направление, которому вы следуете, приведет к понижению температуры. Это как быть на вершине горы: любое направление, в котором вы двигаетесь, ведет вниз. Нулевой градиент говорит вам оставаться на месте — вы находитесь на максимуме функции и не можете добиться большего.
Но что, если рядом два максимума, как две горы рядом друг с другом? Вы можете быть на вершине одной горы, но рядом с вами может быть вершина побольше. Чтобы добраться до самой высокой точки, нужно сначала спуститься вниз.
А, теперь мы отправляемся в не очень приятную изнанку градиента. Нахождение максимума в обычных функциях (с одной переменной) означает, что мы находим все места, где производная равна нулю: нет направления наибольшего возрастания. Если вы помните, обычная производная будет указывать на локальных минимума и максимума , и абсолютный максимум/минимум должны быть протестированы из этих возможных местоположений.
Тот же принцип применим к градиенту, обобщению производной. Вы должны найти несколько мест, где градиент равен нулю — вам нужно будет проверить эти точки, чтобы увидеть, какая из них является глобальным максимумом. Опять же, вершина каждого холма имеет нулевой уклон — вам нужно сравнить высоту на каждом, чтобы увидеть, какой из них выше. Теперь, когда мы это прояснили, наслаждайтесь своим печеньем.
Математика
Мы знаем определение градиента: производная для каждой переменной функции. Символ градиента обычно представляет собой перевернутую дельту и называется «дельта» (это имеет смысл — дельта указывает на изменение одной переменной, а градиент — это изменение для всех переменных). Возьмем нашу группу из 3 производных выше
Обратите внимание, что x-компонента градиента является частной производной по $x$ (аналогично для $y$ и $z$). Для функции с одной переменной вообще нет $y$-компоненты, поэтому градиент сводится к производной.
Также обратите внимание на то, что градиент является функцией: он принимает 3 координаты в качестве положения и возвращает 3 координаты в качестве направления.
Если мы хотим найти направление движения, чтобы увеличить нашу функцию быстрее всего, мы подставляем наши текущие координаты (например, 3,4,5) в градиент и получаем:
Итак, это новый вектор (1, 8, 75) будет направлением, в котором мы будем двигаться, чтобы увеличить значение нашей функции. В этом случае наша x-компонента не сильно увеличивает значение функции: частная производная всегда равна 1,9.0005
Очевидным применением градиента является нахождение максимума/минимума функций с несколькими переменными. Другое менее очевидное, но родственное приложение — поиск максимума функции с ограничениями: функции, значения x и y которой должны лежать в определенной области, т. е. найти максимум всех точек, лежащих вдоль окружности. Решение этой проблемы требует моего мальчика Лагранжа, но всему свое время, всему свое время: пока наслаждайтесь градиентом.
Ключевым моментом является понимание градиента как обобщения производной. Градиент указывает направление наибольшего увеличения; продолжайте следовать градиенту, и вы достигнете локального максимума.
Вопросы
Почему градиент перпендикулярен линиям с одинаковым потенциалом?
Линии равного потенциала («эквипотенциальные») — это точки с одинаковой энергией (или значением для $F(x,y,z)$). В простейшем случае круг представляет все элементы на одинаковом расстоянии от центра.
Градиент указывает направление наибольшего изменения. Если бы у него был какой-либо компонент вдоль линии эквипотенциала, то эта энергия была бы потрачена впустую (поскольку он приближается к точке с той же энергией). Когда градиент перпендикулярен эквипотенциальным точкам, он движется как можно дальше от них (в этой статье объясняется, почему градиент является направлением наибольшего увеличения — это направление, которое максимизирует различные компромиссы внутри круга).
Другие сообщения из этой серии
- Векторное исчисление: понимание скалярного произведения
- Векторное исчисление: понимание векторного произведения
- Векторное исчисление: понимание потока
- Векторное исчисление: понимание дивергенции
- Векторное исчисление: понимание циркуляции и завитка
- Векторное исчисление: понимание градиента
- Понимание пифагорейского расстояния и градиента
Вектор градиента. Что это такое и как мы это вычисляем? | Роман Паолуччи
Что это такое и как его вычислить?
Photo from Unsplash
В векторном исчислении одной из главных тем является введение векторов и трехмерного пространства как расширения двумерного пространства, часто изучаемого в декартовой системе координат. Векторы имеют два основных свойства: направление и величина . В 2-х измерениях мы можем визуализировать вектор, идущий от начала координат, как стрелку (показывающую как направление, так и величину).
Двухмерный векторный график из matplotlib
Интуитивно это можно расширить до трех измерений, где мы можем визуализировать стрелку, плавающую в пространстве (опять же, демонстрирующую как направление, так и величину).
Трехмерный векторный график из JCCC
Менее интуитивно, понятие вектора может быть расширено до любого количества измерений, где понимание и анализ могут быть выполнены только алгебраически. Важно отметить, что в любом случае вектор не имеет определенного местоположения. Это означает, что если два вектора имеют одинаковое направление и величину, то они равны тот же вектор . Теперь, когда у нас есть общее представление о векторах, давайте поговорим о векторе градиента.
Независимо от размерности вектор градиента представляет собой вектор, содержащий все частные производные первого порядка функции.
Давайте вычислим градиент для следующей функции…
Функция, которую мы вычисляем вектор градиента для
Градиент обозначается как ∇…
Вектор градиента для функции f
После частичного дифференцирования…
Вектор градиента для функции f после подстановки частных производных
Это вектор градиента для функции f(x, y) . Это все здорово, но в чем смысл? Что может сделать вектор градиента — что он вообще означает?
Градиент Восхождение: максимизация
Градиент для любой функции указывает в направлении наибольшего увеличения. Это невероятно. Представьте, что у вас есть функция моделирования прибыли вашей компании. Очевидно, что ваша цель — максимизировать прибыль. Один из способов сделать это — вычислить вектор градиента и выбрать несколько случайных входных данных — теперь вы можете итеративно обновлять свои входные данные, вычисляя градиент и добавляя эти значения к вашим предыдущим входным данным, пока не будет достигнут максимум.
Градиентный спуск: минимизация
Мы знаем, что вектор градиента указывает в направлении наибольшего увеличения. И наоборот, отрицательный вектор градиента указывает в направлении наибольшего уменьшения. Основная цель градиентного спуска — свести к минимуму ошибку или стоимость, что особенно распространено в машинном обучении. Представьте, что у вас есть функция моделирования затрат для вашей компании. Очевидно, что ваша цель — минимизировать затраты. Подобно максимизации прибыли, вы можете вычислить вектор градиента для некоторых случайных входных данных и итеративно обновлять входные данные, вычитая значения в векторе градиента из ваших предыдущих входных данных, пока не будет достигнут минимум.
Проблемы с градиентным подъемом/спуском
Наиболее заметной проблемой при использовании этого метода оптимизации является наличие относительных экстремумов. Относительные экстремумы относятся к точкам на функции, которые являются максимальным или минимальным значением относительно точек вокруг нее, показанных на графике ниже.
Фото из онлайн-заметок Пола
Традиционный математический подход к оптимизации сталкивается с той же проблемой и решает ее путем сравнения выходных данных функции на всех относительных экстремумах для определения истинного глобального максимума/минимума. Что касается градиентного подъема/спуска, существует множество различных модификаций, которые можно внести в итеративный процесс обновления входных данных, чтобы избежать (или пройти) относительных экстремумов, помогающих в усилиях по оптимизации.