机器学习(周志华)——神经网络模型(一)

概要

本篇博客主要讲解了BP神经网络模型的层次结构,并在机器学习(周志华)——神经网络模型(二)中讲解BP算法和BGD、SGD和MBGD三种梯度下降算法。对于BP神经网络算法的手写代码请移步:利用BP神经网络对语音特征信号数据集进行分类


神经元模型

神经元模型是是组成神经网络模型的最基本单位。在生物神经网络领域内,神经元之间相互相连,当一个神经元兴奋时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个阈值,那么它就会被激活,即兴奋起来,向其他神经元发送化学物质。1943 年,McCulloch 和 Pitts 将上述生物学中情形抽象为如下图所示的简单模型,这就是一直沿用至今的 M-P 神经元模型。神经元接收来自 n 个其他神经元传递过来的输入信号 x ,这些输入信号通过带权重 的连接进行传递,神经元接收到的总输入值 i = 1 n w i x i 将与神经元的阈值项 θ 进行线性组合,然后通过激活函数 f 对得线性组合进行映射产生神经元的输出 y = f ( i = 1 n w i x i + θ )
这里写图片描述


神经网络

将多个神经元模型按一定的层次结构连接起来,就能得到神经网络的模型。事实上,从计算机学科角度来看,我们可以不考虑神经网络是否真的模拟了生物神经网络,只需将一个神经网络模型看成一个包含了许多超参数的数学模型,这个模型有若干个激活函数组成。
这里写图片描述
下面本文将对3层的神经网络进行具体介绍。上图给出了基本的神经网模型结构示意图。3层的神经网络模型是由输入层、隐藏层和输出层构成的。其中输入层与输出层神经元个数与输入数据密切相关。因此首先对输入到神经网络数据集进行相关说明。对于给定输入数据集表示如下:

(1) D = { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , , ( x ( m ) , y ( m ) ) } $

其中 m 代表输入数据集大小, x i R d , y i R l ,即输入神经元的输入是一个 1 × d 维矩阵或者 d 维向量,其表示为:
(2) x ( i ) = ( x 1 ( i ) , x 2 ( i ) , , x d ( i ) )

输出神经元的输出是一个 1 × l 维矩阵或 l 维向量,其表示为:
(3) y ( i ) = ( y 1 ( i ) , y 2 ( i ) , , y l ( i ) )

即输入层神经元个数为输入数据的维数、输出层神经元个数为输入数据真实结果的维数。在以下相关介绍中,本文假定有 d 个输入层神经元, q 个隐藏层神经元, l 个输出层神经元。隐藏层的每个神经元都含有一个阈值项 θ i ,故隐藏层的阈值项可以表示为:
(4) θ = ( θ 1 , θ 2 , , θ q )

同理,输出层的阈值项可以表示为:
(5) γ = ( γ 1 , γ 2 , , γ l )

同时,输入层的每个神经元与隐含层的每个神经元之间有一个连接权重,记作 v i j ,表示第 i 个输入神经元与第 j 个隐藏层神经元之间的权重。故输入层与隐含层之间的连接权重可以表示为:
(6) v = ( v ( 1 ) , v ( 2 ) , , v ( d ) ) T

其中 v ( i ) 是个 1 × q 维向量,即 v ( i ) 可以表示为:
(7) v ( i ) = ( v 1 ( i ) , v 2 ( i ) , , v q ( i ) )

故输入层与隐藏层之间的权重可以也可以表示为一个的 d × q 矩阵:
(8) v = ( v 1 ( 1 ) v 2 ( 1 ) v q ( 1 ) v 1 ( d ) v 2 ( d ) v q ( d ) )

同理隐含层与输出层之间的连接权重可以表示 q × l 矩阵为:
(9) w = ( w ( 1 ) , w ( 2 ) , , w ( q ) ) T = ( w 1 ( 1 ) w 2 ( 1 ) w l ( 1 ) w 1 ( q ) w 2 ( q ) w l ( q ) )

其中 w ( i ) 可以表示为:
(10) w ( i ) = ( w 1 ( i ) , w 2 ( i ) , , w l ( i ) )

可以计算出第 h 个隐含层神经元的输入为:
(11) α ( h ) = i = 1 d v i ( h ) x ( i )

那么第 h 个隐含层神经元的输出为:
(12) b ( h ) = f ( α ( h ) + θ )

其中:
(13) f ( x ) = 1 1 + e x (14) f ( x ) = f ( x ) [ 1 f ( x ) ]

同理,第 j 个输出层神经元的输入为:
(15) β ( j ) = i = 1 l w i ( j ) b ( j )

j 个输出层神经元的输出为:
(16) y ^ ( j ) = f ( β ( j ) + γ )

猜你喜欢

转载自blog.csdn.net/qq_30091945/article/details/80577475