深度学习——神经网络(neural network)详解(一). 带手算步骤,步骤清晰0基础可看
我将以最简单,基础的形式说明神经网络的训练过程。
搭配以下文章进行学习:
深度学习——卷积神经网络(convolutional neural network)CNN详解(一)——概述. 步骤清晰0基础可看
深度学习——卷积神经网络(convolutional neural network)CNN详解(二)——前向传播与反向传播过程(特征提取+预测+反向传播更新参数). 步骤清晰0基础可看
深度学习——神经网络(neural network)详解(一). 带手算步骤,步骤清晰0基础可看
深度学习——神经网络(neural network)详解(二). 带手算步骤,步骤清晰0基础可看
机器学习/深度学习——梯度下降法(Gradient descent)详解. 步骤清晰 0基础可看
一、训练神经网络概述
训练神经网络是利用大量已知数据(训练数据)来调整网络参数(权重和偏置),使网络能够学习输入数据到输出数据的映射关系的过程。
基础的神经网络可以分为,输入层(Input Layer),隐藏层 (Hidden Layers),输出层(Output Layer),如下图所示。
在这之前,我们先来了解几个概念。
1.输入层 (Input Layer): 输入层是神经网络的第一层,负责接收网络的输入数据。每个神经元对应一个输入特征。
2.输出层 (Output Layer): 输出层是神经网络的最后一层,负责产生最终的预测结果。在分类问题中,输出层的神经元数量通常等于类别数。
3.隐藏层 (Hidden Layers): 隐藏层位于输入层和输出层之间,可以有多个。隐藏层的目的是提取输入数据的特征并进行组合,以便于网络学习复杂的模式。
4.神经元 (Neurons): 神经元是网络的基本单元,每个神经元接收来自前一层神经元的输出,对它们进行加权求和,然后可能通过一个激活函数来生成自己的输出。
5.权重 (Weights): 权重是神经元之间连接的强度,它们决定了信号在网络中的传递程度。权重是网络在训练过程中学习得到的参数。
6.偏置 (Biases): 偏置是加在神经元输入上的一个常数项,它为模型提供了平移的自由度,使得模型可以更好地拟合数据。
7.激活函数 (Activation Function): 激活函数是一个数学函数,用于在神经元的输出上引入非线性。这使得神经网络能够学习和模拟复杂的函数映射。常见的激活函数包括Sigmoid、Tanh、ReLU等。
激活函数其实就是把上一层的输出转变到你想要的范围内,是一个映射函数,方便进行下一层的操作。比如归一化就是一个映射操作。
8.损失函数 (Loss Function):损失函数用于衡量模型的预测输出与实际标签之间的差异。它是评估模型性能的指标,常见的损失函数包括均方误差、交叉熵损失等。
神经网络图示详解
1. 输入层
输入层有两个神经元,分别表示输入特征, x 1 x_{1} x1 , x 2 x_{2} x2。
x = [ x 1 x 2 ] x = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} x=[x1x2]
2. 隐藏层
隐藏层有三个神经元,分别表示 h 1 h_{1} h1 , h 2 h_{2} h2 , h 3 h_{3} h3 。输入层和隐藏层之间的连接具有权重 w 1 w_{1} w1 到 w 6 w_{6} w6,并且每个隐藏层神经元都有一个偏置 b b b。这就是网络的参数,我们需要更新的就是权重 w w w和偏置 b b b这些网络参数,使这个神经网络能够越来越适应我们的任务,最后能够对新输入做出较为准确的预测判断。
对于隐藏层的每个神经元,计算如下:
-
对于第一个隐藏层神经元 h 1 h_{1} h1:
h 1 = σ ( w 1 x 1 + b 1 + w 4 x 2 + b 4 ) h_1 = \sigma(w_{1}x_1 + b_1+ w_{4}x_2 + b_4) h1=σ(w1x1+b1+w4x2+b4) -
对于第二个隐藏层神经元 h 2 h_{2} h2:
h 2 = σ ( w 2 x 1 + b 2 + w 5 x 2 + b 5 ) h_2 = \sigma(w_{2}x_1 + b_2+ w_{5}x_2 + b_5) h2=σ(w2x1+b2+w5x2+b5) -
对于第三个隐藏层神经元 h 3 h_{3} h3:
h 3 = σ ( w 3 x 1 + b 3 + w 6 x 2 + b 6 ) h_3 = \sigma(w_{3}x_1 + b_3+ w_{6}x_2 + b_6) h3=σ(w3x1+b3+w