机器学习笔记06:神经网络的表示(Neural Networks-Representation)

神经网络(Neural Networks)其实是一个很古老的想法,在提出来之后,沉寂了很长一段时间。而现在,神经网络是许多机器学习问题的首选算法。



文章内的所有图片均属于Stanford机器学习课程,转载请注明出处


一、神经网络的表示(The Representation for Neural Networks)

1、运用神经网络的动机(Motivations)

非线性的假设函数(Non-linear Hypothesis)

之前已经学习了两个机器学习中常用的方法:线性回归逻辑回归。那为什么还需要神经网络这个东西呢。我们先来举一个监督学习中的分类问题的例子,假设有如下的训练集:

我们的目的是进行分类,假若如图所示的训练集一样,只有两个特征 x1,x2,通过逻辑回归很容易就能得到一个决策边界:

然而,当特征非常多的时候,我们必须用足够高次的项来保证假设函数的准确率,例如需要用100个特征来预测房价,且最高次项为6次,在逻辑回归中,假设函数为:

hθ(x)=g(θTX)=11+e?θTX

其中

g(θTX)=g(θ0+θ1x1+θ2x2+...+θkx1x2+θk+1x1x3+...+θnx61+θn+1x62+...)

从上面这个式子可以看出,如果要用梯度下降或者Normal Equation方法来得到 θj 的值,势必需要巨大的计算量。就算只有100个特征,如果只用最高项为二次项的函数 g(x),也会有 C2100+201 个 θ 项。所以当遇到特征数很多的情况时,我们需要另外一种方法,也就是神经网络(Neural Networks)

大脑和神经元(Brain and Neurons)

再来讲讲有关大脑的东西,根据一些神经科学家的研究实验发现,当一个感知器官的与对应的大脑皮层区域的连接被切断时,如果把这个感受器和另一个皮层区域连接起来,那么这个皮层区域将学会感知新的东西。举个例子:

如上图,如果把听觉感受器和听觉皮层区域的连接切断,然后把听觉感受器和视觉皮层区域相连,则视觉皮层区域也能学会处理听到的东西。

再如:

如果把触觉感受器和触觉皮层区域的连接切断,然后把触觉感受器和视觉皮层区域相连,则视觉皮层区域也能学会处理触觉。所以人们一直想要模仿人类的大脑来创造真正的AI,但是还处于初级的研究阶段,毕竟我们连大脑的机制都没完全搞清楚。

另外一个例子是用舌头来看东西:

如图,头上戴的是一个图像接收器,类似摄像头,舌头上的一个电极阵列,高电压代表亮点,低电压代表暗点,这样通过舌头就能“看”东西了。

再回到神经网络算法,我们模拟大脑的目的就是让这种算法能够学习各种各样的事物,而不必某个特别的问题来设计一个对应的程序来解决问题。


2、神经网络(Neural Networks)

模型表示(Model Representation)

首先来看看,大脑中神经元的结构:

理科生肯定都学过高中生物,图中左边的蓝色部分上的分杈叫做树突(Dendrite),它可以连接多个其他的神经元;细胞体中的绿色部分为细胞核;黄色部分为轴突(Axon);最右边为轴突末梢(Axon terminal),它可以和其他神经细胞的树突相连接。一个神经细胞可以和另一个神经细胞相连:

如上图,一个神经元的轴突末梢能和另一个神经元的树突相连,而且树突可以和多个轴突末梢相连,多个神经元的复杂连接就形成了一个神经网络。当然,以上都属于神经科学的范畴,在机器学习中,最简单的神经网络(只有一个神经元)可以表示如下:

其中,左边的 xj,j=1,2,3 表示输入节点(输入值),右边的 hθ(x) 表示输出,中间的橘黄色的节点表示神经元体(Body of Neuron),输入节点与神经元体的连接线称为输入连接线,神经元体和输出的连接线称为输出连接线。当然也可以将 x0 画到图中:

而在这里 x0 称为偏置单位(bias unit)。

需要注意的是,函数 hθ(x)=11+e?θTX , θ,X 均和之前的回归问题中的相同。在神经网络中,我们将假设函数称作为逻辑激活函数(Logistic Activation Function)

然而,一般的神经网络都不是像上面那样那么简单的。一般的神经网络表示如下:

同样可以添加 x0 和 a(2)0 到上图中,因为它们始终等于1,所以省略掉了。其中,最左边的 Layer1 称为输入层,最右边的 Layer3 称为输出层,中间的 Layer2 称为隐藏层,至于为什么叫隐藏层,是因为我们在使用训练出的模型时,只会使用输入层和输出层,中间的计算过程对我们来说是隐藏的。另外,模型可有有很多层,除了输入层和输出层外的其他层都成为隐藏层。

