吴恩达《机器学习》学习笔记九——神经网络相关(1)

吴恩达《机器学习》学习笔记九——神经网络相关(1)

  • 一、 非线性假设的问题
  • 二、 神经网络相关知识
    • 1.神经网络的大致历史
    • 2.神经网络的表示
    • 3.前向传播:向量化表示
  • 三、 例子与直觉理解
    • 1.问题描述:异或XOR、同或XNOR
    • 2.单个神经元如何计算逻辑函数:以AND、OR为例
    • 3.多层神经网络计算复杂函数
  • 四、 神经网络实现多分类

课程链接:https://www.bilibili.com/video/BV164411b7dx?from=search&seid=5329376196520099118

前面的几次笔记,较详细地学习了机器学习里有监督学习的两个最具代表性的模型,分别是解决回归问题的线性回归以及解决分类问题的逻辑回归这两个模型最初的形态都是线性的,但是由于问题的复杂性,它们又可以推广到非线性的形态,即多一些高次幂项特征。这次笔记就由此非线性假设函数引入,学习神经网络的相关知识。如今人工智能能够得到如此的发展,神经网络可以说是功不可没。

一、 非线性假设的问题

首先课程中提出的问题是,既然已经有了线性回归和逻辑回归来分别解决回归和分类问题,即使是较为复杂的问题,也可以推广假设函数到非线性形式来解决,那么为什么还要学习神经网络呢?

那么我们就来看一看非线性假设存在的问题:
在这里插入图片描述
如上图所示,是一个非线性的分类问题,数据样本有两个特征x1和x2,那么要分类这样的数据集,假设函数就需要设置成如图中所示,以此来达到非线性决策边界的目标。这样做唯一的代价就是通过特征映射将原来两个特征变成了多项非线性特征,看起来没有太大问题

我们可以回顾一下笔记七中特征映射的代码,最高次幂设置成了6次,特征的数量从原来的2个变成了28个,当时的计算量看似也不大,也能得到较好的结果。

但是问题就在于,很多情况,特征的数量远远不止2个,上百上千上万甚至百万的都很常见,如果都通过这样特征映射将线性变成非线性假设去解决非线性问题,那么特征映射后的特征数量将飞速变大

举一个有100个特征的例子:
在这里插入图片描述
它的一次幂特征项是100个,而二次幂特征项就已经有5000个:
在这里插入图片描述
再看三次幂项,有170000个:
在这里插入图片描述
就不往更高次幂算了,只会更加庞大,而很多问题需要用到高次幂的项。

所以,当初始特征数量很大时,将其映射到高阶特征项,特征空间将会急剧膨胀,可能会带来严重的过拟合问题,以及沉重的计算和存储负担。所以用这种特征映射的方法来建立非线性模型,并不是一种好方法。

课程中还提供了CV领域图像分类的一个例子:
在这里插入图片描述
假设一张图像数据包含2500个特征(每个像素算一个),用逻辑回归的这种非线性假设的方法,仅仅算二次幂的特征数量都已经有三百万个,而50*50的图像已经算是很小的图片,所以这种方法过于简单粗暴,特征数一大,就会非常吃力。

而神经网络很好的克服了这个问题,即使初始特征空间庞大,也能很好的求解。

二、 神经网络相关知识

1.神经网络的大致历史

在这里插入图片描述
神经网络起初是一种模仿人脑运行机制的算法。曾在80年代以及90年代早期比较流行,但是因为一些原因,在90年代末又沉寂了下去。而近些年,神经网络在各大领域上的应用,又使得它流行起来,主要是因为计算性能的飞速发展,使得计算机可以支持神经网络计算的庞大数据量。目前,许多领域最新技术都会应用到神经网络的知识。

2.神经网络的表示

人脑的自然神经网络的运行原理,如下图所示:
在这里插入图片描述
如图所示为一个神经元结构,主要包括三个部分:

树突:信号的输入部分,其他神经元的信号经过树突来接收;
细胞体:许多外来信号经过树突传入后由细胞体处理,并产生一个输出信号,即反应;
轴突:信号的输出端。神经元可以看成是一个计算单元,对众多外来信号进行处理后,产生一个输出。

