|
優(yōu)化,是我們?cè)谏詈凸ぷ髦胁粩嘧非蟮哪繕?biāo)。無論是機(jī)器學(xué)習(xí)模型的訓(xùn)練,還是微調(diào),我們都希望能更快、更準(zhǔn)地找到最優(yōu)解。 ![]() 接下來,就讓我們來認(rèn)識(shí)一個(gè)能讓優(yōu)化效率大幅提升的數(shù)學(xué)工具——海森矩陣(Hessian Matrix)。 文章速覽 ARITCLE CONTENTS PART .01 >>> 海森矩陣的定義 PART .02 >>> 優(yōu)化問題中的海森矩陣 PART .03 >>> 海森矩陣的計(jì)算與近似 ![]() 01 海森矩陣 基本概念講解 海森矩陣(Hessian Matrix)是以德國(guó)數(shù)學(xué)家Ludwig Otto Hesse命名的一個(gè)二階偏導(dǎo)數(shù)方陣,用來描述多元函數(shù)的局部曲率。通常用 或 表示。 對(duì)于一個(gè)具有 個(gè)輸入變量的函數(shù) ,海森矩陣是一個(gè) 的矩陣,定義如下: 海森矩陣的每個(gè)元素 是二階偏導(dǎo)數(shù) 。這表示偏導(dǎo)數(shù) 相對(duì)于變量 的變化率。 其中,對(duì)角線元素 衡量沿著每個(gè)坐標(biāo)軸方向的曲率。 而非對(duì)角線元素 (其中 )被稱為混合偏導(dǎo)數(shù)。 它們衡量當(dāng)您沿著另一個(gè)變量 的方向移動(dòng)時(shí),相對(duì)于一個(gè)變量 的變化率如何變化。 想象一下,當(dāng)你在一片起伏的山丘上徒步,梯度(一階導(dǎo)數(shù))告訴你當(dāng)前最陡的下坡方向,但你不知道這個(gè)坡會(huì)一直陡下去,還是很快就會(huì)變緩。 ![]() 而海森矩陣(二階導(dǎo)數(shù))就是你的地形圖,它能告訴你:
對(duì)于多元函數(shù),海森矩陣同樣適用,只是維度會(huì)相應(yīng)增加,但其核心思想不變。 ![]() 簡(jiǎn)單來說,如果一階導(dǎo)數(shù)(梯度)告訴我們函數(shù)在某一點(diǎn)的“斜率”。 那么海森矩陣則告訴我們這個(gè)點(diǎn)的“曲率”——函數(shù)在各個(gè)方向上是如何彎曲的。 ![]() 02 優(yōu)化加速 牛頓法的數(shù)學(xué)原理 在優(yōu)化問題中,我們經(jīng)常使用梯度下降法,即只利用一階導(dǎo)數(shù)信息,沿著梯度反方向更新參數(shù),其更新公式為: 就像是你蒙著眼睛下山,只靠腳底感覺來移動(dòng)。這種方法簡(jiǎn)單,但效率有限。 ![]() 一方面,步長(zhǎng)難以確定:步子太小,收斂慢;步子太大,進(jìn)展緩慢。另一方面,“之字形”下降:在峽谷狀地形中反復(fù)震蕩,進(jìn)展緩慢。 而海森矩陣最經(jīng)典的應(yīng)用就是牛頓法,其更新公式為: 上述的公式看似簡(jiǎn)單,但其背后蘊(yùn)含著深刻的幾何直覺:
兩者的結(jié)合,使得牛頓法能夠在一步之內(nèi),從當(dāng)前位置直接跳到當(dāng)前二次近似的最優(yōu)點(diǎn)。 ![]() 對(duì)于局部接近二次函數(shù)的區(qū)域,這幾乎意味著“瞬間移動(dòng)”。 這是因?yàn)樗?/span>利用局部曲率信息實(shí)現(xiàn)二次收斂——一種遠(yuǎn)比梯度下降法線性和次線性收斂更快的收斂速度。 ![]() Study Time 在高維優(yōu)化中(比如神經(jīng)網(wǎng)絡(luò)),鞍點(diǎn)比局部極小值更常見。在鞍點(diǎn)處,梯度為零,梯度下降會(huì)停滯不前。 但海森矩陣的特征值能告訴你哪些方向是上坡(正特征值),哪些是下坡(負(fù)特征值),幫你快速逃離鞍點(diǎn)。 ![]() 同時(shí)海森矩陣的對(duì)角線近似(如AdaHessian等算法)可以為每個(gè)模型參數(shù)提供個(gè)性化的學(xué)習(xí)率。 平坦方向邁大步,陡峭方向邁小步,這種自適應(yīng)調(diào)整大幅提升了訓(xùn)練效率。 ![]() 03 計(jì)算與近似 海森矩陣的計(jì)算與近似 理論上,海森矩陣需要計(jì)算所有二階偏導(dǎo)數(shù),但對(duì)于復(fù)雜函數(shù)或高維問題,這個(gè)計(jì)算量可能是巨大的,甚至是不可行的。 ![]() 例如,一個(gè)具有10萬個(gè)參數(shù)的模型,海森矩陣將是10萬×10萬的矩陣,存儲(chǔ)和求逆幾乎不可行。 為此,研究者們提出了多種近似方法:
這些方法在深度學(xué)習(xí)框架(如TensorFlow、PyTorch)中已有成熟實(shí)現(xiàn)。 讓我們能在實(shí)際項(xiàng)目中享受到二階方法的優(yōu)勢(shì),而不必承受其計(jì)算負(fù)擔(dān)。 ![]() 結(jié)語 優(yōu)化是機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的核心,而理解二階導(dǎo)數(shù)的作用,能幫助我們?cè)谀P陀?xùn)練中更加游刃有余。 無論你是否直接使用牛頓法,海森矩陣背后的思想——利用曲率信息加速收斂——都值得每一位算法工程師深入理解。 注:文章中未聲明圖片均來源于互聯(lián)網(wǎng) END 點(diǎn)這里??關(guān)注我,記得標(biāo)星?哦~ |
|
|