导读
神经网络是深度学习领域中的一种重要模型,它由多个神经元组成的层级结构构成。在神经网络中,反向传播(Back Propagation, BP)算法是一种常用的训练方法,通过反向传播误差信号,调整神经元之间的权重和偏置,从而优化网络的性能。
神经网络是一个大概念的范围,其下有很多不同方向的模型:
NLP(自然语言处理)模型是一种处理自然语言的模型,主要应用于文本分类、情感分析、语音识别等领域。常用的NLP模型包括:循环神经网络(RNN)、长短时记忆网络(LSTM)、卷积神经网络(CNN)等。这些模型通过对文本数据的预处理、特征提取和序列建模等方式,实现对文本数据的分析和处理。
BP(反向传播)模型是一种基于神经网络的监督式学习模型,主要应用于分类和回归问题。BP模型的核心是反向传播算法,通过在网络中反复迭代优化权重和偏置,最终实现对输入数据的预测。BP模型中常用的层包括输入层、输出层和隐藏层,其中每一层都包含若干个节点,节点之间通过权重相连。
因此,虽然NLP模型和BP模型都是神经网络模型,但它们的应用领域和网络结构有所不同。NLP模型主要应用于文本处理领域,而BP模型则更多地应用于分类和回归问题。
神经网络是一种受生物神经系统启发而设计的算法,(生物——电信号模型——数学模型【感知器】)
值得注意的是图中所示有一个参数是1,那是因为在得到结果u其实还有一个过程有一个类似偏离值的参数来进行数据的纠正

它包含多个层级,每一层都包含多个神经元。
每个神经元接收来自前一层神经元的输入,并将其加权并传递到下一层神经元。
这个过程通过一系列的矩阵乘法和非线性函数处理完成。最终,神经网络会产生一个输出结果,这个结果可以是数字分类、图像标签、自然语言翻译等。
在神经网络中,每个神经元都有一些权重,这些权重代表神经元学习到的知识。通过大量的数据训练神经网络,权重会不断地更新,使得网络能够更好地预测新的数据。
来一个简单的线性案例,来感受一下感知器如何处理信息:

接下来我们将介绍如何创建一个BP模型,并向其添加层以构建完整的网络结构。
首先,在创建BP模型之前,需要引入相关的库,如下所示:
from tensorflow.keras import models
from tensorflow.keras import layers
接下来,我们可以使用Sequential函数创建一个空白的BP模型,如下所示:
model=models.Sequential()
接着,我们需要向模型中添加层以构建完整的网络结构。在这里,我们将向模型中添加四层,分别是输入层、两个隐藏层和输出层。其中,输入层和隐藏层使用Dense函数定义,输出层使用softmax函数进行分类。
代码如下:
model.add(layers.Dense(name="dense1",units=1024, input_dim=784, kernel_initializer='normal', activation='relu'))
model.add(layers.Dense(name="dense2",units=512, kernel_initializer='normal', activation='relu'))
model.add(layers.Dense(name="dense3",units=256, kernel_initializer='normal', activation='relu'))
model.add(layers.Dense(name="output",units=10, activation='softmax'))
在以上代码中,Dense函数定义的参数包括层的名称、神经元数量、输入维度、权重初始化方式和激活函数等。其中,name参数用于给层起一个名称,方便后续查找和调用;units参数指定了该层神经元的数量;input_dim参数指定了输入数据的维度,即输入层的大小;kernel_initializer参数指定了权重的初始化方式,这里使用了正态分布进行初始化;activation参数指定了该层的激活函数,这里使用了relu函数。

最后,我们可以使用model.summary()函数输出模型的结构信息,以便更好地理解网络的构成和参数数量。代码如下:
model.summary()


通过以上步骤,我们成功创建了一个BP模型,并向其添加了输入层、两个隐藏层和输出层,完成了神经网络的结构构建。