而机器学习中的神经网络模型是指人工神经网络,就是模仿自然神经网络构造了功能相似的计算单元,如下图所示:在这里插入图片描述
x1,x2,x3分别是计算单元的输入,黄色的圆圈是计算中心,h(x)是输出的计算结果。这边具体输出什么形式的函数被称之为激活函数,此处激活函数是sigmoid函数的形式。以sigmoid函数这个例子为例,黄色圆圈首先计算的是z =θ ^ T x,然后用sigmoid激活函数进行的计算是g(z) = 1/(1 + e^(-z)),最后的输出也就是g(z)。黄色圆圈包含了计算z和g(z)的两部分,其中的计算涉及到一些参数,那么优化神经网络模型的过程,就是优化这些参数的过程,这些参数也叫权重(weights)

以上是单个的神经元,那么与人脑类似,多个神经元可以组合成神经网络,其结构如下图所示:
在这里插入图片描述
第一列被称为输入层,它都是输入的数据,最后一层被称为输出层,而中间的被称为隐藏层,不论是一层还是多层,统称为隐藏层。隐藏层中包含了要优化的参数。

我们看一下它具体是怎么工作的,如下图所示:
在这里插入图片描述
首先定义a_i ^ (j)是第 j 层第 i 个计算单元的激活器;θ ^ (j)是从第 j 层映射到第 j+1 层的权重矩阵,如果第 j 层有 s_j 个计算单元,第 j+1 层有 s_(j+1) 个计算单元,那么θ^(j)的维度是 s_(j+1) × (s_j+1) 。这边的1是指偏置项x0。

然后看图中的一些计算过程,每一层都要按照激活函数来计算结果,直到计算到最后一层的输出,如果层数较多,那么也要一层层的嵌套计算下去。

3.前向传播:向量化表示

在这里插入图片描述
为了实现向量化表示,将第一个式子里的
在这里插入图片描述
表示为z_1 ^ (2),与此相似,第二、三个式子里的部分也分别表示为z_2 ^ (2) 、z_3 ^ (2)。而且,我们将输入x与参数进行向量化:
在这里插入图片描述
那么,z ^ (2) 、a ^ (2)都将进行向量化,这里z ^ (2) 、a ^ (2)都是三维向量:
在这里插入图片描述
这边的x向量也可以看作是a ^ (1)向量,以上是输入层到隐藏层的计算过程,下面再看一下由隐藏层推到输出层的计算,其实与之前的计算非常类似:
在这里插入图片描述
在这里插入图片描述
上面的这种由输入层一层层往输出层计算输出的过程,称之为前向传播,从向量化的形式来看,是一次次嵌套计算的过程。

这种前向传播的方法,也可以帮助我们了解神经网络的作用,以及它为什么能够学习非线性假设函数。将上面提到的神经网络的输入层遮住,如下图所示:
在这里插入图片描述
剩下的结构其实就是一个逻辑回归的模型,假设函数如图中所示,只是逻辑回归单元得到的输入不是真正数据的输入,而是隐藏层的计算结果,而这些隐藏层的计算结果,是通过前面层学习得到的函数输入值,具体来讲,就是它们是从第一层映射到第二层的函数中学习到的结果,这个函数由前面的参数θ^((1))决定。

总结一下,神经网络中没有直接使用输入x来训练逻辑回归,而是自己先训练逻辑回归的输入a,这个过程中因为θ^(1)选择的不同参数,有时可以学习到一些复杂、有趣的特征,这样就可以得到一个更好的假设函数,比直接使用原始输入数据得到的假设函数更好

再看一个层数更多的例子,第二层先学习了一些原始数据的特征,第三层再学习第二层的特征,第四层则可以根据前两层抽象过的特征进行拟合,得到的假设函数更加复杂。第一层还叫输入层,最后一层还叫输出层,中间层都叫隐藏层。
在这里插入图片描述

三、 例子与直觉理解

通过一个例子来详细地介绍神经网络是如何计算复杂非线性函数的输入的,帮助理解为什么神经网络可以用来学习复杂的非线性假设模型。

1.问题描述:异或XOR、同或XNOR

下面是一个非线性的分类例子:同或,这个问题的数据分布如下图所示,特征x1和x2都只能取0/1,当x1和x2同为0或同为1时类别为1,反之为0,这个问题不能用线性的模型来解决,需要非线性的决策边界来划分,也就是需要非线性的假设函数。
在这里插入图片描述

2.单个神经元如何计算逻辑函数:以AND、OR为例

