神经网络与深度学习入门指南

分类: 算法&模型训练

神经网络与深度学习入门指南

目录

  1. 神经网络概述
  2. 非线性变换与激活函数
  3. 神经网络的基本结构
  4. 神经网络的训练原理
  5. 梯度下降算法
  6. 反向传播算法
  7. 过拟合问题
  8. 常见的神经网络类型

一、神经网络概述

1.1 线性函数的局限性

线性函数是神经网络的基础组件,但存在固有的局限性。以线性回归模型为例,其本质是一个拟合自变量与因变量关系的函数。由于线性函数只能表示直线关系,因此函数预测值与真实数值之间必然存在误差,我们只能通过调整参数来使这个误差尽量减小。

线性函数的一般形式可以表示为:

$$y = wx + b$$

其中,$w$ 是权重(斜率),$b$ 是偏置(截距)。这种线性关系虽然简单直观,但无法捕捉变量之间的复杂非线性关系。

1.2 神经网络的本质

神经网络本质上是由线性函数非线性激活函数构成的复杂非线性函数。神经网络的核心优势在于其处理非线性关系的能力,这也是它能够解决复杂问题的根本原因。

神经网络之所以强大,是因为它可以通过堆叠多层神经元来拟合任意复杂的函数关系。这种强大的表达能力使神经网络成为处理图像识别、自然语言处理、语音识别等复杂任务的理想工具。


二、非线性变换与激活函数

2.1 为什么要引入非线性

如果神经网络只包含线性变换,那么无论网络有多少层,最终都可以被简化为一层线性变换,失去了深层网络的优势。因此,非线性变换是神经网络能够拟合复杂函数的关键

2.2 常见的激活函数

激活函数(Activation Function)是引入非线性的关键组件。常见的激活函数包括:

激活函数 公式 特点
Sigmoid $f(x) = \frac{1}{1 + e^{-x}}$ 输出范围(0,1),常用于二分类
Tanh $f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$ 输出范围(-1,1),零中心化
ReLU $f(x) = \max(0, x)$ 计算简单,缓解梯度消失
Leaky ReLU $f(x) = \max(0.01x, x)$ 解决ReLU的"死神经元"问题

2.3 非线性函数的作用

通过在线性变换后加入激活函数,可以将线性函数转变为非线性函数。数学表达式为:

$$f(x) = g(wx + b)$$

其中,$g(\cdot)$ 是激活函数。通过这种变换,神经网络能够拟合各种复杂的非线性关系。

对于多个输入的情况:

$$f(x_1, x_2) = g(w_1 x_1 + w_2 x_2 + b)$$

通过叠加多层非线性变换,网络的表达能力进一步增强:

$$f(x_1, x_2) = g(w_3 \cdot g(w_1 x_1 + w_2 x_2 + b_1) + b_2)$$

这种多层结构可以画出更加复杂的曲线,使模型更贴合真实数据。


三、神经网络的基本结构

3.1 网络层次结构

神经网络通常由三部分组成:输入层隐藏层输出层

输入层 → 隐藏层 → 输出层
  • 输入层(Input Layer):接收外部输入数据,每个神经元代表一个输入特征
  • 隐藏层(Hidden Layer):介于输入层和输出层之间,可以有任意多层,每层包含多个神经元
  • 输出层(Output Layer):输出最终的预测结果

3.2 神经元的结构

每个神经元的基本计算过程如下:

每个神经元的输出 = 激活函数(输入 × 权重 + 偏置)

数学表达式为:

$$y = g\left(\sum_{i} w_i x_i + b\right)$$

其中:

  • $x_i$ 是输入特征
  • $w_i$ 是权重(Weight)
  • $b$ 是偏置(Bias)
  • $g(\cdot)$ 是激活函数

3.3 前向传播

数据从输入层经过隐藏层传递到输出层的过程称为前向传播(Forward Propagation)。一个典型的前向传播过程可以表示为:

