高效计算基础与线性分类器

高效计算基础与线性分类器
标签: 深度学习线性分类器
131人阅读 评论(0) 收藏 举报
本文章已收录于:
分类:
七月算法5月深度学习班课程笔记——No.2

1. 深度学习与应用

  1. 图像上的应用:可以根据图片,识别图片的内容,描述图像;模仿人的创造性生成画作;相册自动归类等。
  这里写图片描述
   这里写图片描述
  
  2. NLP上的应用:用RNN学习某作家的文笔风格进行写作、学习代码写作等。下图为RNN学习了200M的代码量后自动生成的代码片段,代码的格式已经比较相似了。
  这里写图片描述
  
  3. 综合应用:识别物体,再根据识别出来的物品组织成文本描述。
  这里写图片描述

2. 高效计算基础

  Python基本类型、容器等基础的语言知识,请移步:python基础教程
  Numpy:矩阵运算
  Scipy:稀疏矩阵求距离。
  科学计算库的安装与使用可以移步:Python及科学运算库的安装

3. 图像识别难点与KNN

  图像识别的核心问题:一个图像给计算机输入的是一个矩阵,每一个像素点上都是一个RGB颜色值,根据矩阵去做图像识别,计算置信度。
  难点:
  1. 视角不同:每个事物旋转或者侧视最后的构图都完全不同
  2. 尺寸大小不统一:相同内容的图片也可大可小
  3. 变形:很多东西处于特殊的情形下, 会有特殊的摆放和形状
  4. 光影等干扰/幻象重点内容
  5. 背景干扰
  6. 同类内的差异(比如椅子有靠椅/吧椅/餐椅/躺椅…)
  图像识别的基本流程:

输入:我们的给定K个类别的N张图片, 作为计算机学习的训练集。
学习:让计算机逐张图片地『 观察』 和『 学习』
评估:就像我们上学学了东西要考试检测一样, 我们也得考考计算机学得如何, 于是我们给定一些计算机不知道
类别的图片让它判别, 然后再比对我们已知的正确答案。

  K最邻近法(KNN):K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
  KNN做图像识别有一些缺点,比如准确度不高,因为找不到图像合适的特征,而且KNN需要记录全部训练数据。那么可以试试线性分类器,用逻辑回归或者linearSVM。

4. 线性分类器

4.1 线性分类器

  线性分类器会有一个得分函数,比如CIFAR-10数据集,数据集里有10个类别,每个图像的大小都是32x32,每个像素点有RDB的值,所以总共有32x32x3=3072 个数,线性分类器就是把这些数作为输入,即3072x1的向量,给定权重矩阵W[n*3072],n是要判定的类别的数量。通过矩阵相乘得到得分函数:
  

f(x,W)=Wx+b

  其中W是通过训练得到的。那么得到的得分高低就可以判定类别。
   这里写图片描述
  线性分类器的理解:
  1. 空间划分:Wx+b是空间的点。
  2. 模板匹配:W的每一行可以看做是其中一个类别的模板。每类得分,实际上是像素点和模板匹配度,模板匹配的方式是内积计算。

4.2 损失函数

  损失函数:由得分函数我们知道,给定W,可以由像素映射到类目得分。损失函数用来评估W、b的好坏,衡量吻合度,可以通过调整参数/权重W, 使得映射的结果和实际类别吻合。有两种损失函数:
  一是hinge loss/支持向量机损失
  对于训练集中的第i张图片数据 xi ,在W下会有一个得分结果向量 f(xi,W) ,第j类的得分为我们记作 f(xi,W)j ,则在该样本上的损失我们由下列公式计算得到:
  

Li=jyimax(0,f(xi,W)jf(xi,W)yi+Δ)

  假如有猫、狗、船三个类别,得分函数计算某张图片的得分为 f(xi,W)=[13,7,11] ,而实际的结果是第一类 yi=0 。假设 Δ=10 ,用上面的公式把错误类别 (jyi) 都遍历了一遍,则求值加和:
  
Li=max(0,713+10)+max(0,1113+10)

  计算得到狗的损失函数为0,船的损失函数为8,所以被判定为船的概率还是比较高的。所以 Δ 可以看做一个超参数,规定一个警戒线用来平衡损失。
   这里写图片描述
  
  二是 互熵损失(softmax分类器)
   对于训练集中的第i张图片数据 xi ,在W下会有一个得分结果向量 fyi ,则损失函数记作:
  
Li=log(efyijefj)

   把得分求exp再做归一化,计算损失。两种损失函数得到的结果会有些区别,实际的求解过程比较如下:
   这里写图片描述

5. 实践

  KNN分类器、用SVM和Softmax分类器做图像分类,详见ipython。

More

  1. python做科学计算
  2. 深度学习—线性分类器视频及PPT下载
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值