训练与优化

Tutorial 11 – 求知若渴:主动学习(Active Learning)

Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer Learning) 针锋相对:对抗学习(Adversarial Learning) […]

Tutorial 11 – 求知若渴:主动学习(Active Learning) Read More »

Tutorial 10 – 百折不挠:强化学习(Reinforcement Learning)

Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer Learning) 针锋相对:对抗学习(Adversarial Learning)

Tutorial 10 – 百折不挠:强化学习(Reinforcement Learning) Read More »

欠拟合,过拟合与正则

1、优化过程中过拟合与欠拟合 过拟合和欠拟合模型是深度学习模型在训练过程中比较容易出现的不好的现象。 当模型的表现能力弱于事件的真实表现时,会出现欠拟合现象。某个非线性模型合适的解如图1(a)所示。如果用线性模型去训练这个非线性问题,自然难以得到合适的解,如图1(b)所示。 相反,当模型的表现能力强于事件的真实表现时,会出现过拟合现象,过拟合现象是指模型为了追求训练集的准确率,过多地学习一些非普遍的特征,导致模型的泛化能力下降。虽然能很好地拟合训练集,但是在测试集上表现不佳。正常拟合的模型如图2(a)所示,过拟合的模型如图2(b)所示。 影响模型过拟合和欠拟合的原因主要有两个:数据(数据量大小)和模型容量(模型复杂度),其关系见表1。 数据简单 数据复杂 模型容量低 正常 欠拟合 模型容量高 过拟合 正常 表1 欠/过拟合现象产生原因 从数据量的角度理解:当用于训练模型的数据太少时容易出现过拟合现象;数据太多容易出现欠拟合现象。这个现象可以通过生活中的例子来解释:假设一个大学生正在努力准备期末考试。如果用于考试的备考题库(训练集)太简单,学生可能试图通过死记硬背考题的答案来做准备。他甚至可以完全记住过去考试的答案,实际上这样做他并没有真的理解题目。这种记住训练集中每个样本的现象被称之为过拟合。相反,如果用于考试的备考题库太多太难,超出学生记忆过的范围,同时学生也很难理解题目之间相关性以及分析数据的特征。这种训练集太难,模型无法胜任处理工作的现象被称之为欠拟合。 从模型复杂程度的角度理解:为什么一个大学生会想到背答案?如果换个幼儿园的小朋友来做题还会想到背答案这个方法吗?其实,一个大学生可以类比成一个复杂的模型,而一个幼儿园小朋友可以类比成一个简单的模型。由此可以轻易地判断出,一个复杂的模型更容易出现过拟合现象,因为它更容易记住训练集中的每个样本而不是学习到普适的特征。 最后,训练误差和泛化误差是衡量模型拟合效果的两个重要指标。首先解释一下什么是训练误差和泛化误差: (1)训练误差(Training Error),指模型在训练数据集上计算得到的误差。

欠拟合,过拟合与正则 Read More »

优化算法与优化器