$$y = g(w_3 \cdot g(w_1 x_1 + w_2 x_2 + b_1) + b_2)$$

3.4 深层神经网络

通过增加隐藏层的数量和每层神经元的数量,可以构建更深、更复杂的神经网络。深层网络具有更强的特征提取和表示能力,能够学习数据的多层次抽象特征。


四、神经网络的训练原理

4.1 训练目标

神经网络训练的核心目标是:根据所有已知的样本数据,找出最优的权重 $W$ 和偏置 $b$,使模型预测值尽可能接近真实值

4.2 损失函数

损失函数(Loss Function) 是衡量模型预测值与真实值之间差距的指标。常见的损失函数包括:

4.2.1 均方误差(Mean Squared Error, MSE)

适用于回归任务:

$$L = \frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y}_i)^2$$

或者更常见的形式(带系数):

$$L = \frac{1}{2n} \sum_{i=1}^{n}(y_i - \hat{y}_i)^2$$

4.2.2 交叉熵损失(Cross-Entropy Loss)

适用于分类任务:

$$L = -\sum_{i} y_i \log(\hat{y}_i)$$

4.3 训练过程概述

神经网络的训练过程可以概括为以下几个步骤:

  1. 初始化:随机初始化权重和偏置
  2. 前向传播:根据当前参数计算预测值
  3. 计算损失:比较预测值与真实值,计算损失值
  4. 反向传播:计算损失函数对每个参数的梯度
  5. 参数更新:根据梯度更新参数
  6. 重复步骤2-5:直到损失值达到预设阈值或训练轮次结束

五、梯度下降算法

5.1 基本原理

梯度下降算法(Gradient Descent) 是优化神经网络参数的核心方法。其基本思想是:沿着损失函数梯度的反方向更新参数,使损失函数值逐渐减小

5.2 梯度的概念

梯度是由损失函数对各个参数的偏导数组成的向量。对于函数 $L(w, b)$,梯度可以表示为:

$$\nabla L = \left[\frac{\partial L}{\partial w}, \frac{\partial L}{\partial b}\right]$$

5.3 参数更新规则

参数更新的公式为:

$$w = w - \alpha \cdot \frac{\partial L}{\partial w}$$ $$b = b - \alpha \cdot \frac{\partial L}{\partial b}$$

其中 $\alpha$ 是学习率(Learning Rate),它控制参数更新的步长。

  • 学习率过小:收敛速度慢,容易陷入局部最优
  • 学习率过大:可能导致震荡或不收敛

5.4 梯度下降的变体

算法 特点
批量梯度下降(Batch GD) 使用全部数据计算梯度,梯度准确但计算量大
随机梯度下降(SGD) 每次使用一个样本更新参数,效率高但不稳定
小批量梯度下降(Mini-batch GD) 每次使用一小批样本,是工程中常用的方法

六、反向传播算法

6.1 算法概述

反向传播(Backpropagation) 是计算神经网络梯度的核心算法。它利用链式法则,从输出层开始,依次计算每个参数对损失函数的梯度。

6.2 计算过程

反向传播的计算过程遵循以下逻辑链:

输入x → 隐藏层a → 输出层y → 损失值L

具体步骤如下:

  1. 前向传播:根据输入 $x$ 计算隐藏层 $a$ 和输出层 $y$
  2. 计算输出层梯度:计算损失函数对输出层输出的偏导数
  3. 反向传递:依次计算隐藏层、权重、偏置的梯度
  4. 参数更新:使用计算得到的梯度更新参数

6.3 链式法则

反向传播的核心是链式法则(Chain Rule)。对于复合函数:

$$y = g(w \cdot x + b)$$

参数 $w$ 的偏导数需要逐层计算:

$$\frac{\partial L}{\partial w} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial w}$$

这种计算方式使得梯度能够有效地从输出层传播到输入层,因此称为"反向传播"。

6.4 训练轮次