下面再来更加数学化地描述这个模型,还是以上面那张图为例,有如下记法:

notation representation
a(j)i “activation” of unit i in layer j
Θj matrix of weights controlling function mapping from layer j to layer j+1

其中,activation 表示层(Layer)中的一个单位(Unit)的激励。Θj 是一个映射向量。在第一层中加入 x0,我们可以将神经网络图中Layer1 和 Layer2 的关系表示如下:

a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3)

a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3)

a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3)

添加 a(2)0,可以把 Layer2 和 Lyer3 的关系表示如下:

hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)

可以看出:

Θ(1)∈R3×4,Θ(2)∈R1×4

通常,在网络中,若层 j 含有 Sj 个单元,层 j+1 含有 Sj+1 个单元,则 Θ(1) 的维度为 Sj+1×(Sj+1)。


前向传播(Forward propagation)

前面提到了层(Layers)之间的关系式,现在来向量化计算过程:

我们令 a(j)i=g(z(j)i) ,例如:

z(2)1=Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3

再令:

则 z(2)=Θ(1)x,为了统一,我们可以把向量 x 用 a(1)表示,所以 a(2)=g(z(2)),我们在 Layer2 中加上第零项 a(2)0,则 z(3)=Θ(2)a(2),最后 hΘ(x)=a(3)=g(z(3)) 。所以,在整个计算过程中,每一个激励单元 a(j)i 都会由前面的激励单元产生,最后生成最终结果,这个过程叫做前向传播(Forward propagation)。而在传播的过程中,每一层都是根据上一层的激励产生的新特征。不仅是3层,还可以使用更多层来生成更复杂的假设函数 hΘ(x):


3、应用(Applications)

例一:实现与或非等逻辑功能

神经网络的应用很广泛,但是对于初学者来说,那就比较复杂了。来举一个二进制分类的例子,训练集如下图:

我们要求 x1 和 2 的亦或(XOR),红色的×表示结果为0,蓝色的圈表示结果为1,为了简单起见,把图简化成下面这样:

可以看到,当 x1x2=00 和 x1x2=11 时,输出为0,当 x1x2=10 和 x1x2=01 时,输出为 1可以看到上面那条蓝色的线为一条异或决策边界。



1.与(AND)

那如果要实现与(AND)功能的话,我们可以通过神经网络来对输入进行处理以得到想要的结果:

如上图,其中 +1 为偏置单元,x1,x2∈{0,1},输出 y=x1 AND x2,我们令

Θ(1)=????302020???



hΘ(x)=g(?30+20x1+20x2)

其中函数 g(z) 和逻辑回归中一样,其图像如下:

下面我们就来列一个真值表:

x1 x2 hΘ(x)
0 0 g(?30)≈0
0 1 g(?10)≈0
1 0 g(?10)≈0
1 1 g(10)≈1

由此看累,上面就是一个实现与(AND)功能的神经网络。



2.或(OR)

要实现或(OR)功能,我们需要如下的神经网络:

其中

Θ(1)=????102020???

所以假设函数为

hΘ(x)=g(?10+20x1+20x2)

其真值表如下:

x1 x2 hΘ(x)
0 0 g(?10)≈0
0 1 g(10)≈1
1 0 g(10)≈1
1 1 g(30)≈1

可以看出,上面的神经网络实现了异或(XOR)功能。



3.非(NOT)

4.实现XNOR(NOT XOR)

我们之前已经得到了与或非三个神经网络,下面左边是与,右边是或,中间为(NOT x1) AND (NOT x2),即当 x1=x2=0 输出才为1:

现在只需要将他们组合起来,如下:

我们就可以得到如下真值表:

可以看到,最终的 hΘ(x) 输出的即是 x1 和 x2 异或之后再取非的结果。所以,我们可以用复杂的多层神经网络来实现复杂的分类等问题。


例二:多类分类

最后是一个计算机视觉的分类问题,我们要使用神经网络来判断一个物体是行人(Pedestrian)、小汽车(Car)、摩托车(Motorcycle)还是卡车(Trunk):

这个神经网络的输出如图下方,应该为一个四维的列向量。

另外需要注意的是,对于这种多类的分类问题,训练集应该符合下面的要求:

不仅 y(i) 要为四维的向量,输入 x(i) 也要为四维的向量。



好了,这篇文章大概得描述了一下神经网络是怎么工作的。下一篇文章将会描述神经网络是具体怎么学习的(完成后会放上链接)。



上面就是神经网络的一个大概的介绍,希望能帮助到大家。

如有错误,期望您能纠正,留言或者是e-mail:[email protected]

——–转载请注明出处——–

时间: 2024-10-10 12:45:39

机器学习笔记06:神经网络的表示(Neural Networks-Representation)的相关文章

Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning

原文见http://blog.csdn.net/abcjennifer/article/details/7758797,加入了一些自己的理解 本栏目(Machine learning)包含单參数的线性回归.多參数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学习系统设计.SVM(Support Vector Machines 支持向量机).聚类.降维.异常检測.大规模机器学习等章节.全部内容均来自Standford

机器学习之神经网络模型-上(Neural Networks: Representation)

在这篇文章中,我们一起来讨论一种叫作"神经网络"(Neural Network)的机器学习算法,这也是我硕士阶段的研究方向.我们将首先讨论神经网络的表层结构,在之后再具体讨论神经网络学习算法. 神经网络实际上是一个相对古老的算法,并且沉寂了一段时间,不过到了现在它又成为许多机器学习问题的首选技术. 1. Non-linear Hypotheses 之前我们已经介绍过线性回归和逻辑回归算法了,那为什么还要研究神经网络? 为了阐述研究神经网络算法的目的,我们首先来看几个机器学习问题作为例子

机器学习之神经网络模型-下(Neural Networks: Representation)

3. Model Representation I 1 神经网络是在模仿大脑中的神经元或者神经网络时发明的.因此,要解释如何表示模型假设,我们不妨先来看单个神经元在大脑中是什么样的. 我们的大脑中充满了如上图所示的这样的神经元,神经元是大脑中的细胞.其中有两点值得我们注意,一是神经元有像这样的细胞主体(Nucleus),二是神经元有一定数量的输入神经和输出神经.这些输入神经叫做树突(Dendrite),可以把它们想象成输入电线,它们接收来自其他神经元的信息.神经元的输出神经叫做轴突(Axon),

机器学习笔记——人工神经网络

人工神经网络(Artificial Neural Networks,ANN)提供了一种普遍而实用的方法从样例中学习值为实数.离散值或向量的函数. 人工神经网络由一系列简单的单元相互密集连接构成,其中每一个单元有一定数量的实值输入(可能是其他单元的输出),并产生单一的实数值输出(可能成为其他单元的输入). 适合神经网络学习的问题: 实例是很多"属性-值"对表示的 目标函数的输出可能是离散值.实数值或者由若干实数或离散属性组成的向量 训练数据可能包含错误 可容忍长时间的训练 可能需要快速求

第十四章——循环神经网络(Recurrent Neural Networks)(第二部分)

本章共两部分,这是第二部分: 第十四章--循环神经网络(Recurrent Neural Networks)(第一部分) 第十四章--循环神经网络(Recurrent Neural Networks)(第二部分) 14.4 深度RNN 堆叠多层cell是很常见的,如图14-12所示,这就是一个深度RNN. 图14-12 深度RNN(左),随时间展开(右) 在TensorFlow中实现深度RNN,需要创建多个cell并将它们堆叠到一个MultiRNNCell中.下面的代码创建了三个完全相同的cel

Machine Learning - VIII. Neural Networks Representation (Week 4)

http://blog.csdn.net/pipisorry/article/details/4397356 机器学习Machine Learning - Andrew NG courses学习笔记 Neural Networks Representation神经网络表示 Non-linear Hypotheses非线性假设 Neurons and the Brain神经元和大脑 Model Representation模型表示 Examples and Intuitions示例和直觉知识 Mu

Neural Networks Representation ----- Stanford Machine Learning(by Andrew NG)Course Notes

Andrew NG的Machine learning课程地址为:https://www.coursera.org/course/ml 神经网络一直被认为是比较难懂的问题,NG将神经网络部分的课程分为了两个星期来介绍,可见Neural Networks内容之多.言归正传,通过之前的学习我们知道,使用非线性的多项式能够帮助我们建立更好的分类模型.但当遇特征非常多的时候,需要训练的参数太多,使得训练非常复杂,使得逻辑回归有心无力. 例如我们有100个特征,如果用这100个特征来构建一个非线性的多项式模

Stanford机器学习笔记-4. 神经网络Neural Networks (part one)

4. Neural Networks (part one) Content: 4. Neural Networks (part one) 4.1 Non-linear Classification. 4.2 Neural Model(神经元模型) 4.3 Forward Propagation 4.4 神经网络实现与或非门以及异或门 4.4.1 实现与或非门(AND/OR/NOT) 4.4.2 实现异或/同或门(XOR/XNOR) 4.5 Multi-class classification k

Stanford机器学习笔记-5.神经网络Neural Networks (part two)

5 Neural Networks (part two) content: 5 Neural Networks (part two) 5.1 cost function 5.2 Back Propagation 5.3 神经网络总结 接上一篇4. Neural Networks (part one).本文将先定义神经网络的代价函数,然后介绍逆向传播(Back Propagation: BP)算法,它能有效求解代价函数对连接权重的偏导,最后对训练神经网络的过程进行总结. 5.1 cost func