在这里插入图片描述
输入特征x1和x2的取值只能是0/1,寻找一个假设函数,使得经过神经元后的预测结果和真值表的结果匹配。图中给定了模型的结构,单个神经元其实也可以看作是逻辑回归,参数如图中所示为-30,20,20,则假设函数或者说神经元的输出为h(x)=g(-30+20x_1+20x_2)。将x1和x2的可能取值组合一一代入,得到预测结果为0,0,0,1,与真值表的结果完全符合。

下面看另一个线性的例子:
在这里插入图片描述
OR的计算原理和过程类似上面的AND模型,不再赘述。

从这两个例子可以看到,神经网络中的单个神经元是如何用来计算逻辑函数的,比如上面的AND和OR。下面将介绍,一个拥有多层神经元的神经网络是如何被用来计算更复杂的函数的比如XOR或XNOR

3.多层神经网络计算复杂函数

首先有三个单个神经元的模型,如下图所示:
在这里插入图片描述
它们分别能解决三个不同的逻辑计算。

为了能解决更复杂的问题,将它们组合到一起,变成一个三层的神经网络,如下图所示:
在这里插入图片描述
红色、蓝色和绿色的神经元分别对应上面的三个功能,看右边的真值表变化,这样组合的一个三层神经网络就完成了非线性的同或XNOR问题。

还能这样理解,输入都放在输入层,然后在中间放一个隐藏层,用来计算一些关于输入的略微复杂的功能,然后再增加一层,用于计算一个更复杂的非线性函数。这就是为什么神经网络可以计算这种复杂的函数

在这里插入图片描述
在一层层往后计算的过程中,能够计算的函数也会越来越复杂。

四、 神经网络实现多分类

多输出单元:一对多:
在这里插入图片描述
这是一个图片分类的例子,需要将图片分成行人、汽车、摩托车和货车四类。相应地,建立了一个具有四个输出单元的神经网络,所以输出是一个四维向量,这四个神经元的作用分别为,判断图中是否为行人、图中是否为汽车、图中是否为摩托车、图中是否为货车。如果为行人,输出向量为[1 0 0 0],如果为汽车,则为[0 1 0 0],以此类推。只是这里数据集中的标签y也要表示成一个四维向量才能与预测结果h(x)匹配。

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

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

相关文章

刚刚,科学家发现了一大堆解释人类进化的基因...

图片来源:《Nature Genetics》来源:中国生物技术网 5月27日发表在《Nature Genetics》上的一项新研究发现, 以前被认为在不同生物体中具有相似作用的数十种基因,实际上是人类独有的, 这或许有助于解释我们这个物种是如…

吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码

吴恩达《机器学习》笔记八——逻辑回归(多分类)代码导入模块及加载数据sigmoid函数与假设函数代价函数梯度下降一对多分类预测验证课程链接:https://www.bilibili.com/video/BV164411b7dx?fromsearch&seid5329376196520099118 之前笔记…

DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!

来源:AI科技评论近年来,深度强化学习(Deep reinforcement learning)方法在人工智能方面取得了瞩目的成就,从 Atari 游戏、到围棋、再到无限制扑克等领域,AI 的表现都大大超越了专业选手,这一进展…

吴恩达《机器学习》学习笔记十——神经网络相关(2)

吴恩达《机器学习》学习笔记十——神经网络相关(2)一、 代价函数二、 反向传播算法三、 理解反向传播算法四、 梯度检测五、 随机初始化1.全部初始化为0的问题2.随机初始化的思想六、 神经网络算法整体流程1.选择网络具体架构2.训练神经网络课程链接&…

吴恩达《机器学习》学习笔记十一——神经网络代码

吴恩达《机器学习》学习笔记十一——神经网络代码数据准备神经网络结构与代价函数初始化设置反向传播算法训练网络与验证课程链接:https://www.bilibili.com/video/BV164411b7dx?fromsearch&seid5329376196520099118 数据集链接:https://pan.baidu…

中国科研人员发明单晶体管逻辑结构新原理

▲随着晶体管不断缩小特征尺寸,集成电路的性能得以持续提升。然而在超小器件尺寸下,硅材料的物理极限导致了功耗的大幅提升,难以进一步持续减小晶体管的特征尺寸。来源:文汇网通过引入层状半导体,并依据其特性设计新型…

Java 内存模型

1、并发模型编程的分类 在并发模型编程中,我们需要解决两个关键问题:线程之间如何通信以及线程之间如何同步。线程之间的通信包括两种:共享内存和消息传递。 Java并发采用的是共享内存模型。 2、Java内存模型的抽象 Java内存模型的主要目标是…

