日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【java机器学习】支持向量机之拉格朗日乘子法解释

發布時間:2024/8/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【java机器学习】支持向量机之拉格朗日乘子法解释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是拉格朗日乘子法
按照維基百科的定義,拉格朗日乘數法是一種尋找多元函數在其變量受到一個或多個條件的約束時的極值的方法。用數學式子表達為:

簡單理解就是,我們要在滿足 這個等式的前提下,求 函數的最小值(最大值道理相同)。這樣的問題我們在高中的時候就遇到過了,只不過高中時遇到的限制條件 都比較簡單,一般而言都可以將 用 的式子表示出來,然后用變量替換的方法代回 求解。但是,如果 的形式過于復雜,或者變量太多時,這種方法就失效了。而拉格朗日乘子法就是解決這類問題的通用策略。
拉格朗日乘子法的原理
一個約束條件
我們先從只有一個約束條件的情況入手,看看拉格朗日乘子法到底是怎么做的。

假設,我們的問題如下:

當然,這個問題比較簡單,直接用 解出 y 再代入 也可以求解,但這里,我們準備用拉格朗日乘子法。
首先我們畫出 的圖像,這個圖像應該是 3 維的,但為了方便講解,這里給出它的 2 維投影:

圖中的紅色圓表示 ,越靠近原點的部分,值越小(表示“谷底”),這些圓又稱為「等高線」,因為同一個圓代表的函數值相同。

圖中的藍線代表 ,這里只取 的部分。

整幅圖像可以想象成一個巨大的山谷,原點是谷底,而我們的任務是在藍線表示的道路上,找到最低的位置。

那要如何找到這個最低點呢?注意,圖中用橙色和黑色標記了兩個點。如果我們走到了橙色這個位置,那么很明顯,可以發現這個點肯定不是最低的,因為我們可以沿著藍線繼續往內部的圓走,當我們走到黑色這個點時,會發現沒法再往里面走了,而且,這個時候如果繼續沿藍線走,我們的位置反而升高了,這時,我們基本可以認為:我們找到了在藍線這個限制條件下的最低點。

那么橙色這個點和黑色這個點有什么本質區別呢?拉格朗日觀察到,黑點位置,藍線和圓是相切的,而橙點位置顯然不滿足這個性質。那相切是否是必然的呢?拉格朗日告訴我們,是的,一定是相切的。而這一點,正是拉格朗日乘子法的核心。

梯度
在正式理解拉格朗日乘子法的原理之前,我們要回顧一下梯度的概念。

在數學里面,梯度指的是函數變化最快的方向。例如:在一元函數 中,梯度只能沿 x 軸正方向或負方向,而在二元函數 中,梯度則是一個二維向量 。

現在,我們要用到梯度一個重要的性質:梯度跟函數等高線是垂直的。

證明需要用到一點極限的知識。

梯度的數學定義為:。假設 , 是兩個極小的變化量,根據全微分的知識,可以得到:

如果 是在等高線方向的增量,那么 ,這意味著 ,換句話說,向量 和向量 的內積為 0。所以,梯度和函數的等高線是垂直的。
拉格朗日乘子法的幾何認識
現在,我們來感性地認識一下,為什么拉格朗日認為相切才能找到最低點(只是感性認識,不添加任何數學推導)。

在橙點這個位置,由于兩條曲線不相切,所以橙線的梯度(上圖橙色箭頭)和藍線的切線(藍色虛線)肯定不垂直。在這種情況下,藍線的兩個切線方向,必定有一個往函數高處走(與梯度的夾角小于 90 度),有一個往函數低處走(與梯度的夾角大于 90 度)。所以,在兩條曲線相交時,我們肯定不在最低點或最高點的位置。

那么,反過來想,如果兩條曲線相切(上圖),那么在切點這個位置,藍線的切線和橙線的梯度是垂直的,這個時候,藍線的切線方向都指向橙線的等高線方向。換句話說,在切點的位置沿藍線移動很小的一步,都相當于在橙線的等高線上移動,這個時候,可以認為函數值已經趨于穩定了。所以,我們認為這個點的值“可能”是最低(高)的(之后解釋為什么是“可能“。另外,個人覺得拉格朗日乘子法最好用反證法從不相切的點入手思考,從相切的點思考總有點別扭)。

既然相切可以幫助我們找到最低點,那么接下來我們要研究的便是如何利用相切來找出最低點。

相切,意味著在切點的位置,兩條曲線的等高線方向是平行的,考慮到梯度與等高線垂直, 我們可以用兩條曲線的梯度平行來求出切點位置(最低點)。

因此,根據梯度平行,我們能夠得到一個方程組:,其中 表示一個標量,因為我們雖然能保證兩個梯度平行,但不能保證它們的長度一樣(或者方向相同)。在高維函數中, 表示的是函數在各個自變量方向的偏導。對于上面的例子,我們可以求出函數 和 的偏導,再根據方程組:

求出切點。由于總共有三個方程和三個未知數,一般都能找到解(也可能存在多個解或無解的情況,之后會簡單討論)。
在實際求解時,人們會使用一個統一的拉格朗日函數:,令這個函數偏導為 0,我們可以得到:

結果和上面的方程組是一樣的。
多個約束條件
多個約束條件和單個約束條件是一樣的。如果是多個約束條件,那么這些約束函數肯定是相交的,否則無解。多個約束條件一般會把變量約束到一個更低維的空間,例如,下圖中,紫色球面和黃色平面將變量約束到黑色線的位置。

求解過程和單個約束條件是一樣的,我們定義一個新的拉格朗日函數:

然后同樣令這個函數的導數 ,最后可以得到 個方程以及 個未知數,一般也能求解出來。
總結
根據拉格朗日乘子法的定義,這是一種尋找極值的策略,換句話說,該方法并不能保證找到的一定是最低點或者最高點。事實上,它只是一種尋找極值點的過程,而且,拉格朗日乘子法找到的切點可能不只一個(也就是上面的方程組可能找到多個解),例如下圖:

圖中相切的點有兩個,而紅點的函數值明顯比黑點小。事實上,要想判斷找到的點是極低點還是極高點,我們需要將切點代入原函數再進行判斷。

另外,在寫作本文時,我仍然有一個疑惑沒有解決:拉格朗日乘子法在哪些情況下無解(也就是上面的方程組 無解)?換句話說,約束條件和函數沒有切點時,我們要怎么求出最低點或最高點。這個問題留待之后想通再補上。
原文:https://blog.csdn.net/ndzzl/article/details/79079561

總結

以上是生活随笔為你收集整理的【java机器学习】支持向量机之拉格朗日乘子法解释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。