深度学习中得数学,高效计算基础与线性分类器

深度学习说到底就是要调节网络中得权重,使网络的分类结果更接近于训练值。这个重复迭代的过程又是一个线性回归的问题。在这种可能会用到高数,线性代数,概率论中的知识。

一、数学基础提一提。

1.高数中得知识。

高数中最重要的就是微积分了,那在深度学习中出现最多的一个概念就是梯度。什么是梯度呢?要说导数,学过高数的肯定都知道。其实梯度就是当把标量x变成向量X时,对X求导就是梯度。那为什么要用梯度呢?因为梯度等于0在凸函数中往往代表着一个极小值点。我们要求得就是损失函数的极小值,这正是我们需要的。梯度是指向函数最大增加的方向,下面来解释为什么。

往往我们直接去求梯度等于0并不容易,所以我们要一步一步迭代,当f(x)无限接近于0.当X(k)=梯度,此时等式右边就变成一个二范式,这就代表了函数的最大增加方向。当我们对梯度取负时,就变成了函数减小最快的方向。也就是我们常说的梯度下降方法。工程中会在梯度前乘一个常数用来控制变化的程度,通常被称为步长。

2.概率论

(1)其中用的较多的知识是:独立变量概率的表示形式有分布函数,概率密度估计函数,累积分布函数

(2)中心极限定理

(3)贝叶斯公式

3.PCA:一种算法,用来对矩阵降维使用。

二、神经网络简介与应用

1.图像上的应用

(1)场景识别

(2)图片内容识别

(3)自动图片归类

(4)拍立淘

2.自然语言上的应用

把一些文本输入到RNN会自动学习。例如把小四的文章输入网络中,可以自动学习其文笔输出文字。

3.综合应用

把在图像和文本上的应用结合起来。例如输入一张图片,输出对这张图片的描述。

三、高效计算基础

1.Python的数据类型,可参考另一篇博文http://www.cnblogs.com/softzrp/p/6523336.html

2.Python中的库:numpy和scipy

四、图像识别 其实就是输入一个多维数组,每一个位置的数都是0-255的范围,都代表一个颜色

1.困难之处:

(1)视角不同:一张图片经过旋转或者侧视后构图是完全不同的,计算机很难识别。(这也是一个好处,当样本量不够时可以通过旋转等方式增加样本量)

(2)尺寸大小不统一

(3)变形

(4)光影等干扰

(5)背景干扰

(6)同类内的差异

2.数据驱动学习,不是先去定义一个规则

3.K最近邻法

(1)需要衡量样本间的距离(曼哈顿距离,欧式距离,余弦距离)

(2)k最近邻法:找到训练集中最近的N个,以他们中出现的最多的结果作为结果

(3)N折交叉验证:把训练集分成N分,用其中N-1份做训练,第i份做测试得到一个准确率,最后把这n个准确率求平均。当N取不同的值会得到多个不同的平均准确率,取最大的那个平均准确率对应的n值

4.KNN做识别的优缺点

(1)准确度不高

(2)要记录全部训练数据

(3)慢

5.线性分类器

(1)得分函数:f(x,W)=Wx+b  其中x为输入的一个列向量,W为权重矩阵。举个例子:一张图片是32*32*3(长宽为32个像素,3位通道)的,那就可以构建一个32*32*3=3072维的一个列向量,把他作为x输入。假如要分为10类,那么W就是一个10*3072的一个矩阵。W*x后得出一个10*1的一个列向量f,把它作为得分函数。

理解:1)看做一条直线对空间划分         2)模板匹配:w的每一行可以看做是其中一个类别的模板;每类得分,实际上是像素点和模板匹配度;模板匹配的方式是内积运算

(2)损失函数(代价函数/cost function)(客观度/object)

给定W,可以由像素映射到类目得分,可以调整参数/权重W,使得映射的结果和实际类别吻合,损失函数是用来衡量吻合度的

损失函数 1:hinge loss/支持向量机损失

?对于训练集中的第i张图片数据x i,在W下会有一个得分结果向量f(x i ,W),?第j类的得分为我们记作f(x i ,W) j,?则在该样本上的损失我们由下列公式计算得到


?因为是线性模型,因此可以简化成

加正则化项:

损失函数2: : 互熵损失(softmax)

对于训练集中的第i张图片数据x i,在W下会有一个得分结果向量f yi,则损失函数记作

或者

其中一般:

时间: 2024-10-25 07:24:59

深度学习中得数学,高效计算基础与线性分类器的相关文章

干货 | 深入理解深度学习中的激活函数

