1.神经网络和深度学习

1.深度学习概论

1.神经网络模型

  神经网络模型大部分属于监督学习。根据不同的问题需要用到不同的神经网络模型,比如说对于图像处理用卷积神经网络模型,对处理语音等信号时用循环神经网络,有时需要用到混合神经网络。

2.神经网络的兴起

在这里插入图片描述

  如图所示,在数据量较少的时候,神经网络与传统的机器学习算法没有明显的优劣差别,但随着科技的发展,我们能获得的数据量越来越大,不同规模的神经网络在性能上有了差距。越大规模的神经网咯在越大规模的数据支持下能得出性能最好的模型。另一个方面是计算机的算力发展。还有一个因素是算法发展,比如说神经网络中用RELU函数代替sigmoid函数作为激活函数。

2.神经网络基础

3.浅层神经网络

  单隐藏层神经网络就是典型的浅层神经网络。如下图所示:
在这里插入图片描述

  在程序计算中,使用矩阵计算可以省去大量for循环,从而提升程序运行速度。因此可以对神经网络作向量化处理

1.激活函数

在这里插入图片描述

  不同的激活函数有不同的优点,以上述四个函数为例,sigmoid函数与tanh函数是比较相似的,只有取值范围和中值点有误差,但在使用中tanh函数更好,这是因为tanh函数的取值范围是[-1,1],这与归一化的范围一致,因此相当于对使用这个激活函数的数据进行了归一化。
  然而,当z很大时,无论是sigmoid函数还是tanh函数运算速度都比较慢,这是因为这两个函数头尾存在导数为0的地方,在链式求导过程中更新速度较慢。为了改进这个问题,就出现了ReLU激活函数,这个函数的特点是使z>0时梯度式中为1从而提高运算速度。而Leaky ReLU激活函数使得z<0时梯度也不为0,更加提高了运算速度。
  当然,实际上用哪个激活函数还是要看实际问题,一般是用两个ReLU函数。
四个函数的导数:

在这里插入图片描述

在这里插入图片描述

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

2.为什么要用非线性函数作为激活函数

  如果使用线性函数作为激活函数,那整个神经网络就和线性模型发挥同样的工作,神经网络模型就没有意义了。不过如果使用神经网络与作预测问题时,输出层的激活函数也可以用线性函数代替。

3.反向传播

  反向传播可以根据链式求导法则求出,假设激活函数为f(x)=x。其中,总误差为 a [ 2 ] a^{[2]} a[2]-y,从导数定义上定义为 d z [ 2 ] dz^{[2]} dz[2],其他项也可以一次推导出。
在这里插入图片描述
在这里插入图片描述

4.随机初始化

  之前有提到为何要随机初始化,但如果使用ReLU类函数,则不需要考虑这个问题。

4.深层神络经网

  深层神经网络包含更多的隐藏层,其中,有一个隐藏层的叫2 layer NN,两个的叫3 layer NN,以此类推,n个隐藏层就是L layer NN,其中L等于n+1。同时,L也是输出层的层数。

1.神经网络计法

  深层神经网络包含更多的隐藏层,其中,有一个隐藏层的叫2 layer NN,两个的叫3 layer NN,以此类推。
在这里插入图片描述

   n [ l ] n^{[l]} n[l]表示第l层所包含的单元数,如图中 n [ 0 ] n^{[0]} n[0]=3指输入层有三个单元(输入层为第0层)。 W [ l ] W^{[l]} W[l]表示第l层权重, b [ l ] b^{[l]} b[l]表示偏置神经元, z [ l ] z^{[l]} z[l]表示第l层的算术和, a [ l ] a^{[l]} a[l]表示第l层激活函数输出(即 g ( n [ l ] ) g(n^{[l]}) g(n[l]))。其中,a和W的上标从1开始。

2.为什么使用深层神经网络

  以将神经网络用于人脸识别为例,层数多的神经网络从一开始提取出一些小细节,比如人脸的轮廓等,第二层开始对前一层的信息进行组合识别,然后逐层组合,最后融合成人脸的模样。可以预见,随着层数增多,能够提取的特征就越多,细节就越多,模型的准确率也会随之上升。
  除此之外,使用深层神经网络有时可以减少神经元。比如说实现异或运算,如果要同时进行n个异或运算,增加神经网络层数,令每一层相当于多个两单元的异或,则需要n-1层。如果隐藏层只有一层,则需要 2 n − 1 2^{n-1} 2n1个神经元。
  不过,在实际使用中还是应该尽量减少神经网络的层数。只有在对待复杂问题时才使用多层神经网络。

3.搭建神经网络块

在这里插入图片描述

  网络块可以用跟清晰的结构表示神经网络是怎么实现的。如上图所示,这个网络块表示了一个神经网络的正向传播和逆向传播的过程。上面的网络块是正向传播过程,输入 a [ l ] a^{[l]} a[l],通过参数 w [ l ] w^{[l]} w[l] b [ l ] b^{[l]} b[l]得出结果 z [ l ] z^{[l]} z[l] a [ l ] a^{[l]} a[l],为了方便反向传播的过程, z [ l ] z^{[l]} z[l]储存于内存中。下面是反向传播的过程,其输入时 d a [ l ] da^{[l]} da[l]作为输入。然后利用公式求出所需量:
在这里插入图片描述

4.参数与超参数

  参数就是W和b,而超参数就是学习率 α \alpha α,迭代次数N等,这些差参数决定了参数的值。超参数的选择是一个需要经验知识的过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值