当前位置:网站首页>吴恩达机器学习[9]-神经网络学习
吴恩达机器学习[9]-神经网络学习
2022-08-04 15:35:00 【踏归1234】
神经网络学习 Neural Network
非线性假设 Non-linear hypotheses
以计算房屋被卖出去概率为例,假设相关特征变量n有100个。则假设方程二次项最多有5000个( n 2 2 \frac {n^2}2 2n2 ),再考虑三次项、四次项……,假设方程项数特别大。
因此当初始特征项n特别大时,如果把这些高阶多项式项数都包括到特征里,会使得特征空间急剧膨胀。所以当特征项特别大时,增加特征,来建立非线性分类器,并不是一个好做法。
而机器学习的很多问题中,特征项n都特别大。
下面以计算机视觉的一个问题为例介绍。对于现实生活中的汽车,计算机看到的是一个数据矩阵,或者说表示像素强度值的网络。
对于计算机视觉中的汽车识别问题,我们要做的即:给出一系列汽车、以及非汽车的图像,分别为其设置标签,从而构成一个样本数据集。然后将这个样本集输入给学习算法,以训练出一个分类器。然后进行输出新样本进行测试。
假设取汽车的两个像素点强度pixel1、pixel2,从而识别图像是否为汽车。不同样本既可以形成如下坐标集所示图形。
因此识别是否为汽车,只需要建立一个非线性假设来尽量分开这两类样本。
那么这里特征空间的维度是多少呢?假设使用50*50像素的图像(长宽各50个像素),特征项n=2500。在考虑两个像素,则大概有3亿个特征。
对于这类问题,非线性假设不太适用。
神经元与大脑 Neurons and the brain
引入:神经网络算法(neural network algorithms)最初目的为制造能模拟大脑的机器。后来人们发现,神经网络算法能解决不同机器学习问题,这不只因为受到生物学的启发。
目标:
- 介绍神经网络背景
- 明白神经网络能做什么,包括应用到现代机器学习问题上,以及神经网络与制造真正的智能机器问题关系。
近来神经网络才再度兴起,原因之一在于:神经网络计算量较大,近年来计算机运行速度变快,才足以运行大规模的神经网络。
模拟大脑,并不意味着需要写上千个不同的程序去实现。相反,大脑的处理方法,只需要用一个学习算法。
证据
- 神经重接实验。它引入的理念为:如果有一块脑组织可以处理光、声、或触觉信号,那么也许存在一种学习算法可以同时处理视觉、听觉、触觉。也许我们需要的就是找出一些近似的或实际的大脑学习算法,然后实现它,让大脑学习如何处理这些不同类型的数据。


- 3.1、舌头学会 看
- 3.2、人体回声定位(人体声呐),定位
- 3.3、方向感知腰带
- 3.4、第四只眼睛

模型展示1 Model representation 1
目标:了解如何表示神经网络。或者说,在使用神经网络算法是,该如何表示我们的假设或模型。
神经网络模仿了大脑中的神经元或神经网络,因此解释如何表示解释模型,可以从了解神经元在大脑中的作用入手。
神经元
- 构成:细胞体(Cell body)、树突(Dendrite, 输入通道,从其他神经元获取信息)、轴突(Axon, 信息输出,将信息传递到其他神经元)。
- 作用:神经元是一个计算单元,它可以从输入通道接受一定数目的信息,并做出一些计算,然后将结果通过它的轴突传送到其他节点。

神经元之间通过微弱的电流进行沟通(动作电位)。
下面展示一个只有一个神经元构成的,简单的神经网络模型。 - 一般只画 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1、x2、x3,而不画出 x 0 x_0 x0(偏置单元bias unit、偏置神经元bias neuron,总是等于1)
- 术语:这是一个带有sigmoid 或者logistic激活函数的人工神经元,激活函数指代非线性函数的 g ( z ) g(z) g(z)。 θ \theta θ称为参数或者模型的权重。

神经网络其实为一系列神经元连接在一起的集合。下面展示一个具有三个神经元的神经网络模型,激活函数还是使用sigmoid函数。 - x 0 、 a 0 x_0、a_0 x0、a0为偏置神经元,可画可不画。
- 第一层layer 1:输入层,输入特征 x 1 、 x 2 、 x 3 等 x_1、x_2、x_3等 x1、x2、x3等;
- 中间第二层layer 2:隐藏层,训练中能看到输入输出,一般看不到隐藏层的内容;
- 最后一层layer 3:输出层,输出假设的最终计算结果。

