1. Loss function是用来量化评估当前预测的好坏,loss function越小表明预测越好。

几种典型的loss function:

1)Multiclass SVM loss:一般的SVM是针对0、1两类标签,现在是把它拓展到n类标签。它的物理意义是:现在要预测一个样本的标签,根据之前训练出的权重求出这个样本在所有标签的得分,正确的标签的得分如果大于其他标签的得分(往往还会加一个safety margin,就是要求要足够大),则loss function不增加;否则loss function就会增加其他标签的得分超过正确标签的得分的差值。这种loss function的取值从0到无穷大。在初始化训练的时候,权重W往往被设计成很小的随机数,所以计算出的每个标签的得分都接近0,在这种情况下,如果标签数为n,正确的标签和其他标签比较了n-1次,每次比较的得分差值都小于safety margin(假设safety margin是1),则loss function的值为n-1,

2) Softmax (cross-entropy) loss :在深度学习里很常用。把计算出的分数带入到softmax函数里,这个描述了“概率”,最终的loss function就是对softmax函数取负log。这里的概率加了引号是因为这只是一种对0~1之间取值且累加和为1的变量的诠释。事实上,当正则化项的权重增加时,优化出的W会变小,对于每个类别softmax loss会更接近。所以softmax loss对不同类别的排序才重要,具体数值并不重要。

两种loss funciton的实际表现差不多,不同的人有不同偏好。这两种loss function的差别,对于SVM loss来说,标签贴对就可以了,继续增加得分并不会减小loss,因为反正都已经取0了;但对于Softmax loss来说,正确标签的得分越高越好,错误标签的得分越低越好。

2. 正则化(Regularization)。同样的loss值会对应很多组不同的权重W,正则化描述了对参数的某种偏好,例如奥卡姆剃刀原则。这时候Loss function = Data loss + Regularzation。可以这么理解正则化:比如用多项式拟合数据,有两种方式抑制过拟合,一种是直接限定多项式的次数,另一种是不限定次数,但是在loss function里增加跟次数相关的一项,它会使算法更倾向于找低次数的多项式。正则化就是后一种方式。正则化可以帮助解决过拟合的问题。一般正则化项只包含W,不包含b。

3. 优化的关键是求导,有两种方式求导,一是数值方法,二是解析方法。实际应用中,用解析的方式求导,用数值的方式验证求导是否正确。每一步的迭代距离(learning rate)是hyperparameter,需要提前设定,Justin Johson说他调参的时候永远是最先检查learning rate是否大体正确。

4. Stochastic Gradient Descent (SGD):loss function是所有特征相加,当特征非常多的时候,计算就会很慢(比如图像,每个像素都是一个特征),这时候可以用一个子集(一般32/64/128个特征)来计算。

5. 图像特征:

1)Color Histogram,评估各种颜色在图像中的比重。

2)Histogram of Oriented Gradients (HoG),把图像分成一个个小方格,在每个小方格内提取边,设定边有9种朝向,评估图像局部的边界特征。物体识别中很有用。

3)Bags of Words,把图像分成一个个小方格(或者提取特征点后在特征点附近取小方格),每个方格可以用一个编码来描述,编码需要自己设计,所有的编码组成一个词典。这是从自然语言处理中衍生过来的。

最新文章

  1. 如何用Java实现DVD的一些功能
  2. Delphi String 常用字串符处理函数
  3. java基础-基本数据类型
  4. 【JavaService】部署Java jar为Windows后台服务
  5. POJ 2184 01背包+负数处理
  6. Linq之Expression进阶
  7. python-day7 python内置模块 面向对象
  8. No.012 Integer to Roman
  9. leetcode:Integer to Roman(整数转化为罗马数字)
  10. 微软职位内部推荐-This Job is no longer available.
  11. Business Intelligence(BI) 商务智能
  12. Android ViewPager无法使用wrap_content属性自适应高度
  13. 可拖动布局之Gridster
  14. linux的wc -l 命令统计文件少一行(一般是windows文件)
  15. kafka常规及几个重要的操作命令
  16. 借助Docker单机秒开数十万TCP连接
  17. Django rest framework(6)----序列化(2)
  18. vue项目打包之后js文件过大怎么办?
  19. UVA11853-Paintball(对偶图)
  20. C语言程序设计I—第十二周教学

热门文章

  1. webpack加载多级依赖时css、html文件不能正确resolve的问题
  2. 小白的Python之路 day2 文件操作
  3. CSS文字不换行,溢出省略
  4. iOS知识点、面试题 之二
  5. SAP RFC介绍:关于sRFC,aRFC,tRFC,qRFC和bgRFC
  6. Git 企业开发者教程
  7. SET与SPLIT
  8. github emoji 表情列表
  9. Weblogic用户名密码获取
  10. FPGA 设计总结(1)