理解深度学习中的激活函数 在这个文章中,我们将会了解几种不同的激活函数,同时也会了解到哪个激活函数优于其他的激活函数,以及各个激活函数的优缺点. 1. 什么是激活函数? 生物神经网络是人工神经网络的起源.然而,人工神经网络(ANNs)的工作机制与大脑的工作机制并不是十分的相似.不过在我们了解为什么把激活函数应用在人工神经网络中之前,了解一下激活函数与生物神经网络的关联依然是十分有用的. 一个典型神经元的物理结构由细胞体.向其他神经元发送信息的轴突以及从其他神经元接受信号或信息的树突组成. ? 图

浅谈深度学习中潜藏的稀疏表达

浅谈深度学习中潜藏的稀疏表达 “王杨卢骆当时体,轻薄为文哂未休. 尔曹身与名俱灭,不废江河万古流.” — 唐 杜甫<戏为六绝句>(其二) [不要为我为啥放这首在开头,千人千面千理解吧] 深度学习:概述和一孔之见 深度学习(DL),或说深度神经网络(DNN), 作为传统机器学习中神经网络(NN).感知机(perceptron)模型的扩展延伸,正掀起铺天盖地的热潮.DNN火箭般的研究速度,在短短数年内带来了能“读懂”照片内容的图像识别系统,能和人对话到毫无PS痕迹的语音助手,能击败围棋世界冠军.引

卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)

卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的最前沿.但是,卷积如此强大呢?它是如何工作的?在这篇博客文章中,我将解释卷积并将其与其他概念联系起来,以帮助您彻底理解卷积. 已经有一些关于深度学习卷积的博客文章,但我发现他们都对不必要的数学细节高度混淆,这些细节没有以任何有意义的方式进一步理解.这篇博客文章也会有很多数学细节,但我会从概念的角度来看待他们,在这里我用每个人都应该能够理解的图像表示底层数学.这篇博文的第一部分是针对任何想要了解深度学习中

深度学习中的常见问题汇总(一)

深度学习中的常见问题汇总(一) 转自 卷积神经网络的复杂度分析 关于感受野的总结 1.CNN复杂度分析 在深度学习基础网络不断进化的过程中,可以发现新的模型不仅性能有极大地提升,网络的复杂度通常也会更低.深度学习网络模型的复杂度直接关系到其实际应用中的速度与可行性,因此这里总结一下 CNN 复杂度的含义与计算方式. 1.1时间复杂度 通常,我们假设计算机运行一行基础代码需要一次运算,那么模型的时间复杂度即为模型的运算次数,用浮点运算次数 FLOPs(FLoating-point OPeratio

zz深度学习中的注意力模型

中间表示: C -> C1.C2.C3 i:target -> IT j: source -> JS sim(Query, Key) -> Value Key:h_j,类似某种“basis”: 从图9可以引出另外一种理解,也可以将Attention机制看作一种软寻址(SoftAddressing):Source可以看作存储器内存储的内容,元素由地址Key和值Value组成,当前有个Key=Query的查询,目的是取出存储器中对应的Value值,即Attention数值.通过Quer

[转] 深度学习中的注意力机制

from: https://zhuanlan.zhihu.com/p/37601161 注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理.语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影.所以,了解注意力机制的工作原理对于关注深度学习技术发展的技术人员来说有很大的必要. 人类的视觉注意力 从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制. 图1 人类的视觉注意力 视觉注意力机制是人类视觉所特有的大

深度学习中交叉熵和KL散度和最大似然估计之间的关系

机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论中熵的定义.信息论认为: 确定的事件没有信息,随机事件包含最多的信息. 事件信息的定义为:\(I(x)=-log(P(x))\):而熵就是描述信息量:\(H(x)=E_{x\sim P}[I(x)]\),也就是\(H(x)=E_{x\sim P}[-log(P(x))]=-\Sigma_xP(x)l

深度学习中的Data Augmentation方法(转)基于keras

在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augmentation 2. Regularization. 数据量比较小会导致模型过拟合, 使得训练误差很小而测试误差特别大. 通过在Loss Function 后面加上正则项可以抑制过拟合的产生. 缺点是引入了一个需要手动调整的hyper-parameter. 详见 https://www.wikiwand.c

深度学习中 --- 解决过拟合问题(dropout, batchnormalization)

过拟合,在Tom M.Mitchell的<Machine Learning>中是如何定义的:给定一个假设空间H,一个假设h属于H,如果存在其他的假设h’属于H,使得在训练样例上h的错误率比h’小,但在整个实例分布上h’比h的错误率小,那么就说假设h过度拟合训练数据. 也就是说,某一假设过度的拟合了训练数据,对于和训练数据的分布稍有不同的数据,错误率就会加大.这一般会出现在训练数据集比较小的情况. 深度学习中避免过拟合的方法: Dropout      2012年ImageNet比赛的获胜模型A