【吴恩达机器学习笔记】七、神经网络

news2024/11/24 1:09:44

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
📝视频地址:吴恩达机器学习系列课程
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

七、神经网络

1. 非线性假设

在前面讨论逻辑回归问题时,我们提到了分类问题,而且可以通过对特征进行多项式展开,让逻辑回归支持非线性的分类问题,但是当特征量非常非常大时,这对计算机性能是一个很大的考验。

举个例子,我们想要区分一幅图像是否是汽车图像,假定图像分辨率为50×50,且每个像素的灰度都为一个特征,那么一副图像的特征维度就高达2500维,进行二次多项式扩展后,特征维度更是达到了约三百多万。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x8AUiso5-1669768657842)(吴恩达机器学习.assets/image-20211106144546806.png)]

因此,就需要考虑用新的机器学习模型来处理高维特征的非线性分类问题,神经网络是典型的不需要增加特征数目就能完成非线性分类问题的模型。

2. 神经网络

背景

神经网络起源于人们想要模拟人类大脑的想法,但是在80s到90s这段时间,神经网络慢慢淡出人们的视野,在早些年神经网络才重新回归到人们的视野。这是因为随着如今计算机越来越发达,可以支持神经网络这种计算量特别大的算法了。

神经网络就是模仿了大脑的神经元或神经网络,就像下面的图中一样,从树突输入信息,然后处理后从轴突输出信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ASX1sVz5-1669768657845)(吴恩达机器学习.assets/image-20211106152056254.png)]

下面我们将用一个简单的模型来模仿神经元工作,我们将神经元模仿成逻辑单元。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Zw44wwP-1669768657848)(吴恩达机器学习.assets/image-20211106152246037.png)]

我们可以输入x1,x2,x3就像从树突输入一样,然后经过计算处理,从类似于轴突一样输出信息,最后计算出h(θ),这种神经元有时候被称为带有simoid(logistic)激活函数的人工神经元。

而神经网络就是由这些神经元来组成的,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMGiRJ7n-1669768657850)(吴恩达机器学习.assets/image-20211106153047881.png)]

第一层被称为输入层,最后一层被称为输出层,而其他的层就被称为隐藏层,而隐藏层一般都有很多层。

接下来,我将为你介绍一些常用的表达,就用上面这个简单的神经网络为例:

  • ai(j)表示第j层的第i个元素。
  • θ(j)表示第j层到第j+1层的每个相连的权值,就如上面公式中θ10(1)等,通俗讲就是图中的每一条线就有一个权值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x9XzjvB2-1669768657852)(吴恩达机器学习.assets/image-20211106153837309.png)]

上面a1(2),a2(2),a3(2)就是代表隐藏层神经元的表达式,hθ(x)就是输出层神经元的表达式,而g(z)函数用的是sigmod函数。

如果神经元第j层有sj个神经元,而第j+1层有sj+1个神经元的话,则θ(j)的维数将是sj+1×(sj+1)。

而上面a中的θx我们就可以用z来表示,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2S4760jk-1669768657857)(吴恩达机器学习.assets/image-20211108162144773.png)]

接下来,我将讲一些例子,让你能够更好的理解神经网络,在此之前我先介绍一下XOR与XNOR。

x1 XOR x2作用是当x1与x2当中只要有一个为1,那么y就为1,反之都为0。

x1 XNOR x2与NOT(x1 XOR x2)意思相同,都是上面那个的对立面即当x1和x2都为1或0时,y为1,反之,y为0。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dkVtSZj-1669768657859)(吴恩达机器学习.assets/image-20211108170716813.png)]

  • AND函数

    我们通过在输出层额外加一个偏置单元,通过sigmod函数得到AND的功能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OVIFXdB6-1669768657861)(吴恩达机器学习.assets/image-20211108164926827.png)]

  • OR函数

    与上面AND函数实现相似,都是利用sigmod函数,只是将假设函数内部进行改变。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDEKTV18-1669768657865)(吴恩达机器学习.assets/image-20211108165226226.png)]

  • NOT函数

    同样利用sigmod函数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AdjuC5TP-1669768657866)(吴恩达机器学习.assets/image-20211108165540942.png)]

  • x1 XNOR x2

    这个实现实际上就是将前面提到的三个函数进行了一个整合,结合到一个神经元中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jrWLKLgi-1669768657868)(吴恩达机器学习.assets/image-20211108170526218.png)]

3. 多元分类

这里我将介绍一个多元分类的例子,输出层有多项。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXpZRZP8-1669768657869)(吴恩达机器学习.assets/image-20211108172501901.png)]

