Bahay Mga gilagid Paraan ng pinakamatarik na gradient descent. Paraan ng pinakamatarik na pagbaba

Paraan ng pinakamatarik na gradient descent. Paraan ng pinakamatarik na pagbaba

Pamamaraan pinakamatarik na pagbaba(sa panitikang Ingles na "paraan ng pinakamatarik na paglusong") ay isang umuulit na paraan ng numero (unang pagkakasunud-sunod) para sa paglutas ng mga problema sa pag-optimize, na nagbibigay-daan sa iyo upang matukoy ang extremum (minimum o maximum) ng layunin na pag-andar:

ay ang mga halaga ng argument ng function (mga kontroladong parameter) sa totoong domain.

Alinsunod sa pamamaraan na isinasaalang-alang, ang extremum (maximum o minimum) ng layunin ng function ay tinutukoy sa direksyon ng pinakamabilis na pagtaas (pagbaba) ng function, i.e. sa direksyon ng gradient (anti-gradient) ng function. gradient function sa isang punto ay isang vector na ang mga projection sa coordinate axes ay ang mga partial derivatives ng function na may paggalang sa mga coordinate:

kung saan ang i, j,…, n ay mga unit vector na kahanay sa coordinate axes.

Gradient sa base point ay mahigpit na orthogonal sa ibabaw, at ang direksyon nito ay nagpapakita ng direksyon ng pinakamabilis na pagtaas sa function, at ang kabaligtaran na direksyon (antigradient), ayon sa pagkakabanggit, ay nagpapakita ng direksyon ng pinakamabilis na pagbaba ng function.

Ang pinakamatarik na paraan ng pagbaba ay karagdagang pag-unlad paraan ng gradient descent. SA pangkalahatang kaso Ang proseso ng paghahanap ng extremum ng isang function ay isang umuulit na pamamaraan, na nakasulat tulad ng sumusunod:

kung saan ang "+" sign ay ginagamit upang mahanap ang maximum ng isang function, at ang "-" sign ay ginagamit upang mahanap ang minimum ng isang function;

Unit direction vector, na tinutukoy ng formula:

- tinutukoy ng gradient module ang rate ng pagtaas o pagbaba ng function sa direksyon ng gradient o anti-gradient:

Isang pare-pareho na tumutukoy sa laki ng hakbang at pareho para sa lahat ng i-th na direksyon.

Ang laki ng hakbang ay pinili mula sa kundisyon ng pinakamaliit na layunin ng function na f(x) sa direksyon ng paggalaw, ibig sabihin, bilang resulta ng paglutas ng one-dimensional na problema sa pag-optimize sa direksyon ng gradient o antigradient:

Sa madaling salita, ang laki ng hakbang ay tinutukoy sa pamamagitan ng paglutas ng equation na ito:

Kaya, ang hakbang sa pagkalkula ay pinili upang ang paggalaw ay isinasagawa hanggang sa mapabuti ang pag-andar, kaya umabot sa isang extremum sa ilang mga punto. Sa puntong ito, muling tinutukoy ang direksyon ng paghahanap (gamit ang gradient) at hinahangad ang isang bagong pinakamabuting punto ng layunin ng function, atbp. Kaya, sa pamamaraang ito, ang paghahanap ay nangyayari sa mas malalaking hakbang, at ang gradient ng function ay kinakalkula sa mas maliit na bilang ng mga puntos.

Sa kaso ng isang function ng dalawang variable ang pamamaraang ito ay may sumusunod na geometric na interpretasyon: ang direksyon ng paggalaw mula sa isang punto ay dumadampi sa antas na linya sa punto . Paikot-ikot ang trajectory ng pagbaba, na may katabing zigzag na mga link na orthogonal sa isa't isa. Ang kondisyon para sa orthogonality ng mga vector ng mga direksyon ng pagbaba sa mga kalapit na punto ay isinulat ng sumusunod na expression:

Ang trajectory ng paggalaw sa extremum point gamit ang pinakamatarik na paraan ng pagbaba, na ipinapakita sa graph ng linya ng pantay na antas ng function na f(x)

