1.3 机器学习基础-常见函数及优化算法

本文深入介绍了机器学习中的核心概念——损失函数、激活函数和优化算法。讲解了均方误差、交叉熵、对数损失等损失函数,Sigmoid、ReLU、Softmax等激活函数,以及梯度下降、随机梯度下降、动量梯度下降和AdaGrad等优化算法,帮助读者掌握模型训练的基础知识。

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

        在机器学习和深度学习中,损失函数、激活函数和优化算法是三个核心组成部分。它们分别负责衡量模型的准确性、引入非线性特性和优化模型参数。本文将重点介绍这三个部分,并且给出一些常见的例子和相应的公式。

一、损失函数

在机器学习和深度学习中,损失函数(loss function)是用来评估模型预测输出与真实值之间的差异的函数。损失函数可以帮助我们优化模型参数,使其能够更好地拟合数据。在训练过程中,我们尽可能地将损失函数的值最小化。常见的损失函数包括:

        1. 均方误差损失函数(Mean Squared Error Loss)

        均方误差损失函数是用于回归问题的一种常见的损失函数。它衡量了模型预测值和真实值之间的平方误差。均方误差损失函数在深度学习中的应用非常广泛,如在预测房价、预测股票价格等任务中。

        均方误差损失函数的公式为: 

         

        2.交叉熵损失函数(Cross Entropy Loss)

        交叉熵损失函数是用于分类问题的一种常见的损失函数。它的本质是测量两个概率分布之间的相似度。在分类问题中,它衡量了预测概率分布和真实标签之间的差异。交叉熵损失函数在深度学习中的应用非常广泛,如在图像分类、文本分类和语音识别等任务中。

        二分类交叉熵损失函数的公式为:

        

        多分类交叉熵损失函数的公式如下:

        3. 对数损失(Logarithmic Loss,LogLoss)

        对数损失也是一种用于分类问题的损失函数。它计算模型预测概率和真实标签之间的差异。对数损失的公式如下:

        

        4. 汉明损失函数(Hamming Loss)

         汉明损失函数是一种多标签分类问题中的损失函数,它衡量模型预测结果与真实结果之间的汉明距离(即模型预测的标签和真实标签不相同的数量)。汉明损失函数的公式如下:

        5. Hinge损失

        Hinge损失是一种用于支持向量机(SVM)模型的损失函数。它通过比较模型预测值和真实值之间的差异来计算损失。适用于分类问题,尤其是二分类问题中的支持向量机(SVM)

        Hinge损失的公式如下:

        

        6. Huber损失函数

        Huber损失函数是一种鲁棒性较强的损失函数,用于回归问题中。Huber损失函数的公式如下:

         7. BCE损失函数

        BCE损失函数是二元交叉熵损失函数的一种特殊形式,用于二分类问题中。BCE损失函数的公式如下:

         

        8. Focal损失函数

        Focal损失函数是一种用于解决类别不平衡问题的损失函数,与交叉熵损失函数类似。Focal损失函数的公式如下:

        

 

二、激活函数

        激活函数是神经网络中的一个重要组成部分,它引入了非线性特性,使得神经网络可以拟合更加复杂的函数。常见的激活函数包括:

        1. Sigmoid函数

        Sigmoid函数是最早使用的激活函数之一,其公式如下:        

        Sigmoid函数将输入值映射到了[0, 1]区间内,可以将其视为输出一个概率值的模型,常用于二分类问题。但是,Sigmoid函数在输入值比较大或比较小时,梯度会变得非常小,从而导致梯度消失的问题,因此在较深的网络中很少使用。

        2. Tanh函数

        Tanh函数也是一种S型函数,但其输出范围为[-1, 1],公式如下:

         Tanh函数比Sigmoid函数具有更强的非线性特性,可以将其应用于需要对输入进行归一化的任务。

        3. ReLU函数

        ReLU函数是近年来最受欢迎的激活函数之一,其公式如下:

       

         ReLU函数在输入值为正时,输出其本身,否则输出0。ReLU函数的计算速度非常快,同时也避免了梯度消失问题。但是,ReLU函数在输入值为负时梯度为0,也可能导致神经元死亡的问题,因此在一些场景下需要使用其他的变种。

        4. Leaky ReLU函数

        Leaky ReLU函数是对ReLU函数的一种改进,其公式如下:        

         当输入值为负时,Leaky ReLU函数的梯度不为0,从而避免了ReLU函数可能导致神经元死亡的问题。同时,Leaky ReLU函数也保持了ReLU函数的计算速度。

        5. Softmax函数

        Softmax函数是一种常用的多分类激活函数,其公式如下:

        

        其中,z表示模型的输出,K表示分类数。Softmax函数将模型的输出转换为概率分布,输出的每个元素表示对应类别的概率。

        6. Swish函数

        Swish函数是一种近期提出的激活函数,其公式如下:

        Swish函数在ReLU函数的基础上加入了sigmoid函数的非线性特性,其表现优于ReLU函数,但是计算代价稍大。

三、优化算法

        优化算法是深度学习训练过程中至关重要的一部分,它的作用是通过调整模型参数来最小化损失函数,从而达到训练模型的目的。

        1. 梯度下降法(Gradient Descent)

        梯度下降法是优化算法中最基础和最常见的一种算法,它的目的是通过迭代寻找损失函数的最小值。该算法的基本思想是,沿着损失函数梯度的反方向不断迭代,直到找到最小值。

        损失函数的梯度可以用下式表示:

                

         梯度下降法的迭代公式可以表示为:

        

       2. 随机梯度下降法(SGD)

        随机梯度下降法是最基础的优化算法之一,其核心思想是每次迭代随机选择一个样本来更新模型参数。由于随机梯度下降法每次只使用一个样本来计算梯度,因此训练速度比较快,但收敛性较差。

        SGD的更新公式为:

        3. 动量梯度下降法(Momentum Gradient Descent)

        动量梯度下降法是梯度下降法的一种改进算法,通过添加动量项来加速梯度下降的过程。动量项类似于物理学中的动量,它可以帮助模型跳出局部最优解并更快地收敛。

          动量梯度下降法的更新公式为:

        4. AdaGrad

        AdaGrad是一种自适应学习率的优化算法,它的核心思想是对每个参数分别设置学习率,从而使得模型对于稀疏特征的适应性更好。相比于传统的梯度下降法,Adam算法具有更快的收敛速度和更好的泛化性能,是目前应用最广泛的优化算法之一。

        AdaGrad的更新公式为:     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值