【头歌】神经网络学习之机器学习基础

这篇博客介绍了机器学习的基础概念,包括监督学习、非监督学习和强化学习的类型及其特点。激活函数部分涉及Sigmoid、Tanh和ReLU的计算方法。损失函数讲解了平均绝对误差、均方差和交叉熵损失的计算。此外,还讨论了学习速率、动量系数等重要参数对模型训练的影响,以及如何避免过拟合和欠拟合的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1关:机器学习类型

1、下列说法错误的的是
A、监督学习不需要一定量级的数据作为训练数据。
B、监督学习可以根据输出类型分为回归和分类两种类型。
C、强化学习不需要训练数据。
D、非监督学习的结果具有不确定性。

【答案】AC

2、下列关于回归和分类问题的说法错误的是:
A、回归问题的输出y为离散的类别标记或者数值。
B、分类问题的主要手段为概率计算。
C、支持向量机解决的是回归问题。
D、回归问题以距离计算为主。

【答案】ACD

第2关:激活函数

import numpy as np

class ActivationFunction(object):
    def sigmoid(self,x):
        """
        Sigmoid 函数
        :param x: 函数的输入,类型为list
        :return: y, 函数的计算结果
        """
        ########## Begin ##########
        y =1/(1+(np.exp((-x))))
        ########## End ##########
        return y

    def tanh(self,x):
        """
        Tanh 函数
        :param x: 函数的输入,类型为list
        :return: y, 函数的计算结果
        """
        ########## Begin ##########
        y = (np.exp(x)-np.exp(-x))/(np.exp(x)+np.exp(-x))
        ########## End ##########
        return y

    def ReLU(self,x):
        """
        ReLU 函数
        :param x: 函数的输入,类型为list
        :return: y, 函数的计算结果
        """
        ########## Begin ##########
        y = np.where(x>0,x,0)
        ########## End ##########
        return y

第3关:损失函数

import numpy as np

class Loss(object):

    def mean_absolute_loss(self,y_hat,y,n):
        """
        平均绝对误差损失
        :param y_hat: 预测结果
        :param y: 真实结果
        :param n: 样本数量
        :return: 损失函数计算结果
        """
        ########## Begin ##########
        loss = np.abs(y_hat - y)
        loss = np.sum(loss) / n
        ########## End ##########
        return loss

    def mean_squared_loss(self,y_hat,y,n):
        """
        均方差损失
        :param y_hat: 预测结果
        :param y: 真实结果
        :param n: 样本数量
        :return: 损失函数计算结果
        """
        ########## Begin ##########
        loss = (y_hat - y) ** 2
        loss = np.sum(loss) / n
        ########## End ##########
        return loss

    def cross_entropy_loss(self,y_hat,y,n):
        """
        交叉熵损失
        :param y_hat: 预测结果
        :param y: 真实结果
        :param n: 样本个数
        :return: 损失函数计算结果
        """
        ########## Begin ##########
        loss = y_hat * np.log2(y) + (1 - y) * np.log2(1 - y)
        loss = -np.sum(loss) / n
        ########## End ##########
        return loss

第4关:机器学习中的重要参数

1、下列说法错误的是:
A、学习速率用于控制每次更新时调整的权值大小或权值修正的幅度。
B、学习速率越大,训练时间越长,精度越准确。
C、动量系数可以加速模型训练过程,但是更快的速度会降低模型的准确性。
D、偏置项是为了使目标函数更加的准确。

【答案】B

2、下列说法正确的是:
A、超参数可以通过训练获得。
B、学习速率越大越好。
C、学习速率越小越好。
D、偏置项可以帮助函数进行较好的左右平移

【答案】D

第5关:拟合问题

1、下列说法错误的是:
A、拟合问题分为过拟合和欠拟合问题。
B、过拟合是指针对训练数据,模型过度适配的情况。
C、欠拟合表示模型在训练集表现很好,但在测试集中的表现不佳,不能有效地拟合数据。
D、更换机器学习模型或新增数据的其他特征可以一定程度避免欠拟合问题的发生。

【答案】C

2、下列说法错误的是:
A、过拟合会导致模型的泛化能力减弱。
B、相比于欠拟合,过拟合更难被解决。
C、稀疏规则化是解决欠拟合问题的有效方法
D、Dropout 机制是常见的稀疏规则化方法。

【答案】D
### 关于平滑平均绝对误差 (Smooth L1 Loss) 的定义、实现与应用 #### 定义 平滑平均绝对误差(Smooth L1 Loss),也被称为 Huber Loss,在机器学习领域被广泛用于回归任务。它通过结合均方误差(MSE)和平滑绝对误差(MAE)的优点,既能在大残差时保持梯度稳定,又能在小残差时提供更精确的优化方向[^1]。 其数学表达形式如下: \[ L_{smooth}(x) = \begin{cases} 0.5 \cdot x^2, & |x| < 1 \\ |x| - 0.5, & \text{otherwise} \end{cases} \] 这种设计使得当预测值与真实值之间的差距较小时,采用平方项来减少噪声的影响;而当差距较大时,则切换到线性增长模式以加速收敛[^2]。 #### Python 实现 以下是基于 PyTorch 的 Smooth L1 Loss 函数的一种常见实现方式: ```python import torch import torch.nn as nn def smooth_l1_loss(predictions, targets, beta=1.0): """ 计算 Smooth L1 Loss 参数: predictions: 预测张量 targets: 目标张量 beta: 控制从 L2 转换至 L1 的阈值,默认为 1.0 返回: 平滑后的损失值 """ diff = torch.abs(targets - predictions) loss = torch.where(diff < beta, 0.5 * diff ** 2 / beta, diff - 0.5 * beta) return loss.mean() # 示例调用 predictions = torch.tensor([2.5, 3.8], requires_grad=True) targets = torch.tensor([3.0, 4.0]) loss_value = smooth_l1_loss(predictions, targets).item() print(f"Smooth L1 Loss Value: {loss_value}") ``` 上述代码片段展示了如何手动计算 Smooth L1 Loss,并允许调整参数 `beta` 来控制转换点的位置。 #### 应用场景 该损失函数常应用于目标检测框架中的边界框回归部分,例如 Faster R-CNN 和 SSD 中均有涉及。由于其能够有效处理异常值并维持训练过程中的稳定性,因此非常适合解决图像识别等领域内的定位问题。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MQiyirs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值