当解决房价预测问题时,首先制作一个训练数据集,在房价的例子中,收集了过去两年的房子交易记录。房子的数据(面积、地域、采光等)作为训练集,对应的房子成交价格作为真实值。这些训练数据会随着时间的积累越来越多。然后可以创建一个神经网络模型或其他机器学习模型,先随机初始化其中的权重和偏置,再将训练数据送进模型,得到一个计算结果,即估计值。此时,由于参数是随机初始化的,这个预估值大概率不准确;接下来使用损失函数进行真实值与预估值的比较,根据比较的结果反馈,来更新新的模型权重,这个更新权重的方法被称为优化算法。 优化算法是机器学习领域的一个核心任务,简单说就是通过调整模型的参数来最小化或最大化某个目标函数(通常是损失函数或效用函数)。为了实现这一目标,研究人员和工程师们开发了多种优化算法,这些算法可以大致分为几个类别,包括梯度下降及其变体、进化算法、以及基于统计的方法。这些算法在不同的情境和对不同类型的问题中各有优势。 进化算法,如遗传算法、免疫算法、鸟群算法、鲸鱼算法、灰狼算法、蝙蝠算法、蚁群算法、模拟退火等等。这些算法一般模仿生物进化过程中的自然选择、遗传、变异等机制来迭代地改进模型参数。这些算法属于启发式搜索算法,一般用于全局优化问题。 基于统计的优化算法,如期望最大化(EM)、马尔可夫链蒙特卡罗(MCMC)方法等等,采用统计学原理来引导优化过程。例如,EM算法通过交替计算期望和最大化步骤来估计模型参数,尤其适用于包含隐变量的情况。MCMC通过构造马尔可夫链生成符合目标分布的样本序列,广泛应用于贝叶斯统计中后验分布的估计。这些算法在处理高维空间和存在多个局部最优解的复杂问题时特别有用,但是计算复杂度一般非常昂贵。 在深度学习领域,最常用的优化算法实际上是梯度下降及其变体。梯度下降是一种求解可微分函数局部最小值的迭代算法。简单说,它的工作原理是计算目标函数关于参数的梯度(即斜率),然后沿着梯度下降的方向调整参数,逐步逼近最小值点。由于其简单、高效且易于理解的特点,梯度下降成为了深度学习和其他机器学习领域中最基础和最广泛使用的优化算法。梯度下降及其变体之所以在机器学习中至关重要,是因为它们为如何有效地训练模型提供了可行的路径,特别是在处理非常大的数据集和非常复杂的模型结构时。这些算法的进一步发展和改进将继续是机器学习和人工智能领域研究的一个活跃方向。下面将重点对梯度下降算法进行展开讲解。 1、梯度下降算法 在深度学习领域使用的优化算法一般是梯度下降算法,具体解释如下: 从某种程度上,读者可以把梯度理解成某函数偏导数的集合,例如函数\(f(x,y)\)的梯度为: \(\mathrm{grad}f(x,y)=\left(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}\right)\) 当某函数只有一个自变量时,梯度实际上就是导数的概念。 需要注意的是,梯度是一个向量,既有大小又有方向。梯度的方向是最大方向导数的方向,而梯度的模是最大方向导数的值。另外,梯度在几何上的含义是函数变化率最大的方向。沿着梯度向量的方向前进,更容易找到函数的最大值,反过来说,沿着梯度向量相反的方向前进是梯度减少最快的方向,也就是说更容易找到函数的最小值。 例如,维基百科上用来说明梯度的图片特别典型,说明非常形象,所以引来供读者学习。 【例1】设函数\(f(x,y)=-(\cos2x+\cos2y)^{2}\),则梯度\(\mathrm{grad}f(x,y)\)的几何意义可以描述为在底部平面上的矢量投影。每个点的梯度是一个矢量,其长度代表了此点的变化速度,而方向表示了其函数增长速率最快的方向。通过梯度图可以很清楚地看到,在矢量长的地方,函数增长速度就快,而其方向代表了增长最快的方向,梯度图如图1所示。 现在回到损失\(\ell\)的概念,\(\ell\)也是一种函数(例如平方差损失函数),因此要求\(\ell\)的最小值,实际上只需要沿着\(\ell\)梯度的反方向寻找即可,这就是梯度下降的概念。其公式表示为: \(\mathrm{grad}=\frac{\partial\ell}{\partial\boldsymbol{\omega}_{t-1}}\) \(\omega_t=\omega_{t\cdot1}-\eta\times\mathrm{grad}\)

优化算法与优化器 Read More »

Tutorial 09 – 殊途同归:联邦学习(Federated Learning)

Learning Methods of Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer

Tutorial 09 – 殊途同归:联邦学习(Federated Learning) Read More »

Tutorial 08 – 众志成城:集成学习(Ensemble Learning)

Learning Methods of Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer

Tutorial 08 – 众志成城:集成学习(Ensemble Learning) Read More »

Tutorial 07 – 针锋相对:对抗学习(Adversarial Learning)

Learning Methods of Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer

Tutorial 07 – 针锋相对:对抗学习(Adversarial Learning) Read More »

Tutorial 06 – 举一反三:迁移学习(Transfer Learning)

Learning Methods of Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer

Tutorial 06 – 举一反三:迁移学习(Transfer Learning) Read More »

Tutorial 05 – 明辨是非:对比学习(Contrastive Learning)

Learning Methods of Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer

Tutorial 05 – 明辨是非:对比学习(Contrastive Learning) Read More »

Tutorial 04 – 以点带面:半监督学习(Semi-supervised learning)

Learning Methods of Deep Learning create by Deepfinder Agenda 师徒相授:有监督学习(Supervised Learning) 见微知著:无监督学习(Un-supervised Learning) 无师自通:自监督学习(Self-supervised Learning) 以点带面:半监督学习(Semi-supervised learning) 明辨是非:对比学习(Contrastive Learning) 举一反三:迁移学习(Transfer

Tutorial 04 – 以点带面:半监督学习(Semi-supervised learning) Read More »

Scroll to Top