神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得

神经网络介绍

关于对神经网络的定义非常多,1988年Kohomen提出“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应”,在机器学习中,我们谈论的神经网络指的是“神经网络学习”。

非线性假设

对于线性回归和逻辑回归函数来说,当特征n很大的时候,就会产生很大的计算量,

比如我们要识别灰度图像,采用 50x50 像素的小图片,并且我们将所有的像素视为特征,则会有2500 个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有约2500*2500/2个(接近 3 百万个)特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我
们就可以采用神经网络。
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得

神经元

神经网络中最基本的成分是神经元模型,即上述定义中的“简单单元”,对于大脑中的神经元,每一个神经元都可以被认为是一个处理单元/神经核(processing unit/ Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫**单元,activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。
下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)。
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
该模型又称为“M-P神经元”模型,其中X0为偏置单元/偏置神经元。
(有时候偏置单元没有表示出来,但是使用过程中不可忽略)
X1~Xn为输入层,h(x)为输出。
神经元接收来自n个神经元传递过来的输入信号,这些信号通过带权重的连接进行传递,神经元接收到的总输入值通过“**函数”处理以产生神经元的输出。
**函数h(x)可采用:
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得

神经网络模型

下面以一个简单的神经网络为例:
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
其中x1,x2,x3是输入单元(input units),我们将原始数据输入给它们,a1,a2,a3是中间单元,它们负责将数据进行处理,然后呈递到下一层,最后是输出单元,他负责计算最后的输出。
神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。上图为一个 3 层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。对于3层以上的网络来说,除去输入、输出层,中间的层数都称为隐藏层,隐藏层可以有好几层。

以该神经网络为例可得:
aija_i^j表示:第j层单元i的“激励”
θjθ^j表示:第j层到第j+1层单元的权值矩阵。控制j层到j+1层的映射权重。以第 j+1 层的**单元数量为行数,以第 j 层的**单元数加一为列数的矩阵。例如:上图所示的神经网络中θ1θ^1 的尺寸为 3*4。
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。
我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION )
模型表示2–向量法
还是按照上面的神经网络为例:将上式中复杂的**函数g输入按向量法简单的表示为:神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得

神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
上面介绍的只是最简单的三层神经网络,只含有一个隐藏层。简单的三层神经网络可以解决大部分问题,在我们实际应用中,由于需要会出现含多个隐藏层的神经网络,如下图是个含两层隐藏层神经网络的例子,一般神经网络隐藏层越多,隐藏单元越多,模型复杂度越强,模型的泛化能力会越强,性能越好但是会带来昂贵的费用以及更大的计算量。
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得

一些神经网络简单的例子:
神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑 AND、逻辑或 OR 。
举例说明:
1.逻辑与 AND;我们可以用这样的一个神经网络表示 AND 函数:
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
可以得出:
神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得
2.逻辑或 OR神经网络介绍(Neural Networks Representation)----吴恩达机器学习心得