下面介绍这个神经网络的具体计算步骤 - 基本术语: a i ( j ) a_i^{(j)} ai(j)表示第j层的第i个激活项。激活项指的是由一个具体神经元计算并输出的值。此外,神经网络被 θ ( j ) \theta^ {(j)} θ(j)构成的矩阵参数化, θ ( j ) \theta^ {(j)} θ(j)就是权重矩阵。它控制第j层到第j+1层的映射。
- 计算步骤如下。其中 θ ( 1 ) \theta^{(1)} θ(1)指的是从三个输入单元到三个隐藏单元的映射的参数矩阵。一般的,如果一个网络在第j层有 s j s_j sj个单元,在第j+1层有 s j + 1 s_{j+1} sj+1个单元,那么矩阵 θ ( j ) \theta^{(j)} θ(j)即为控制第1j层到第j+1层映射的矩阵,它的维度为 s ( j + 1 ) ∗ ( s j + 1 ) s_{(j+1)}*(s_j+1) s(j+1)∗(sj+1)。

神经网络定义 人工神经网络(Artificial Neural Networks,ANNs)也简称为神经网络或称作连接模型,它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
模型展示2 Model representation 2
目标:
- 学习如何高效进行计算神经网络,学习其中的一个向量化的实现方法。
- 明白为什么上述是表示神经网络的好方法,并且明白它是如何帮助我们学习复杂的非线性假设函数。
以下述神经网络为例
定义 a 1 ( 2 ) = g ( z 1 ( 2 ) a_1^{(2)}=g(z_1^{(2)} a1(2)=g(z1(2),其中 z 1 ( 2 ) = θ 1 0 ( 1 ) + θ 1 1 ( 1 ) + θ 1 2 ( 1 ) + θ 1 3 ( 1 ) z_1^{(2)}=\theta_10^{(1)}+\theta_11^{(1)}+\theta_12^{(1)}+\theta_13^{(1)} z1(2)=θ10(1)+θ11(1)+θ12(1)+θ13(1)。其他 a 2 ( 2 ) 、 a 3 ( 2 ) a_2^{(2)}、a_3^{(2)} a2(2)、a3(2)同理。此时 θ i j ( 1 ) \theta_ij^{(1)} θij(1)构成一个矩阵,因此可以将神经网络的计算向量化, θ i j ( 1 ) \theta_ij^{(1)} θij(1)与 x j x_j xj的计算可以用向量表示。
因此有如下公式:
- z ( 2 ) = Θ ( 1 ) x = Θ ( 1 ) a ( 1 ) z^{(2)}=\Theta^{(1)}x=\Theta^{(1)}a^{(1)} z(2)=Θ(1)x=Θ(1)a(1) (将x用 a ( 1 ) a^{(1)} a(1)表示)
- a ( 2 ) = g ( z ( 2 ) ) a^{(2)}=g(z^{(2)}) a(2)=g(z(2))
- Add a 0 ( 2 ) = 1 a_0^{(2)}=1 a0(2)=1
- z ( 3 ) = Θ ( 2 ) a ( 2 ) z^{(3)}=\Theta^{(2)}a^{(2)} z(3)=Θ(2)a(2)
- a ( 2 ) = a ( 3 ) = g ( z ( 3 ) ) a^{(2)}=a^{(3)}=g(z^{(3)}) a(2)=a(3)=g(z(3))
前向传播:依次计算激活项,从输入层到隐藏层再到输出层的过程称作前向传播。

遮住下述神经网络的输入层部分。从隐藏层到输出层部分很像logistic回归函数,不同的是原本的特征项 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1、x2、x3,在这里变成了 a 1 、 a 2 、 a 3 a_1、a_2、a_3 a1、a2、a3,它们通过隐藏层计算得到。
结合输入层进行综合考虑。在该神经网络中,最终输出结果没有直接利用到输入变量 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1、x2、x3来训练逻辑回归,而是通过 θ i j ( 1 ) \theta_ij^{(1)} θij(1)将输入变量变成了新特征项 a 1 、 a 2 、 a 3 a_1、a_2、a_3 a1、a2、a3,再利用自己获得的新特征项训练逻辑回归。可以想象,根据 θ i j ( 1 ) \theta_ij^{(1)} θij(1)选择不同参数,有时可以学习得到一些很有趣和复杂的特征项,从而得到更好的假设函数。
下面展示神经网络的另一种形式。
神经网络中神经元的连接方式称作神经网络的架构。架构即不同神经元的连接方式。
例子与直觉理解1 Examples and intuition 1
目标:通过一个更加详细的例子说明神经网络是如何计算复杂非线性函数的输入的。从而帮助理解为什么神经网络可以帮助学习复杂的非线性假设模型。
假设有两个二进制的输入特征 x 1 、 x 2 x_1、x_2 x1、x2,我们用左图的四个点(包括两个正样本、两个负样本)简单指代右图,我们的目标为找到一个非线性判断边界来区分正负样本。
为了解决这个问题,以一个能够拟合AND运算函数的网络入手。
下图神经网络可以实现OR运算函数的功能。
例子与直觉理解2 Examples and intuition 2
目标:通过例子展示神经网络如何计算复杂的非线性假设模型。
上一部分介绍了用神经网络如何拟合AND、OR运算函数。下图神经网络可以实现NOT运算函数的功能。那么如何计算 ( N O T x 1 ) A D N ( N O T x 2 ) (NOT x_1) ADN (NOT x_2) (NOTx1)ADN(NOTx2)呢?
下图结合 x 1 A N D x 2 、 ( N O T x 1 ) A D N ( N O T x 2 ) 、 x 1 O R x 2 x_1 AND x_2、(NOT x_1) ADN (NOT x_2)、x_1 OR x_2 x1ANDx2、(NOTx1)ADN(NOTx2)、x1ORx2,来计算 x 1 X N O R x 2 x_1 XNOR x_2 x1XNORx2。扩展:XNOR同或运算,相同取1,不同取0;XOR 异或,不同取1,同则取0。
我们将输入放在输入层,然后在中间放一个隐藏层来计算一些关于输入的略微复杂的功能,然后再加入一个输出层用于计算一个更加复杂的非线性函数。这就是为什么神经网络可以计算这种复杂的函数。
随着层数的增加,计算的函数越来越复杂。
下面展示一个关于神经网络不断用更深的层来计算更复杂的函数的例子。
神经网络复兴最开始应用与识别邮政编号问题中
多元分类 Multi-class classification
目标:如何使用神经网络解决多元分类问题。
神经网络实现多元分类问题,采用的方法本质上是一对多法的扩展。
因此需要做的即为建立一个拥有四个输出单元的神经网络。
神经网络的不同输出分别代表不同类别。
参考资料
网易版 吴恩达机器学习
吴恩达机器学习 网易
2021机器学习(西瓜书+李航统计学习方法)实践部分 + Python
边栏推荐
猜你喜欢

【云原生 | 从零开始学Kubernetes】kubernetes之StatefulSet详解

IP第十五天笔记

Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED

DevOps平台中的制品库是什么?有什么用处?

Projector reached the party benefits 】 【 beginners entry - brightness projection and curtain selection - from entry to the master

GPS卫星同步时钟,NTP网络同步时钟,北斗时钟服务器(京准)

我说MySQL联合索引遵循最左前缀匹配原则,面试官让我回去等通知

邮差"头":{“retCode”:“999999”

JVM调优-GC基本原理和调优关键分析

使用百度EasyDL实现森林火灾预警识别
随机推荐
Go Go 简单的很,标准库之 fmt 包的一键入门
C# BBcode 转 Markdown
如何优雅的消除系统重复代码?
洛谷题解P4326 求圆的面积
What is an artifact library in a DevOps platform?What's the use?
攻防视角下,初创企业安全实战经验分享
邮差"头":{“retCode”:“999999”
C# TextBlock 上标
PHP 图片转PDF
##ansible自动化运维架构与简介
Xi'an Zongheng Information × JNPF: Adapt to the characteristics of Chinese enterprises, fully integrate the cost management and control system
卖家寄卖流程梳理
基于 Next.js实现在线Excel
项目里的各种配置,你都了解吗?
GPS satellite synchronization clock, NTP network synchronization clock, Beidou clock server (Jingzhun)
洛谷题解P1028 数的计算
剑指Offer 63.股票的最大利润
IP第十七天笔记
Sublime Text 好用的插件
SAP ABAP SteamPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