Ang paghahanap para sa pinakamainam na solusyon ay nagtatapos kapag nasa umuulit na hakbang sa pagkalkula (ilang pamantayan):

Ang trajectory ng paghahanap ay nananatili sa isang maliit na lugar ng kasalukuyang punto ng paghahanap:

Ang pagtaas ng layunin ng function ay hindi nagbabago:

Ang gradient ng layunin ng function sa lokal na minimum na punto ay nagiging zero:

Dapat pansinin na ang gradient descent method ay nagiging napakabagal kapag gumagalaw sa kahabaan ng bangin, at habang tumataas ang bilang ng mga variable sa layunin ng function, nagiging tipikal ang pag-uugaling ito ng pamamaraan. Ang bangin ay isang depresyon, ang mga linya ng antas kung saan humigit-kumulang ay may hugis ng mga ellipse na may mga semi-ax na naiiba nang maraming beses. Sa pagkakaroon ng isang bangin, ang trajectory ng pagbaba ay tumatagal ng anyo ng isang zigzag na linya na may isang maliit na hakbang, bilang isang resulta kung saan ang nagresultang bilis ng pagbaba sa isang minimum ay lubhang pinabagal. Ito ay ipinaliwanag sa pamamagitan ng katotohanan na ang direksyon ng antigradient ng mga function na ito ay lumihis nang malaki mula sa direksyon hanggang sa pinakamababang punto, na humahantong sa isang karagdagang pagkaantala sa pagkalkula. Bilang resulta, nawawalan ng kahusayan sa pagkalkula ang algorithm.

Gully function

Ang paraan ng gradient, kasama ang maraming pagbabago nito, ay laganap at mabisang paraan paghahanap para sa pinakamabuting kalagayan ng mga bagay na pinag-aaralan. Ang kawalan ng gradient na paghahanap (pati na rin ang mga pamamaraan na tinalakay sa itaas) ay kapag ginagamit ito, tanging ang lokal na extremum ng function ang maaaring makita. Para maghanap ng iba mga lokal na sukdulan ito ay kinakailangan upang maghanap mula sa iba pang mga panimulang punto. Gayundin, ang bilis ng convergence ng mga pamamaraan ng gradient ay makabuluhang nakasalalay din sa katumpakan ng mga kalkulasyon ng gradient. Ang pagkawala ng katumpakan, na kadalasang nangyayari sa paligid ng mga pinakamababang punto o sa isang gully na sitwasyon, ay karaniwang maaaring makagambala sa convergence ng gradient descent process.

Paraan ng pagkalkula

Hakbang 1: Kahulugan ng mga analytical na expression (sa simbolikong anyo) para sa pagkalkula ng gradient ng isang function

Hakbang 2: Itakda ang paunang pagtatantya

Hakbang 3: Natutukoy ang pangangailangang i-restart ang algorithmic procedure upang i-reset ang huling direksyon sa paghahanap. Bilang resulta ng pag-restart, ang paghahanap ay isinasagawa muli sa direksyon ng pinakamabilis na pagbaba.

Maaari ka ring maghanap hindi para sa pinakamahusay na punto sa direksyon ng gradient, ngunit para sa ilang mas mahusay kaysa sa kasalukuyang isa.

Ang pinakamadaling ipatupad sa lahat ng lokal na paraan ng pag-optimize. May medyo mahinang kondisyon convergence, ngunit ang rate ng convergence ay medyo mababa (linear). Hakbang paraan ng gradient kadalasang ginagamit bilang bahagi ng iba pang paraan ng pag-optimize, gaya ng pamamaraang Fletcher–Reeves.

Paglalarawan [ | ]

Mga pagpapabuti[ | ]

Ang gradient descent method ay lumalabas na napakabagal kapag gumagalaw sa kahabaan ng bangin, at habang tumataas ang bilang ng mga variable sa layunin ng function, nagiging pangkaraniwan ang pag-uugaling ito ng pamamaraan. Upang labanan ang hindi pangkaraniwang bagay na ito, ginagamit ito, ang kakanyahan nito ay napaka-simple. Ang pagkakaroon ng paggawa ng dalawang hakbang ng gradient descent at nakakuha ng tatlong puntos, ang ikatlong hakbang ay dapat gawin sa direksyon ng vector na nagkokonekta sa una at ikatlong mga punto, kasama ang ilalim ng bangin.

