(圖解)為什么機(jī)器學(xué)習(xí)算法難以優(yōu)化?一文詳解算法優(yōu)化內(nèi)部機(jī)制
點(diǎn)擊左上方藍(lán)字關(guān)注我們

轉(zhuǎn)載自 | Datawhale
本文約3500字,建議閱讀9分鐘
本文介紹了一些關(guān)于機(jī)器學(xué)習(xí)和線性組合的部分問(wèn)題以及緩解該問(wèn)題的方法。

機(jī)器學(xué)習(xí)中的許多問(wèn)題應(yīng)該被視為多目標(biāo)問(wèn)題,但目前并非如此; 「1」中的問(wèn)題導(dǎo)致這些機(jī)器學(xué)習(xí)算法的超參數(shù)難以調(diào)整; 檢測(cè)這些問(wèn)題何時(shí)發(fā)生幾乎是不可能的,因此很難解決這些問(wèn)題。





def loss(θ):return loss_1(θ) + loss_2(θ)loss_derivative = grad(loss)for gradient_step in range(200): gradient = loss_derivative(θ) θ = θ - 0.02 * gradientdef loss(θ, α):return loss_1(θ) + α*loss_2(θ)loss_derivative = grad(loss)for gradient_step in range(200): gradient = loss_derivative(θ, α=0.5) θ = θ - 0.02 * gradient





第一,即使沒(méi)有引入超參數(shù)來(lái)權(quán)衡損失,說(shuō)梯度下降試圖在反作用力之間保持平衡也是不正確的。根據(jù)模型可實(shí)現(xiàn)的解,可以完全忽略其中一種損失,而將注意力放在另一種損失上,反之亦然,這取決于初始化模型的位置;
第二,即使引入了超參數(shù),也將在嘗試后的基礎(chǔ)上調(diào)整此超參數(shù)。研究中往往是運(yùn)行一個(gè)完整的優(yōu)化過(guò)程,然后確定是否滿意,再對(duì)超參數(shù)進(jìn)行微調(diào)。重復(fù)此優(yōu)化循環(huán),直到對(duì)性能滿意為止。這是一種費(fèi)時(shí)費(fèi)力的方法,通常涉及多次運(yùn)行梯度下降的迭代;
第三,超參數(shù)不能針對(duì)所有的最優(yōu)情況進(jìn)行調(diào)整。無(wú)論進(jìn)行多少調(diào)整和微調(diào),你都不會(huì)找到可能感興趣的中間方案。這不是因?yàn)樗鼈儾淮嬖?,它們一定存在,只是因?yàn)檫x擇了一種糟糕的組合損失方法;
第四,必須強(qiáng)調(diào)的是,對(duì)于實(shí)際應(yīng)用,帕累托前沿面是否為凸面以及因此這些損失權(quán)重是否可調(diào)始終是未知的。它們是否是好的超參數(shù),取決于模型的參數(shù)化方式及其影響帕累托曲線的方式。但是,對(duì)于任何實(shí)際應(yīng)用,都無(wú)法可視化或分析帕累托曲線??梢暬仍嫉膬?yōu)化問(wèn)題要困難得多。因此出現(xiàn)問(wèn)題并不會(huì)引起注意;
最后,如果你真的想使用這些線性權(quán)重來(lái)進(jìn)行權(quán)衡,則需要明確證明整個(gè)帕累托曲線對(duì)于正在使用的特定模型是凸的。因此,使用相對(duì)于模型輸出而言凸的損失不足以避免問(wèn)題。如果參數(shù)化空間很大(如果優(yōu)化涉及神經(jīng)網(wǎng)絡(luò)內(nèi)部的權(quán)重,則情況總是如此),你可能會(huì)忘記嘗試這種證明。需要強(qiáng)調(diào)的是,基于某些中間潛勢(shì)(intermediate latent),顯示這些損失的帕累托曲線的凸度不足以表明你具有可調(diào)參數(shù)。凸度實(shí)際上需要取決于參數(shù)空間以及可實(shí)現(xiàn)解決方案的帕累托前沿面。

END
整理不易,點(diǎn)贊三連↓
