cs231n spring 2017 lecture3 Loss Functions and Optimization 听课笔记
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 听课笔记的更多相关文章
- cs231n spring 2017 lecture3 Loss Functions and Optimization
1. Loss function是用来量化评估当前预测的好坏,loss function越小表明预测越好. 几种典型的loss function: 1)Multiclass SVM loss:一般的S ...
- cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...
- cs231n spring 2017 lecture6 Training Neural Networks I 听课笔记
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法 ...
- cs231n spring 2017 lecture4 Introduction to Neural Networks 听课笔记
1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/ ...
- cs231n spring 2017 lecture9 CNN Architectures 听课笔记
参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...
- cs231n spring 2017 lecture9 CNN Architectures
参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...
- CS231n笔记 Lecture 3 Loss Functions and Optimization
这一讲总体上就是引入Loss Function的概念,以及让大家对优化有一个初步的认识,和其他课程里面说的内容大同小异. Loss function Multiclass svm loss multi ...
- cs231n spring 2017 lecture13 Generative Models 听课笔记
1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...
- cs231n spring 2017 lecture11 Detection and Segmentation 听课笔记
1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"." ...
随机推荐
- dubbo,eclipse,服务报错
运行e3-manager报错找不到类,更新了子模块,但e3-manager下没有更新:
- 17082 两个有序数序列中找第k小(优先做)
17082 两个有序数序列中找第k小(优先做) 时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC;VC Description 已 ...
- iOS 科学计数法保留N位有效数字
iOS开发 项目中用到了将一个很大的数值转换成科学计数法的需求,转换成科学计数法的方式在iOS中其实是很好做的,使用NSNumber 的 kCFNumberFormatterScientificSty ...
- C:数据结构与算法之顺序表
顺序表作为数据结构的开端,说明这里面很多基础要学,初学者一开始都会混淆,今天我们来一步一步来建立一个完整的顺序表,可以任我们控制的顺序表,首先先定义一个顺序表 /* Note:Your choice ...
- Android中style和theme的区别
在学习Xamarin android的过程中,最先开始学习的还是熟练掌握android的六大布局-LinearLayout .RelativeLayout.TableLayout.FrameLayou ...
- bzoj 4444: [Scoi2015]国旗计划
Description A国正在开展一项伟大的计划--国旗计划.这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈.这 项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了N名优秀的 ...
- selenium爬取百度图片
一:简介 通过selenium模块,模拟火狐浏览器进行搜索下载操作. 二:脚本内容 # -*- coding:utf-8 -*- # 百度图片自动爬去 # Chrome浏览器类似,设置其options ...
- CPP--正码,反码,补码~附整数溢出的探讨
之前说到了long的争议(http://www.cnblogs.com/dotnetcrazy/p/8059210.html),这边就不用long来举例了,用int吧 可以看一下这篇文章(http:/ ...
- Mac_OS_Sierra_10.12.6编译OpenJDK9
编译环境以及依赖 macOS:Sierra,10.12.6 处理器:2.6 GHz Intel Core i7 内存:16 GB 2133 MHz LPDDR3 Command Line Tools ...
- Spring aop 注解参数说明
在spring AOP中,需要使用AspectJ的切点表达式语言来定义切点. 关于Spring AOP的AspectJ切点,最重要的一点是Spring仅支持AspectJ切点指示器(pointcut ...