梯度是一個(gè)數(shù)學(xué)概念,其愿意是一個(gè)向量(矢量),表示某一函數(shù)在該點(diǎn)處的方向?qū)?shù)沿著該方向取得最大值,即函數(shù)在該點(diǎn)處沿著該方向(此梯度的方向)變化最快,變化率最大(為該梯度的模)。在向量微積分中,標(biāo)量場(chǎng)的梯度是一個(gè)向量場(chǎng)。標(biāo)量場(chǎng)中某一點(diǎn)上的梯度指向標(biāo)量場(chǎng)增長最快的方向,梯度的長度是這個(gè)最大的變化率。
更嚴(yán)格的說,從歐幾里得空間Rn到R的函數(shù)的梯度是在Rn某一點(diǎn)最佳的線性近似。在這個(gè)意義上,梯度是雅可比矩陣的一個(gè)特殊情況。在單變量的實(shí)值函數(shù)的情況,梯度只是導(dǎo)數(shù),或者,對(duì)于一個(gè)線性函數(shù),也就是線的斜率。梯度一詞有時(shí)用于斜度,也就是一個(gè)曲面沿著給定方向的傾斜程度??梢酝ㄟ^取向量梯度和所研究的方向的點(diǎn)積來得到斜度。梯度的數(shù)值有時(shí)也被稱為梯度。
設(shè)體系中某處的物理參數(shù)(如溫度、速度、濃度等)為w,在與其垂直距離的dy處該參數(shù)為w+dw,則稱為該物理參數(shù)的梯度,也即該物理參數(shù)的變化率。如果參數(shù)為速度、濃度、溫度或空間,則分別稱為速度梯度、濃度梯度、溫度梯度或空間梯度。其中溫度梯度在直角坐標(biāo)系下的表達(dá)式如右圖。
在單變量的實(shí)值函數(shù)的情況,梯度只是導(dǎo)數(shù),或者,對(duì)于一個(gè)線性函數(shù),也就是線的斜率。
梯度一詞有時(shí)用于斜度,也就是一個(gè)曲面沿著給定方向的傾斜程度??梢酝ㄟ^取向量梯度和所研究的方向的點(diǎn)積來得到斜度。梯度的數(shù)值有時(shí)也被稱為梯度。
在二元函數(shù)的情形,設(shè)函數(shù)z=f(x,y)在平面區(qū)域D內(nèi)具有一階連續(xù)偏導(dǎo)數(shù),則對(duì)于每一點(diǎn)P(x,y)∈D,都可以定出一個(gè)向量
(δf/x)*i+(δf/y)*j
這向量稱為函數(shù)z=f(x,y)在點(diǎn)P(x,y)的梯度,記作gradf(x,y)
類似的對(duì)三元函數(shù)也可以定義一個(gè):(δf/x)*i+(δf/y)*j+(δf/z)*k 記為grad[f(x,y,z)]
梯度本意是一個(gè)向量(矢量),當(dāng)某一函數(shù)在某點(diǎn)處沿著該方向的方向?qū)?shù)取得該點(diǎn)處的最大值,即函數(shù)在該點(diǎn)處沿方向變化最快,變化率最大(為該梯度的模)。
散度運(yùn)算的對(duì)像是向量,運(yùn)算出來的結(jié)果會(huì)是純量
散度的作用對(duì)像是向量場(chǎng),如果現(xiàn)在我們考慮任何一個(gè)點(diǎn)(或者說這個(gè)點(diǎn)的周圍極小的一塊區(qū)域),在這個(gè)點(diǎn)上,向量場(chǎng)的發(fā)散程度,如果是正的,代表這些向量場(chǎng)是往外散出的.如果是負(fù)的,代表這些向量場(chǎng)是往內(nèi)集中的.
一樣,舉例子:因?yàn)樯⒍鹊淖饔脤?duì)像是向量場(chǎng),所以就不能用上面所講的山來想象,這次要想象一個(gè)大廣場(chǎng)里擠了很多人,如果每個(gè)人都在到處走動(dòng),是不是可以把每個(gè)人的行動(dòng)都看成是一個(gè)向量,假如現(xiàn)在某人放了一個(gè)屁,周圍的人(可能包含他自己)都想要趕快閃遠(yuǎn)一點(diǎn),就會(huì)發(fā)現(xiàn),在這塊區(qū)域的人都往這小塊區(qū)域以外的方向移動(dòng).對(duì)啦..這就是散度(你也可以想說是閃遠(yuǎn)一點(diǎn)的閃度....冷....),大家如果散得越快,散得人越多,這個(gè)散度算出來就就越大.
旋度運(yùn)算的對(duì)像是向量,運(yùn)算出來的結(jié)果會(huì)是向量
旋度的作用對(duì)象也是向量場(chǎng),這次直接用上面的例子來講:如果現(xiàn)在散開的眾人都是直直的往那個(gè)屁的反方向散開,這時(shí)候你看到這些人的動(dòng)線是不是就是一個(gè)標(biāo)準(zhǔn)的幅射狀??不過事實(shí)上,每個(gè)人在聞到屁的時(shí)候是不會(huì)確切的知道屁到底是來自哪個(gè)方向的.而可能會(huì)走錯(cuò)方向,試過之后才發(fā)現(xiàn)不對(duì)勁,越找越臭.這時(shí)候你看到眾人的走向不見得就是一個(gè)幅射狀(大家都徑向移動(dòng)),而可能有一些切向移動(dòng)的成份在(以屁發(fā)點(diǎn)為中心來看)旋度對(duì)應(yīng)的就是這些切向移動(dòng)的情況,相對(duì)來講,散度對(duì)應(yīng)的其實(shí)就是徑向移動(dòng)的情況.而一個(gè)屁,雖然可能會(huì)像上述的造成一些切向的移動(dòng),但理論上來講,并不會(huì)使散開的眾人較趨向于順時(shí)鐘轉(zhuǎn),或逆時(shí)鐘轉(zhuǎn).在這種情況,順時(shí)鐘轉(zhuǎn)的情況可以看作與逆時(shí)鐘轉(zhuǎn)的情況抵消,因此,在這情況下,旋度仍然是零.也就是說,一個(gè)屁能造成散度,而不會(huì)造成旋度....而甚么時(shí)候是有旋度的呢??如果這時(shí)候音樂一放,大家開始圍著中間的營火手拉手跳起土風(fēng)舞(當(dāng)然是要繞著營火轉(zhuǎn)的那種啦)這時(shí)候就會(huì)有旋度沒有散度啦.(剛剛一直放屁的那位跑出去找?guī)某?以上這三個(gè),有一點(diǎn)一定要記得的.不論是梯度,散度,旋度,都是一種local的量(純量,向量),所考慮的都是任何一點(diǎn)(其周圍極接近,極小的小范圍)的情況.以上舉的例子因?yàn)橐菀琢私猓远际轻槍?duì)二度空間向量為例,而且都是很大的東西,但廣場(chǎng)是一個(gè)點(diǎn),營火晚會(huì)也是一個(gè)點(diǎn),納須彌于芥子,這就請(qǐng)自行想象吧
運(yùn)算的對(duì)像是純量,運(yùn)算出來的結(jié)果會(huì)是向量在一個(gè)標(biāo)量場(chǎng)中
在每個(gè)位置都算出一個(gè)向量,而這個(gè)向量的方向會(huì)是在任何一點(diǎn)上從其周圍(極接近的周圍,學(xué)過微積分該知道甚么叫極限吧?)標(biāo)量值最小處指向周圍標(biāo)量值最大處.而這個(gè)向量的大小會(huì)是上面所說的那個(gè)最小與最大的差距程度.這會(huì)是梯度的計(jì)算結(jié)果
舉例子來講會(huì)比較簡單,如果現(xiàn)在的純量場(chǎng)用一座山來表示,純量值越大的地方越高,反之則越低.經(jīng)過梯度這個(gè)運(yùn)操作數(shù)的運(yùn)算以后,會(huì)在這座山的每一個(gè)點(diǎn)上都算出一個(gè)向量,這個(gè)向量會(huì)指向每個(gè)點(diǎn)最陡的那個(gè)方向,而向量的大小則代表了這個(gè)最陡的方向到底有多陡.
分別求三個(gè)變量的偏導(dǎo)數(shù),偏導(dǎo)數(shù)分別乘三個(gè)軸的單位向量,然后加到一起
圓柱坐標(biāo)系中梯度、散度和旋度
在機(jī)器學(xué)習(xí)算法中,在最小化損失函數(shù)時(shí),可以通過梯度下降法來一步步的迭代求解,得到最小化的損失函數(shù),和模型參數(shù)值。反過來,如果我們需要求解損失函數(shù)的最大值,這時(shí)就需要用梯度上升法來迭代了。
梯度下降法和梯度上升法是可以互相轉(zhuǎn)化的。比如我們需要求解損失函數(shù)f(θ)的最小值,這時(shí)我們需要用梯度下降法來迭代求解。但是實(shí)際上,我們可以反過來求解損失函數(shù) -f(θ)的最大值,這時(shí)梯度上升法就派上用場(chǎng)了。
首先來看看梯度下降的一個(gè)直觀的解釋。比如我們?cè)谝蛔笊缴系哪程幬恢?,由于我們不知道怎么下山,于是決定走一步算一步,也就是在每走到一個(gè)位置的時(shí)候,求解當(dāng)前位置的梯度,沿著梯度的負(fù)方向,也就是當(dāng)前最陡峭的位置向下走一步,然后繼續(xù)求解當(dāng)前位置梯度,向這一步所在位置沿著最陡峭最易下山的位置走一步。這樣一步步的走下去,一直走到覺得我們已經(jīng)到了山腳。當(dāng)然這樣走下去,有可能我們不能走到山腳,而是到了某一個(gè)局部的山峰低處。
從上面的解釋可以看出,梯度下降不一定能夠找到全局的最優(yōu)解,有可能是一個(gè)局部最優(yōu)解。當(dāng)然,如果損失函數(shù)是凸函數(shù),梯度下降法得到的解就一定是全局最優(yōu)解。