这里我们就要通过输入训练集,然后得到不同的y值,如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xisMazu-1669768657872)(吴恩达机器学习.assets/image-20211108172600695.png)]

4. 代价函数

我先介绍一下这节课要用到的表达方式,如下:

  • L表示的是第几层神经网络。
  • sl表示第l层有多少个神经元。
  • K表示输出层的类别数量。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RkjkwI17-1669768657873)(吴恩达机器学习.assets/image-20211108222638582.png)]

除此之外,我们来谈谈关于神经网络的分类问题,它可以分为二元分类及多元分类两种问题。

  • 二元分类(Binary classification):这种问题输出层只有一个神经元,即直接输出h(θ)的值。
  • 多元分类(Multi-class classification):这个问题只有当分的类别大于等于3即k≥3时才会用到一对多的方法。

下面就是神经网络的代价函数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pgxanM5h-1669768657875)(吴恩达机器学习.assets/image-20211109170351157.png)]

5. 反向传播算法

接下来要讲的算法是可以用来优化整个神经网络,同时其中所计算的δ也是用来计算上面代价函数中的导数项,首先先来认识一下表达方式:

  • δj(l)表示第l层的第j个神经元。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2DML2TSk-1669768657877)(吴恩达机器学习.assets/image-20211109184259233.png)]

反向传播算法就是从最后一层即输出层进行计算,然后依次往前计算,实际上就是将后面层的误差往前面进行传播,而上面这张图中的例子只是拿一个训练样本举例,当训练样本变得特别多时,我们就要像下面一样这么做:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ta6LF1OY-1669768657879)(吴恩达机器学习.assets/image-20211109185739261.png)]

上面的△就是δ,这其中其实就是进行了循环计算,最后得到Dij(l)用于导数的计算。

为了更好理解反向传播算法,我们先来回顾一下前馈传播算法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ORLnwCLx-1669768657879)(吴恩达机器学习.assets/image-20211109222916074.png)]

就拿其中一个神经元为例,它就是前面那层的所有神经元加权之后的和。

接下来,再来看看反向传播算法的代价函数,下面给出的是只有一个神经元输出的情况,多个神经元输出的话,前面会考虑到K值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3eXcCQrr-1669768657880)(吴恩达机器学习.assets/image-20211109223713307.png)]

当我们只考虑一个样例时,就可以令λ等于0,这样就不用考虑正则化了,所以可以删去一些式子。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8B5FZL8x-1669768657882)(吴恩达机器学习.assets/image-20211109223909235.png)]

为了更方便理解,我们可以将这个代价函数看成是方差函数,用于判断实际值与真实值偏差有多大,从而判断准确度是否精确,实际中我们的代价函数一般是包含对数等复杂函数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qSY3zpP8-1669768657883)(吴恩达机器学习.assets/image-20211109231617048.png)]

再更深入的进行理解一下,反向传播算法所算的δj(l)实际上就是第l层第j个神经元的误差,正规点说可以将它当成对zj(l)求偏导数。

我们也可以在前向传播算法图中去理解反向传播算法,这其实就是前向传播的你过程,就如下图中δ2(2)与δ2(3)的公式,实际上就是将后一层的δ乘以一个权重在求和,而在此偏置单元不算近δ中,当然你也可以另外设置算法将它包含进来。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kqeykj0P-1669768657884)(吴恩达机器学习.assets/image-20211109232649563.png)]

6. 梯度验证

在进行梯度计算时,尤其是在反向传播中进行梯度计算时,可能会会遇到一些bug,所以我们可以采用一些方法来确保我们的反向传播包括前向传播得出的结果是对的。

首先我们先来看看梯度数值估计的一个例子,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uxhLlMZ1-1669768657885)(吴恩达机器学习.assets/image-20211110131730104.png)]

我们可以去一个非常小的距离来计算曲线上一点的斜率,就能得到θ的偏导数,而其中ε一般去10-4,而图上的左边式子是双侧差分,右边的是单侧差分,而双侧差分的结果更准确,所以我们一般都用双侧差分。

现在,我们再来考虑一下当θ为向量的时候,可以得到下面这一系列的式子。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ANdkzfFU-1669768657887)(吴恩达机器学习.assets/image-20211110132956445.png)]

所以这上面算出来的导数值就可以拿去跟反向传播计算出的导数值进行对比,如果数值相等或者十分接近,就说明反向传播算出的导数值是正确的,就可以将反向传播计算得导数值用在别处。

重点:当你已经用梯度检测方法确认了反向传播得出的导数值是正确时,就不要再用梯度检测了,因为相对于非常高效的反向传播算法,梯度检测的计算量非常大,会使你的程序变得非常的慢。

