神经网络
神经网络是一种模仿人脑神经元结构的计算模型,用于处理复杂的数据模式识别和预测问题。它由大量简单的处理单元(称为“神经元”或“节点”)组成,这些单元通过连接权重相互连接。神经网络可以学习从输入数据到输出结果之间的映射关系,从而实现对新数据的分类、回归或其他类型的预测。
神经网络的基本组成部分包括:
- 输入层:接收原始数据输入。
- 隐藏层:位于输入层和输出层之间的一层或多层,负责提取特征和进行转换。
- 输出层:提供最终预测或分类的结果。
神经网络通过调整各层间的连接权重来进行训练,以最小化预测结果与实际结果之间的差异。这一过程通常使用反向传播算法来实现。
神经网络广泛应用于许多领域,如计算机视觉、自然语言处理、语音识别等。近年来,随着深度学习技术的发展,包含多个隐藏层的深层神经网络已经取得了显著的成功。
神经网络分为很多层,通常来说,这些层位于前面的部分提取简单的特征,往后组合成为一些复杂的特征,最后识别整体,例如在图像识别中,前面的层可能只是识别一些简单的线条,然后识别人脸的器官,最后才是识别整个人脸
神经网络的层
神经网络中的层是其基本构建单元,每层执行特定的数据处理功能。以下是神经网络中常见的几种层及其作用:
- 输入层(Input Layer):
- 这是神经网络的第一层,用于接收原始输入数据。
- 输入层的节点数量通常与输入数据的特征数量相匹配。
- 隐藏层(Hidden Layers):
- 隐藏层位于输入层和输出层之间,负责对输入数据进行非线性变换和特征提取。
- 隐藏层可以有多个,每个隐藏层可以有不同的节点数量。
- 每个隐藏层的节点通常会应用一个激活函数(如ReLU、sigmoid等)来引入非线性特性。
- 输出层(Output Layer):
- 这是神经网络的最后一层,用于生成最终的预测或分类结果。
- 输出层的节点数量通常取决于任务类型(例如,对于多类别分类问题,输出层的节点数量等于类别数量)。
神经网络中除了输入和输出比较特殊,中间的隐藏层,虽然每一层之间可能都会有不同的节点,不同的激活函数,但是其计算原理都是一样的,只要会其中的一层,相信你就可以搭建出多层的神经网络
让我们看上面图中的描述,我们在很多时候不计算输入层,将其看作layer0,输入层提供4个数据让layer1计算,分别是197,184,136,214,layer1中有三个节点,每个节点都是用sigmoid作为激活函数,算出三个答案,0.3,0.7,0.7,这三个数就是layer1层的输出,作为layer2层的输入进行处理,这样继续下去知道最终的输出层就实现了神经网络,通常的输出层都只有一个节点,因为我们希望整个模型最终只有一个输出值(表示概率或其它)
这样从输入层到输出层的激活值的传递,被称为前向传播
在实际的应用中,我们并不需要自己写激活函数,搭建神经网络,有很多优秀的工具帮我们做好集成,我们进行调用即可,最常用的就是tensorflow和pytorch,这些工具我都会在后续进行详细讲解。