CS231n笔记 Lecture 3 Loss Functions and Optimization
这一讲总体上就是引入Loss Function的概念,以及让大家对优化有一个初步的认识,和其他课程里面说的内容大同小异。
Loss function
Multiclass svm loss
multiclass svm的分类依据是,比较每个类别计算得到分数,取最大的那个作为当前的类标。该Loss鼓励的是正确的类标对应的分数应该比所有其他类标对应的分数都大至少1,否则就引入cost。具体定义如下:

这个和svm的思想是一样的,就是说不光要分对,而且要求判断对与错的分割线之间要有一定的距离,即svm中所说的margin。
Regularization loss
一般能量项除了衡量模型在训练数据上的精确度外,还有另一个正则项用于控制模型的复杂度,防止过拟合。常见的几个正则项包括:

\(L_1\) 和 \(L_2\)
\(L_1\)鼓励稀疏,\(L_2\)试图将对结果的影响散步到W的每一项中- spread out the effects, 所以会鼓励更平均的结果。

不过在这个例子上,\(L_2\)会选择\(w_2\),\(L_1\)在\(w_1\)和\(w_2\)上是一样的,但是我们可以构造出来一些其他的\(w_2\),使得\(w_1\)的\(L_1\)比\(w_2\)的小。
Softmax classifier
这个是在deep learning里面非常常见的一个分类器,总体思想就是把每个类别的分数做一个指数映射,然后再做一个归一化,得到一个在各个类别上的概率分布。

Loss定义为目标类别所计算得到的概率的负对数,又称为交叉熵loss (cross-entropy loss):

如果目标类别计算得到的概率接近1,那么Loss就接近0;否则Loss就会是一个正数。
一些验证
在训练模型之前,可以根据Loss function的特点对方法进行一些验证,提早发现bug。
- multiclass svm loss
初始每个类别的分数都差不多,然后加上一个margin 1, 那么对于某一个样本来说,它的loss大概为 (C - 1), 即除了正确类别外的所有其他类别。 - Softmax classifier loss
初始的loss应该接近\(log(C)\),其中C为类别个数,因为初始时,每个类别的概率应该接近1/C。
Loss function的对比与定义
整个模型的loss是将每个训练样本的loss加起来取平均,并加上正则项。

Optimization
梯度的计算
- Numerical gradient

直接从数学性质出发计算梯度,这样需要对W的每一维都进行计算,耗时。 - Analytic gradient
可以直接通过偏微分得到梯度的解析解,从而可以一次性求出W的梯度。 - 可以用Numerical gradient来验证程序实现的Analytic gradient是否正确
Gradient descent 梯度下降
每次将W按照负梯度方向前进一点点,那么Loss值就会下降一点点,直到收敛为止。
stochastic gradient descent
如果用普通的gradient descent,需要遍历整个训练集去计算Loss,很费时。所以使用一种叫minibatch的策略,每次只计算部分样本的loss, 用来估算W的真实梯度。
传统方法vs卷积神经网络
图像特征
- 颜色直方图, 比如把hue值进行离散化放到bin里。
- HOG, histogram of oriented gradients, 关注的是边朝向。
- Bag of Words 随机从图像中采样得到patch,聚类,得到codebook of "visual" words, 然后对于某一张图像,可以计算每个visual word的数量,对应文本里面的bag of words。
ConvNets
直接把原始像素喂给网络。
两者的区别在于,前一种是使用固定的方法提取图像特征,然后喂给比如线性分类器,在训练的时候只去更新线性分类器的参数,而图像特征已经是固定了的;后者则是通过更新整个网络的参数,图像的特征以及分类器的参数是一起变化的。
CS231n笔记 Lecture 3 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 lecture3 Loss Functions and Optimization
1. Loss function是用来量化评估当前预测的好坏,loss function越小表明预测越好. 几种典型的loss function: 1)Multiclass SVM loss:一般的S ...
- CS231n笔记 Lecture 5 Convolutional Neural Networks
一些ConvNets的应用 Face recognition 输入人脸,推测是谁 Video classfication Recognition 识别身体的部位, 医学图像, 星空, 标志牌, 鲸.. ...
- CS231n笔记 Lecture 4 Introduction to Neural Networks
这一讲主要介绍了神经网络,基本内容之前如果学习过Andrew的Machine learning应该也都有所了解了.不过这次听完这一讲后还是有了新的一些认识. 计算图 Computational gra ...
- CS231n笔记 Lecture 2 Image Classification pipeline
距离度量\(L_1\) 和\(L_2\)的区别 一些感性的认识,\(L_1\)可能更适合一些结构化数据,即每个维度是有特别含义的,如雇员的年龄.工资水平等等:如果只是一个一般化的向量,\(L_2\)可 ...
- CS231n笔记 Lecture 1 Introduction
主题有关 这一讲主要是介绍性质的,虽然大多数概念以前听说过,但还是在他们的介绍中让我有如下一些认识,所谓温故而知新,不无道理: IMAGENET Feifei Li的团队首先爬取.标注了IMAGENE ...
- Are Loss Functions All the Same?
目录 概 主要内容 一些假设 损失函数 损失函数的统计性质 收敛速度 分类的界 Rosasco L, De Vito E, Caponnetto A, et al. Are loss function ...
- 目标检测复习之Loss Functions 总结
Loss Functions 总结 损失函数分类: 回归损失函数(Regression loss), 分类损失函数(Classification loss) Regression loss funct ...
- [CS61A] Lecture 4. Higher-Order Functions & Project 1: The Game of Hog
[CS61A] Lecture 4. Higher-Order Functions & Project 1: The Game of Hog Lecture Lecture 4. Higher ...
随机推荐
- Red Hat Enterprise Linux(RHEL)中yum的repo文件详解
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...
- JavaScript内存泄露,闭包内存泄露如何解决
本文原链接:https://cloud.tencent.com/developer/article/1340979 JavaScript 内存泄露的4种方式及如何避免 简介 什么是内存泄露? Java ...
- 剑指offer18 树的子结构
另一种写法 class Solution { public: bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { bool result = f ...
- python学习笔记-环境安装【1】
1.在 WINDOWS 下面要运行命令 pip install virtualenvwrapper-win才行 参考地址http://blog.csdn.net/liuhongyue/article/ ...
- C# Dictionary 的几种遍历方法,排序
Dictionary<string, int> list = new Dictionary<string, int>(); list.Add(); //3.0以上版本 fore ...
- paper:synthesizable finite state machine design techniques using the new systemverilog 3.0 enhancements 之 FSM Coding Goals
1.the fsm coding style should be easily modifiable to change state encoding and FSM styles. FSM 的的 状 ...
- 【java】 java 内存解读
具体请参考 vamei java 内存管理和垃圾回收 java的内存分为栈内存和堆内存两部分 栈内存 主要存储一些参数,局部变量和返回地址,参数和局部变量大部分是基本类型的变量,如果是引用类型,实际上 ...
- 【android】安卓平台版本和API版本的对应关系
安卓平台版本和API版本对应关系
- OOP中常用到的函数
学习地址: http://www.jikexueyuan.com/course/2420.html 判断类是否存在 class_exists() 得到类或者对象中的成员方法组成的数组 get_clas ...
- 《零基础入门学习Python》【第一版】视频课后答案第002讲
测试题答案: 0. 什么是BIF?BIF 就是 Built-in Functions,内置函数.为了方便程序员快速编写脚本程序(脚本就是要编程速度快快快!!!),Python 提供了非常丰富的内置函数 ...