[基础]斯坦福cs231n课程视频笔记(一) 图片分类之使用线性分类器
线性分类器的基本模型: f = Wx
Loss Function and Optimization
1. LossFunction
衡量在当前的模型(参数矩阵W)的效果好坏
Multiclass SVM Loss:
Hinge Loss
样本 \(i\) 的损失:\(L_i = \sum_{j \neq y_i} \max(0, s_j-s_{y_i}+1)\), \(y_i\) 是样本 \(i\) 的正确标签. 损失取值范围是0~正无穷
- 当网络初始化的时候,参数随机初始化为比较小的值,输出 即属于各个类别的概率可能差不多(\(s_j \approx s_{y_i}\)) ,且值也比较小,因此单个样本的损失应为C-1 (C为类别总数)这个规律便于调试:如果一开始跑网络的时候得到的损失不符合以上规律 则可能代码有问题
- 另一个trick,是在损失函数中max项的基础上再求平方,这样能够加大对判断失误的惩罚。不过这和原本的hinge loss不一样,具有非线性。
Softmax Classifier(Multinomial Logistic Regression)
原本分类器得到的分数是没有实际意义的,得分可以粗略认为只是模型的输出。
HingeLoss关心的只是:对于一个样本分类到各个类别的得分中,在真实类别的得分应该比其他类别的得分要高,从而loss更小;而Softmax将这些分数转换成概率,从原本的"分类到各个类别的得分"转换成"分类到各个类别的概率",从而得到概率分布 \(P(Y=C_i|X=X_i)\),\(X_i\)为该样本,\(C_i\)为各个类别,而target probability distribution是只有在真实类别的概率值为1,其余类别为0
假设该样本要分到四类中的一类,其真实类别是第一类
期望得到的概率分布是:\([1,0,0,0]\), Softmax算出的概率分布是:\([0.4, 0.4, 0.15, 0.05]\) ,
则损失函数为:最大化对数似然函数
\(L_i=-\sum_ky_k \cdot \log P(Y=y_k|X=X_i) =-\log P(Y=Y_i|X=X_i)\),
\(Y_i\)是该样本的真实类别, \(y_k\) 取0或1,即类别标签使用one-hot编码。
另一个角度也可以理解成计算这两个概率分布的距离(KL散度or交叉熵)
损失的最小可能取值是0,最大取值是正无穷:损失为0,要求原本的分数中,真实类别的分数为正无穷,其他类别的分数都为负无穷;损失为正无穷,要求原本的分数中,真实类别的分数为负无穷。这些都是实际运算达不到的,所以损失的最小值只能理论上取到0。
当网络初始化的时候,所有分数的取值都几乎相同且都接近0,则得到的损失值大约为log(1/C), C为类别总数. 当W很小时, scores=X.dot(W)约等于0,对应的\(e^{scores}\)=1,归一化后变成1/C
https://zhuanlan.zhihu.com/p/29376573 在具体实现Softmax时需要注意的地方 为了解决计算机中位数的overflow 通过引入一个常数偏移来调整
https://zhuanlan.zhihu.com/p/25723112 softmax的求导
正则项,用于防止过拟合,避免模型为了在训练数据上表现好而过于复杂 不能适应于新的测试数据,【设计一个模型,最终关心的其实是在测试数据上的表现!】
L2范数,类似欧式norm,倾向于更稠密且取值更小的参数矩阵
L1范数,恰好相反,倾向于更稀疏的参数矩阵
2.Optimization
如何得到更好的参数矩阵W
梯度下降,及其变种
Linear Classification VS ConvNet
从提取特征的角度看它们的区别:
- Linear Classification
- 最开始是直接将图像像素作为线性模型的输入,计算output=Wx,但是存在局限性
- 改用特征表示 feature representation,即人为定义一些特征,然后将图像用这些特征来代表,再输入到分类器。简单列举常用的一些特征:
- 直方图 color histogram 统计整幅图中各个灰度级的出现次数
- HoG Histogram of Oriented Gradients 统计整幅图中各个小区域的edge direction [gradient]
- bag of words 根据一系列图像构建一个codebook of visual words, [随机选取图像的patch然后聚类得到],再通过codebook里的word来编码图像 将图像用图中含有的word及其出现次数来表示
- 需要注意的是,这些传统的方法在训练模型时只会改变参数,而不会改变特征【特征已经提前计算好了 可以这样理解:假设原图是x,通过z=g(x)提取特征,然后再输入到分类器 f = Wz,训练过程中改变的只有W 】
- ConvNet
- 将多层卷积层堆叠起来,可以认为每一层卷积层都是提取特征的过程,在训练时整个网络一起被训练(所有层的参数都会被调整)
- 个人粗略猜测:是不是可以认为 layer1_output = W1* x, layer2_output=W2 * (layer1_output), layer3_output=W3 * (layer2_output) 类推...因此用卷积网络时特征并不是已经人为规定好的,而是从数据中学习到的?
[基础]斯坦福cs231n课程视频笔记(一) 图片分类之使用线性分类器的更多相关文章
- [基础]斯坦福cs231n课程视频笔记(三) 训练神经网络
目录 training Neural Network Activation function sigmoid ReLU Preprocessing Batch Normalization 权重初始化 ...
- [基础]斯坦福cs231n课程视频笔记(二) 神经网络的介绍
目录 Introduction to Neural Networks BP Nerual Network Convolutional Neural Network Introduction to Ne ...
- 转:深度学习斯坦福cs231n 课程笔记
http://blog.csdn.net/dinosoft/article/details/51813615 前言 对于深度学习,新手我推荐先看UFLDL,不做assignment的话,一两个晚上就可 ...
- CS231n课程笔记翻译9:卷积神经网络笔记
译者注:本文翻译自斯坦福CS231n课程笔记ConvNet notes,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客和猴子翻译完成,堃堃和李艺颖进行校对修改. 原文如下 内容列 ...
- CS231n课程笔记翻译2:图像分类笔记
译者注:本文智能单元首发,译自斯坦福CS231n课程笔记image classification notes,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成.Shiqin ...
- CS231n课程笔记翻译8:神经网络笔记 part3
译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Neural Nets notes 3,课程教师Andrej Karpathy授权翻译.本篇教程由杜客翻译完成,堃堃和巩子嘉进行校对修改.译文含 ...
- CS231n课程笔记翻译7:神经网络笔记 part2
译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Neural Nets notes 2,课程教师Andrej Karpathy授权翻译.本篇教程由杜客翻译完成,堃堃进行校对修改.译文含公式和代 ...
- CS231n课程笔记翻译5:反向传播笔记
译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Backprop Note,课程教师Andrej Karpathy授权翻译.本篇教程由杜客翻译完成,堃堃和巩子嘉进行校对修改.译文含公式和代码, ...
- CS231n课程笔记翻译4:最优化笔记
译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Optimization Note,课程教师Andrej Karpathy授权翻译.本篇教程由杜客翻译完成,堃堃和李艺颖进行校对修改.译文含公式 ...
随机推荐
- postgres 计算时差
计算时间差秒数 select extract(epoch FROM (now() - (now()-interval '1 day') ));
- [PHP] 破Laravel白屏问题
可能解决方法如下: 1.Nginx在配置文件中添加 location / { try_files $uri $uri/ /index.php?$query_string; } 2.app ...
- PS快速去除水印方法
步骤 第一步:打开PS软件,鼠标左键单击左上角"文件"-"打开",选择一张图片 第二步:鼠标左键单击左边的工具栏"矩形选框工具" 第三步:鼠 ...
- umi+dva+antd新建项目
首先全局安装dva+umiumi:npm install -g umidva:npm install -g dva-cli 通过脚手架创建项目 一: mkdir myapp && cd ...
- APP兼容性测试(三)测试方案设计
1. 背景 App的兼容性问题可能会导致流失潜在的客户,为了尽量减少因兼容性问题导致的同类问题,进一步提高产品的质量,提升用户体验,所以进行兼容性测试,尽可能多的保证更多的用户都可以正常使用app. ...
- 【MySQL】GTID小结
1.GTID的概念 GTID(global transaction identifier)是全局事务标识符,在MySQL5.6版本中作为一个超级特性被推出.事务标识不仅对于Master(起源)的服务器 ...
- 在 Javascript 中,为什么给 form 添加了 onsubmit 事件,为什么 IE7/8 还是会提交表单?
参考地址:http://stackoverflow.com/questions/4078245/onsubmit-return-false-has-no-effect-on-internet-expl ...
- centos6系统资源限制
1.限制用户CPU使用资源 /etc/security/limits.conf #主配置文件 /etc/security/limits.d/ #子模块配置文件 新建一个普通用户,并查看默认资源限制 [ ...
- LeetCode 1291. Sequential Digits
题目 class Solution { public: int ans[10005]; vector<int> sequentialDigits(int low, int high) { ...
- AJAX发送异步请求教程详解
AJAX 一.AJAX简介 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可 ...