课时7 线性分类器损失函数与最优化(下)

我们为什么要最大化对数概率而非直接最大化概率?

你在做逻辑斯蒂回归时,如果你只是想要最大化概率,那你使用log是无意义的。因为log函数是单调函数,最大化概率和最大化对数概率是等价的。

Softmax vs. SVM

我们调整其中的评分,使值上下浮动,对于SVM而言,分类正确率可能不会改变。因为测试样例中的边界是由一个大数决定的,SVM对于那种误分类评分低的样例不是很在意。但是对Softmax而言,任何一个测试样例都能提升分类器的性能。SVM具有附加的稳定性,一旦样例满足边界条件,这个样例点就不会影响损失函数,而Softmax则要将所有样例点都纳入考量。SVM分类器对一小搓接近于分类边界的样例较为敏感,对于离边界很远的样例点不敏感;而softmax是一个基于所有数据的函数。

正则化损失只作用于权重并不作用于数据

实际操作过程中,当你想要给神经网咯建立一个新模型时,你需要求解损失值,然后求解梯度值,然后你还要进行梯度值的检查,确保你的微积分求解是正确的。

因为要找出损失值的最小值,而梯度值为负值时才会不断向下找最小值。

步长也叫作学习速率,是最需要关注的重要参数

我们拥有完整的数据集,但是在实际操作的时候我们只是从训练集取样出一批用来估算损失函数的梯度。从而我就有了初始的更新方向,然后我们再把这个过程一次又一次的重复,来确定找到损失函数最低的W。因为只是用来训练集的一个很小的子集,所以得出的梯度很有可能就是一个噪声。这是取样算梯度的缺点,但是使用一个小子集来计算可以提高运算速度,也就是让我们可以计算更多的次数来估算梯度从而得出最低的损失函数。

一般来说,当我们在讨论神经网络的优化时,会在损失函数中看到很多的波动,大家可以把损失函数想象成一个大盆地,盆地的最低点就是我们要找的最小值。在这个盆型图像中,会有很多小坑。当你的函数优化到这个坑里面时,你有可能把这个小坑的最小值当做损失函数的最小值。但是其实在这个坑外面还有更小的函数值。所以这就是一个合适的学习速率的重要性。

如果把线性分类器一开始放在没有经过训练的图片上时,我们的分类器没办法解决像素的问题。人们习惯于做的是计算图片不同的特征,然后计算不同特征的描述,最终人通过统计总结来理解这张图片是什么东西。

HOG/SIFT特征

他会使用图片中,不同物体之间边缘的方向来做分类,在图片中这些边缘有不同的方向,我们把不同方向上的边缘用直方图做一个总结统计一下这张图片上不同方向的边缘都有多少,然后通过这个边缘数量的统计来得出图片中有什么东西。

斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时7的更多相关文章

  1. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时3

    课时3 计算机视觉历史回顾与介绍下 ImageNet有5000万张图片,全部都是人工清洗过得,标注了超过2万个分类. CS231n将聚焦于视觉识别问题,图像分类关注的是大图整体:物体检测告诉你东西具体 ...

  2. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时1

    课时1 计算机视觉历史回顾与介绍上 CS231n:这一一门关于计算机视觉的课程,基于一种专用的模型架构,叫做神经网络(更细一点说,是卷积神经网络CNN).计算机视觉是人工智能领域中发展最为迅猛的一个分 ...

  3. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时26&&27

    课时26 图像分割与注意力模型(上) 语义分割:我们有输入图像和固定的几个图像分类,任务是我们想要输入一个图像,然后我们要标记每个像素所属的标签为固定数据类中的一个 使用卷积神经,网络为每个小区块进行 ...

  4. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时24&&25

    课时24 深度学习开源库使用介绍(上) Caffe 被用于重新实现AlexNet,然后用AlexNet的特征来解决其他事情 用C++书写的,可以去GitHub上面读取源代码 主要四个类: Blob可以 ...

  5. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时8&&9

    课时8 反向传播与神经网络初步(上) 反向传播在运算连路中,这是一种通过链式法则来进行递推的计算过程,这个链路中的每一个中间变量都会对最终的损失函数产生影响. 链式法则通常包含两部分,局部梯度和后一层 ...

  6. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时12&&13

    课时12 神经网络训练细节part2(上) 训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样.然后我们 ...

  7. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时11

    课时11 神经网络训练细节part1(下) 2010年,Glorot等人写的论文,我们称之为Xavier初始化,他们关注了神经元的方差表达式.他们推荐一种初始化方式,那就是对每个神经元的输入进行开根号 ...

  8. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时10

    课时10 神经网络训练细节part1(上) 没有大量的数据也不会有太多影响,只需要找一个经过预训练的卷积神经网络然后进行调整 从数据集中抽样一小批数据, 将数据运入卷积神经网络中来计算损失值 通过反向 ...

  9. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时14&&15

    课时14 卷积神经网络详解(上) CNN处理的是一些数据块,在这之间有很多层,一系列的层将输入数据变换为输出数据,所以完成操作的中间量不仅是NN时候讲的那些向量,而是立体结构,有宽,高和深度,在整个计 ...

随机推荐

  1. python发声

    python发声 学习了:http://www.jb51.net/article/62644.htm import winsound winsound.Beep(600,1000) #其中600表示声 ...

  2. Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换

    总结一下利用Json相关jar包实现Java对象和集合与Json字符串之间的互相转换: 1.创建的User类: package com.ghj.packageofdomain; public clas ...

  3. SQL数据库 更改数据类型

    向表中添加数据 alter table 表名 add 列名 类型 更改表中列的数据类型 alter table 表名 alter column 列名 类型 删除表中的指定列 alter table 表 ...

  4. Android中View的事件分发机制——Android开发艺术探索笔记

    原文链接 http://sparkyuan.me/ 转载请注明出处 介绍 点击事件的事件分发就是对MotionEvent事件的分发过程.当一个MotionEvent产生了以后,系统须要把这个事件传递给 ...

  5. openwrt procd 运行的一些log

    void procd_inittab(void) { #define LINE_LEN 128 FILE *fp = fopen(tab, "r"); struct init_ac ...

  6. 全志Android SDK编译详解(二)

    注意要确定安装了jdk) 第一步: cd  lichee; ./build.sh  -p sun5i_elite -k 3.0  (apt-get install uboot-mkimage需要安装m ...

  7. ARC机制之__strong具体解释

    ARC机制之__strong具体解释 __strong  解析: 默认情况下,一个指针都会使用 __strong 属性,表明这是一个强引用.这意味着,仅仅要引用存在,对象就不能被销毁.这是一种所期望的 ...

  8. 写入文本文件时“\n”不是回车换行而是个方块“■”的解决方法

    用“\n”写入文本文件时,打开文本文件显示的为什么不是回车换行而是个黑方块“■”,但用file()读取时还是认为是一行一行的? 首先在WINDOWS里回车换行是"\r\n"; 而L ...

  9. 模板方法模式-TemplateMethod

    模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的机构即可以重定义算法的某些特定步骤. 模板方法模式是通过吧不变形为搬移到超类,去除子类中的重复代码 ...

  10. JavaScript 实现块级作用域

    (function(){ 块级作用域: })();