Para sa mga function na malapit sa quadratic, ang conjugate gradient method ay epektibo.

Application sa mga artipisyal na neural network[ | ]

Ang gradient descent method, na may ilang pagbabago, ay malawakang ginagamit para sa perceptron na pagsasanay at kilala sa teorya ng mga artipisyal na neural network bilang paraan ng backpropagation. Kapag nagsasanay ng perceptron-type neural network, kailangang baguhin ang weighting coefficients ng network upang mabawasan average na error sa output ng neural network kapag ang isang sequence ng training input data ay ibinibigay sa input. Sa pormal na paraan, upang makagawa lamang ng isang hakbang gamit ang gradient descent method (gumawa lamang ng isang pagbabago sa mga parameter ng network), kinakailangan na sunud-sunod na isumite ang buong hanay ng data ng pagsasanay sa input ng network, kalkulahin ang error para sa bawat object ng ang data ng pagsasanay at kalkulahin ang kinakailangang pagwawasto ng mga koepisyent ng network (ngunit huwag gawin ang pagwawasto na ito), at pagkatapos isumite ang lahat ng data, kalkulahin ang halaga sa pagsasaayos ng bawat koepisyent ng network (kabuuan ng mga gradient) at itama ang mga koepisyent "isang hakbang" . Malinaw, na may malaking hanay ng data ng pagsasanay, ang algorithm ay gagana nang napakabagal, kaya sa pagsasanay, ang mga coefficient ng network ay madalas na nababagay pagkatapos ng bawat elemento ng pagsasanay, kung saan ang halaga ng gradient ay tinatantya ng gradient ng function ng gastos, na kinakalkula sa isang pagsasanay lamang. elemento. Ang pamamaraang ito ay tinatawag na stochastic gradient descent o operational gradient descent . Ang stochastic gradient descent ay isang anyo ng stochastic approximation. Ang teorya ng stochastic approximations ay nagbibigay ng mga kondisyon para sa convergence ng stochastic gradient descent method.

Mga link [ | ]

  • J. Mathews. Module para sa Steepest Descent o Gradient Method. (hindi available na link)

Panitikan [ | ]

  • Akulich I. L. Ang programming sa matematika sa mga halimbawa at problema. - M.: Higher School, 1986. - P. 298-310.
  • Gill F., Murray W., Wright M. Praktikal na pag-optimize = Praktikal na Pag-optimize. - M.: Mir, 1985.
  • Korshunov Yu M., Korshunov Yu. Mga pundasyon ng matematika ng cybernetics. - M.: Energoatomizdat, 1972.
  • Maksimov Yu A., Fillipovskaya E. A. Algorithm para sa paglutas ng mga problema sa nonlinear programming. - M.: MEPhI, 1982.
  • Maximov Yu. Algorithm para sa linear at discrete programming. - M.: MEPhI, 1980.
  • Korn G., Korn T. Handbook ng matematika para sa mga siyentipiko at inhinyero. - M.: Nauka, 1970. - P. 575-576.
  • S. Yu. Gorodetsky, V. A. Grishagin. Nonlinear programming at multiextremal optimization. - Nizhny Novgorod: Nizhny Novgorod University Publishing House, 2007. - pp. 357-363.
Layunin ng serbisyo. Online na calculator na ginagamit upang mahanap pinakamababang function pinakamatarik na paraan ng pagbaba o Cauchy na pamamaraan(tingnan ang halimbawa). Ang solusyon ay iginuhit sa format na Word.

f(x 1 ,x 2) =

Hanapin maximum na pag-andar, dapat paramihin target na function ni (-1), i.e. Fmin = -Fmax.
Paraan para sa paghahanap ng minimum ng isang function Paraan ng pinakamatarik na pagbaba Paraan ni Newton
Simula sa isang punto ( ; ) .
Katumpakan ξ = . Bilang ng mga pag-ulit 1 2 3

Mga panuntunan para sa pagpasok ng isang function

