社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

彻底搞懂深度学习-模型参数和超参数(动图讲解)

架构师带你玩转AI • 1 周前 • 31 次点击  

深度学习就像是培养一个学生的过程,涉及两类截然不同的要素:模型参数和超参数

  • 模型参数:学生大脑中的知识和技能。通过学习过程自动获得,代表模型的实际能力。

  • 超参数:教学方法和学习环境。需要老师(工程师)精心设计,决定学习的效率和效果。

这两类参数在深度学习中扮演着完全不同的角色,理解它们的区别是掌握深度学习的关键。让我们深入探索它们的奥秘。


Parameters VS Hyperparameters. As we venture into the realm of machine… |  by Aadityakumar | Medium

一、模型参数(学到的知识)

模型参数的本质是什么?网络的核心知识

当我们学会识别一张人脸时,大脑中成千上万的神经元之间形成了特定的连接模式。这些连接的强度和方向就是我们"学到的知识"。在深度学习中,模型参数就扮演着同样的角色。

模型参数是神经网络在训练过程中自动学习到的内部变量,它们存储着模型从数据中提取的所有知识和模式。就像经验丰富的医生能够通过多年的临床实践积累诊断能力一样,神经网络通过调整这些参数来获得预测能力。

Backpropagation for Dummies. All the math behind, simplest than… | by  Diletta Goglia | Analytics Vidhya | Medium

模型参数包含哪些核心组件?
模型参数主要包含权重(Weights)和偏置(Bias)两大类,它们共同决定了网络的表达能力。
(1)权重(Weights)- 连接的强度
输入特征1 ---[w1]---> 输入特征2 ---[w2]---> 神经元 ---> 输出输入特征3 ---[w3]--->

权重决定了不同输入特征对最终结果的影响程度。

  • 正权重:表示正相关关系,输入增大时输出也增大

  • 负权重:表示负相关关系,输入增大时输出减小

  • 权重绝对值:表示影响强度,越大影响越显著

在图像识别中,权重学会了这样的模式:如果检测到圆形轮廓(权重为2.3),并且有橙色特征(权重为1.8),同时边缘光滑(权重为1.2),那么很可能是橙子。如果检测到尖锐边缘(权重为-1.5),则不太可能是橙子。

(2)偏置(Bias)- 激活的基准线

加权输入之和 + 偏置 → 激活函数 → 神经元输出

偏置是一个常数项,它调整神经元被激活的难易程度。无论输入是什么,偏置都会被加到加权和中。

  • 正偏置:降低激活门槛,神经元更容易被激活

  • 负偏置:提高激活门槛,神经元更难被激活

  • 零偏置:不调整激活门槛

    在文本分类中,某个神经元用于检测"是否为垃圾邮件"。如果偏置为-2,意味着加权和需要达到2才能激活;如果偏置为1,则加权和只需要达到-1就能激活。偏置实际上在调整判定标准的严格程度。

    What is gradient descent(intuitively)? | by Vaibhav Shukla |  DataDrivenInvestor

    模型参数是如何自动学习的?梯度下降的魔法

    模型参数的学习过程就像是在黑暗中摸索下山的路。我们不知道山的形状,但可以通过感受脚下的坡度来判断前进方向。

    Vanishing and Exploding Gradients in Deep Neural Networks

    # 工作原理第一步:当前位置(当前参数值)→ 第二步:感受坡度(计算梯度)→ 第三步:选择方向(梯度反方向)→ 第四步:迈出步伐(更新参数)
    # 更新公式新参数 = 旧参数 - 学习率 × 梯度
      • 梯度:告诉我们错误减少最快的方向

      • 学习率:控制每次调整的幅度

      • 负号:确保我们朝着减少错误的方向前进

      训练过程中,每个参数都在不断调整;成千上万个参数通过协调配合,共同构建起模型的预测能力。

      Backpropagation Step by Step |

      二、超参数(学习的方式)

      超参数的本质是什么?教学方法的选择

      如果模型参数是学生"学到的知识",那么超参数就是"学习的方法"。不同的教学方法会产生不同的学习效果一样,不同的超参数设置会极大地影响模型的训练效果。

      超参数是在训练开始之前由人工设定的配置参数,它们控制着整个学习过程的行为。这些参数不是通过数据学习得到的,而是需要基于经验、理论和实验来确定。

      图片

      超参数有哪些关键类型?

      超参数可以分为三大类,每一类都对训练过程有着至关重要的影响。

      Introduction to Deep Learning (13 of 13)

      (1)模型训练类超参数

      模型训练类超参数决定了模型参数更新的速度和频率,直接影响训练的收敛性和稳定性。

      学习率(Learning Rate):0.001 ~ 0.1批次大小(Batch Size):16, 32, 64, 128...训练轮数(Epochs):10, 50, 100, 1000...优化器类型:SGD、Adam、RMSprop...动量(Momentum):0.9, 0.95, 0.99...学习率衰减:指数衰减、余弦退火...

      (2)网络结构类超参数

      网络结构类超参数定义了模型的架构和容量,决定了模型能够表达的复杂程度。

      隐藏层数量:2层、3层、10层、100层...每层神经元数量:64、128、256、512...激活函数:ReLU、Sigmoid、Tanh...卷积核大小:3×3、5×5、7×7...卷积核数量:32、64、128、256...池化方式:MaxPooling、AveragePooling...

      (3)正则化类超参数

      正则化超参数就像学习过程中的"纪律约束",防止模型过度拟合训练数据。

      Dropout率:0.1, 0.2, 0.5...权重衰减:0.001, 0.01, 0.1...批归一化:是否使用

      如何找到最优的超参数组合?系统化的搜索方法

      超参数调优需要在大量可能的组合中找到最优配置,这需要系统的搜索策略和充分的实验验证。

      Grid Search and Random Search Hyperparameters | SabrePC Blog

      (1)网格搜索(Grid Search)- 地毯式搜索

      这种方法虽然可靠,但计算量巨大,适合参数空间较小的情况。

      for learning_rate in [0.001, 0.01, 0.1]:    for batch_size in [163264]:        for hidden_size in [64128256]:            训练模型并评估性能

      (2)随机搜索(Random Search)- 随机采样

      for trial in range(100):    learning_rate = random.uniform(0.0010.1)    batch_size = random.choice([163264128])    hidden_size = random.choice([64128256512])    训练模型并评估性能

      在参数空间中随机采样组合进行尝试。研究表明,在很多情况下,随机搜索比网格搜索更高效。

      (3)贝叶斯优化(Bayesian Optimization)- 智能搜索

      初始化:随机尝试几组超参数for trial in range(max_trials):    # 基于历史结果建立概率模型
      
      
          
          model = build_surrogate_model(history_results)    # 选择最有希望的下一组参数    next_params = acquisition_function(model)    # 训练并评估    score = train_and_evaluate(next_params)    # 更新历史记录    history_results.append((next_params, score))

      基于历史实验结果建立概率模型,智能选择下一个最有希望的参数组合。这就像经验丰富的老师能够根据学生的表现智能调整教学方法。

      彻底搞懂深度学习-AutoML自动调参(动图讲解)

      Bayesian Optimization for Hyperparameter Tuning

      深度学习的成功离不开模型参数和超参数的完美配合。模型参数是"学到的智慧",通过数据驱动的方式自动获得;超参数是"学习的策略",需要人类的智慧和经验来精心设计。

      为了让大家更好地理解两者的区别,让AI整理了一个表格,将它们进行详细对比。

      Python社区是高质量的Python/Django开发社区
      本文地址:http://www.python88.com/topic/185894
       
      31 次点击