簡單說下這個問題吧。
考慮最簡單的一類神經網路,只有一個隱層、和輸入輸出層的網路。也就是說給定 組樣本 ,我們網路的經驗損失函式可以寫成:
就是我們要最佳化的權重: 代表輸入層到隱層的權重, 代表隱層到輸出層的權重。這裡我們取 損失函式和ReLU作為我們的啟用函式。即上式中(用 代表對向量每一個元素取max)
注意到雖然像取平方,ReLU啟用函式 ,求內積這些“函式”單獨來看都是凸的,但他們這麼一複合之後就不一定是凸的了。一些常見的判斷凸函式的方法請見:
為了方便說明 這個函式是非凸的,我們需要一個經典引理:一個高維凸函式可以等價於無數個一維凸函式的疊加。
一個(高維)函式是凸的,當且僅當把這個函式限制到任意直線上它在定義域上仍然是凸的。這是凸分析裡很基本的一個定理,不熟悉的同學不妨嘗試用定義來證明它。
更正式的來說,
引理: 是凸的,當且僅當 對任意 , ,關於 是凸的。
反過來也就是說,只要我們找到一點 ,和一個“方向” ,使得這個 函式非凸就可以了! 回顧一維凸函式的定義,這就是說在這個方向上找到兩個點,他們平均的函式值比他們平均值上的函式值要低就行了!
最後就是輕鬆愉快的畫圖舉反例環節。這邊為了說明方便,取引數空間為四維的 。不過這種思路其實對任意維度的 都成立,只要畫圖的時候任選兩個維度就好(把其它維度的值固定住)。
這裡我們取真實的 。然後均勻隨機地生成 個 (二維的[0,1]均勻隨機向量), 就用 生成, 是[0,0.5]的均勻隨機數(這樣影象看起來會比較規整)。我們固定住 ,畫出取樣出來的 在 上的影象:
如上紅線,我們可以很輕鬆的找到一條使 “非凸”的線,因此證明完畢: 是非凸的。
這個本質上就是 @陳泰紅 答案中提到Goodfellow在Quora說的思路:“plot a cross-section of the function and look at it”,而它的正確性就是這邊的引理所保證的。注意到這邊如果你要用求導大法是不太容易的,因為隱層套的是ReLU啟用函式,只能求次微分,看起來會稍微麻煩一些。
簡單說下這個問題吧。
考慮最簡單的一類神經網路,只有一個隱層、和輸入輸出層的網路。也就是說給定 組樣本 ,我們網路的經驗損失函式可以寫成:
就是我們要最佳化的權重: 代表輸入層到隱層的權重, 代表隱層到輸出層的權重。這裡我們取 損失函式和ReLU作為我們的啟用函式。即上式中(用 代表對向量每一個元素取max)
注意到雖然像取平方,ReLU啟用函式 ,求內積這些“函式”單獨來看都是凸的,但他們這麼一複合之後就不一定是凸的了。一些常見的判斷凸函式的方法請見:
怎麼判斷一個最佳化問題是凸最佳化還是非凸最佳化?為了方便說明 這個函式是非凸的,我們需要一個經典引理:一個高維凸函式可以等價於無數個一維凸函式的疊加。
一個(高維)函式是凸的,當且僅當把這個函式限制到任意直線上它在定義域上仍然是凸的。這是凸分析裡很基本的一個定理,不熟悉的同學不妨嘗試用定義來證明它。
更正式的來說,
引理: 是凸的,當且僅當 對任意 , ,關於 是凸的。
反過來也就是說,只要我們找到一點 ,和一個“方向” ,使得這個 函式非凸就可以了! 回顧一維凸函式的定義,這就是說在這個方向上找到兩個點,他們平均的函式值比他們平均值上的函式值要低就行了!
最後就是輕鬆愉快的畫圖舉反例環節。這邊為了說明方便,取引數空間為四維的 。不過這種思路其實對任意維度的 都成立,只要畫圖的時候任選兩個維度就好(把其它維度的值固定住)。
這裡我們取真實的 。然後均勻隨機地生成 個 (二維的[0,1]均勻隨機向量), 就用 生成, 是[0,0.5]的均勻隨機數(這樣影象看起來會比較規整)。我們固定住 ,畫出取樣出來的 在 上的影象:
如上紅線,我們可以很輕鬆的找到一條使 “非凸”的線,因此證明完畢: 是非凸的。
這個本質上就是 @陳泰紅 答案中提到Goodfellow在Quora說的思路:“plot a cross-section of the function and look at it”,而它的正確性就是這邊的引理所保證的。注意到這邊如果你要用求導大法是不太容易的,因為隱層套的是ReLU啟用函式,只能求次微分,看起來會稍微麻煩一些。