【深度学习】第一阶段 —— 第二课

神经网络基础

  • Logistic Regression

   1. Sigmod Function
   

O u t p u t : y ^ = σ ( w T x + b ) Output: \hat{y}= \sigma(w^Tx+b)

σ ( z ) = 1 1 + e z \sigma(z)=\frac{1}{1+e^{-z}}

   2. Loss(erro) Function :
L ( y ^ , y ) = y log y ^ + ( 1 y ) log ( 1 y ^ ) L(\hat{y},y)=-y\log\hat{y}+(1-y)\log (1-\hat{y})

交叉熵损失函数

   3. Gradient Descent:

J ( w , b ) = 1 m i = 1 m L ( y ^ , y ( i ) ) J(w,b)=\frac{1}{m} \sum_{i=1}^mL(\hat{y},y^{(i)})
Gradient Descent

w = w α J ( w , b ) w w=w-\alpha\frac{\partial J(w,b)}{\partial w}

b = b α J ( w , b ) b b=b-\alpha \frac{\partial J(w,b)}{\partial b}

注:其中alpha为学习率,无论初始值为多少,在不断的迭代中J的值一直往最小值运动

  4.Computation Graph

computation graph

向后传播就是往前求偏导,例如:

J ( w , b ) v = 3 \frac{\partial{J(w,b)}}{\partial{v}}=3

这就是最后一层的向后传播

  5.Logistic Regerssion Derivatives(逻辑斯蒂回归中的梯度下降用法)
在这里插入图片描述

d a = L ( a , y ) a = y a + 1 y 1 a da =\frac{\partial{L(a,y)}}{\partial a}=-\frac{y}{a}+\frac{1-y}{1-a}

d z = L a × a z = ( y a + 1 y 1 a ) × ( 1 a ) a = a y dz=\frac{\partial L}{\partial a}\times\frac{\partial a}{\partial z} = (-\frac{y}{a}+\frac{1-y}{1-a})\times(1-a)a=a-y

d w 1 = L w 1 = x 1 × d z = x 1 ( a y ) dw_1=\frac{\partial L}{\partial w_1}=x_1\times dz =x_1(a-y)

d w 2 = L w 2 = x 1 × d z = x 2 ( a y ) dw_2=\frac{\partial L}{\partial w_2}=x_1\times dz =x_2(a-y)

d b = d z db=dz

w 1 = w 1 α × d w 1 w_1=w_1-\alpha\times dw_1

w 2 = w 2 α × d w 2 w_2=w_2-\alpha\times dw_2

b = b α × d b b=b-\alpha\times db

从上到下的计算就是一轮两个特征的梯度下降的迭代

  5. numpy的应用
  输入V,求U(其中V为向量,及在普通的math库里面需要用到for循环)

v = [ v 1 . . . v n ] T v=[v_1...v_n]^T

u = [ e V 1 . . . e V n ] T u=[e^{V_1}...e^{V_n}]^T

#伪代码不要直接运行
import numpy 

#用到numpy里面的函数,很好的计算了向量的运算,及省去了for循环带来的时间损耗
u=np.exp(v)

#for loop
u = np.zero((n,1))
for i in range(n):
    u[i] = math.exp(v[i])

#这样在梯度下降更行w_i的时候可以用numpy里的函来简化for循环
dw = np.zero(n_x,1)
dw += X*dZ
dw /= n 
#这就是对前面需要for循环的优化

#向量化后的logistic回归梯度输出,伪代码!

Z = np.dot(w^T,x)+b 
#plus b :python's broadcasting
A = sigmod(Z)
dZ = A - Y
dw = 1/m * X * dZ^T
db = 1/m * np.sum(dZ)

w = w - alpha * dw
b = b - alpha * db


第二课编程作业附上 (非本人撰写) :《具有神经网络思维的Logistic回归》
发布了2 篇原创文章 · 获赞 0 · 访问量 257

猜你喜欢

转载自blog.csdn.net/WuJun_20/article/details/104715121