cs331n 线性分类器损失函数与最优化
tip:老师语速超快。。。痛苦= =
线性分类器损失函数与最优化
\(Multiclass SVM loss: L_{i} = \sum_{j \neq y_{i}} max(0,s_{i}-s_{y_{i}}+1)\)
\(Loss = \frac{1}{N} \sum_{i=1}^{N} L_{i}\)
Q1: what if the sum was instead over all classes(j = yi)?
A1:在计算中,我们可以知道这个没有意义,在公式中相当于加上了1,因为yi-yi=0
Q2:我们用平均值来替代求和会怎么样?
A2:没有任何意义,只是相当于使得最后损失的计算成倍地缩小。
Q3:如果公式变成了 $ L_{i} = \sum_{j \neq y_{i}} max(0,s_{i}-s_{y_{i}}+1)^{2} $ 会怎么样?
A3:这个公式实际上是square hinge loss。第一个公式我们通常叫做 hinge loss。
Q4:最大的损失值和最小值是多少?
A4:显然最小就是0,最大是无穷
Q5:当W很小的时候,s都等于0的时候,我们的loss会是多少?
A5:loss将会是种类数-1
code:
def L_i_vectorized(x,y,W):
scores = W.dot(x)
margins = np.maximum(0,scores - scores[y] + 1)
margins[y] = 0 # margins[y] = 1
loss_i = np.sum(margins)
return loss_i
\(f(x,W) = Wx\)
\(L = \frac{1}{N} \sum_{i=1}^{N} \sum_{j!=y_{i}} max(0,f(x_{i};W)_{j} - f(x_{i};W)_{y-{i}} +1)\)
这个loss function实际上是有bug,这个可能得到我们不想得到的结果。
比如我们想找到损失函数为0的W,是否W是独一无二?
显然不是,只要score[y]>1即可……
Weight Regularization
\(L = \frac{1}{N} \sum_{i=1}^{N} \sum_{j!=y_{i}} max(0,f(x_{i};W)_{j} - f(x_{i};W)_{y-{i}} +1) + \lambda R(W)\)
L2 regularzation \(R(W) = \sum_{k}\sum{l}W_{k,l}^2\)
L1 regularzation \(R(W) = \sum\sum \left | W_{k,l} \right |\)
Elastic net(L1+L2),Max norm regularization,Dropout
加入正则化,使得泛化能力增强。
L2正则化实际上是想让你尽可能展开你的W,使得充分的考虑更多的元素。
L1会使得W变得稀疏。
Softmax Classifier(Multinomial Logistic Regression)
scores = unnormalized log probabilities of the classes
\(L_{i} = -logP(Y = y_{i} | X = x_{i})\)
最大化正确的概率(最小化负的对数概率)
Q1:最大最小的loss是多少?
A1:最小为0,最大为无穷,显然。
Q2:当w非常小,都接近0的时候,loss会是什么值?
A2:-log(1/n) 显然
cs331n 线性分类器损失函数与最优化的更多相关文章
- 『cs231n』线性分类器损失函数
代码部分 SVM损失函数 & SoftMax损失函数: 注意一下softmax损失的用法: SVM损失函数: import numpy as np def L_i(x, y, W): ''' ...
- cs231n笔记 (一) 线性分类器
Liner classifier 线性分类器用作图像分类主要有两部分组成:一个是假设函数, 它是原始图像数据到类别的映射.另一个是损失函数,该方法可转化为一个最优化问题,在最优化过程中,将通过更新假设 ...
- cs231n线性分类器作业 svm代码 softmax
CS231n之线性分类器 斯坦福CS231n项目实战(二):线性支持向量机SVM CS231n 2016 通关 第三章-SVM与Softmax cs231n:assignment1——Q3: Impl ...
- cs231n笔记:线性分类器
cs231n线性分类器学习笔记,非完全翻译,根据自己的学习情况总结出的内容: 线性分类 本节介绍线性分类器,该方法可以自然延伸到神经网络和卷积神经网络中,这类方法主要有两部分组成,一个是评分函数(sc ...
- 1. cs231n k近邻和线性分类器 Image Classification
第一节课大部分都是废话.第二节课的前面也都是废话. First classifier: Nearest Neighbor Classifier 在一定时间,我记住了输入的所有的图片.在再次输入一个图片 ...
- [基础]斯坦福cs231n课程视频笔记(一) 图片分类之使用线性分类器
线性分类器的基本模型: f = Wx Loss Function and Optimization 1. LossFunction 衡量在当前的模型(参数矩阵W)的效果好坏 Multiclass SV ...
- SVM – 线性分类器
感知机 要理解svm,首先要先讲一下感知机(Perceptron),感知机是线性分类器,他的目标就是通过寻找超平面实现对样本的分类:对于二维世界,就是找到一条线,三维世界就是找到一个面,多维世界就是要 ...
- 2. SVM线性分类器
在一个线性分类器中,可以看到SVM形成的思路,并接触很多SVM的核心概念.用一个二维空间里仅有两类样本的分类问题来举个小例子.如图所示 和是要区分的两个类别,在二维平面中它们的样本如上图所示.中间的直 ...
- Python机器学习(基础篇---监督学习(线性分类器))
监督学习经典模型 机器学习中的监督学习模型的任务重点在于,根据已有的经验知识对未知样本的目标/标记进行预测.根据目标预测变量的类型不同,我们把监督学习任务大体分为分类学习与回归预测两类.监督学习任务的 ...
随机推荐
- 解决ASP.NET MVC(post数据)Json请求太大,无法反序列化,而报【远程服务器返回错误: (500) 内部服务器错误】
1. 修改web.config文件可以改变这个默认值(上传1个G) <configuration> <system.web> <httpRuntime maxReques ...
- 如何保证Redis的高可用
什么是高可用 全年时间里,99%的时间里都能对外提供服务,就是高可用 主备切换 在master故障时,自动检测,将某个slave切换为master的过程,叫做主备切换.这个过程,实现了Redis主从架 ...
- 【Oracle】Linux7安装11g 86%报错:Error in invoking target 'agent nmhs' of makefile
http://blog.itpub.net/29475508/viewspace-2120836/
- C#学习-字段
字段的定义由3部分组成,访问修饰符.字段的类型和字段的名称.以下是 public class Person { //姓名,类型为字符串类型 private string name; //年龄,类型为i ...
- python之GIL官方文档 global interpreter lock 全局解释器锁
0.目录 2. 术语 global interpreter lock 全局解释器锁3. C-API 还有更多没有仔细看4. 定期切换线程5. wiki.python6. python.doc FAQ ...
- 【Codeforces】Gym100633 D. LWDB
题解 点分治,然后每个点上挂着一个距离不超过\(a_{i}\)的颜色改成\(c\) 用一个单调栈维护距离单调递减,每次查询在每个包括这个点的分治中心的单调栈上二分,找到修改最靠前的颜色作为这个点的颜色 ...
- python全栈开发day58-mysql存储过程,权限,索引,慢日志,执行计划,分页优化处理
1.存储过程 delimiter // create procedure insert_data(in rows int) begin DECLARE n INT DEFAULT 1; drop ta ...
- net core体系-web应用程序-4net core2.0大白话带你入门-2asp.net core新建项目
新建asp.net core项目 开发环境:Windows Server R2 2008 开发工具:Microsoft Visual Studio 2017 新建asp.net core项目 创建 ...
- python自带进程池
注意:必须加 close() 和 join(),且 close 必须在 join 之前 代码: import multiprocessing #执行方法 def func(*args,**kwargs ...
- oracle中查询条件包含null时
不能使用=null或者!=null 应该使用is null和is not null