如何优化网站提高排名,制作网页工具按工作方式,网络营销发展方案策划书,智慧树网页设计与制作作业答案11-15 周三 softmax 回归学习 时间版本修改人描述2023年11月15日11:17:27V0.1宋全恒新建文档
简介 softmax分享可以参考什么是softmax 回归估计一个连续值#xff0c;分类预测一个离散类别。 恶意软件的判断 回归和分类 分类可以认为从回归的单输出变成多输出 B站学习
softm…11-15 周三 softmax 回归学习 时间版本修改人描述2023年11月15日11:17:27V0.1宋全恒新建文档
简介 softmax分享可以参考什么是softmax 回归估计一个连续值分类预测一个离散类别。 恶意软件的判断 回归和分类 分类可以认为从回归的单输出变成多输出 B站学习
softmax回归 使用softmax回归解决多分类问题softmax回归模型。 使用矩阵计算线性输出O 通过softmax计算概率 y值较大的概率属于相应类别的概率更高。 具体的计算过程如下图: 总结来说softmax函数不会改变线性输出o之间的大小顺序只会为每个类别分配相应的概率。softmax回归模型简介高效只需要一次就能输出所有类别概率。 增加新的类别产生较高的成本以你为会影响所有的类别的概率。
softmax 回归 损失函数 图片分类数据集 均方损失训练。
Softmax y ^ a r g m a x o i \widehat { y } a r g m a x o _ { i } y argmaxoi 关注的不是o的输出而是关注相对距离。 指数的好处是具有非负性。 一般衡量两个概率的区别使用交叉熵 对真实类别的预测值求其-log。 注 上图是非常关键的在计算交叉熵的时候由于对应每个样本只有一个真实类别值为1其他均为0这样求和就可以表示为只有预测值的取log后再取负数即可。 总结 softmax回归是一个多类分类模型。 使用Softmax操作子得到每个类的预测置信度 使用交叉熵来衡量预测和标号的区别。
损失函数
损失函数是预测值和真实值的区别。
均方损失 1/2是为了求导时处理掉倍数。 在负梯度方向更新参数。
L1 loss 绿色的线是似然函数。 Hubers Robust Loss 当我预测值和真实值比较远时候梯度是比较均匀的力度在靠近 图像数据集 MNIST数据集是图像分类中广泛使用的数据集之一但作为数据集过于简单。我们可以使用Fashin-MNIST作为数据集。 测试数据集用来验证模型的好坏 几个样本图像及相应的特征 读取进程数来读取图像。shuffle打乱顺序。 读一次数据要1.72秒。读取数据的速度。 完整代码定义load_data_fashion_mnist函数 softmax回归从零开始实现 将展平每个图像将它们视为784的向量数据集一共10个类别所以网络输出维度为10。 矩阵求和维度等于0将压缩成行详列。按照维度为1将变成一个列向量。 实现softmax。 注 对一个矩阵求softmax相当于对其中的每一行求softmax因为行数其实相当于样本数量了。也就是按照维度为1进行计算。 上述广播机制的含义是用矩阵的第i行除以partition向量中的第i个值。 第一行是生成一个均值为0方差为1的2行5列的矩阵。 由结果可以看出每行的和为1而且都是为正值。 计算交叉熵 其中[0.1, 0.3, 0.6]是第一个样本的预测值。 y则表示两个样本的真实标签第一个样本真实标签为0 第二样本真实标签为2.
拿出0号样本和1号样本对应真实标签的预测值。y[1]为2代表真实标签为2然后取出预测为2的概率即0.5。稍微有一点绕。在y_hat[[0,1], y]中[0, 1]代表了序号即y向量中0号位和1号位的值代表了真实的标签。y_hat则表示了对应这些类别的预测值。 实现交叉熵损失函数 计算预测准确的 找出预测正确的样本数。 任意模型在数据迭代器的准确率 累加器 softmax回归的训练 进行预测 softmax简介实现 总结 softmax基本上是在多分类问题中将输出概率化的操作子。在神经网络中作为最后一层进行的。其中交叉熵的理解反而不太好。
cross_entropy tf.nn.softmax_cross_entropy_with_logits(logitslayer_fc2, labelsy_true)
cost tf.reduce_mean(cross_entropy)
optimizer tf.train.AdamOptimizer(learning_rate1e-4).minimize(cost)
correct_prediction tf.equal(y_pred_cls, y_true_cls)
accuracy tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
session.run(tf.global_variables_initializer())上述为在TF中使用交叉熵来获取准确率的样例代码可以看到correct_prediction为一组向量[True, False, False, …]强制转化为tf.float32之后求平均就相当于求出了准确率。 上图理解的关键是损失函数其中y [0, 0, …, 1, 0, 0]只有一个1其他全为0为1的索引为真实的类别标签。而y_hat [0.1, 0.1, …, 0.3, 0.1, 0.1]都是一组预测的概率这样在计算时只要去取真实标签的预测值求-log即可得到该样本的损失。这相当于一个样本的误差。 不懂的东西太多了之后买一本《动手学深度学习》好好看吧 最近有的时候很恐慌因为在我的组里优秀的人很多大家都在写论文什么的自己呢深度学习比较浅显就有点尴尬其实一种治疗恐慌焦虑的方式就是深刻的意识到知难则行易知易则行难。所以别多想了学就是了另外如果担心做的贡献少的话那就有多大能力做多少事情做自己力所能及的所有事情不要偷懒认真学习就好了。2023年就要过去了希望自己越来越好吧。希望每个读者都能够远离恐慌规划好自己的人生不要做错事走错路好好享受属于自己的人生。希望每段人生都是充实的圆满的也。感恩一下。