人工智能的本質是最優化過程


模型三要素

爲了將事物和問題轉化爲最優化問題數學模型咱們須要考慮三個要素:因素變量、約束條件和目標函數。咱們根據事物和問題先找到影響模型的全部因素變量,而後再根據目的創建一個目標函數用來衡量系統的效果,最後還要找到客觀的限制條件並做爲模型的約束。算法

公式

如上公式,實際問題的因素變量其實能夠當作是一個n維向量,向量的每一個元素都是實數。f0(x)是咱們構建的目標函數,咱們的目標就是最小化該函數(最大化的狀況其實也能夠轉化爲最小化的狀況)。fi(x)和hj(x)做爲約束函數,分不等式約束和等式約束兩類,約束函數用來限制可能空間,若是不存在約束則不須要約束函數。數據結構

目標函數

人工智能的最優化

最優化與人工智能有什麼關係呢?能夠這樣說:人工智能在本質上也是一個最優化過程,對於咱們要實現的智能,也是經過學習以求得最優解。這是一個總的大框架,人工智能的問題到最後幾乎都是回到最優解問題。框架

不論是傳統的機器學習仍是大熱的深度學習,亦或是大有潛力的強化學習,它們的基礎核心思想均可以提高到最優化問題。機器學習

最優化

有約束最優化

前面提到過,最優化問題可能存在約束也可能不存在約束,並且有約束的狀況比無約束的狀況更加複雜。約束又能夠分爲不等式約束和等式約束兩類,約束的做用就是將最優解的可能空間限制在某些區域。分佈式

縱使有了約束狀況更加複雜,但咱們仍是有數學工具能夠解決的。對於等式約束的狀況,能夠引入拉格朗日乘子來解決,能夠將原來的目標函數和約束函數一塊兒轉化爲拉格朗日函數。拉格朗日函數與原來的目標函數擁有共同的最優解,因此只要求解拉格朗日函數的最優解便可。對於不等式約束的狀況,處理的方法也相似,只是須要額外知足KKT條件。函數

如下圖爲例,假設一共有四個約束條件,它們共同的限制區域爲四條不一樣顏色限定的一個區域。假如上半部分爲問題最優解的全部可能空間,而通過約束條件限制後則在區域中。工具

有約束

無約束最優化

無約束的狀況通常採用梯度降低法來尋找最優解,所謂梯度是一個向量,梯度的方向就是函數在某點增加最快的方向,梯度的模爲方向導數的最大值。而梯度降低的方向就是梯度的反方向,簡單地看,梯度降低就比如站在一座山的某個位置上,往周圍各個方向跨出相同步幅的一步,可以最快降低的方向。學習

無約束

此外,採用梯度降低法尋找最優解時有可能會找到局部最優解,一旦陷入局部最優後則可能沒法跳出來繼續尋找全局最優。因此局部最優問題也須要考慮,工程上存在專門的方法用於防止掉進局部最優解。但有時局部最優解和全局最優解差異可能不會很大,而尋找全局最優將會花費很高的代價,此時能夠沒必要關注是否爲全局最優。優化

局部最優


本公衆號專一於人工智能、讀書與感想、聊聊數學、計算機科學、分佈式、機器學習、深度學習、天然語言處理、算法與數據結構、Java深度、Tomcat內核等。人工智能

相關文章
相關標籤/搜索