Skip to main content

深度学习基础


感知机 (Perceptron)

通俗例子: 想象一个非常简单的**“决策机器人”**,它要根据一些输入信息来做一个二选一的决定(比如“去”或“不去”,“是”或“否”)。

  1. 收集信息 (输入 Inputs): 机器人收集多个信息片段,比如:

    • 天气好不好?(x₁)
    • 朋友去不去?(x₂)
    • 今天心情如何?(x₃) 这些信息可以是数值(比如天气评分1-10)或者0/1的布尔值。
  2. 给信息赋予权重 (Weights): 机器人对每个信息的重要性有不同的看法:

    • 天气可能很重要 (w₁ = 0.5)
    • 朋友去不去非常重要 (w₂ = 0.8)
    • 心情一般重要 (w₃ = 0.3) 这些权重表示了每个输入对最终决策的影响程度。
  3. 加权求和并加上偏好 (Weighted Sum + Bias): 机器人把每个信息和它的权重相乘,然后加起来,得到一个总分。它可能还有一个固有的“偏好”或“门槛”(偏置项 bias,b)。

    • z = (x₁ * w₁) + (x₂ * w₂) + (x₃ * w₃) + b
  4. 做决策 (激活函数 Activation Function - 阶跃函数):

    • 如果总分 z 大于某个阈值(或者简单地说,如果 z > 0),机器人就决定“去”(输出1)。
    • 如果总分 z 小于或等于某个阈值(或者 z ≤ 0),机器人就决定“不去”(输出0或-1)。 这个决策过程就像一个开关,要么开要么关。

感知机就是这样一个简单的二分类模型。

结合技术点:

  • 核心思想 (Core Idea):
    • 由 Frank Rosenblatt 于1957年提出,是最早的人工神经网络模型之一。
    • 一个线性二分类器。它试图找到一个超平面 (hyperplane) 来分隔两种不同类别的数据点。
    • 模拟了单个神经元的基本行为:接收多个输入信号,根据这些信号的加权和以及一个激活函数来决定是否“激活”(输出)。
  • 数学表示 (Mathematical Representation):
    • 输入 (Inputs): x = (x₁, x₂, ..., xₙ) (一个特征向量)
    • 权重 (Weights): w = (w₁, w₂, ..., wₙ) (一个权重向量)
    • 偏置 (Bias): b (一个标量)
    • 加权和 (Weighted Sum / Net Input): z = w · x + b = Σ(wᵢ * xᵢ) + b
    • 激活函数 (Activation Function): 通常是符号函数 (sign function)阶跃函数 (step function)
      • output = 1 if z > θ (或 z > 0 如果 θ 被吸收到 b 中)
      • output = 0 (或 -1) if z ≤ θ (或 z ≤ 0)
    • 模型的输出是一个离散的类别标签。
  • 学习算法 (Perceptron Learning Algorithm):
    • 一种迭代算法,用于调整权重 w 和偏置 b
    • 过程:
      1. 初始化权重 w 和偏置 b (通常为0或小的随机数)。
      2. 对于训练集中的每个样本 (x, y_true) (其中 y_true 是真实标签): a. 计算模型的预测输出 y_pred。 b. 如果 y_pred ≠ y_true (预测错误): * 更新权重: w := w + η * (y_true - y_pred) * x * 更新偏置: b := b + η * (y_true - y_pred) (其中 η 是学习率,y_truey_pred 通常取 +1 和 -1)
      3. 重复步骤2,直到所有样本都被正确分类,或者达到最大迭代次数。
  • 目的/用途 (Purpose / Use Cases):
    • 解决线性可分 (linearly separable) 的二分类问题。
    • 例如,逻辑门 AND、OR 的实现。
  • 优点:
    • 简单,易于理解和实现。
    • 如果数据是线性可分的,感知机学习算法保证在有限次迭代后收敛到一个解。
  • 缺点:
    • 只能解决线性可分问题。 对于线性不可分的问题(如异或 XOR 问题),它无法找到一个有效的超平面来分隔数据。这是感知机的一个重大局限。
    • 如果数据不是严格线性可分的,算法可能不会收敛,权重会持续振荡。
    • 输出是离散的,不能提供概率信息。
    • 阶跃激活函数不可导(或导数为0),不适用于基于梯度的优化方法(如反向传播)。

多层感知机 (Multilayer Perceptron, MLP)