PyTorch框架学习一——PyTorch的安装(CPU版本)

PyTorch框架学习一——PyTorch的安装(CPU版本)PyTorch简介PyTorch的安装(CPU版)机器学习/深度学习领域的学习都是需要理论和实践相结合的,而它们的实践都需要借助于一个框架来实现,PyTorch在学术界目前处于…

你的大脑在自动驾驶,而你一无所知

来源:果壳想象一下,你的大脑里有着两个小人,它们在不停地打架,试图夺取控制你行动的权力。当然,这两个小人并不是你善意和邪恶的念头。那它们是什么?在很多人看来,这两者就是我们的意识和无意识…

常用的损失函数

来自 机器学习成长之路公众号 本文将常用的损失函数分为了两大类:分类和回归。然后又分别对这两类进行了细分和讲解,其中回归中包含了一种不太常见的损失函数:平均偏差误差,可以用来确定模型中存在正偏差还是负偏差。 从学习任务…

吴恩达《机器学习》学习笔记十一——应用机器学习的建议

吴恩达《机器学习》学习笔记十一——应用机器学习的建议一、训练完模型后下一步要做什么二、评估算法与模型选择1.训练集与测试集2.训练/测试步骤3.模型选择4.数据集新的划分——验证集的加入三、偏差与方差1.偏差与方差的理解2.正则化和偏差方差的关系3.学习曲线四、决定接下来…

为什么说深耕AI领域绕不开知识图谱?

来源:AI科技大本营“所有在 AI 领域深耕的人,最终都会发现语义鸿沟仍是一个非常具有挑战性的问题,这最终还需要借助知识图谱等技术,来帮助将整体的 AI 认知取得新进展。”在 5 月 26 日的 CTA 峰会机器学习专场,Hulu 首…

机器学习中的相似性度量总结

来自 机器学习算法那些事公众号 在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。 目录 1. 欧氏距离 …

吴恩达《机器学习》学习笔记十二——机器学习系统

吴恩达《机器学习》学习笔记十二——机器学习系统一、设计机器学习系统的思想1.快速实现绘制学习曲线——寻找重点优化的方向2.误差分析3.数值估计二、偏斜类问题(类别不均衡)三、查准率P与召回率R——代替准确率的评估指标四、查准率与召回率的权衡——…

增强现实:一场正在到来的医疗革命

来源: 资本实验室图像化可以让医生的诊断、决策和治疗更加准确,可以说是医疗史上非常重要的一项技术突破。近几年,通讯技术的发展推动了空间计算的快速商业化。在医疗领域,增强现实(AR)、虚拟现实&#xff…

吴恩达《机器学习》学习笔记十三——机器学习系统(补充)

这次笔记是对笔记十二的补充,之前讨论了评价指标,这次主要是补充机器学习系统设计中另一个重要的方面,用来训练的数据有多少的问题。 笔记十二地址:https://blog.csdn.net/qq_40467656/article/details/107602209 之前曾说过不要…

全球CMOS图像传感器厂商最新排名:黑马杀出

来源:半导体行业观察近期,台湾地区的Yuanta Research发布报告,介绍了其对CMOS图像传感器(CIS)市场的看法,以及到2022年的前景预期。从该研究报告可以看出,2018年全球CMOS图像传感器的市场规模为137亿美元,其…

吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进

吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进一、任务介绍二、代码实现1.准备数据2.代价函数3.梯度计算4.带有正则化的代价函数和梯度计算5.拟合数据6.创建多项式特征7.准备多项式回归数据8.绘制学习曲线𝜆0𝜆1&…

刘锋 吕乃基:互联网中心化与去中心化之争

前言:本文发表在2019年5月《中国社会科学报》上,主要从神经学角度分析互联网的发育过程,并对云计算和区块链为代表的中心化与去中心化技术趋势进行了探讨。当前,学术界和产业界对互联网的未来发展出现了分歧。随着谷歌、亚马逊、F…

iOS-BMK标注覆盖物

在iOS开发中,地图算是一个比较重要的模块。我们常用的地图有高德地图,百度地图,谷歌地图,对于中国而言,苹果公司已经不再使用谷歌地图,官方使用的是高德地图。下面将讲述一下百度地图开发过程中的一些小的知…