SA pinakamatarik na paraan ng pagbaba isang vector na ang direksyon ay kabaligtaran sa direksyon ng gradient vector ng function na ▽f(x) ay pinili bilang direksyon ng paghahanap. Mula sa pagsusuri sa matematika alam na ang vector grad f(x)=▽f(x) ay nagpapakilala sa direksyon ng pinakamabilis na pagtaas sa function (tingnan ang gradient ng function). Samakatuwid, ang vector - grad f (X) = -▽f(X) ay tinatawag anti-gradient at ang direksyon ng pinakamabilis nitong pagbaba. Ang pag-uulit na kaugnayan kung saan ipinatupad ang pinakamatarik na paraan ng pagbaba ay may anyong X k +1 =X k - λ k ▽f(x k), k = 0,1,...,
kung saan ang λ k >0 ay ang laki ng hakbang. Depende sa pagpili ng laki ng hakbang, maaari kang makakuha iba't ibang mga pagpipilian paraan ng gradient. Kung sa panahon ng proseso ng pag-optimize ang laki ng hakbang λ ay naayos, kung gayon ang pamamaraan ay tinatawag na pamamaraan ng gradient na may isang discrete na hakbang. Ang proseso ng pag-optimize sa mga unang pag-ulit ay maaaring makabuluhang mapabilis kung ang λ k ay pipiliin mula sa kundisyong λ k =min f(X k + λS k) .
Upang matukoy ang λ k, ginagamit ang anumang one-dimensional na paraan ng pag-optimize. Sa kasong ito, ang pamamaraan ay tinatawag na steepest descent method. Bilang isang tuntunin, sa pangkalahatang kaso, ang isang hakbang ay hindi sapat upang makamit ang pinakamababa sa pag-andar;
Kung ang espasyo ay napakahaba sa ilang mga variable, pagkatapos ay isang "bangin" ay nabuo. Ang paghahanap ay maaaring bumagal at mag-zigzag sa ilalim ng "ravine." Minsan ang isang solusyon ay hindi maaaring makuha sa loob ng isang katanggap-tanggap na takdang panahon.
Ang isa pang disbentaha ng pamamaraan ay maaaring ang kriterya sa paghinto ||▽f(X k)||<ε k , так как этому условию удовлетворяет и седловая точка, а не только оптимум.

Halimbawa. Simula sa puntong x k =(-2, 3), tukuyin ang punto x k +1 gamit ang pinakamatarik na paraan ng pagbaba upang mabawasan ang function.
Bilang direksyon ng paghahanap, piliin ang gradient vector sa kasalukuyang punto

Suriin natin ang pamantayan sa paghinto. Meron kami
Kalkulahin natin ang halaga ng function sa inisyal na punto f(X 1) = 35. Gawin natin
hakbang kasama ang antigradient na direksyon

Kalkulahin natin ang halaga ng function sa isang bagong punto
f(X 2) = 3(-2 + 19λ 1) 2 + (3-8λ 1) 2 - (-2 + 19λ 1)(3-8λ 1) - 4(-2 + 19λ 1)
Maghanap tayo ng isang hakbang upang ang layunin ng function ay umabot sa pinakamababa sa direksyong ito. Mula sa kinakailangang kondisyon para sa pagkakaroon ng isang extremum ng function
f’(X 2) = 6(-2 + 19λ 1) 19 + 2(3-8λ 1)(-8) – (73 - 304 λ 1) – 4*19
o f’(X 2) = 2598 λ 1 – 425 = 0.
Nakukuha namin ang hakbang λ 1 = 0.164
Ang pagkumpleto ng hakbang na ito ay hahantong sa punto

kung saan ang gradient value , halaga ng function f(X 2) = 0.23. Ang katumpakan ay hindi nakakamit, mula sa punto na gumawa kami ng isang hakbang kasama ang direksyon ng antigradient.

f(X 2) = 3(1.116 – 1.008λ 1) 2 + (1.688-2.26λ 1) 2 - (1.116 – 1.008λ 1)(1.688-2.26λ 1) - 4(1.116 – 1.0)
f’(X 2) = 11.76 – 6.12λ 1 = 0
Nakukuha namin ang λ 1 = 0.52

