深度学习概览
1. 深度学习的定义
1.1 深度学习&图神经网络
首先,我们需要明确深度学习的定义。深度学习是构建多层的神经网络,从而构建起一个大的模型,通过这个模型去学习复杂的特征表示。简单地说,这些层包含输入层、隐含层和输出层(特别像是LSTM),然而像是DCN这样的网络,实际的深度学习模型的层设可能更富创造性。 我认为深度学习可以概括为这样的一个流程:输入就像是神经信号(外部刺激),通过中间的神经元和通路进行加工和处理,最终化为模型(人体)的反应。深度学习正是借鉴了人体神经元处理信号的过程。 在数学意义上,深度学习的全流程至少涉及了所有的大一公共数学课。您需要通过处理权重矩阵和数据向量(线性代数)、梯度下降法计算(微积分)、不确定性计算(概率论)。通常它是这样一个流程:通过确定阈值,将输入加权求和,计算激活函数值,送入多层神经网络;前向传播,多层神经网络继续加权(和偏置)计算;计算损失函数,在输出层,比如通过均方误差(MSE)、交叉熵损失来计算;反向传播,在输出层,基于链式法则计算梯度,送还多层神经网络来调整权重(类似于控制系统的反馈),以便获得更好的结果;对优化器(优化算法)进行改进,比如Baseline用到的Adam优化器;进行正则化,防止过拟合;批处理和迭代,每一批被称为一个epoch;进行超参数调优,比如贝叶斯超参数优化。当然,实际的深度学习模型改进是一个更有趣的过程,也涉及更多的数学过程。
1.2 机器学习和深度学习的关系
机器学习包含深度学习,深度学习是机器学习的一个子方向。它涉及使用神经网络,特别是深度神经网络(即具有多层隐藏层的神经网络)来进行学习和预测。这个子方向处理大量数据和复杂模式识别方面表现出色,尤其在图像识别、自然语言处理和语音识别等领域取得了显著的成果。
2. 深度学习的训练流程
2.1 数学基础
2.1.1 梯度下降法
基本原理
梯度下降法的核心思想是沿着函数的梯度(即函数在各点的方向导数)的反方向,以求找到函数的局部极小值。在机器学习中,我们通常用它来最小化损失函数。
数学表达
假设我们有一个目标函数 J(θ),其中 θ 是参数向量。梯度下降的更新规则可以表示为: θ = θ - α∇J(θ) 其中 α 是学习率,∇J(θ) 是 J(θ) 的梯度。
步骤
a) 初始化参数 θ b) 计算当前参数下的梯度 ∇J(θ) c) 更新参数: θ = θ - α∇J(θ) d) 重复步骤 b 和 c,直到收敛或达到预定的迭代次数
学习率 α
学习率决定了每次参数更新的步长。太大可能会导致算法发散,太小则会导致收敛速度过慢。选择合适的学习率是一个重要的超参数调整过程。