热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

吴恩达深度学习课程笔记:第一部分第三周——浅层神经网络详解

浅层神经网络解析:本文详细探讨了两层神经网络(即一个输入层、一个隐藏层和一个输出层)的结构与工作原理。通过吴恩达教授的课程,读者将深入了解浅层神经网络的基本概念、参数初始化方法以及前向传播和反向传播的具体实现步骤。此外,文章还介绍了如何利用这些基础知识解决实际问题,并提供了丰富的实例和代码示例。

浅层神经网络:

一、浅层神经网络的表示

本文中的浅层神经网络指的是 two layer nn 即 one input layer + one hidden layer + one output layer。通常计算神经网络的层数不包括 input layer 。
这里写图片描述
notation:
上标 [l]:代表第l层,Input layer 为[0]
下标i:表示第i个unit,也可以看做第i行


二、神经网络的计算

每个unit都需要进行z和a的计算:
这里写图片描述
各参数矩阵的维度:
W[1]: (4,3), b[1]: (4,1)
W[2]: (1,4), b[2]: (1,1)
即:W[I]:(nl,n(l-1)), b[l]:(nl,1), nl表示第l层的unit的个数
注意:这里的 W[l] 表示的是已经对列堆起来的 W[l] 的转置


三、前向传播的向量化实现

single example的向量化:
这里写图片描述
multiple example的向量化:
X:(nx,m),m个example,每个用一列表示
上标(i):代表第i个example,从1开始
这里写图片描述

multiple example的向量化的理解:
主要就是弄清楚矩阵相乘的过程,就是重复进行single example的计算,然后把它们的结果列堆叠成矩阵。A/Z矩阵的每一行表示同一个unit的不同example的结果,每一列表示同一个example的不同unit的结果。
这里写图片描述


四、激活函数(activation function)

四种activation function:sigmoid; tanh; ReLU; Leaky ReLU
这里写图片描述
特点及如何选择:
sigmoid:求导=a(1-a),当|z|比较大的时候,梯度会很小,梯度下降慢。二分类的output layer 一般使用sigmoid
tanh:求导=1-a^2,当|z|比较大的时候,梯度会很小,梯度下降慢。正常比sigmoid好,因为取值为(-1,1)起到归一化的作用均值为0。
ReLU:当z>0时,梯度始终为1,梯度下降块。z<0时,梯度为0,实际使用中影响不大。最常用,首选。
Leaky ReLU:相比ReLU修正了z<0时,梯度为0的缺点。

正常选ReLU。如果不知道该选那个,可以一个一个试,在交叉验证集中评估,找出结果最好的那一个。


为什么要使用激活函数:
如果不使用激活函数或者使用线性激活函数。两个线性函数的组合仍然是线性函数,隐藏神经单元就不起作用了。有时候output layer不使用激活函数,如房价的预测。
**这里写图片描述**


五、神经网络的梯度下降

计算公式:左边为single example,右边为multiple example
这里写图片描述


六、随机初始化

如果在初始时,W,b都设置一样,那么WX+b都一样,通过梯度下降去进行计算dw,得到梯度大小也相等,不管进行多少次迭代,每个隐藏层单元仍然是对称的。无论设置多少个隐藏单元,其最终的影响都是相同的,那么设置多个隐藏神经元只是重复计算,没有作用。

随机初始化代码:

W[1] = np.random.rand((4,3))* 0.01
b[1] = np.zero((4,1))

W的值乘以0.01(不是固定的)是为了使W初始化为较小的值,这是因为如果使用sigmoid或者tanh作为激活函数时,W小则Z=WX+b也比较小,处在激活函数0的附近梯度较大,算法的更新速度比较快。如果W太大,得到的梯度较小,更新会变慢。ReLU和Leaky ReLU作为激活函数时,因为在大于0的时候,梯度均为1,所以可以不用乘0.01。


推荐阅读
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 本文讨论了如何根据特定条件动态显示或隐藏文件上传控件中的默认文本(如“未选择文件”)。通过结合CSS和JavaScript,可以实现更灵活的用户界面。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 卷积神经网络(CNN)基础理论与架构解析
    本文介绍了卷积神经网络(CNN)的基本概念、常见结构及其各层的功能。重点讨论了LeNet-5、AlexNet、ZFNet、VGGNet和ResNet等经典模型,并详细解释了输入层、卷积层、激活层、池化层和全连接层的工作原理及优化方法。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 大数据时代的机器学习:人工特征工程与线性模型的局限
    本文探讨了在大数据背景下,人工特征工程与线性模型的应用及其局限性。随着数据量的激增和技术的进步,传统的特征工程方法面临挑战,文章提出了未来发展的可能方向。 ... [详细]
author-avatar
小东东5201314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有