得分函数;损失函数;正则化;过拟合、泛化能力;softmax分类器;激励函数;梯度下降;后向传播...

本文介绍了机器学习中的几个基本概念,包括得分函数、损失函数、正则化等,并详细解释了多类别支持向量机损失、过拟合及解决方法、softmax分类器等内容。

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

1、得分函数

  线性分类器:在坐标系上就是一直线,大于它就是1,小于它就是0。

 

   一张图假设是32*32*3的像素矩阵,首先把它平展为3072*1的向量,如果最后结果只能是10个类别。那么得分函数结果将是10*1的向量。w将是10*3072的矩阵,b是10*1的向量。

  意思就是,这张图通过计算,属于这一类的得分是多少。

2、损失函数

  得分函数结束后,每一个类都有得分。将这些预测结果和实际的结果求出一个偏差,来表明预测的准确性。

  1)多类别支持向量机损失/Multiclass Support Vector Machine loss

    正确的类别结果获得的得分比不正确的类别,至少要高上一个固定的大小Δ。类得分结果f(xi,W),其中第j类得分我们记作f(xi,W)j,该图片的实际类别为yi。就是每个类的得分-实际类的得分+Δ,再和0取最大值。

    

 

3、正则化

  损失函数存在一弊端,

   假设存在一组w使得一个类减去实际类的得分小于10,则一定存在一组γ*w使得其得分大于10。所以要加上一个正则项,在下方式中,是把所有W的元素的平方项求和

4、过拟合(overfitting)、泛化能力

  泛化能力:用来表征学习模型对于未知数据的预测能力。

  过拟合:在学习模型的时候,一味的最小化训练误差,所选的模型的复杂度可能会很高,这种现象称为过拟合。出现过拟合的原因是因为训练集中的数据本身就存在有噪声,一味的追求训练误差的最小化,会导致对未知数据的预测能力降低。

  避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。

5、softmax分类器

  有两种特别常见的分类器,SVM是其中的一种,而另外一种就是Softmax分类器。

  做的事情就是把一列原始的类别得分归一化到一列和为1的正数表示概率。

  

6、激励函数

  每一次输入和权重w线性组合之后,都会通过一个激励函数(也可以叫做非线性激励函数),经非线性变换后输出。

7、梯度下降

  实际是反向传播的机制,目的是找到能让损失函数最小的参数W。

  给损失函数求导,也就是梯度,实际是损失函数变化率最快的方向。

  梯度的方向是函数增大方向,负梯度才是下降方向。

  步长,也叫学习率。

  计算得到梯度之后,使用梯度去更新已有权重参数的过程叫做『梯度下降』。

8、后向传播

  BP(backpropgationalgorithm ):后向传导算法,顾名思义就是从神经网络的输出(顶层)到输入(底层)进行求解

  根据误差信号修正每层的权重

 

转载于:https://www.cnblogs.com/wangxiao-zb/p/7748347.html

### 交叉熵损失函数结合L2正则化的实现方法及作用 #### 实现方法 在机器学习中,当使用交叉熵作为损失函数时,可以通过向其添加L2正则化项来增强模型的泛化能力。具体来说,在计算总损失时,除了考虑预测值真实值之间的差异外,还需要加入权重参数 \( w \) 的平方和作为惩罚项[^1]。 假设原始的交叉熵损失函数定义如下: \[ loss_{cross\_entropy} = -\sum y \cdot \log(\hat{y}) \] 其中 \( y \) 是真实的标签分布,\( \hat{y} \) 是模型预测的概率分布。为了引入L2正则化,可以修改损失函数为: \[ loss_{total} = loss_{cross\_entropy} + \lambda \cdot \frac{1}{2}\sum w_i^2 \] 这里,\( \lambda \) 表示正则化强度超参数,用于控制正则化的影响程度;而 \( \frac{1}{2} \) 则是为了简化梯度计算中的常数因子。 以下是基于Python的一个简单实现例子,展示如何将L2正则化应用于神经网络训练过程中: ```python import tensorflow as tf # 定义输入、输出以及模型参数 X = tf.placeholder(tf.float32, shape=[None, n_features]) Y = tf.placeholder(tf.float32, shape=[None, n_classes]) W = tf.Variable(tf.random_normal([n_features, n_classes])) b = tf.Variable(tf.zeros([n_classes])) # 计算未加正则化的交叉熵损失 logits = tf.matmul(X, W) + b cross_entropy_loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=logits)) # 添加L2正则化项 regularizer = tf.contrib.layers.l2_regularizer(scale=0.01) reg_term = regularizer(W) # 总损失等于交叉熵加上正则化项 total_loss = cross_entropy_loss + reg_term # 使用优化器最小化总损失 optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(total_loss) ``` 上述代码片段展示了如何通过TensorFlow框架构建带有L2正则化的分类模型,并将其融入到整个训练流程之中[^2]。 #### L2正则化的作用 L2正则化的主要目的是防止模型过拟合现象的发生。它通过对较大的权重施加更大的惩罚力度,促使模型倾向于选择较小数值范围内的权重组合,从而降低模型复杂度并提高其对外部样本的适应性。此外,由于L2范数具有平滑特性,因此相比其他类型的正则化方式(如L1),能够更有效地维持特征间的连续性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值