Cs231n课堂内容记录-Lecture3

Lecture 3

课程内容记录:(上)https://zhuanlan.zhihu.com/p/20918580?refer=intelligentunit

(中)https://zhuanlan.zhihu.com/p/20945670?refer=intelligentunit

(下)https://zhuanlan.zhihu.com/p/21102293?refer=intelligentunit

1.线性分类器(linear classifer):

我们总是希望得到一个函数f(x,w),即评分函数(score function),x代表输入数据,往往是图像的numpy矩阵,w是权重或者一些参数,而整个函数的结果对应预测值的一维Numpy矩阵,矩阵中数值最大的预测值代表概率最高的预测对象。我们可以去利用充分地想象力改变f,已得到尽可能高效准确的预测结果,最简单的f就是乘积的形式,也就是线性分类器。

通常我们会添加一个偏置项,他是对应预测结果数的一维向量,它对预测得到的数据进行偏置,以获得更具有取向性的结果(如果你的分类结果中猫的数量大于狗,而测试集中猫狗的数量一致,很可能你的偏置更倾向于猫)。

2.NN和线性分类器的区别:

NN的训练过程只是将训练集图片及标签提取出来,预测过程中找到与预测对象L1距离最小的训练集图像,它对应的标签类别就是预测类别。KNN多了一步是找到K个最小图像进行二次投票。

线性分类器需要得到权重值W和偏置值b,然后相当于利用测试图像去匹配不同类别对应的(W,b)组成的模板图像,最为匹配的则属于该类别。这样极大地节省了测试集测试所需的时间。这时我们所要做的“匹配”过程,是使预测图像得到的评分结果尽可能与训练集中图像的真实类别一致,即评分函数在正确的分类位置应当得到最高的评分。(也就是说通过W,b划分出分类的特定空间)

3.关于支持向量机(SVM:Support Vector Machine):

支持向量机的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大,原用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题。离分离超平面最近的两个数据点被称为支持向量(Support Vector)。

参见吴恩达机器学习课程以及李航《统计学习方法》

4.关于正则化(regularization):

通过在损失函数中加入后一项,正则化项,我们对W的值进行了制约,希望模型选择更简单的W值。这里的“简单”具体取决于你的模型种类和任务的规模。它同样体现了奥卡姆剃刀的观点:如果你找到了多个可以解释结果的假设,一般来说我们应该选择最简约的假设。因为这样的假设鲁棒性更好,更适用于全新的测试集。基于这一思想,我们希望W的值尽量小。这样我们的损失函数就具有两个项,数据丢失项(data loss)和正则化项(Regularization)。这里我们用到了一种超参数λ用以平衡这两项,称为正则化参数。

关于正则化参数部分,可以参见吴恩达课程。

一些正则化方法如下图:

对模型进行正则化(regulairzation),也就是在损失函数中加入正则项的主要目的是为了减轻模型的复杂度,在一定程度上减缓过拟合的速度。

5.关于范数(norm):

参见:https://blog.csdn.net/a493823882/article/details/80569888

6.支持向量机(SVM)和Softmax分类器的对比:

SVM和Softmax是最常用的两个分类器,Softmax的损失函数和SVM不同,SVM输出f(x,W),我们得到每个分类的对应的评分大小。而Softmax的输出更加直观,是各分类归一化后的分类概率。在Softmax分类器中,函数f(x,W)=Wx的形式保持不变,但分类器将这些评分值视为每个分类的未归一化的对数概率,并且将折叶损失(hinge loss)替换成了交叉熵损失(cross-entropy loss)。

关于交叉熵的解释以及两者区别的具体例子,以及关于两者区别的一些解释,课程笔记中讲得很好。

注:

关于softmax对数取负的原因:我们将对数概率指数化,归一化之后再取对数,这时如果结果越好当然概率越高,但我们期望loss应该越低才对,所以对结果取负。

Softmax Classifier,又称Multinomial Logistic Regression,多项式逻辑回归。

7.loss function总结:

原文地址:https://www.cnblogs.com/yun-an/p/10146682.html

时间: 2024-10-08 18:05:20

Cs231n课堂内容记录-Lecture3的相关文章

Cs231n课堂内容记录-Lecture 6 神经网络一

