《動手學深度學習》第二十九天 優化和深度學習

2021-09-26 10:38:08 字數 2002 閱讀 6772

區域性最小值(local minimum):對於目標函式f(x),f(x)在x上的值比在x鄰近的其他點的值更小。

全域性最小值(global minimum):f(x)在x上的值是目標函式在整個定義域上的最小值。

import d2lzh as d2l

from mpl_toolkits import mplot3d

import numpy as np

def f(x):

return x * np.cos(np.pi * x)

d2l.set_figsize((4.5, 2.5))

x = np.arange(-1.0, 2.0, 0.1) # 第乙個引數為起點,第二個引數為終點,第三個引數為步長。其中步長支援小數。

fig, = d2l.plt.plot(x, f(x)) # 逗號表示只取返回列表中的第乙個元素

# plt.plot(x,y,format_string,**kwargs) x軸資料,y軸資料,format_string控制曲線的格式字串

fig.axes.annotate('local minimum', xy=(-0.3, -0.25), xytext=(-0.77, -1.0),

arrowprops=dict(arrowstyle='->'))

# xy=(橫座標,縱座標) 箭頭尖端 xytext=(橫座標,縱座標) 文字的座標,指的是最左邊的座標 arrowprops=

fig.axes.annotate('global minimum', xy=(1.1, -0.95), xytext=(0.6, 0.8),

arrowprops=dict(arrowstyle='->'))

d2l.plt.xlabel('x') # 做標籤x

d2l.plt.ylabel('f(x)'); #做標籤f(x)

如果不作逗號會儲存報錯:

加上逗號後:

當乙個優化問題的數值解在區域性最優解附近時,由於目標函式有關解的梯度接近或變成零,最終迭代求得的數值解可能只令目標函式區域性最小化而非全域性最小化。

鞍點(saddle point)

假設乙個函式的輸入為k維向量,輸出為標量,那麼它的海森矩陣(hessian matrix)有k個特徵值。該函式在梯度為0的位置上可能是區域性最小值、區域性最大值或者鞍點。

當函式的海森矩陣在梯度為零的位置上的特徵值全為正時,該函式得到區域性最小值。

當函式的海森矩陣在梯度為零的位置上的特徵值全為負時,該函式得到區域性最大值。

當函式的海森矩陣在梯度為零的位置上的特徵值有正有負時,該函式得到鞍點。

隨機矩陣理論告訴我們,對於乙個大的高斯隨機矩陣來說,任一特徵值是正或者是負的概率都是0.5。那麼,以上第一種情況的概率為0.5^k。由於深度學習模型引數通常都是高維的(k很大),目標函式的鞍點通常比區域性最小值更常見。

第二十九天

字元陣列和字元指標不是一回事 1字元陣列由若干個元素組成,每個元素中放乙個字元,而字元指標變數中存放的是位址 字串第乙個字元的位址 決不是將字串放到字元指標變數中。2賦值方法不同,對字元陣列只能對各個元素賦值,不能用以下辦法對字元陣列賦值。char str 20 str miao 字元指標變數,可以...

2018 06 04 第二十九天

class testhashset static void main string args println person println person println set int age int hashcode println person.hashcode int prime 31 boo...

第二十九天筆記

單例模式 多次例項化的結果指向同乙個例項 1.目標 編寫乙個c s架構的軟體 c s client 基於網路 server b s browser 基於網路 server 2.服務端需要遵循的原則 1.服務端與客戶端都需要有唯一的位址,但是服務端的位址必須固定 繫結 2.對外一直提供服務,穩定執行 ...