吴恩达神经网络与深度学习——浅层神经网络

神经网络概述

在这里插入图片描述

神经网络表示

在这里插入图片描述
在这里插入图片描述

计算神经网络的输出

在这里插入图片描述
在这里插入图片描述

m个样本的向量化

for loop

在这里插入图片描述

向量化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
X:(nx,m)竖向指标代表神经网络的不同节点,横向指标代表不同的训练样本

向量化实现的解释

在这里插入图片描述

激活函数

sigmoid

在这里插入图片描述

除非用在二元分类的输出层,不然绝对不用,因为thah函数在任何场合都适用

tanh函数

在这里插入图片描述

sigmoid类函数的缺点是z特别大或特别小时斜率为0,会拖慢梯度下降的速度,使学习速率下降。

ReLu函数

在这里插入图片描述
默认使用
在实践中使用ReLu函数,神经网络的学习速率块,因为ReLu类函数没有sigmoid类函数在斜率接近于0时拖慢学习速率的特征。
ReLu由于NN有足够多的隐藏单元,使z>0.

Leaky ReLu函数

在这里插入图片描述

神经网络的一个特点是:在建立神经网络时,经常会有许多不同的选择比如隐藏单元数,激活函数,初始化权重等。

为什么需要非线性激活函数

事实证明:要让NN能够计算出有趣的函数,必须使用非线性激活函数

在这里插入图片描述

两个线性函数的组合本身就是线性函数,不能计算出有趣的函数;唯一可以用线性激活函数的地方是输出层,例如预测房价;除了这种情况,会在隐藏层用线性激活函数的,可能除了与压缩有关的一些特殊情况。

激活函数的导数

sigmoid

在这里插入图片描述

tanh函数

在这里插入图片描述

ReLu函数

在这里插入图片描述

if z>0
if z<0

Leaky ReLu函数

在这里插入图片描述

if z>0
if z<0

神经网络的梯度下降

浅层神经网络

在这里插入图片描述

参数

w^[1](n^[1]*n^[0]),
b^[1](n^[1]*1),
w^[2](n^[2]*n^[1]),
b^[2]( n^[2] *1) 
n_x=n^[0],n^[1],n^[2]=1

代价函数

梯度下降

repeat{
			compute predict(yhat^[i],i=1,2,...,m)
			dw^[1] = dJ/dw^[1]     db^[1] = dJ/db^[1] ......
			w^[1] = w^[1]-alpha*dw^[1]
			b^[1] = w^[1]-alpha*db^[1]
			......
}

正向传播

在这里插入图片描述

反向传播

dZ^[2] = A^[2]-Y
dW^[2] = (1/m)dZ^[2](A^[1])^T
db^[2] = (1/m)np.sum(dZ^[2],axis=1(竖直相加),keepdims = True(防止Python直接输出轶为1的数组))
aZ^[1] = (W^[1])^TdZ^[2]*(g^[1])'(Z^[1])##*逐元素相乘
dW^[1] = (1/m)dZ^[1](X)^T
db^[2] = (1/m)np.sum(dZ^[1],axis=1(竖直相加),keepdims = True(防止Python直接输出轶为1的数组))

直观理解反向传播

Logistic回归

在这里插入图片描述

浅层神经网络

在这里插入图片描述

矩阵运算维度一定要匹配

在这里插入图片描述

m个样本的梯度下降

在这里插入图片描述

随机初始化权重

NN中,若权重初始化为0,则无效

在这里插入图片描述

w1 = np.random.randn((2,2))*0.01
b1 = np.zeros((2,1))
w2 = np.random.randn((1,2))*0.01
b2 = np.zeros(1,1))
  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值