前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >神经网络与深度学习

神经网络与深度学习

作者头像
全栈程序员站长
发布2022-09-21 19:20:14
3140
发布2022-09-21 19:20:14
举报

大家好,又见面了,我是你们的朋友全栈君。

学习资料:deeplearning.ai的《神经网络和深度学习》

一. 深层神经网络

1. 为什么需要深层神经网络

  • 对于深层神经网络,神经网络前几层的特征比较简单,之后几层可以抽取出更复杂的特征。 比如:语音识别:前几层是声音的声波识别->声音的音位->声音里的字母->单词->短语->句子 从最简单的特征的不断向上提升层次。
  • 是遵循电路原理:浅层次的网络相对于深层次的需要指数级的神经单元才能达到和深层次的同样效果。

当然神经网络不是越深越好,层次的深度和调参数一样,也是需要不断的尝试选择一个最适合的层次。

2. 神经网络中的参数及其维度

L代表层数,输入层为第0层(l=0),一个n层神经网络有n-1层隐藏层。

每一层神经网络都有输出,记作\(A^{[l]}\),输入层输入的特征记作\(x\),但是\(x\)同样也是0层的输出,所以\(x=A^{[0]}\)。

假设每个样本有\(x\)个特征,训练集总共有m个样本。

\(A^{[l]}\)和\(Z^{[l]}\)维度:(\(n^{[l]}\),m)

\(W^{[l]}\)维度:(\(n^{[l]}\),\(n^{[l-1]}\))

\(b^{[l]}\)维度:(\(n^{[l]}\),1)

无论是前向传播还是反向传播,所有的矩阵维数都是前后一致的!

截屏2020-01-15下午12.40.11
截屏2020-01-15下午12.40.11

3. 参数的随机初始化

对于\(W^{[l]}\)可以用高斯分布随机初始化,\(b^{[l]}\)可以初始化为0。

4. 激活函数

神经网络中的每个结点包括线性运算和非线性运算,激活函数就是非线性部分。

  • sigmoid激活函数:除了输出层是一个二分类问题基本不会用它。
  • tanh激活函数:tanh是几乎适合所有场合。
  • ReLu激活函数:最常用的默认函数,如果不确定用哪个激活函数,就使用ReLu或者Leaky ReLu
神经网络与深度学习
神经网络与深度学习

二. 前向传播和反向传播

1. 前向传播

for l in range(1,L+1):

\[Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]} \]

\[A^{[l]}=g^{[l]}(Z^{[l]}) \]

其中\(A^{[0]}=X;X={x_1,x_2,x_3}\)

2. 反向传播

截屏2020-01-15下午12.29.34
截屏2020-01-15下午12.29.34

3. 传播过程

截屏2020-01-15下午12.30.27
截屏2020-01-15下午12.30.27

三. 广播机制

1. 广播broadcast

两个多维度向量加减乘除时,只要两个向量columns或者ranks有一个相等,即行数相等或者列数相等则可以在相应的位置上进行运算。如果没有哪一个对应相等,则不可以运算。

代码语言:javascript
复制
(m*n)数组 与 (m*1)/(1*n)数组都可以进行+-*/。
运算时(m*1)/(1*n)自动扩充至(m*n)
同理:
(1*m) 与 k也可以运算

注意:如果列数等于行数不可以进行运算!唯一的特例:(1,n)与(n,1)之间可以运算,结果为(n,n)维向量

2. 乘法使用

元素乘法:np.multiply(a,b) 矩阵乘法:np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b) 唯独注意:*,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法!

元素乘法可以用利用broadcast;而矩阵乘法必须要满足(m*n)(n*k)

3. 定义矩阵时的建议

代码语言:javascript
复制
shape: (n,) 与 (1,n) 区别:
例: (4,) [1,2,3,4] 一维数组 
    (1,4) [[1,2,3,4]] 二维数组

1.不要使用rank 1array!

代码语言:javascript
复制
如下:
不要使用:
a = np.arange(100)
a = np.random.randn(5)

用(1,n)(n,1)等来代替
a = np.arange(100).reshape(1,100)
a = np.random.randn(1,5)

2.经常使用np.reshape来使向量理想化

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167879.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 深层神经网络
    • 1. 为什么需要深层神经网络
      • 2. 神经网络中的参数及其维度
        • 3. 参数的随机初始化
          • 4. 激活函数
          • 二. 前向传播和反向传播
            • 1. 前向传播
              • 2. 反向传播
                • 3. 传播过程
                • 三. 广播机制
                  • 1. 广播broadcast
                    • 2. 乘法使用
                      • 3. 定义矩阵时的建议
                      相关产品与服务
                      语音识别
                      腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档