深度学习——速问速答

第一遍:直接陈述

第二遍:查看笔记

第三遍:对照答案

第四遍:总结背诵

1.机器学习的本质?

e4

机器学习本质简单说就是通过计算机寻找一个函数,在你输入特定数据的时候得到特定的输出。比如语音识别,输入语音输出文字,房价预测输入未来某个时间输出房子预测价。

寻找函数的过程叫训练,函数叫模型。

一般主要分为两大类:分类任务和回归任务。

2.机器学习是如何学习的?

e4

机器学习有几个重要部分:模型、损失函数、训练

模型方面:多元线性回归、逻辑回归等等方式进行拟合

损失函数:MSE

调优:梯度下降法调整参数

3.什么是梯度?

e4

梯度是对多元函数偏导数的向量形式,梯度方向是函数值变化最快的方向。

4.梯度下降法算法原理?

e4

梯度下降法用于解决求取模型最优解问题。简单说就是计算损失函数的梯度,通过学习率调整网络参数。不断迭代直至收敛,得到最优解。

5.如何判断速度下降是否收敛?

e4

损失不断减小并趋于稳定,且小于某个阈值,此时认为网络收敛。从梯度角度,如果梯度为0,或者小于某个阈值,此时认为网络收敛。

6.如何看待局部最优解问题localminima?

e1

陷入局部最优解有几种可能:首先是学习率可能过小,其次是特殊图像如马鞍面

e3

由于模型越来越复杂,多数的损失函数是非凸的,即有多个峰和谷。那么此时在收敛过程中就容易陷入局部最优而非我们想要的全局最优。

对于传统的局部最优,可以采取变种梯度下降、动态学习率等方法克服。其实大多数时候遇到的都是鞍点问题,即在一定方向是极大值,一定的方向是极小值。

7.局部最优和鞍点的处理办法?

  • 1.随机梯度下降SGD
    SGD每次只用一个或一小批(mini-batch)数据计算梯度。这个梯度是有噪声的。这种噪声恰恰是关键------它可以帮助算法"抖动"着跳出一些较浅的局部最优或鞍点,因为噪声可能提供一个偶然的推力,指向下降的方向。
    带动量的SGD:这是最有效的改进之一。动量不仅考虑当前的梯度,还累积之前梯度的方向。在持续下降的方向上,速度会越来越快,加快收敛。遇到局部最优或鞍点(梯度很小)时,累积的动量可以帮助它"冲过"这些平坦区域,继续寻找更好的下降路径。对于鞍点,动量可以帮助它沿着下降方向继续前进。
  • 2.自适应学习率算法
    如 Adam, AdaGrad, RMSprop 等。这些算法为每个参数自适应地调整学习率。
  • 3.初始化策略
    好的初始化(如He初始化、Xavier初始化)可以让模型从一个相对较好的区域开始训练,避开一些糟糕的局部最优。
  • 4.调整批次大小(Batch Size)
    较小的batch size能提供更多的梯度噪声,有助于泛化和逃离尖锐的极小值。但也不是越小越好,需要权衡。这是一个可以调节的超参数。
  • 5.使用更复杂的优化器和正则化
    如 SWA (Stochastic Weight Averaging) 等方法,通过平均多次迭代的权重,可以找到更平坦的极小值(通常泛化能力更好),这些极小值往往也更接近全局最优。
  • 6.模拟退火(Simulated Annealing)
    在优化过程中逐渐降低学习率(即"退火")。初期学习率大,允许大胆探索和跳出局部最优;后期学习率小,便于精细收敛。这是所有SGD变种的标准做法。

8.批量梯度下降、随机梯度下降、小批量梯度下降 辨析

批量梯度下降BGD

Batch Size = 整个训练集的大小(N),每次迭代都用所有训练数据计算梯度,然后更新一次参数。

优点:梯度方向准确,朝真正的全局梯度方向下降。

缺点:速度极慢,无法放入内存的大数据集无法使用。

随机梯度下降SGD

Batch Size = 1,每次迭代只使用一个训练样本计算梯度,并更新一次参数。

优点:速度很快,可以在线学习。

缺点:梯度噪声非常大,更新方向震荡剧烈,收敛过程不稳定。

小批量梯度下降MGD

Batch Size = k (一个远小于N,远大于1的数,如32, 64, 128等),这是目前最常用的方法。每次迭代使用一小批(k个) 数据计算梯度,然后更新参数。

优点:

相比SGD,梯度计算更稳定,收敛过程更平滑。

相比BGD,速度更快,并且可以利用GPU的并行计算能力(同时处理一批数据),效率极高。

我们通常所说的 "SGD",在实践中指的就是这种带动量(Momentum)的 Mini-batch Gradient Descent。虽然名称保留了SGD,但实现方式已经是小批量了。

9.批量梯度下降需要注意什么?

10.随机梯度下降什么情况会失效?

9.随机梯度下降的改进算法?

10.什么是Batch Normalization?

11.为什么CNN要采用Batch Normalization?

12.Batch Normalization的算法步骤?

13.为什么要对数据进行归一化?

14.Batch size的大小设置?

15.深度学习如何防止过拟合?

相关推荐
wb043072014 小时前
性能优化实战:基于方法执行监控与AI调用链分析
java·人工智能·spring boot·语言模型·性能优化
AAA小肥杨4 小时前
基于k8s的Python的分布式深度学习训练平台搭建简单实践
人工智能·分布式·python·ai·kubernetes·gpu
mit6.8246 小时前
[Agent可视化] 配置系统 | 实现AI模型切换 | 热重载机制 | fsnotify库(go)
开发语言·人工智能·golang
Percent_bigdata7 小时前
百分点科技发布中国首个AI原生GEO产品Generforce,助力品牌决胜AI搜索新时代
人工智能·科技·ai-native
Gloria_niki7 小时前
YOLOv4 学习总结
人工智能·计算机视觉·目标跟踪
FriendshipT7 小时前
目标检测:使用自己的数据集微调DEIMv2进行物体检测
人工智能·pytorch·python·目标检测·计算机视觉
海森大数据7 小时前
三步破局:一致性轨迹强化学习开启扩散语言模型“又快又好”推理新时代
人工智能·语言模型·自然语言处理
Tencent_TCB7 小时前
云开发CloudBase AI+实战:快速搭建AI小程序全流程指南
人工智能·ai·小程序·ai编程·云开发
Sunhen_Qiletian7 小时前
基于OpenCV与Python的身份证号码识别案例详解
人工智能·opencv·计算机视觉
AustinCyy7 小时前
【论文笔记】Introduction to Explainable AI
论文阅读·人工智能