Anotasyon: Malawakang sinasaklaw ng lecture na ito ang mga pamamaraan ng pag-optimize ng multiparameter bilang ang pinakamatarik na paraan ng pagbaba at ang paraan ng Davidon-Fletcher-Powell. Bilang karagdagan, ang isang paghahambing na pagsusuri ng mga pamamaraan sa itaas ay isinasagawa upang matukoy ang pinaka-epektibo, ang kanilang mga pakinabang at kawalan ay natukoy; at isinasaalang-alang din ang mga problema sa multidimensional na pag-optimize, tulad ng paraan ng bangin at ang pamamaraang multiextremal.

1. Paraan ng pinakamatarik na pagbaba

Ang kakanyahan ng pamamaraang ito ay ang paggamit ng naunang nabanggit coordinate descent method Ang isang paghahanap ay isinasagawa mula sa isang naibigay na punto sa isang direksyon na kahanay sa isa sa mga axes hanggang sa pinakamababang punto sa direksyong ito. Isinasagawa ang paghahanap sa direksyong parallel sa kabilang axis, at iba pa. Ang mga direksyon ay, siyempre, naayos. Tila makatwirang subukang baguhin ang pamamaraang ito upang sa bawat yugto ang paghahanap para sa pinakamababang punto ay isinasagawa kasama ang "pinakamahusay" na direksyon. Hindi malinaw kung aling direksyon ang "pinakamahusay", ngunit ito ay kilala na direksyon ng gradient ay ang direksyon ng pinakamabilis na pagtaas sa function. Samakatuwid, ang kabaligtaran na direksyon ay ang direksyon ng pinakamabilis na pagbaba ng function. Maaaring bigyang-katwiran ang ari-arian na ito bilang mga sumusunod.

Ipagpalagay natin na tayo ay lumilipat mula sa punto x patungo sa susunod na punto x + hd, kung saan ang d ay isang tiyak na direksyon at ang h ay isang hakbang ng isang tiyak na haba. Dahil dito, ang paggalaw ay ginawa mula sa punto (x 1, x 2, ..., x n) hanggang sa punto (x 1 + zx 1, x 2 + zx 2, ..., x n + zx n), Saan

Ang pagbabago sa mga halaga ng function ay tinutukoy ng mga relasyon

(1.3)

Hanggang sa unang order zx i , at ang mga partial derivatives ay kinakalkula sa punto x . Paano dapat piliin ang mga direksyon d i na nakakatugon sa equation (1.2) upang makuha ang pinakamalaking halaga ng pagbabago sa function na df? Dito nagkakaroon ng problema sa pag-maximize na may hadlang. Ilapat natin ang paraan ng mga multiplier ng Lagrange, sa tulong kung saan natin matukoy ang function

Ang halaga ng df satisfying constraint (1.2) ay umabot sa maximum kapag ang function

Naabot ang maximum. Ang hinango nito

Kaya naman,

(1.6)

Pagkatapos di ~ df/dx i at ang direksyon d ay kahanay sa direksyon V/(x) sa punto x.

kaya, pinakamalaking lokal na pagtaas Ang function para sa isang naibigay na maliit na hakbang h ay nangyayari kapag ang d ay ang direksyon ng Vf(x) o g(x) . Samakatuwid, ang direksyon ng pinakamatarik na pagbaba ay ang direksyon

Sa isang mas simpleng anyo, ang equation (1.3) ay maaaring isulat tulad ng sumusunod:

Nasaan ang anggulo sa pagitan ng mga vectors na Vf(x) at dx. Para sa isang ibinigay na halaga ng dx, pinaliit namin ang df sa pamamagitan ng pagpili na ang direksyon ng dx ay tumutugma sa direksyon ng -Vf(x) .

Magkomento. direksyon ng gradient patayo sa anumang punto sa isang linya ng pare-pareho ang antas, dahil sa linyang ito ang function ay pare-pareho. Kaya, kung ang (d 1, d 2, ..., d n) ay isang maliit na hakbang sa linya ng antas, kung gayon

At samakatuwid

(1.8)


Bago sa site

>

Pinaka sikat