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

cs231n spring 2017 lecture3 Loss Functions and Optimization的更多相关文章

  1. cs231n spring 2017 lecture3 Loss Functions and Optimization 听课笔记

    1. Loss function是用来量化评估当前预测的好坏,loss function越小表明预测越好. 几种典型的loss function: 1)Multiclass SVM loss:一般的S ...

  2. CS231n笔记 Lecture 3 Loss Functions and Optimization

    这一讲总体上就是引入Loss Function的概念,以及让大家对优化有一个初步的认识,和其他课程里面说的内容大同小异. Loss function Multiclass svm loss multi ...

  3. cs231n spring 2017 lecture13 Generative Models 听课笔记

    1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...

  4. cs231n spring 2017 lecture11 Detection and Segmentation 听课笔记

    1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"." ...

  5. cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  6. cs231n spring 2017 lecture13 Generative Models

    1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...

  7. cs231n spring 2017 lecture11 Detection and Segmentation

    1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种“Unpooling”.“Transpose Conv ...

  8. cs231n spring 2017 lecture7 Training Neural Networks II

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  9. cs231n spring 2017 lecture9 CNN Architectures 听课笔记

    参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...

随机推荐

  1. git commit 后 尚未push到远程,撤销commit

    执行commit后,还没执行push时,想要撤销这次的commit,该怎么办? 解决方案: 使用命令: git reset --soft HEAD^ 这样就成功撤销了commit,如果想要连着add也 ...

  2. Thread--停止线程

    参考:http://blog.sina.com.cn/s/blog_6ca570ed01016mti.html Thread.interrupt()方法不会中断一个正在运行的线程.它的作用是,在线程受 ...

  3. 移植sqlite

    一.参考文档 1.SQLite安装.编译与应用 2.gcc 生成 .a静态库和 .so动态库 二.下载sqlite 1.sqlite官方首页:https://www.sqlite.org/index. ...

  4. 90.QuerySet API方法使用详解:distinct

    distinct:去掉获取的数据中的重复数据,这个方法如果底层使用的数据库是mysql,那么就不能传递任何参数. (1)比如以下我们想要实现提取所有价格超过80元的图书,并且删掉那些重复的,那么可以使 ...

  5. java求两个圆相交坐标

    最近由于项目需要,根据两个圆函数求出相交的坐标.实现代码如下,另感谢两圆求交点算法实现Java代码,虽然他所贡献的代码中存在问题,但仍有借鉴意义. 1.两个圆相交的数学求法 在中学数学中我们知道,一个 ...

  6. keras中的一些小tips(一)

    写这篇博客的原因主要是为了总结下在深度学习中我们常会遇到的一些问题,以及不知道如何解决,我准备把这个部分作为一个系列,为了让大家少走一些坑,对于本博客有什么错误,欢迎大家指出,下面切入正题吧. 1. ...

  7. IaaS SaaS PaaS区别

  8. inception对应参数

  9. MyBatis从入门到精通(第9章):Spring集成MyBatis(下)

    MyBatis从入门到精通(第9章):Spring集成MyBatis(下) springmvc执行流程原理 mybatis-spring  可以帮助我们将MyBatis代码无缝整合到Spring中.使 ...

  10. PAT Advanced 1074 Reversing Linked List (25) [链表]

    题目 Given a constant K and a singly linked list L, you are supposed to reverse the links of every K e ...