【含课程pdf 测验答案】吴恩达-机器学习公开课 学习笔记 Week5 Neural Networks: Learning

本文主要是介绍【含课程pdf 测验答案】吴恩达-机器学习公开课 学习笔记 Week5 Neural Networks: Learning,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

吴恩达-机器学习公开课 学习笔记 Week5 Neural Networks: Learning

  • 5 Neural Networks: Learning 课程内容
    • 5-1 Cost Function and Backpropagation
      • Cost Function
      • Backpropagation Algorithm
      • Backpropagation Intuition
    • 5-2 Backpropagation in Practice
      • Implementation Note: Unrolling Parameters
      • Gradient Checking
      • Random Initialization
      • Putting It Together
    • 5-3 Application of Neural Networks
      • Autonomous Driving
    • 测验 Neural Networks: Learning
  • 课程链接
  • 课件

5 Neural Networks: Learning 课程内容

此文为Week5 中Neural Networks: Learning的部分。

5-1 Cost Function and Backpropagation

Cost Function

在这里插入图片描述

  • L : 这个神经网络结构的总层数
  • sl : 第L层的单元的数量,也就是神经元的数量。

两种分类问题:二元分类 & 多元分类 在这里插入图片描述
我们在神经网络里使用的代价函数 应该是逻辑回归里使用的代价函数的一般化形式。
在这里插入图片描述
注意:
- ∑mK简单地将输出层中每个单元计算的逻辑回归成本相加
- ∑L−1slsl+1简单地将整个网络中的每个Θs 的平方相加
- ∑L−1slsl+1中的 i 指的不是训练样本 i

Backpropagation Algorithm

在这里插入图片描述
为了计算导数项,我们将采用一种叫做反向传播(Backpropagation)的算法。

-----------------------------------------------------------------------------------【补充部分】-----------------------------------------------------------------------------------
链式规则:
在这里插入图片描述
-----------------------------------------------------------------------------------【补充部分】-----------------------------------------------------------------------------------
在这里插入图片描述
实现反向传播算法:
在这里插入图片描述

Backpropagation Intuition

当只有一个样本(xi, yi)且不考虑正则化:
在这里插入图片描述
δ(l)j 是a(l)j的误差,就是对代价函数针对中间变量的偏微分,衡量了我们要如果改变网络的权值。
在这里插入图片描述

5-2 Backpropagation in Practice

Implementation Note: Unrolling Parameters

在这里插入图片描述
矩阵形式的优点在于当你的系数以矩阵形式存储时,计算前向传播和反向传播会更方便。当你使用某种向量化的实现时,使用矩阵形式会更简单。
在这里插入图片描述

Gradient Checking

后向传播有很多细节会导致一些BUG,如果你用梯度下降来计算,表面上关于theta的函数J在减小,但是你可能最后得到的结果实际上有很大的误差。

梯度检验能确保我们的反向传播如预期工作。

在这里插入图片描述
右边的叫做单侧查分估计,左边的叫做双侧查分估计 后者的精确度更高,当然,一般我们用后者。

一般的情况:
在这里插入图片描述
在这里插入图片描述

  • 首先,使用反向传播来计算DVec
  • 然后,用gradApprox实现梯度检验
  • 确定DVec和gradApprox给出接近结果
  • 最后,在用反向传播代码训练前,关掉梯度检验

一旦你验证了你的反向传播算法是正确的,你就不需要再次计算gradApprox。计算gradApprox的代码可能很慢。

Random Initialization

当你使用梯度下降算法,或者其他高级的优化算法,我们需要设置初始值。
当初始值全部是零时,神经网络实际上进入很有意思的情况,不仅有两个隐层,还有很多很多层。所有你的隐层的结果都一样,十分冗余。我们看到的问题叫做对称现象

所以我们需要随机初始化。我们进行初始化的操作目的就是打破对称
在这里插入图片描述
以上使用的 ε 与梯度检查中的无关。

Putting It Together

当我们在训练一个神经网络时,我们要做的第一件事就是搭建网络的大体框架,意思是神经元之间的连接模式在这里插入图片描述
一旦你确定了特征集x对应的输入单元数目,也就确定了特征x{i}的维度。如果你正在进行多类别分类,那么输出层的单元数目将会由你分类问题中所要区分的类别个数确定。
而对于隐藏单元的个数单元的个数以及隐藏层的数目,我们有一个默认的规则那就是使用单个隐藏层。如果你使用不止一个隐藏层的话,同样我们也有一个默认规则,那就是每一个隐藏层通常都应有相同的单元数
一般来说隐藏单元越多越好。

实现神经网络的训练过程:

  1. 构建一个神经网络,随机初始化权值(通常初始化为接近于0的值)
  2. 执行前向传播算法,对任意输入 x(i) 计算出对应的 hθ(x(i))
  3. 通过代码计zhix算代价函数 J(Θ)
  4. 执行反向传播算法,计算偏导数 ∂ ∂ Θ ( l ) j k \frac{∂}{∂Θ^(l)^~jk~} Θ(l) jk J(Θ)
    在这里插入图片描述
  5. 使用梯度检验用反向传播得到的偏导项 ∂ ∂ Θ ( l ) j k \frac{∂}{∂Θ^(l)^~jk~} Θ(l) jk J(Θ) 和用数值计算得到的估计值,确保两者比较接近。然后去掉梯度检验代码。
  6. 使用一个最优化算法(梯度下降、BFGS 共轭梯度…)和反向传播算法结合,计算偏导。

**对于神经网络,代价函数J(Θ)是个非凸函数。**尽管我们不能保证这些优化算法一定会得到全局最优值,但通常能够得到一个很小的局部最小值。
在这里插入图片描述

5-3 Application of Neural Networks

Autonomous Driving

一个有趣而且有重要历史意义的 利用神经网络进行自动驾驶的神经网络学习的例子。 那就是让汽车学会自己开车。

测验 Neural Networks: Learning

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

课程链接

https://www.coursera.org/learn/machine-learning/home/week/5

课件

课件链接

这篇关于【含课程pdf 测验答案】吴恩达-机器学习公开课 学习笔记 Week5 Neural Networks: Learning的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/CodingRae/article/details/103615541
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/309871

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

使用Python实现PDF与SVG互转

《使用Python实现PDF与SVG互转》SVG(可缩放矢量图形)和PDF(便携式文档格式)是两种常见且广泛使用的文件格式,本文将详细介绍如何使用Python实现SVG和PDF之间的相互转... 目录使用工具使用python将SVG转换为PDF使用Python将SVG添加到现有PDF中使用Python将PD

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主