神经网络需要经过多轮训练(Epoch)才能收敛。每一轮训练包括:

  1. 使用当前参数进行前向传播
  2. 计算损失值
  3. 通过反向传播计算梯度
  4. 更新参数

这个过程会不断重复,直到损失值降至可接受的范围或达到预设的训练轮次。


七、过拟合问题

7.1 什么是过拟合

过拟合(Overfitting) 是机器学习中常见的问题,指模型在训练数据上表现很好,但在测试数据(或新数据)上表现较差。

过拟合的本质是模型"记住"了训练数据的噪声和细节,而没有学习到数据的一般规律。

7.2 过拟合的表现

现象 说明
训练误差很小 模型在训练集上拟合得很好
测试误差很大 模型在新数据上表现差
模型过于复杂 参数过多,拟合能力过强

7.3 缓解过拟合的方法

方法 说明
增加数据量 更多样本有助于学习真实规律
正则化(L1/L2) 惩罚大的权重,限制模型复杂度
Dropout 随机丢弃神经元,减少共适应
早停(Early Stopping) 监控验证集性能,及时停止训练
数据增强 通过变换增加训练样本多样性

八、常见的神经网络类型

8.1 前馈神经网络(Feedforward Neural Network)

最基础的神经网络类型,信息从输入层向前流动到输出层,没有循环连接。适用于基本的分类和回归任务。

8.2 卷积神经网络(Convolutional Neural Network, CNN)

专门用于处理网格结构数据(如图像)的神经网络。核心操作是卷积,能够有效提取空间特征。

主要特点

  • 局部连接:每个神经元只与上一层的局部区域相连
  • 权值共享:同一层的神经元共享卷积核参数
  • 池化操作:降维,减少计算量

应用领域:图像分类、目标检测、图像分割等

8.3 循环神经网络(Recurrent Neural Network, RNN)

专门用于处理序列数据的神经网络。与前馈神经网络不同,RNN 具有"记忆"功能,能够记住之前输入的信息。

结构特点

  • 隐藏层具有自连接(循环连接)
  • 当前隐藏层的输出取决于当前输入和上一隐藏层的状态

数学表达式

$$h_t = g(W \cdot x_t + U \cdot h_{t-1} + b)$$

其中 $h_t$ 是时刻 $t$ 的隐藏状态,$h_{t-1}$ 是上一时刻的隐藏状态。

应用领域

  • 自然语言处理(文本分类、机器翻译、情感分析)
  • 语音识别
  • 时间序列预测

8.4 长短期记忆网络(Long Short-Term Memory, LSTM)

LSTM 是 RNN 的一种变体,能够解决标准 RNN 的长程依赖问题梯度消失问题

核心组件

  • 遗忘门:决定丢弃哪些信息
  • 输入门:决定更新哪些信息
  • 输出门:决定输出哪些信息

8.5 Transformer

近年来最流行的神经网络架构,完全基于注意力机制(Attention Mechanism),摒弃了循环结构。

主要特点

  • 并行计算,训练效率高
  • 能够捕捉长距离依赖关系
  • 是 BERT、GPT 等大语言模型的基础

总结

神经网络是深度学习的核心组件,其基本原理可以概括为:

  1. 非线性变换:通过激活函数引入非线性,使网络能够拟合复杂函数
  2. 层次结构:通过多层网络逐层提取特征,实现从低级到高级的表示学习
  3. 参数学习:通过梯度下降和反向传播算法自动学习最优参数
  4. 泛化能力:通过正则化等技术防止过拟合,使模型在新数据上也能表现良好

理解这些基本概念是深入学习深度学习的基础。随着技术的发展,神经网络在计算机视觉、自然语言处理、语音识别等众多领域取得了突破性进展,已成为人工智能时代的核心技术之一。


本文档根据课堂笔记整理,内容涵盖神经网络与深度学习的基础概念、训练原理和常见网络类型。