通俗例子: 想象之前的“决策机器人”变得更聪明了,它不再是简单地把所有信息加权求和然后做一次决策,而是组建了一个“决策委员会”

  1. 第一层决策员 (隐藏层 Hidden Layer):

    • 不是直接对原始信息(天气、朋友、心情)做最终决定,而是先有几个“初级决策员”。
    • 每个初级决策员也像单个感知机一样,接收原始信息,有自己的权重和偏好,然后做出一个初步的“判断”或提取一个“中间特征”。
    • 例如:
      • 决策员A 可能专门判断“今天是否适合户外活动?”(综合天气和心情)。
      • 决策员B 可能专门判断“社交需求是否强烈?”(综合朋友和心情)。
    • 这些初级决策员的输出不再是简单的0/1,而是可能用更平滑的函数(如Sigmoid或ReLU)来表示“判断的强度”或“特征的激活程度”。
  2. 更高层决策员 (可以有多层隐藏层):

    • 初级决策员的判断结果,会作为输入信息传递给“中级决策员”。
    • 中级决策员再根据这些“中间特征”进行更复杂的判断。
    • 这样可以一层层地传递和组合信息。
  3. 最终决策者 (输出层 Output Layer):

    • 最高层的决策员(或者一个决策小组)根据前面各层传递上来的高度概括和抽象的“特征”,做出最终的决定(比如“去”、“不去”,或者更复杂的分类,比如“去公园”、“去电影院”、“待在家”)。

多层感知机就是通过引入一个或多个“隐藏层”来克服单个感知机的线性限制。

结合技术点:

  • 核心思想 (Core Idea):
    • 一种前馈神经网络 (Feedforward Neural Network),由至少三层节点组成:一个输入层 (Input Layer),一个或多个隐藏层 (Hidden Layer(s)),以及一个输出层 (Output Layer)
    • 每个节点(除了输入节点)都是一个带有非线性激活函数的神经元(通常不再是阶跃函数,而是如 Sigmoid, Tanh, ReLU 等平滑可导的函数)。
    • 通过在层与层之间引入非线性激活函数,MLP 能够学习和表示非线性关系,从而解决线性不可分的问题(如XOR问题)。
    • 信息从输入层单向流向输出层,没有反馈环路(与循环神经网络RNN不同)。
  • 数学表示 (Mathematical Representation - 简化版,一个隐藏层):
    • 输入层到隐藏层:
      • 隐藏层第 j 个神经元的净输入: z_j^(h) = w_j^(h) · x + b_j^(h)
      • 隐藏层第 j 个神经元的激活输出: a_j^(h) = g(z_j^(h)) (其中 g 是非线性激活函数,如Sigmoid, ReLU)
    • 隐藏层到输出层:
      • 输出层第 k 个神经元的净输入: z_k^(o) = w_k^(o) · a^(h) + b_k^(o) (其中 a^(h) 是隐藏层所有神经元的激活输出向量)
      • 输出层第 k 个神经元的激活输出: y_k_pred = f(z_k^(o)) (其中 f 是输出层的激活函数,如Sigmoid用于二分类概率,Softmax用于多分类概率,线性函数用于回归)
  • 学习算法 (反向传播 Backpropagation):
    • MLP通常使用反向传播算法结合梯度下降 (Gradient Descent) 及其变种(如Adam, SGD with momentum)来训练。
    • 过程:
      1. 前向传播 (Forward Pass): 将输入数据通过网络,计算每一层的输出,直到得到最终的预测结果。
      2. 计算损失 (Loss Calculation): 将预测结果与真实标签进行比较,计算损失函数的值(如交叉熵损失、均方误差)。
      3. 反向传播 (Backward Pass): 从输出层开始,将损失逐层向后传播,利用链式法则计算损失函数对网络中每个权重和偏置的梯度。
      4. 参数更新 (Parameter Update): 根据计算出的梯度和选择的优化算法,更新网络中的权重和偏置,以减小损失。
      5. 重复以上步骤,直到损失收敛或达到预设的训练轮数。
  • 目的/用途 (Purpose / Use Cases):
    • 分类任务: 图像识别、文本分类、情感分析等。
    • 回归任务: 预测房价、股票价格等。
    • 能够学习复杂的非线性映射。
  • 优点:
    • 通用近似定理 (Universal Approximation Theorem): 理论上,具有一个足够宽的隐藏层(或多个隐藏层)的MLP可以以任意精度近似任何连续函数。这意味着它具有强大的表示能力。
    • 能够解决线性不可分的问题。
    • 是许多更复杂深度学习模型的基础。
  • 缺点:
    • 容易过拟合: 如果模型过于复杂或训练数据不足,MLP可能会在训练数据上表现很好,但在未见过的数据上表现差。需要正则化技术(如L1/L2正则化、Dropout)来缓解。
    • 需要调整的超参数多: 网络结构(层数、每层神经元数量)、激活函数的选择、学习率、优化器选择等。
    • 可能陷入局部最优: 梯度下降算法可能会陷入损失函数的局部最小值而不是全局最小值(尽管在实践中,对于高维度的神经网络,这通常不是主要问题)。
    • 训练可能较慢: 尤其是对于深层和宽层的网络。
    • “黑箱”模型: 对于复杂的MLP,其内部决策过程可能难以解释。

理解感知机是理解MLP的起点,而MLP则是通往更复杂的神经网络结构(如卷积神经网络CNN、循环神经网络RNN、Transformer等)的重要桥梁。、