吴恩达deeplearning学习笔记(一) logistic回归

第二周 神经网络基础

logistic回归


一、 初探logistic回归

  对于一个二分分类问题,可以归结为由一个输入X,得到一个输出Y。线性回归可以实现因变量为任意实数,但在二分分类问题中往往只有0-1。所以logistic回归在线性回归基础上加入sigmoid函数,将Y进行限制。如下图:

sigmoid函数

二、 相关公式

  • Step 1 计算 $\large\hat{y}$

$$
\begin{cases}
\large Z = W^{T}X\ +\ b\
\large\sigma(Z)=\Large\frac{1}{1\ +\ e^{-Z}}\
\large\hat{y}=a
\end{cases}
$$

  • step 2 计算 Cost Function $J(w,b)$

$$
\begin{cases}
\large L(\hat{y},y)=-(y\ log\ (\hat{y})+(1-y)\ log\ (1-\hat{y}))\
\large J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\hat{y},y)
\end{cases}
$$

  • step 2 梯度下降 gradient

$$
\begin{cases}
\large w=w\ -\ \alpha\Large\frac{dJ(w,b)}{dw},\ \large即\ w=w\ -\ \alpha dw\
\large b=b\ -\ \alpha\Large\frac{dJ(w,b)}{db},\ \large即\ b=b\ -\ \alpha db\
\end{cases}
$$

三、代码

下面以两个特征为例(为了显示效果,采用MathJax书写)

$\large J=0,dw_{1}=0,dw_{2}=0,db=0$

$\large for\quad i=1\quad to\quad m :$

$\qquad\large z^{(i)}=w^{T}x^{(i)}\ +\ b$

$\qquad \large a^{(i)}=\sigma(z^{(i)})$

$\qquad \large J\ + =-[\ y^{(i)}log\ a^{(i)}+(1-y^{(i)})log\ (1-a^{(i)})\ ]$

$\qquad \large dz^{(i)}=a^{(i)}-y^{(i)}$

$\qquad \large dw_{1}\ +=\ x^{(i)}_1dz^{(i)}$

$\qquad \large dw_{2}\ +=\ x^{(i)}_2dz^{(i)}$

$\qquad \large db\ +=dz^{(i)} $

$\large J=J/m,dw_{1}=dw_1/m,dw_{2}=dw_2/m,db=db/m$

四、向量化

1
2
3
4
5
6
7
8
for iter in range(1000):   # 用于控制循环次数
Z = np.dot(W.T,X) + b
A = sigmoid(Z)
dZ = A - Y
dW = 1/m*X*dZ.T
db = 1/m*nnp.sum(dZ)
W = W - alpha*dW
b = b - alpha*db

注:各向量的shape如下:
$Z : (1,m)$
$ W : (n_x,1)$
$b : (1,1)$
其中 dw 的每一行是 m 个 $xdz$ 的和,不同行代表 $dw_1,dw_2,\cdots,dw_{nx}$

Author: Ivan Yang
Link: https://blog.ivan-yang.com/2018/08/15/吴恩达deeplearning学习笔记(一)-logistic回归/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.