神经网络、激活函数、随机初始化

文章介绍了神经网络的基本构造,包括双层神经网络的计算不包含输入层,逻辑回归的神经网络实现中隐藏单元的计算方法。讨论了不同类型的激活函数,如sigmoid用于二元分类,tanh函数的值域,以及ReLU和leakReLU在解决梯度消失问题上的优势。此外,还解释了随机初始化参数的重要性,以避免隐藏单元的同质化并优化梯度下降过程。
摘要由CSDN通过智能技术生成

目录

1.双层神经网络

计算神经网络层数的时候不包括输入层

2.逻辑回归的神经网络如何实现

隐藏单元如何计算?

,3x1矩阵

,3x1矩阵,上标[1]表示第一层

向量化(单个训练样本):

隐藏层:为4x3矩阵,x为3x1矩阵,为4x1矩阵,为4x1矩阵

输出层:为1x4矩阵,为4x1矩阵,为1x1矩阵,为1x1矩阵

向量化(m个训练样本,n个输入特征,隐藏层有k个神经元):

为kxn矩阵,X为nxm矩阵,为kxm矩阵,为kxm矩阵...

3.激活函数

①sigmoid函数

一般只在二元分类的输出层会用到,因为它值域为[0,1],预测某个物体的概率的取值范围也是[0,1]

②tanh函数

,值域为[-1,1]

③Relu(Rectified linear unit修正线性单元)

sigmoid函数和tanh函数的缺点在于:当z很大或很小时,导数的梯度(函数的斜率)接近0,会拖慢梯度下降算法。通常隐藏层的激活函数都用Relu,Relu的缺点是z<0时,导数为0。

④leak Relu(带泄露的Relu)

a=z(z>0)

=αz(z<=0),α通常为0.01

比Relu更好,但是不常用。

4.随机初始化(Random initialization)

为什么要随机初始化参数?

假设参数都一样,比如。那么,隐藏单元都在做同样的运算,弄这么多隐藏单元就没有必要了。

随机初始化:

=np.random.randn((2,2))*0.01,=np.zero((2,1)),[1]上标表示第一层

为什么乘0.01,不乘100?

乘0.01目的是让尽可能小,如果很大,代入tanh函数时,导数的斜率(梯度)就很小,那么梯度下降法下降的速度就很慢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂流の少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值