二分類問題是一種簡單分類問題,其輸出結果是兩個離散值。
假如給定一副貓的,那麼二分類問題就可描述為:判別這幅影象中是否有貓?分類結果也只有1(表示存在),0(表示不存在)兩種。
符號定義
x:表示乙個nx維資料,為輸入資料,維度為(nx,1);
y:表示輸出結果,取值為(0,1);
(x(i),y(i)):表示第i組資料,可能是訓練資料,也可能是測試資料,此處預設為訓練資料;
x=[x(1),x(2),...,x(m)]:表示所有的訓練資料集的輸入值,放在乙個nx?m的矩陣中,其中m表示樣本數目;
y=[y(1),y(2),...,y(m)]:對應表示所有訓練資料集的輸出值,維度為1?m。
線性回歸
二分模型:
a=y^=σ(z)=σ(wtx+b)
其中σ(z)=11+e?z。
損失函式:
l(y^(i),y(i))=?y(i)logy^(i)?(1?y(i))log(1?y^(i))
代價函式:
j(w,b)=1mσmil(y^(i),y(i))
計算方法
解決此類問題常見的方法是梯度下降法,w和b的修正量可以表達如下:
w=w?α?j(w,b)?w
b=b?α?j(w,b)?b
每次迭代時,只需按照梯度方向下降即可收斂得到結果。
為簡化推導過程,假設nx=2,則可以得到z=w1x1+w2x2+b。
可以得到一下公式(具體推導不展開了~~):
?a?z=a(1?a)
?l?a=?ya+1?y1?a
?l?z=?l?a?a?z=a?y
進一步可以得到:
?l?w1=?l?z?z?w1=x1(a?y)
?l?w2=?l?z?z?w2=x2(a?y)
?l?b=?l?z?z?b=(a?y)
因此對於損失函式可以寫成:
dw1=1mσmix(i)1(a(i)?y(i))
dw2=1mσmix(i)2(a(i)?y(i))
db=1mσmi(a(i)?y(i))
因此其流程**可以寫成:
j=0; dw1=0; dw2=0; db=0;
for i = 1 to m
z(i) = wx(i)+b;
a(i) = sigmoid(z(i));
j += -[y(i)log(a(i))+(1-y(i))log(1-a(i));
dz(i) = a(i)-y(i);
dw1 += x1(i)dz(i);
dw2 += x2(i)dz(i);
db += dz(i);
j /= m;
dw1 /= m;
dw2 /= m;
db /= m;
w=w-alpha*dw
b=b-alpha*db然而考慮到在深度學習中,訓練資料通常非常大,使用迴圈進行訓練是乙個非常不合理的方式。因此有必要對其進行向量化
w.reshape(2,1)
b.reshape(1,1)
x=[x1,x2,...,xn]
y=[y1,y2,...,yn]
z=np.dot(w.t,x)+b
a=sigmoid(z)
dz=a-y
dw=x*dz.trans()/m
db=np.sum(dz)/m
w=w-alpha*dw
b=b-alpha*db待定。。。
吳恩達神經網路和深度學習
課程名稱 神經網路和深度學習 andrew ng 神經網路和深度學習 1 什麼是神經網路 傳送門 神經網路和深度學習 2 啟用函式 傳送門 神經網路和深度學習 3 神經網路輸入的表示 傳送門 神經網路和深度學習 4 符號約定 傳送門 神經網路和深度學習 5 邏輯回歸 傳送門 神經網路和深度學習 6 ...
神經網路和深度學習 之吳恩達
課件資料 深度學習最近興起的原因 深度學習與傳統機器學習模型的優劣 促使深度學習發展的三要素 資料規模 計算能力 演算法改進 結構化資料與非結構化資料 邏輯回歸的代價函式 logistic回歸的概念,公式表示 logistic回歸可用於二分類 課程中用到的關於訓練集,測試集的一些符號表示 logis...
神經網路和深度學習 吳恩達 神經網路基礎
簡單的理解就是輸出的結果是兩個離散的值,就像課程中舉的例子 通過輸入一張的資訊,經過一些列的計算,輸出乙個離散的y值,中是否有貓,當y 1時表示中有貓,反之當y 0時,表示中沒有貓。我看很多人將這個翻譯成邏輯回歸,而在 機器學習 中,作者認為應該更為準確的叫對數機率回歸,這裡我就不對這兩個翻譯做過多...