神经网络的基本原理
Posted zhiyong_will
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络的基本原理相关的知识,希望对你有一定的参考价值。
1. 神经元概述
神经网络是由一个个的被称为“神经元”的基本单元构成,单个神经元的结构如下图所示:
对于上述的神经元,其输入为 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3以及截距 + 1 +1 +1,其输出为:
h W , b ( x ) = f ( W T x ) = f ( ∑ i = 1 3 W i x i + b ) h_\\mathbfW,b\\left ( \\mathbfx \\right )=f\\left ( \\mathbfW^T\\mathbfx \\right )=f\\left ( \\sum_i=1^3W_ix_i+b \\right ) hW,b(x)=f(WTx)=f(i=1∑3Wixi+b)
其中, W \\mathbfW W表示的是向量,代表的是权重,函数 f f f称为激活函数,通常激活函数可以选择为Sigmoid函数,或者tanh双曲正切函数,其中,Sigmoid函数的形式为:
f ( z ) = 1 1 + e − z f\\left ( z \\right )=\\frac11+e^-z f(z)=1+e−z1
双曲正切函数的形式为:
f ( z ) = t a n h ( z ) = e z − e − z e z + e − z f\\left ( z \\right )=tanh\\left ( z \\right )=\\frace^z-e^-ze^z+e^-z f(z)=tanh(z)=ez+e−zez−e−z
以下分别是Sigmoid函数和tanh函数的图像,左边为Sigmoid函数的图像,右边为tanh函数的图像:
Sigmoid函数的区间为 [ 0 , 1 ] \\left [ 0,1 \\right ] [0,1],而tanh函数的区间为 [ − 1 , 1 ] \\left [ -1,1 \\right ] [−1,1]。
若是使用sigmoid作为神经元的激活函数,则当神经元的输出为 1 1 1时表示该神经元被激活,否则称为未被激活。同样,对于激活函数是tanh时,神经元的输出为 1 1 1时表示该神经元被激活,否则称为未被激活。
2. 神经网络
2.1. 神经网络的结构
神经网络是由很多的神经元联结而成的,一个简单的神经网络的结构如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2kBGVAsn-1650777194062)(http://i.imgur.com/370RBZK.jpg)]
其中一个神经元的输出是另一个神经元的输入, + 1 +1 +1项表示的是偏置项。上图是含有一个隐含层的神经网络模型, L 1 L_1 L1层称为输入层, L 2 L_2 L2层称为隐含层, L 3 L_3 L3层称为输出层。
2.2. 神经网络中的参数说明
在神经网络中,主要有如下的一些参数标识:
- 网络的层数 n 1 n_1 n1。在上述的神经网络中 n l = 3 n_l=3 nl=3,将第 l l l层记为 L l L_l Ll,则上述的神经网络,输入层为 L 1 L_1 L1,输出层为 L 3 L_3 L3。
- 网络权重和偏置 ( W , b ) = ( W ( 1 ) , b ( 1 ) , W ( 2 ) , b ( 2 ) ) \\left ( \\mathbfW,\\mathbfb \\right )=\\left ( \\mathbfW^(1),\\mathbfb^(1),\\mathbfW^(2),\\mathbfb^(2) \\right ) (W,b)=(W(1),b(1),W(2),b(2)),其中 W i j ( l ) W^(l)_ij Wij(l)表示的是第 l l l层的第 j j j个神经元和第 l + 1 l+1 l+1层的第 i i i个神经元之间的连接参数, b i ( l ) b^(l)_i bi(l)标识的是第 l + 1 l+1 l+1层的第 i i i个神经元的偏置项。在上图中, W ( 1 ) ∈ ℜ 3 × 3 \\mathbfW^(1)\\in \\Re ^3\\times 3 W(1)∈ℜ3×3, W ( 2 ) ∈ ℜ 1 × 3 \\mathbfW^(2)\\in \\Re ^1\\times 3 W(2)∈ℜ1×3。
2.3. 神经网络的计算
在神经网络中,一个神经元的输出是另一个神经元的输入。假设 z i ( l ) z^(l)_i zi(l)表示的是第 l l l层的第 i i i个神经元的输入,假设 a i ( l ) a^(l)_i ai(l)表示的是第 l l l层的第 i i i个神经元的输出,其中,当 l = 1 l=1 l=1时, a i ( 1 ) = x i a^(1)_i=x_i ai(1)=xi。根据上述的神经网络中的权重和偏置,就可以计算神经网络中每一个神经元的输出,从而计算出神经网络的最终的输出 h W , b h_\\mathbfW,\\mathbfb hW,b。
对于上述的神经网络结构,有下述的计算:
z 1 ( 2 ) = W 11 ( 1 ) x 1 + W 12 ( 1 ) x 2 + W 13 ( 1 ) x 3 + b 1 ( 1 ) z^(2)_1=W^(1)_11x_1+W^(1)_12x_2+W^(1)_13x_3+b^(1)_1 z1(2)=W11(1)x1+W12(1)x2+W13(深度神经网络识别图形图像的基本原理(转)