神经网络与深度学习

第二周 神经网络基础

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(w* x + b)= 1/(1+ e-(w* 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 = w* 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 * (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

 

posted @ 2017-09-12 01:25  crazybird123  阅读(390)  评论(0编辑  收藏  举报