IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习 day04浅层神经网络 -> 正文阅读

[人工智能]深度学习 day04浅层神经网络

01 神经网络概览

  • 在这里用[ l ]来表示神经网络的第l层,用来跟( i )表示的第几个训练样本做区分。神经网络需要反复的计算z和a。

在这里插入图片描述

02 神经网络表示

  • 只有一个隐藏层的神经网络:分为输入层、隐藏层、输出层。其中输入层和输出层的值都是在训练集中能看到的,隐藏层的值不能看到。在计算神经网络层数时是不算输入层的,同时我们使用a ^ [ l ]_i表示符号,a也代表激活的意思,它意味着网络中不同层的值会传递给后面的层,即每一层都会产生激活值,我们将这些激活值用a ^ [ l ]_i表示(l表示第几层,下标i表示层中的第几个节点)。在本例中w参数是(4,3)维的,其中4代表四个隐藏单元,3代表有三个输入特征

在这里插入图片描述

03 计算神经网络的输出

神经网络的输出究竟是如何算出来的


  • 这里的圆圈代表逻辑回归计算的两个步骤,神经网络只不过是计算这些步骤很多次(隐藏层的每一个节点都计算一次)。

在这里插入图片描述

  • 下面把这四个等式向量化:向量化时的一条经验法则就是当我们在一层中有不同的节点,那就纵向的堆叠起来(例如a^ [1]就是a^ [1] _1~a^ [4] _ 4这些激活值的堆叠)。

在这里插入图片描述

  • 计算出四个隐藏层中的逻辑回归单元使用的是前两个等式,计算出输出层的逻辑回归用的是后两个等式

在这里插入图片描述

04 多个例子中的向量化

  • 对于新的符号a^ [2] (i):这个i表示训练样本i。下面是没有向量化的实现并且想要计算所有训练样本的预测:

在这里插入图片描述

  • 下面将for循环变成向量化实现:将这些向量横向堆叠起来。

在这里插入图片描述

  • 总结一下就是横向堆叠对应的是不同的训练样本,竖向堆叠的是不同的输入特征(也就是一层中不同的节点)。

05 向量化实现的解释

  • 为什么z^ [1]=w ^ [1]x+b^ [1]?

在这里插入图片描述

  • 如果将输入成列向量堆叠,那么在方程运算之后,也能得到成列对堆叠的输出。右上图是在单个训练样本中实现正向传播算法就是从1循环到m,右下图第一行代码可以对所有m个例子同时向量化,类似的右下图这四行代码都是上面四行代码正确的向量化形式。

在这里插入图片描述

06 激活函数

搭建神经网络,你可以选择在隐藏层用哪个激活函数,在输出层用哪个激活函数。


  • 一些其他的激活函数:【1】tanh函数(双曲正切函数)范围在-1到1之间。如果让函数g(z)=tanh(z),这几乎总比sigma函数效果好,因为现在函数输出介于-1和1之间,激活函数的平均值就更接近0。使用tanh也有类似数据中心化的效果,使得数据的平均值接近0而不是0.5,这使得下一层的学习更方便。几乎tanh函数在所有场合都适用,但是在输出层例外,因为如果输出层y是0或1,那么肯定要介于0和1之间,于此同时在二元分类就可以使用sigma函数作为输出层了。tanh函数和sigma函数都有一个缺点:当z特别大或者特别小时,函数的斜率可能就很小,这样会拖慢梯度下降算法。【2】ReLU函数(修正线性单元),ReLU的好处在于对很多z空间激活函数的斜率和0差很远。在实践中使用ReLU函数,你的神经网络的学习速度通常会比使用tanh或者sigma激活函数快很多,主要是ReLU没有这种斜率接近0时减慢学习速度的效应。

在这里插入图片描述

  • 选择激活函数的经验:如果在做二元分类,输出值是0和1,那么选择sigma函数作为输出层的激活函数,然后其他所有单元都用ReLU。一般不使用sigma函数,因为tanh函数比他更适用,ReLU是默认的激活函数,不知道选谁就选它。如果实在不知道选择哪个激活函数,就在验证集或者开发集上跑跑,看看哪个效果好就选择哪个。
  • 下面是四种激活函数(最后一个是ReLU的特殊形式叫做带泄露的ReLU)

在这里插入图片描述

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

要让你的神经网络能够计算出有趣的函数就必须使用非线性激活函数。


  • 如果使用线性激活函数或者叫恒等激活函数,那么神经网络只是把输入线性组合再输出。线性隐层一点用都没有,只有一个地方可以使用线性激活函数g(z)=z,就是你的机器学习是回归问题的输出层。

在这里插入图片描述

08 激活函数的导数

当对神经网络使用反向传播的时候,你需要计算激活函数的斜率或者说导数


  • sigma激活函数的导数

在这里插入图片描述

  • tanh激活函数的导数

在这里插入图片描述

  • ReLU和带泄露的ReLU激活函数的导数

在这里插入图片描述

09 神经网络的梯度下降法

  • 输入层有n^ [0]个,隐层有n^ [1]个,输出层有n^ [2]个,还有一个神经网络的成本函数,在二元分类的情况下,成本函数就是1/m对损失函数求平均。要训练参数,算法就需要做梯度下降,在训练神经网络时随机初始化参数很重要,而不是全部初始化为0。

在这里插入图片描述

  • 针对于所有样本的前向传播和后向传播:keepdims就是防止python直接输出秩为1的数组((n,)),确保python输出的是矩阵((n,1))。*代表逐个元素乘积。

在这里插入图片描述

10 直观理解反向传播

  • 单层神经网络:

在这里插入图片描述

  • 双层神经网络:实现后向传播算法有个技巧,你必须确保矩阵的维度互相匹配。

在这里插入图片描述

  • 反向传播公式小总结:单个样本 | 总样本

在这里插入图片描述

11 随机初始化

对于逻辑回归可以将权重初始化为0,但是如果将神经网络的各参数数组全部初始化为0,再使用梯度下降算法将会完全无效


  • 如果将w所有值初始化为0,那么因为两个隐藏单元最开始就在做同样的计算,对输出单元的影响也一样大。那么一次迭代之后,同样的对称性依然存在,两个隐藏单元依然是对称的。无论你神经网络训练多久,两个隐藏单元依然在计算完全一样的函数,所以这种情况多个隐藏单元是没有意义的。当然对多个隐藏单元也适用。

在这里插入图片描述

  • 因此解决这个问题就要随机初始化,通常喜欢将权重初始化成很小的数,因此乘一个0.01(深层就要乘一个0.01以外的数)。因为当使用tanh和sigma激活函数时,如果权重过大就会落到斜率平缓处,导致学习缓慢。

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:10:51  更:2021-08-03 11:13:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 23:46:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码