前言:
神经网络的来源已经有大部分博主有详细的讲过了,但我发现整体框架中的细节很多博主都是大体讲了讲,所以作者今天想来好好详细的讲讲框架中的细节。
一:神经网络构架大体介绍
如下图所示:
这张图很生动的展现了我们神经网络的基本框架,我们会发现只要理解了这张图,就掌握了神经网络的大部分内容。
我们在图中不难看出整体架构包括层次结构,神经元,全连接,非线性四个部分,所以我们就依据它们来展开讲解。
二:详细介绍
(1)层次结构
在神经网络中神经网络的我们一般分成三个部分:
1:输入层(input layer)
2:隐藏层(hidden layer)
3:输出层(output layer)
ps:要注意的是,中间的隐藏层可以由多层。
(2)神经元
还是把上图给搬下来如下图:
我们可以看到图中每个层次中都有许多圆圆的球似的东西,这个东西就是在神经网络中的神经元,每一种层次中的神经元中的含量不太一样。
在输入层中的每一个神经元里面是你输入原始数据(一般称为X)的不同特征,比如x为一张图片,这张图片的像素是32*32*3,其中的每一个像素都是它的特征吧,所以有3072个特征对应的输入层神经元个数就是3072个,这些特征以矩阵的形式进行输入的。我们举个例子比如我们的输入矩阵为‘1*3072’(第一维的数字表示一个batch(batch指的是每次训练输入多少个数据)中有多少个输入;第二维数字中的就是每一个输入有多少特征。)
在隐藏层中的每一层神经元表示对x进行一次更新的数据,而每层有几个神经元(比如图中hidden1层中有四个神经元)表示将你的输入数据的特征扩展到几个(比如图中就是四个),就比如你的输入三个特征分别为年龄,体重,身高,而图中hidden1层中第一个神经元中经过变换可以变成这样‘年龄*0.1+体重*0.4+身高*0.5’,而第二个神经元可以表示成‘年龄*0.2+体重*0.5+身高*0.3’,每一层中的神经元都可以有不同的表示形式。
在输出层中的的神经元个数主要取决于你想要让神经网络干什么,比如你想让它做一个10分类问题,输出层的矩阵就可以是'1*10'的矩阵(第一维表示的与输入层表示数字相同,后面10就是10种分类)。
(3)全连接
我们依旧照搬原来的图:
我们看到的每一层和下一层中间都有灰色的线,这些线就被称为全连接(因为你看上一层中每个神经元都连接着下一层中的所有神经元),而这些线我们也可以用一个矩阵表示,这个矩阵我们通常称为‘权重矩阵’,用大写的W来表示(是后续我们需要更新的参数)。权重矩阵W的维数主要靠的是上一层进来数据的输入数据维数和下一层需要输入的维数,可以简单理解为上有一层有几个神经元和下一层有几个神经元,例如图中input layer中有3个神经元,而hidden1 layer中有4个神经元,中的W的维度就为‘3*4’,以此类推。(主要是因为我们全连接层的形式是矩阵运算形式,需要满足矩阵乘法的运算法则)
(4):非线性
在每层运算做完后,我们得数据不能直接输入到下一层计算中,需要添加一些非线性函数(大部分也可以叫做激活函数),常用的激活函数有relu,sigmoid,tanh(读者可以去查查看),就比如说在input layer 在hidden1 layer计算完后不能将数据直接传如hidden2 layer在这之间需要添加一个激活函数。
三:参考视频
1:其中的p5与p6:
不愧是计算机博士唐宇迪居然半天教会了我大学4年没学会的深度学习经典算法解析入门到实战课程,看不懂你打我!!!_哔哩哔哩_bilibili