7. 随机初始化

我们先来考虑一个情况,如果我们将所有θ都初始化为零,那么就会出现无论怎样训练神经网络,得到的结果都会是一样,就如下面所示,所算出来的a或者δ再或者偏导都会相同。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Puqv1xSZ-1669768657888)(吴恩达机器学习.assets/image-20211111103330049.png)]

而上面这种情况就被称为对称权重问题,而解决这个问题的方法就是随机初始化θ。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ji7KJVw-1669768657889)(吴恩达机器学习.assets/image-20211111103947278.png)]

我们通常会将θ初始化在一个接近于0的范围即[-ε,ε],但这里的ε跟我们上面遇到的ε并不是同一个东西,需要注意。

8. 小结

现在我们先对上面的知识进行一次小结,首先先来回顾一下神经网络框架。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pFUiSmqX-1669768657891)(吴恩达机器学习.assets/image-20211111132041791.png)]

输入层的神经元个数,代表着特征的维度;输出层的神经元个数,代表着类别的数量。

而一般情况下,默认只有一层隐藏层,如果隐藏层大于1,每一层隐藏层的数量默认相同,并且一般隐藏层越多越好。

接下来,再来回顾一下神经网络训练的步骤:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJGZtePo-1669768657892)(吴恩达机器学习.assets/image-20211111132436645.png)]

  1. 随机初始化权重值θ。
  2. 执行向前传播算法得到所有的hθ(x(i))。
  3. 执行代码去计算代价函数J(θ)。
  4. 执行反向传播算法求得偏导数的值,这里第一次计算一般用循环去遍历每一个样本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bYfeYmJm-1669768657893)(吴恩达机器学习.assets/image-20211111133254282.png)]

  1. 通过梯度检测确保反向传播得到的偏导数与数值算出的偏导数相近,然后停止使用梯度检测。
  2. 最后,利用梯度下降或者其他高级优化算法和反向传播算出的偏导数一起去找到关于θ的J(θ)的最小值。

另外,神经网络的J(θ)是非凸函数,理论上梯度下降的算法可以找到一个最优解,即使不是全局最优解。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lVYSXxpJ-1669768657894)(吴恩达机器学习.assets/image-20211111201248959.png)]

最后,再来看看这张图,我们通过梯度下降来寻找最优解,如果J(θ)处于最低点,我们可以得到hθ(x(i))是十分接近于y(i)的,如果J(θ)处于最高点,那么hθ(x(i))远离y(i)的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库设计三范式

数据库设计三范式 范式是数据库设计时遵循的一种规范,不同的规范需要遵循不同的范式,只有充分遵循了数据库设计的范式,才能设计开发出冗余较小、高效、结构合理的数据库。 通常,我们在设计数据库的时候会要求遵循三范式。 第一…

《强化学习周刊》第69期:ICLR2023强化学习论文推荐、MIT实现自动调整内在奖励的强化学习...

No.69智源社区强化学习组强化学习研究观点资源活动周刊订阅告诉大家一个好消息,《强化学习周刊》已经开启“订阅功能”,以后我们会向您自动推送最新版的《强化学习周刊》。订阅方法:方式1:扫描下面二维码,进入《强化学…

使用Python PySNMP模块获取设备指标

一、PySNMP模块介绍: PySNMP 是一个跨平台的纯Python SNMP 引擎实现。它具有功能齐全的 SNMP 引擎,能够充当代理/管理器/代理角色,通过 IPv4/IPv6 和其他网络传输传输 SNMP v1/v2c/v3 协议版本。目前,使用较多的是SNMP v3和v2c版…

Robust Document Image Dewarping Method Using Text-Lines and Line Segments论文学习笔记

1 摘要 传统的基于文本行的文档去扭曲方法在处理复杂布局和/或非常少的文本行时会出现问题。当图像中没有对齐的文本行时,这通常意味着照片、图形和/或表格占据了输入的大部分。因此,对于健壮的文档去扭曲变形,我们建议除了对齐的文本行之外…

Python解题 - CSDN周赛第11期 - 圆桌请客(脑筋急转弯)

本来想着没有all pass就不写题解了,但在赛后对最后一题纠结了好久,然后发现是个类似脑筋急转弯的题,自己与正确答案只差一层纸,实在有点不吐不快。另外本期考了经典的背包问题的模板题,也值得记录下来,加深…

全志科技A40i国产开发板——性能参数综合测试

