这个作业与svm.ipynb类似,要求:

  1. 为类Softmax分类器实现一个全向量化运算的损失函数 。类Softmax分类器定义在linear_classifier.py中,而损失函数实现在 softmax.py文件中。
  2. 实现一个基于微分分析梯度法的全向量化运算表达式(包含在损失函数定义中)。
  3. 与数值梯度法求出的损失函数和梯度值进行比较。
  4. 使用校验数据集来调节学习速率和正则化强度两个超参数。
  5. 使用SGD方法来优化损失函数
  6. 将最终学习到的权重集可视化。

在svm和softmax作业中都只讲了1和2的实现,强调公式推导和算法的性能优化(主要是使用向量化运算),并没有对一些辅助性功能及运行结果作说明。这篇文章补上这部分内容。

在softmax_loss_naive和 softmax_loss_vectorized 完成后,要求对两个函数的运行时间进行对比,在我的MBA上,前者运行时间是后者的14倍。

接下来是对softmax进行训练,并找到最优的超参数。下面的代码是留空处应该补全的代码:

for 

这里对学习速度和正则化惩罚强度两个超参数各给出了两组数据:

learning_rates 

由于精度问题,#01行处的代码会将1e-7显示为零。当正则化惩罚强度参数为1e8时,在我的MBA和python 2.7上运行出错:

Trying learning rate as 0.000000, regularization strength as 100000000.000000
reg penalty is 1530787.678522
iteration 0 / 1500: loss 1530793.446178
iteration 100 / 1500: loss nan
iteration 200 / 1500: loss nan
iteration 300 / 1500: loss nan
iteration 400 / 1500: loss nan

出现数值溢出,导致loss取值为非数字(nan, Not a number)。这是因为当强度参数取值为1e8时,正则化惩罚达到 1530787,不光远远超过loss的基本值,也会传递给第二次参与计算的权重集W,从而最终导致在sum(W*W)的计算中溢出。

最后一段代码揭示了经过学习而得的权重集W在本质上应该是什么:W中的每一个分类对应的数值(维度为D的数组,D = 32 * 32 * 3),本质是就是这个分类中所有图像的像素值的综合,因而将它还原成图像后,你会发现它就是它所代表的分类的图像。在我的机器上,经过训练后的W图形化后的结果如下:

训练softmax分类器实例_作业:softmax.ipynb相关推荐

  1. 训练softmax分类器实例_第四章.模型训练

    迄今为止,我们只是把机器学习模型及其大多数训练算法视为黑盒.但是如果你做了前面几章的一些练习,你可能会惊讶于你可以在不知道任何关于背后原理的情况下完成很多工作:优化一个回归系统,改进一个数字图像分类器 ...

  2. 训练softmax分类器实例_一个值得深思的问题?为什么验证集的loss会小于训练集的loss...

    编辑:zero 关注 搜罗最好玩的计算机视觉论文和应用,AI算法与图像处理 微信公众号,获得第一手计算机视觉相关信息 在本教程中,您将学习在训练自己的自定义深度神经网络时,验证损失可能低于训练损失的三 ...

  3. 训练softmax分类器实例_吴恩达深度学习笔记(56)-训练一个 Softmax 分类器

    训练一个 Softmax 分类器(Training a Softmax classifier) 上一个笔记中我们学习了Softmax层和Softmax激活函数,在这个笔记中,你将更深入地了解Softm ...

  4. 训练softmax分类器实例_知识蒸馏:如何用一个神经网络训练另一个神经网络

    作者:Tivadar Danka 编译:ronghuaiyang 原文链接 知识蒸馏:如何用一个神经网络训练另一个神经网络​mp.weixin.qq.com 导读 知识蒸馏的简单介绍,让大家了解知识蒸 ...

  5. 训练softmax分类器实例_CS224N NLP with Deep Learning(四):Window分类器与神经网络

    Softmax分类器 我们来回顾一下机器学习中的分类问题.首先定义一些符号,假设我们有训练集 ,其中 为输入, 为标签,共包括 个样本: 表示第 个样本,是一个 维的向量: 表示第 个样本的标签,它的 ...

  6. 训练softmax分类器实例_assignment1-softmax分类器

    理论知识 softmax函数如下: 一个样本在C个类别的评分为z,可以看出z为一个向量.softmax函数对 进行压缩,输出一个向量,其中每个元素值在0到1之间,且所有元素之和为1. 交叉熵定义如下: ...

  7. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器--在深度学习的视觉分类中的,这两个分类器的原理和比较

    作者: 寒小阳  时间:2015年11月.  出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299  声明:版权所有,转载请注明出 ...

  8. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器

    作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299 声明: ...

  9. 3.9 训练一个 Softmax 分类器-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.8 Softmax 回归 回到目录 3.10 深度学习框架 训练一个 Softmax 分类器 (Training a Softmax Classifier) 上一个视频中 ...

最新文章

  1. wxWidgets3.0.2媒体播放器
  2. eclipse新建一个java_Eclipse中新建一个java源文件的步骤
  3. 在已交出句柄的QWidget上叠加透明形状
  4. 大新闻!Magic Leap造假,HoloLens即将入华商用
  5. matlab怎让3d旋转,如何在MATLAB中平滑旋转3D绘图?
  6. [css] 举例说明css有哪些简写的属性和属性值?
  7. 常见的数据库连接字符串收集
  8. CUDA 开启GPU之间的P2P通信功能
  9. java调用下载窗口_java 从网络Url中下载文件 java调用url接口
  10. 架构设计--用户端全http参数接口详细说明v1
  11. java实现身份证识别
  12. html 字体最小多少,浏览器最小显示12px字体的解决方法
  13. Arcgis软件应用(四)网络分析
  14. python 判断区分字符串是否都是英文/中文
  15. Python地理数据处理 三:矢量数据的读写(一)
  16. 2021:不要在一件事上纠缠太久!
  17. Oauth 第三方授权登陆 facebook google twitter instagram
  18. 世界时区: UTC/GMT+08:00 东八区
  19. 英特尔第十代处理器为什么不支持win7_10代cpu能不能装win7?10代cpu装win7全面分析(支持十代...
  20. 指点迷津!十二星座程序猿个性,你属于哪个?

热门文章

  1. Java垃圾回收器(一)新生代垃圾收集器
  2. CAD复制到原坐标不显示问题解决方法
  3. 优化器的RBO和CBO
  4. Python读取CSV文件:UnicodeDecodeError: 'gbk' codec can't decode byte 0xba ....illegal multibyte sequence
  5. 【转】《致新员工书》
  6. proteus仿真 C51与ADC0809数模转换:万用表(电压、电流、电阻)数码管显示
  7. 有道技术团队入选 2021思否中国技术先锋年度评选两项榜单
  8. ubuntn 服务器 可视化界面(安装可视化界面,浏览器直接访问)
  9. 基于DSP TMS320F2812的1553B总线开发板
  10. 中兴捧月RAW图像去噪训练代码