何谓超参数?

本文深入解析了机器学习中超参数的概念,解释了其与普通参数的区别,以及在支持向量机和深度学习中的应用。并列举了常见的超参数类型,如学习率、树的数量或深度、矩阵分解中潜在因素的数量等。

自从接触了机器学习后,在很多地方如书籍和文献中经常会看到有一类参数叫超参数(hyperparameter),其中提超参数最多的地方是在支持向量机(SVM)和深度学习(Deep Learning)中,比如支持向量机中的松弛因子:


上式中的C就是松弛因子,这个参数在支持向量机中不像参数W那样,可以通过优化学习得到。还有深度学习中的超参数,如学习率(Learning Rate),在训练深度网络时,这个学习率参数需要提前指定,比如最近设为0.09等。

那么问题来了,到底什么是超参数(hyperparameter)?在很多教材和文献中都是默认你理解超参数的定义的。如果不知道超参数的定义的话,有些文献中的话可能不好理解,比如在机器学习中,尤其是在支持向量机中,为什么有些文献要把数据集分割成训练集,验证集和测试集,而不是直接分割为训练集和测试集?只有理解了何谓超参数,才会明白某些文献中这样分割的道理。

什么是超参数呢?先来看一下超参数的学院风定义:在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

超参数的通俗定义:超参数也是一种参数,它具有参数的特性,比如未知,也就是它不是一个已知常量。一种手工可配置的设置,需要为它根据已有或现有的经验指定“正确”的值,也就是人为为它设定一个值,它不是通过系统学习得到的。

下面主要看看超参数在机器学习中的定义及示例:

在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数。 相反,其他参数的值通过训练得出。
超参数:

  1.  定义关于模型的更高层次的概念,如复杂性或学习能力。
  2.  不能直接从标准模型培训过程中的数据中学习,需要预先定义。
  3.  可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定

超参数的一些示例:

   1. 树的数量或树的深度
   2. 矩阵分解中潜在因素的数量
   3. 学习率(多种模式)
   4. 深层神经网络隐藏层数
   5. k均值聚类中的簇数

    ### 控制理论中超调量的定义与含义 超调量(Overshoot)是指控制系统响应过程中,输出变量的最大超过期望稳态的部分占期望稳态的比例。具体来说,在阶跃响应中,如果系统的输出在达到最终稳态之前超过了该目标,则这一超出部分即为超调量[^1]。 #### 数学表达 超调量通常用百分比表示,计算公式如下: \[ M_p = \frac{C_{max} - C(\infty)}{C(\infty)} \times 100\% \] 其中: - \(C_{max}\) 是输出响应的最大; - \(C(\infty)\) 是系统稳态时的目标或期望。 #### 物理意义 超调量反映了系统的动态性能和稳定性特性。较大的超调量意味着系统可能存在较强的震荡行为,这通常是由于阻尼不足引起的。在实际工程应用中,过大的超调可能导致设备损坏或其他不良后果,因此需要合理设计控制器以降低超调量并提高系统的平稳性[^2]。 #### 影响因素 超调量主要由以下几个方面决定: 1. **系统结构**:二阶及以上系统的自然频率和阻尼比直接影响超调量大小。 2. **输入信号形式**:不同类型的激励信号会对超调量产生不同的影响。 3. **反馈机制的设计**:适当调整增益和其他参数能够有效减少不必要的波动。 以下是基于典型二阶欠阻尼系统的超调量分析代码示例: ```python import numpy as np import matplotlib.pyplot as plt from scipy.signal import step, TransferFunction # 定义传递函数 (标准二阶系统) zeta_values = [0.1, 0.5, 1.0] # 阻尼比列表 omega_n = 1 # 自然角频率 plt.figure(figsize=(8,6)) for zeta in zeta_values: num = [omega_n**2] den = [1, 2*zeta*omega_n, omega_n**2] sys = TransferFunction(num, den) t, y = step(sys) plt.plot(t, y, label=f'ζ={zeta}') plt.title('Step Response with Different Damping Ratios') plt.xlabel('Time(s)') plt.ylabel('Amplitude') plt.legend() plt.grid(True) plt.show() ``` 通过运行以上脚本可以看到随着阻尼系数的变化如何改变曲线形状及其对应的峰位置从而直观理解何谓“超调”。
    评论 1
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
    红包 添加红包
    表情包 插入表情
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值