Standford 机器学习—第四讲 神经网络的表示

来源:互联网 发布:沪江背单词软件 编辑:程序博客网 时间:2024/06/10 00:48

神经网络的表示

  • 神经网络的表示
    • 一 神经网络的引入Nonlinear hypothesis
    • 二 神经元与大脑Neurons and Brain
    • 三 神经网络的表示形式
    • 四 怎样用神经网络实现逻辑表达式
    • 五 分类问题 Classification

一、 神经网络的引入—Nonlinear hypothesis

我们之前学的,无论是线性回归还是逻辑回归都有这样一个缺点,即: 当特征太多时,计算的负荷会非常大。假设我们要设计一个模型来识别视觉图像(例如识别图片是否是汽车)。假设我们采用的都是 50x50 像素的小图片,并且我们将所有的像素视为特征,则会有 2500 个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有约接近 3 百万个特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

这里写图片描述

二、 神经元与大脑(Neurons and Brain)

  1. 神经元的工作模式

这里写图片描述

每一个神经元都可以被认为是一个处理单元/神经核(processing unit/ Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。

神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元, activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。在神经网络中,参数又可被成为权重(weight)。

这里写图片描述

三、 神经网络的表示形式

神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。
下图为一个 3 层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit)

这里写图片描述

下面引入一些标记法来帮助描述模型:
a(j)i 代表第 j 层的第 i 个激活单元
θ(j) 代表从第 j 层映射到第 j+1 层时的权重的矩阵。

对于上图所示的模型,激活单元和输出分别表达为:

这里写图片描述

令:这里写一下具体的过程g(z)=a…..

我们把这样从左到右的算法称为前向传播算法(FORWARD PROPAGATION)。
利用向量化的方法会使得计算(FORWARD PROPAGATION)更为简便。以上面的神经网络为例,试着计算第二层的值:

这里写图片描述

z(2)=Θ(1)x,则 a(2)=g(z(2)) 计算后添加 bais unit a(2)0=1 计算输出值为:

这里写图片描述

我们令 z(3)=Θ(2)a(2) , 则 hθ(x)=a(3)=g(z(3))

这只是针对训练集中一个训练实例所进行的计算。如果我们要对整个训练集进行计算,我们需要将训练集特征矩阵进行转置,使得同一个实例的特征都在同一列里。即:

这里写图片描述

四、 怎样用神经网络实现逻辑表达式?

神经网路中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑AND、逻辑或OR
举例说明:逻辑与AND;下图中左半部分是神经网络的设计与output层表达式,右边上部分是sigmod函数,下半部分是真值表。

这里写图片描述

给定神经网络的权值就可以根据真值表判断该函数的作用。再给出一个逻辑或的例子,如下图所示:

这里写图片描述

以上两个例子只是单层传递,下面我们再给出一个更复杂的例子,用来实现逻辑表达< x1 XNOR x2 >, 即逻辑同或关系,它由前面几个例子共同实现:

这里写图片描述

将AND、NOT AND和 OR分别放在下图中输入层和输出层的位置,即可得到x1 XNOR x2,道理显而易见:
a21 = x1 && x2
a22 = (﹁x1)&&(﹁x2)
a31 =a21 ||a21 =(x1 && x2) || (﹁x1)&&(﹁x2) = x1 XNOR x2;

这里写图片描述

五、 分类问题 ( Classification )

在这里,我们就讲述如何用神经网络进行分类。网络设计如下图所示:

这里写图片描述

输入向量x有三个维度,两个中间层,输出层4个神经元分别用来表示4类,也就是每一个数据在输出层都会出现[a b c d]T,且a,b,c,d中仅有一个为1,表示当前类。

这里写图片描述

0 0