第二週神經網絡基礎
過程:輸入x,計算機通過一系列計算,得出y^,我們希望計算而來的y^與期望中的y無限接近。
舉個例子,給計算機輸入一張貓貓的圖片,計算機得出一個結果y^,我們希望y^無限接近期望中的結果‘貓貓’。
所以我們用損失函數將y^轉化爲0−1的概率值,但損失函數針對單個樣本,而成本函數針對所有樣本的損失函數和。
logistic迴歸
輸入一個64∗64的圖片,計算機將此圖片存儲爲大小爲64∗64∗3=12288大小的特徵向量nx=⎣⎢⎢⎡....⎦⎥⎥⎤。(x,y),x∈Rnx,y∈0,1,mtrain=(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m)),mtest。
若x=[x(1)x(2)…x(m)],則x=Rnx∗m,x.shape=(nx,m)。
若y=[y(1)y(2)…y(m)],則y∈R1∗m,y.shape=(1,m)。我們希望y^無線接近y,則y^∈(0,1),x∈Rnx,w∈Rnx,b∈R,y^=δ(wTx+b),δ(z)=1+e−z1。
若z↑,則δ≈1+01≈1;
若z↓,則δ≈x+∞1≈0。
損失函數loss function
lossfunction:L=(y^,y)=21(y^−y)2,但通常使用L=−(ylog2y^+(1−y)log2(1−y^))。
若y=1,L(y^,y)=−ylog2y^,希望log2y^↑,則y^↑。
若y=0,L(y^,y)=log2(1−y^),希望log(1−y^)↑,則y^↓
梳理:爲何使用損失函數?來衡量單個樣本預測輸出值y^和y的實際值有多接近。
成本函數cost function
costfunction:J(w,b)=m1∑i=1mL(y^(i),yi)=−m1∑i=1m[y(i)log2y^(i)+(1−y(i))log2(1−y^(i))].
梳理:爲何使用成本函數?來衡量所有樣本的損失函數和。
梯度下降
J(w,b)w=w−α∂w∂J(w,b);b=b−α∂b∂J(w,b)
其中,α是learningrate學習率,可以控制每一次迭代或梯度下降法的步長。
其中,∂w∂J(w,b)是對w偏導。
上述公式,可以看出這是三維空間的立體圖形,通過不斷修正w和b,使得w和b最終歸到圖形中最凹點或最凸點處。
梳理:爲何使用梯度下降?爲了訓練或學習訓練集上的參數w,b
計算圖
舉例,J(a,b,c)=3(a+bc),令u=bc,v=a+u,J=3v。採用鏈式法則,從j倒退a,b,c的導數,這個過程,就是計算圖。
向量化
省略顯示for循環,用python中的numpy中的向量來替換,在數據量很大的時候,運算速度可以顯著提高。