Lecture 6 神经网络一 课程内容记录: (上)https://zhuanlan.zhihu.com/p/21462488?refer=intelligentunit (下)https://zhuanlan.zhihu.com/p/21513367?refer=intelligentunit 1.视频弹幕中关于课堂例子的解释: 1:我们通过学习训练集得到权重W1,对应于可以识别一些feature的模板. 2:输入新的数据X,结合W1,计算得到一个得分score(中间过程可能会再经过一些非线

Cs231n课堂内容记录-Lecture 7 神经网络二

Lecture 7 神经网络二 课程内容记录:https://zhuanlan.zhihu.com/p/21560667?refer=intelligentunit 1.协方差矩阵: 协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差.而方差是协方差的一种特殊情况,即当两个变量是相同的情况. 协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同. 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间

Cs231n课堂内容记录-Lecture 9 深度学习模型

Lecture 9 CNN Architectures 参见:https://blog.csdn.net/qq_29176963/article/details/82882080#GoogleNet_83 一. LeNet-5: 神经网络的第一个实例,用于识别邮票上的手写数字,使用步长为1,大小为5*5的卷积核,对第一层进行操作,然后进行池化,通过几层卷积和池化,在网络的最后还有一些全连接层.LeNet在数据识别领域取得了成功. 二. AlexNet: Alexnet是2012年ImageNet

struts2,json,ajax整合内容记录

使用ssh三大框架整合时关于struts2,json,ajax整合内容记录.这里写主要部分代码 action部分: 注意事项,action部分的返回值要有set和get方法,否则会报错. package com.hcj.action; import net.sf.json.JSONObject; import com.hcj.dto.User; import com.hcj.service.UserService; import com.opensymphony.xwork2.ActionSup

河北科技创新平台课堂讨论记录

课堂讨论记录 主题:河北科技创新平台年报系统 小组成员:程浩.蔡金阳.多文佳.雒浩驰 主持人:程浩 一. 确定会议目标 1. 项目目标 2. 确定范围 3. 利益相关者 二. 会议形式 结构化会议形式 三. 会议规则 (1) 个人轮流地说出想法 (2) 所出的主意一个个地记录在白板上 (3) 主持人提问产生更多主意 (4) 澄清主意 四. 会议记录 1. 目标 为什么业务会投资这个项目: 白板记录: 采纳主意或要点: ① 节省人力.财力 ② 提高工作效率 ③ 形式统一.方便管理 ④ 安全性 业务

河北创新平台课堂讨论记录

课堂讨论记录 主题:河北科技创新平台年报系统 小组成员:程浩.蔡金阳.多文佳.雒浩驰 主持人:程浩 一. 确定会议目标 1. 项目目标 2. 确定范围 3. 利益相关者 二. 会议形式 结构化会议形式 三. 会议规则 (1) 个人轮流地说出想法 (2) 所出的主意一个个地记录在白板上 (3) 主持人提问产生更多主意 (4) 澄清主意 四. 会议记录 1. 目标 为什么业务会投资这个项目: 白板记录: 采纳主意或要点: ① 节省人力.财力 ② 提高工作效率 ③ 形式统一.方便管理 ④ 安全性 业务

软件测试技术第一周课堂随笔记录

写在前,这是软件测试技术的课堂随笔,记录了一些在课上所阐述的内容. 一.由于是第一周课,免不了讲起软件测试的定义:什么是软件测试. 软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期.对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求.预先定义的不一致性.-----------------百度百科. 个人的理解暂时就是:1.找bug.2.找出需求与实际的差别. 二.软件测试常见测试方法: 从测试是否针对软件结

Hibernate 内容记录

Session概述: -Session接口是Hibernate向应用程序各供的操作数据库的最主要的接口,它提供了基本的保存.更新.删除和加载Java对象的方法. -Session具有一个缓存,位于缓存中的对象称为持久化对象,它和数据库中相关记录对应.Session能够在某些时间点,按照缓存中对象的变化来执行相关的SQL语句,来同步更新数据库,这一过程被称为刷新缓存(flush) -站在持久化的角度,Hibernate把对象分为4种状态:持久化状态,临时状态,游离状态,删除状态.Session的特

Mybatis内容记录

MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参数.结果集检索等jdbc繁杂的过程代码.