一、神经网络中的网络层

在这里,我们将学习神经网络中的层,只要一层的原理学会了,更复杂的大型神经网络便不成问题。


神经网络 开源模型 神经网络 layer_深度学习


这是一个由三个神经元组成的隐藏层,我们将单个神经元放大来看,进行一个具体的分析


神经网络 开源模型 神经网络 layer_Powered by 金山文档_02


我们将数据输入,在神经元里面进行计算,第一个神经元经过计算输出值,第二个第三个同理,我们可以把每一个神经元看作是一个函数计算,经过计算后,三个神经元的计算结果组成了a向量,传输至下一层,当我们构建多层的神经网络的时候,不同的层将起到不同的作用。输入层一般被称为Layer 0。如今的神经网络一般可以达到几十层甚至上百层。为了区分不同的层,我们一般用上标加上方括号来标记不同的层。


神经网络 开源模型 神经网络 layer_深度学习_03

在这个神经元里面,由于这个神经元属于Layer 1,我们就用

神经网络 开源模型 神经网络 layer_人工智能_04

来标记属于这一个神经元的w和b。当我们看到上标方括号[1],这就表明这个数据是与第一层有关的相关量。

当我们的输出层接受到了我们输入的数据,便进行进一步的计算,将向量a输入到这个神经元里面,得出我们想要的数据


神经网络 开源模型 神经网络 layer_人工智能_05


我们还可以添加最后一步,如果我们想要的是一个二进制的值,我们还要为数据添加一个阈值,以便得到单纯的0、1结果。


神经网络 开源模型 神经网络 layer_神经网络 开源模型_06


二、神经网络的前向传播

举个例子,假设我们要识别我们手写的0和1的图片,输出成对应的数字,我们首先要把这张图片转化成亮度的矩阵。


神经网络 开源模型 神经网络 layer_神经网络_07


我们以此进行计算


神经网络 开源模型 神经网络 layer_深度学习_08


由于这个计算是从左到右的计算,这个过程也被称为是前向传播。

三、前向传播的具体代码实现

TensorFlow是我们深度学习常用的一个框架,另一个常用的框架是Pytorch,在这里我们先看一下TensorFlow,神经网络的特点是一个算法模型可以有不同的应用场景,我们以咖啡豆的温度和咖啡最后的品质为例进行说明


神经网络 开源模型 神经网络 layer_人工智能_09


假设我们已经有了一组数据,我们需要神经网络来帮我们推断在这个温度和持续时间下是否能产生好咖啡,这里就需要代码的实现


神经网络 开源模型 神经网络 layer_人工智能_10


我们首先创建一个x数组用来输入温度和持续时间,第二行的含义是创建一个隐藏层,有三个单元,激活函数采取s型函数,Dense代表着密集层,随着后面不断地学习我们会了解到其他的层,但是这里我们先用密集层。第三行的含义是我们得到的a1便是Layer1经过计算得到的向量。


神经网络 开源模型 神经网络 layer_Powered by 金山文档_11


这两行代码的含义同上,也很好理解。