本次测试板卡是创龙科技旗下,一款基于全志科技A40i开发板,其接口资源丰富,可引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetooth、WIFI、4G(选配)模块,同时引出MIPI LCD、LVDS LCD、TFT LCD、HDMI OUT、CVBS OUT、CAMERA、LINE IN、H/P OUT等音视频多媒…

宿主机与开发板网络共享

宿主机网络共享 一、关键步骤 11. 网络共享简介 目标:宿主机可以用ssh连接开发板,开发板可以上网。 步骤:宿主机与目标机用网线直连,宿主机采用IP共享的方式连接开发板; 配置项IP开发板IP192.168.0.232宿主机以太网I…

Java 序列化原理

我的网站 | 我的博客 | 序列化解析工具 概念 Java为我们提供了一种默认的对象序列化机制,通过这种机制可以将一个实例对象写入到IO流中,当然这种IO流可以是文件流、网络流或者其他什么流。 代码的写法 ObjectOutputStream 对象输出流,用…

2022新一代设备维修管理系统助力企业降本增效

设备的维修是指企业或者设备密集型单位为了保持、恢复并提升设备使用寿命而定期对设备进行状态的维护,备件的更换,发生故障后的维修和恢复,从而让设备保证良好的运营状态,提升设备的可利用性并保证产能和设备安全。 大型企业在设…

C++11标准模板(STL)- 算法(std::merge)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 归并两个已排序的范围 st…

关于Mysql使用left join写查询语句执行很慢的问题解决

目录 &#xff08;一&#xff09;前言 &#xff08;二&#xff09;正文 1. 表结构/索引展示 &#xff08;1&#xff09;表结构 &#xff08;2&#xff09;各表索引情况 2. 存在性能问题的SQL语句 3. 解决思路 &#xff08;1&#xff09;执行计划思路调优 &#xff08;…

数字图像处理(入门篇)二 颜色空间

在对图像进行处理时&#xff0c;前提图像必须是以数据的形式来描述的&#xff0c;而颜色空间就是用数据来表征图像颜色的一种方法。颜色信息由三个独立的分量来综合表示&#xff0c;这三个独立的分量构成了一个三维的坐标空间&#xff0c;每种颜色信息都在该空间中被唯一地表示…

Java-泛型实验

1.定义一个学生类Student&#xff0c;具有年龄age和姓名name两个属性&#xff0c;并通过实现Comparable接口提供比较规则&#xff08;返回两个学生的年龄差&#xff09;&#xff0c; 定义测试类Test&#xff0c;在测试类中定义测试方法Comparable getMax(Comparable c1, Compar…

基于springboot农机电招平台设计与实现的源码+文档

摘要 随着农机电招行业的不断发展&#xff0c;农机电招在现实生活中的使用和普及&#xff0c;农机电招行业成为近年内出现的一个新行业&#xff0c;并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单&#xff0c;变高…

Kubernetes资源调度之节点亲和

Kubernetes资源调度之节点亲和 Pod节点选择器 nodeSelector指定的标签选择器过滤符合条件的节点作为可用目标节点&#xff0c;最终选择则基于打分机制完成。因此&#xff0c;后者也称为节点选择器。用户事先为特定部分的Node资源对象设定好标签&#xff0c;而后即可配置Pod通过…

YOLO X 改进详解

YOLO X 主要改进&#xff1a; Anchor-Free: FCOSDecoupled detection headAdvanced label assigning strategy Network structure improvement Decoupled detection head 对比于YOLO V5, YOLO X 在detection head上有了改进。YOLO V5中&#xff0c;检测头是通过卷积同时预…

ROS2--概述

ROS2概述1 ROS2对比ROS12 ROS2 通信3 核心概念4 ros2 安装5 话题、服务、动作6 参数参考1 ROS2对比ROS1 多机器人系统&#xff1a;未来机器人一定不会是独立的个体&#xff0c;机器人和机器人之间也需要通信和协作&#xff0c;ROS2为多机器人系统的应用提供了标准方法和通信机…

时间序列:时间序列模型---自回归过程(AutoRegressive Process)

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 这次我们构造一个由无限的白噪声实现&#xff08;white noise realization) 组成的时间序列&#xff0c;即。这个由无限数目的项组成的值却是一个有限的值&#xff0c;比如时刻的值为&#xff0c; 而…

基于PHP+MySQL校园餐饮配送系统的设计与实现

随着我国国民经济的稳步发展,我国的大学生也越来越多,但是大部分学生都是没有时间和环境去自己做饭的,有很多也不会做,而很多食堂的菜品有难以下咽,所以很多人就采取了订餐的方式来进行购买美食,但是现在很多网站都是只能进行点餐,而没有智能推荐功能,本系统在原来的外卖基础上…