损失函数loss总结

What

在机器学习中,损失函数(loss function)是用来估量模型的预测值f(x)与真实值y的不一致程度

常见的损失函数

回归任务

均方误差

一般最常用
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D)= \frac{1}{m} \sum_{i=1}^{m} (f(x_{i})-y_{i})^2 E(f;D)=m1i=1m(f(xi)yi)2

补充

分类任务

交叉熵(cross entropy)

主要度量两个概率分布间的差异性信息。
给定两个概率分布:p(理想结果即正确标签向量)和q(一般为神经网络输出结果经过softmax转换后的结果向量)
softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内转换到q:
s o f t m a x ( x i ) = e x i ∑ j e x j softmax(x_i)=\frac{e^{x_i}}{\sum_j e^{x_j}} softmax(xi)=jexjexi
通过q来表示p的交叉熵为:
H ( p , q ) = − ∑ i = 1 m p ( x ) log ⁡ q ( x ) H(p,q)= -\sum_{i=1}^{m} p(x) \log{q(x)} H(p,q)=i=1mp(x)logq(x)
另外,它和信息熵很相似,但他们的本质有很大的不同
E n t ( D ) = − ∑ k = 1 ∣ m ∣ p k log ⁡ 2 p k Ent(D) = - \sum_{k=1}^{|m|} p_{k} \log_{2} {p_k} Ent(D)=k=1mpklog2pk
其中的向量元素代表各个类样本(m种)在总集合D中的比例,其值越小,D的纯度越高
(信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。)

SVM损失

min ⁡ w , b 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) \min_{\bm{w},b} \frac{1}{2}||\bm{\omega}||^2+\sum_{i=1}^{m} \alpha _i(1-y_i(\bm{w^Tx_i} + b)) w,bmin21ω2+i=1mαi(1yi(wTxi+b))
拉格朗日子乘法
西瓜书P123

补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CNN,softmax函数通常用于多分类问题的输出层。它将每个类别的得分转换为概率分布,以便我们可以根据概率来预测每个类别的可能性。softmax函数的公式如下: $$ \sigma(z)_j = \frac{e^{z_j}}{\sum_{k=1}^{K} e^{z_k}} $$ 其,$z$是一个向量,表示每个类别的得分,$K$是类别的数量,$j$表示第$j$个类别。$\sigma(z)_j$表示第$j$个类别的概率。 在CNN,softmax函数通常作为输出层的激活函数,用于将卷积层的输出转换为概率分布。在训练过程,我们使用交叉熵损失函数来衡量预测值与真实值之间的差距,并通过反向传播算法来更新模型参数。 下面是一个使用softmax函数进行手写数字识别的例子: ```python import tensorflow as tf from tensorflow import keras # 加载MNIST数据集 (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() # 数据预处理 x_train = x_train.reshape(-1, 28, 28, 1) / 255.0 x_test = x_test.reshape(-1, 28, 28, 1) / 255.0 y_train = keras.utils.to_categorical(y_train, 10) y_test = keras.utils.to_categorical(y_test, 10) # 构建模型 model = keras.Sequential([ keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)), keras.layers.MaxPooling2D(pool_size=(2, 2)), keras.layers.Flatten(), keras.layers.Dense(units=10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test)) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值