教育网站建设网,管理系统包括哪些内容,大连龙彩科技的网站在谁家做,网站职能建设论文#x1f935;♂️ 个人主页: AI_magician #x1f4e1;主页地址#xff1a; 作者简介#xff1a;CSDN内容合伙人#xff0c;全栈领域优质创作者。 #x1f468;#x1f4bb;景愿#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长#xff01;#xff01;… ♂️ 个人主页: AI_magician 主页地址 作者简介CSDN内容合伙人全栈领域优质创作者。 景愿旨在于能和更多的热爱计算机的伙伴一起成长 ♂️声明本人目前大学就读于大二研究兴趣方向人工智能硬件虽然硬件还没开始玩但一直很感兴趣希望大佬带带 该文章收录专栏 [✨— 《深入解析机器学习从原理到应用的全面指南》 —✨] 数据标准化和归一化
在使用梯度下降算法进行模型训练时对输入特征进行比例缩放或归一化有以下几个原因 加速收敛梯度下降的目标是找到损失函数最小化的参数值而不同特征可能具有不同的尺度和范围。如果某些特征具有较大的值范围那么**其相关权重更新也会更大这可能导致算法收敛过程变得非常缓慢甚至无法收敛。**通过对输入特征进行比例缩放可以使各个特征都处于相似的尺度范围内从而加快算法收敛速度。 防止数值溢出在计算过程中**涉及到较大或较小数值时容易发生数值溢出问题。**通过将输入特征进行比例缩放可以有效地避免这种情况的发生。 提高模型性能某些机器学习模型如支持向量机、K近邻等对输入数据中不同尺度和范围非常敏感。当存在明显差异的尺度时在距离计算、权重分配等方面可能会产生偏差并且影响模型性能。通过比例缩放输入特征可以确保模型能够更好地利用每个特征的信息提高模型性能。
在线性回归中尤其是多变量回归模型由于各个的数据之间量化纲位不同如果说两个参数尺度范围分别是是【0~10000 ~5】或者【-0.00004 ~ 0.0000210 ~ 30】, 那么在使用梯度下降算法时他们的等高线是一个又窄又高的等高线如下图 因为一个他们量化纲位不同会出现 12993800 这种特征实例那么等高线就会又窄又高在梯度下降算法中参数更新就会如上图左右震荡权重更新一点就会导致输出变大对大尺度的特征更加敏感不利于学习如果等高线如下图参数更新就能更快收敛与更新了 如下图代价函数如MSE: 回归模型的预测值和实际值的差的平方和的3D图就像下山一样为了达到局部最优点或全局最优点作为下山者你肯定希望地形比较平缓比较清楚的知道往哪里走能够最快下山而如果这个山又陡又窄那下山者是不是下山肯定速度慢很多更新中不能较快收敛左右震荡往哪里都是下降不能准确找到方向。
理想的代价函数 但实际往往都是下图的情况 有许多局部最优 数据标准化和归一化是常见的数据预处理技术它们在以下情况下使用 特征缩放当特征的取值范围差异较大时可以使用数据标准化或归一化来将其缩放到相似的范围。这有助于避免某些特征对模型训练产生过大影响。 收敛加速在某些机器学习算法如梯度下降中如果不进行数据标准化或归一化则可能需要更多迭代次数才能收敛到最优解。通过使特征具有类似的尺度可以提高算法收敛速度不再左右震荡权重更新性价比相同特征之前模型一视同仁并加快训练过程。 防止数值溢出当输入数据包含非常大或非常小的值时计算中可能会发生数值溢出或舍入误差。通过将数据缩放到合理范围内可以避免这些问题并提高计算稳定性。 算法要求某些机器学习算法如K均值聚类、支持向量机等对输入数据进行了假设例如假设样本服从正态分布。机器学习算法最重要的概率统计如果尺度和范围不同显然很难拟合分布在这种情况下对于满足这些假设的算法而言数据标准化或归一化是必要的预处理步骤。
尽管数据标准化和归一化在许多情况下都很有用但并不是所有算法都需要进行这些操作。例如决策树和随机森林等基于树的模型通常不受特征缩放影响这种是基于不同类别的信息增益信息熵或者基尼指数类别纯度确定阈值而图像识别等深度学习任务则通常对原始输入进行归一化处理。
在实践中可以使用以下方法来进行数据标准化和归一化
数据标准化Standardization通过将每个特征值减去其均值并除以其标准差来使特征具有零均值和单位方差。这也是我们在平时数学上求正态分布的算法使其均值为0方差为1数据归一化Normalization通过将每个特征值按比例缩放到给定范围内如0到1之间来保持相对关系。
请注意在应用这些技术时应该先分割出训练集和测试集并且仅使用训练集上的统计信息来对整个数据集进行转换。然后将相同的变换应用于测试集以确保结果的可靠性。
在选择数据标准化Standardization和数据归一化Normalization之前需要根据具体情况来评估它们的优劣。 数据标准化的优点 保留了原始数据分布的形状不会改变特征的相对关系。对异常值不敏感。由于使用均值和标准差进行缩放异常值对结果影响较小。在某些机器学习算法中表现较好如逻辑回归、线性回归等基于距离计算或梯度下降的模型。 数据归一化的优点 将特征缩放到固定范围内有利于比较不同单位或取值范围的特征。有助于加速收敛过程在某些机器学习算法中可能提高训练速度。在某些算法要求输入数据处于特定范围时非常有用如支持向量机、K均值聚类等。
因此在选择数据标准化还是数据归一化时可以考虑以下因素
特征类型如果特征之间具有明显的大小差异并且你希望保留其相对关系则可以选择使用数据标准化比如人体大小与头发大小人体总体一定远远大于头发的关系。如果你更关心特征的绝对值或需要将其缩放到固定范围内则可以选择数据归一化。算法要求某些算法对输入数据有特定的要求例如支持向量机需要使用归一化后的数据。在这种情况下你应该根据算法要求来选择适当的预处理方法。实验结果尝试不同的预处理方法并比较它们在模型性能上的效果。根据实际结果来选择最佳方法。
总而言之没有单一正确答案。选择数据标准化还是归一化取决于你所面临问题和具体需求并且可能需要进行试验和评估以确定最佳方案。实践是证明真理的唯一标准 —— 伽利略
BatchNormalization
在深度学习上Batch Normalization批标准化可以在某种程度上替代数据归一化和标准化。
Batch Normalization 是一种用于加速深度神经网络收敛、防止梯度消失/爆炸等问题的技术。它通过对每个小批量样本进行均值和方差的归一化来规范输入数据并将其缩放和平移以恢复数据分布。
Batch Normalization 的优点包括
自适应性相比于单纯的数据预处理方法如标准化或归一化Batch Normalization 能够自动学习适合当前训练批次的均值和方差。抑制梯度问题通过将每层输入进行规范化Batch Normalization 有助于解决梯度消失/爆炸问题如权重问题数据尺度和范围问题导致的上溢下溢等问题使得神经网络更容易训练。正则化效果由于 Batch Normalization 引入了额外参数来调整特征缩放和平移比如比例缩放偏置移动它具有正则化效果并且能够稍微提高模型泛化能力。
因此在使用深度神经网络时可以考虑直接使用 Batch Norm 进行特征处理而不需要显式地对输入进行标准化或归一化。但请注意以下事项
执行顺序如果使用 Batch Normalization通常应该在每个隐藏层的激活函数之前进行批标准化。这样可以确保网络从输入层到输出层的所有中间特征都受益于规范化。数据分布Batch Normalization 是基于小批量数据的统计信息来进行归一化操作的因此对于较小规模或不均衡的数据集可能效果不佳。预训练模型如果你使用了预训练好的模型如 ImageNet 上预训练过的卷积神经网络则需要根据原始模型是否已经包含 Batch Norm 来决定是否需要进一步处理。
总结而言Batch Normalization 在深度神经网络中是非常有用和有效的技术并且可以部分替代传统的数据归一化和标准化方法。但具体选择还要根据实际情况和实验结果来确定。
数据划分
对于机器学习模型的训练通常需要将数据集划分为训练集和测试集。而验证集是用于模型调优和选择最佳超参数的辅助数据集。
下面是对训练集、验证集和测试集的解释及其区别 训练集Training Set训练集是用于训练机器学习模型的数据集。模型通过对训练集的样本进行学习和参数调整以最小化训练集上的损失函数。训练集通常占整个数据集的大部分比例。 验证集Validation Set验证集是用于模型调优和选择最佳超参数的数据集如果没有测试集对着验证集炼丹反而有可能拟合验证集。在训练过程中使用验证集评估模型在未见过的数据上的性能并进行模型参数的调整。通过在验证集上的表现可以选择最佳的模型配置和超参数以获得更好的泛化能力。 测试集Test Set测试集是用于评估训练好的模型的性能和泛化能力的数据集。测试集是模型未曾见过的数据用于模拟模型在实际应用中遇到的新样本。通过测试集上的表现可以得出对模型的客观评价。
区别
训练集用于训练模型的参数目标是使模型能够对训练数据进行准确拟合。验证集用于模型调优和选择超参数目标是选择最佳的模型配置使模型具有良好的泛化能力。测试集用于评估模型的性能和泛化能力目标是得出对模型的客观评价。
重要的一点是验证集和测试集都是在训练阶段以外的数据上进行评估以避免模型在训练数据上过度拟合。它们的目的是验证和衡量模型的性能但验证集用于模型调优而测试集则用于最终评估模型的性能。 到这里如果还有什么疑问欢迎私信博主问题哦博主会尽自己能力为你解答疑惑的如果对你有帮助你的赞是对博主最大的支持