第二周 神经网络基础
2.1 二分分类
二分类:训练一个分类器,输入图片的特征向量x,预测结果的标签是0还是1
输入rgb图片尺寸为64*64,则输入特征向量(列向量)x为64*64*3
写法:m个训练样本 { (x(1) ,y(1)), (x(2) ,y(2)),...,(x(m) ,y(m))} (x,y) ,x属于Rnx y属于{0,1}
一般将训练样本写成矩阵形式 X= [ x(1) x(2) x(m) ],每个样本特征向量为一个列向量nx * m
标签:Y= [ y(1) y(2) y(m) ] 即Y是1*m矩阵
2.2 逻辑回归
y哈特 = sigmoid(wT * x + b)= 1/(1+ e-(wT * x + b))
2.3 逻辑回归代价函数
一个样本的loss function: J(w,b)= - (y*log(y哈特)+(1-y)log(1-y哈特)) 凸函数,唯一极小值。不适用差的平方,因为sigmoid函数非凸函数
2.4 梯度下降
y哈特 = sigmoid(wT * x + b)
由于sigmoid函数是非凸函数,所以cost function 每个样本求累加。一个样本的loss function为 J(w,b)= - (y*log(y哈特)+(1-y)log(1-y哈特))
重复更新w和b :
w = w - 学习率*(cost function对w的偏导数)
b = b - 学习率*(cost function对b的偏导数)
2.5 导数
德尔塔x趋向0 f(x+德尔塔x)- f(x) / 德尔塔x 的极限,高度/宽度
2.6 二次函数的导数
2.7计算图
a=5 b=3 c=2 j=3*(a+bc)
前向传播:
u = bc =6
v =a+u = 11
j = 3v =33
2.8 计算图的导数计算 (注:d都是偏导数,大于等于两个变量)
反向传播:
dj/dv = 3
dj/da = dj/dv *dv/da =3
dj/du = dj/dv * dv/du =3
dj/db = dj/dv * dv/du *du/db =6
dj/dc = dj/dv * dv/du * du/dc =9
2.9 logistic回归中的梯度下降
z = wT * x + b
y哈特 = a =sigmoid(z)
L(a,y)= - (y*log(a)+(1-y)log(1-a))
z=w1*x1+w2*x2+b
dL/da = -y/a + (1-y)/(1-a)
dL/dz = dL/da * da/dz = ( -y/a + (1-y)/(1-a) )*(a(1-a)) = a-y
dw1 = dL/dz * dz/dw1 =(a-y)*x1 (就是dL/dw1)
dw2 = (a-y)*x2 (就是dL/dw2)
db =(a-y) (就是dL/db)
梯度下降更新w1,w2,b
w1 = w1 - 学习率*dw1
w2 = w2 - 学习率*dw2
b = b - 学习率*(cost function对b的偏导数)
2.10 m哥样本的梯度下降
for i=1 to m
z(i)=wT * x(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)
....
dwn += xn(i)* dz(i)
db += dz(i)
J/=m, dw1/=m, dw2/=m,...dwn/=m,db/=m
更新权值
w1 = w1-学习率*dw1
w2 = w2-学习率*dw2
...
b = b-学习率*db