Deep Learning 概念概览

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Deep Learning 概念概览相关的知识,希望对你有一定的参考价值。

参考技术A

[更新中...]
---------------------------------Reference---------------------------------
参考:
https://zhuanlan.zhihu.com/p/27186569
https://dvl.in.tum.de/teaching/i2dl-ss19/

---------------------------------目录---------------------------------
(1) Neuron/神经元
(2) Machine Learning
(3) Basic classifier
(4) Cross Validation 6/2/2
(5) Linear Decision Boundaries
(6) Linear Regression
(7) Weights/权重
(8) Bias/偏移
(9) Affine function
(10) Activation Function
(10.a) Sigmoid函数
(10.b) 线性整流函数(ReLU-Rectified Linear Units)
(10.c) softmax函数
(11) Loss function
(11.a) [Regression] MSE
(11.b) [Regression] MAE
(11.c) Cross-entropy loss
(11.d) [Classification] MLE (Maximum Likelihood Estimation)
(12) 成本函数(cost function)
(13) Concept:Gradient VS Derivative
(13.a)Gradient: 导数
(13.b)Derivative/Nabla Operator(∇): 偏导
(14) Optimization
(15) NN神经网络
(16) Input/Output/Hidden Layer 输入层/输出层/隐藏层
(17) 多层感知器(MLP-Multi Layer Perceptron)
(18) 正向传播(forward propagation)
(19) 学习速率(learning rate)
(20) 反向传播(back propagation)
(21) 分批(Batches)
(22) 周期(epochs)
(23) Dropout方法
(24) 分批标准化(Batch Normalization)
(25) Regularization
(26) Precision and Recall
(27) Parametric Statistic

---------------------------------Basics---------------------------------

正如我们大脑中的基本组成单元,神经元是组成神经网络的基础结构。设想一下当接触到新的信息时,我们的身体会对其进行处理,最后产生一些特定的反应。

相似地,在神经网络中,在收到输入的信号之后,神经元通过处理,然后把结果输出给其它的神经元或者直接作为最终的输出。

A way to make use of data:train/valid/test

决策边界就是能够把样本正确分类的一条边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries)。

Question what’s the relationship between LDB and SVM?
Answer SVM is an algorithm/method to find the best LDB (that’s why SVM is also called Large Margin Classifier)

支持向量机(Support Vector Machine, SVM)是一类按 监督学习 (supervised learning)方式对数据进行 二元分类 的广义线性分类器(generalized linear classifier),其[决策边界]( https://baike.baidu.com/item/%E5%86%B3%E7%AD%96%E8%BE%B9%E7
Suppose there are N observations and M features in training data set. A sample from training data set is taken randomly with replacement.%95%8C/22778546)是对学习样本求解的最大边距超平面(maximum-margin hyperplane) [1-3] 。

SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在 margin ,并且需要使各侧的margin最大化。比较容易理解的是,从决策边界到各个training example的距离越大,在分类操作的差错率就会越小。因此,SVM也叫作Large Margin Classifier。

最简单的情况是,在二维平面中的,线性可分情况,即我们的training set可以用一条直线来分割称为两个子集,如下图所示。而在图中我们可以看到,H2和H3都可以正确的将training set进行分类,但细细想来,使用H2进行分类的话,我们对于靠近蓝线的几个训练样例其实是不敢说100%的,但对于离蓝线最远的小球,我们却很有把握。这也是H3这条SVM红线出现的原因:尽量让两侧的训练样例远离决策边界,从而让我们的分类系统有把握对每个球Say Absolutely。

---------------------------------以下开始讲 Linear Regression---------------------------------

当输入信号进入到神经元后,会被乘以相应的权重因子。举例来说,假设一个神经元有两个输入信号,那么每个输入将会存在着一个与之相应的权重因子。在初始化网络的时候,这些权重会被随机设置,然后在训练模型的过程中再不断地发生更改。

在经过训练后的神经网络中,一个输入具有的权重因子越高,往往意味着它的重要性更高,对输出的影响越大。另一方面,当权重因子为0时意味着这个输入是无价值的。

如下图所示,假设输入为a,相应的权重为W1。那么通过赋权节点后相应的输入应变为a*W1。

除了权重之外,输入还需要经过另外一种线性处理,叫做偏置。通过把偏置b与加权后的输入信号a*W1直接相加,以此作为激活函数的输入信号。

~ is a function between different affine space/仿射空间 .

Goal : after the transformation the data still has it\'s original characters!
Content : is a function composed of a linear function + a constant.
Graph : a straight line.
General equation : y = Ax + c.
对数据使用affine function后都满足以下条件:

下文的u=∑w*x+b就是affine function

~ of a node defines the output of that node, given an/more input.
之前线性处理之后的输入信号通过激活函数进行非线性变换,从而得到输出信号。即最后输出的信号具有f(a*W1+b)的形式,其中f()为激活函数。

在下面的示意图中, 设X1…Xn等n个输入分别对应着权重因子Wk1…Wkn以及相应的偏置b1…bn。我们把输入Xi乘以对应的权重因子Wki再加上bi的结果称为u。
u=∑w*x+b 这个激活函数f是作用在u上的,也就是说这个神经元最终的输出结果为yk = f(u)

接下来我们讲一讲常用的一些激活函数:Sigmoid函数, 线性整流函数(ReLU) 和 softmax函数

作为最常用的激活函数之一,它的定义如下:

sigmoid函数为值域在0到1之间的光滑函数,当需要观察输入信号数值上微小的变化时,与阶梯函数相比,平滑函数(比如Sigmoid函数)的表现更好。

近来的神经网络倾向于使用ReLU替代掉sigmoid函数作为隐层的激活函数,它的定义如下:f(x) = max(x,0).
The rectified linear activation function is a piecewise linear function that will output the input directly if is positive, otherwise, it will output zero.

使用ReLU函数的好处是,对于所有大于0的输入,导数是恒定的,这能够加快训练网络的速度。

softmax激活函数通常应用在分类问题的输出层上。
It´s a Multinomial Logistic Regression

它与Sigmoid函数相似,唯一的不同是softmax函数输出结果是 归一化 的。sigmoid函数能够在双输出的时候奏效,但当面对多种类分类问题的时候,softmax函数可以方便地直接将各个分类出现的概率算出。
sigmoid()仅仅是二元,softmax可以多元

例子:
输入向量 [1,2,3,4,1,2,3] 对应的Softmax函数的值为 [0.024,0.064,0.175,0.475,0.024,0.064,0.175] 。输出向量中拥有最大权重的项对应着输入向量中的最大值“4”。这也显示了这个函数通常的意义:对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量。
Normalization!

We use the following Loss Function to evaluate the loss , measures how good my model is.

or L2 loss, or mean squared deviation (MSD), or Linear Least Square.

Attention: From Normal-Expression to Matrix-notation it emit the (1/n), we are just looking for the minimal value so it doesn\'t matter!

or L1 loss

or log loss, measures the performance of a classification model whose output is a probability value between 0 and 1.

You can see from the graph, that cross-entropy penalizes both types of errors, but especially those predictions that are confident and wrong!(when predicted probability drops around 0.15)

是用来估计一个概率模型的 参数 的一种方法。
Reference: https://www.youtube.com/watch?v=XepXtl9YKwc
--> The goal is to find the optimal way to fit the distribution of data.

For example, if it\'s normal distribution, then the parameters mean , deviation can be modify in order to fit the data better!
猜测分布函数的参数,以尽量多的涵盖observation中的数据点(举例:如果满足normal distribution,那么这里的参数就指mean和standard deviation)。

为了找到使p最好的参数Theta.

例子:
Step 1: Maximum Likelihood for the Mean
The name of "likelihood" basically means, how like you are going to find data-points according to the estimated distribution >> And it stops when it finally find the highest likelihood >> where we should put our mean on it:

Cost function即loss的综合,loss由loss function求的

在神经网络的建造过程中,建造者们希望输出的结果能够尽可能地接近实际值,因此使用成本函数来描述网络的这种准确性。

神经网络的目标是增加预测的准确性从而减少误差,即最小化成本函数。通常情况下,最优化的输出结果往往对应着成本函数的最小值。

如果采用均方误差作为成本误差,即表示为C= 1/m ∑(y – a)2,其中m是训练过程中输入数据的个数,a是相应的预测值,y代表实际值。

模型学习的过程就是围绕着最小化成本而进行的。

https://stats.stackexchange.com/questions/179026/objective-function-cost-function-loss-function-are-they-the-same-thing

Useful concepts: Component & Variable
Suppose there are N observations and M features in training data set. A sample from training data set is taken randomly with replacement.
Component:该matrix有几行
Variable:x1,x2,,,共有几个变量

举例:

** 梯度下降(gradient descent)**
梯度下降是一种最小化成本函数的优化算法。
在梯度下降中,从起始点x开始,一次移动一点,比如说移动delta h,然后将位置信息更换为x-delta h,如此重复下去,直到达到局部的极小值,此时认为极小值就是成本最小的地方。

In order to find the minimal value of the Loss function , we need to use derivative .
Here are the common formulas:

Now through the review from loss function , I want to improve the Model, this process we call it Optimization
And the gradient is our tool to optimze the model

---------------------------------以下开始讲 Neural Network---------------------------------

神经网络是构成深度学习系统的框架。神经网络的任务是找到一个未知函数的近似表达方式,它是由彼此相连的神经元所组成,这些神经元会在训练网络的过程中根据误差来更改它们的权重和偏置。激活函数将非线性变化用线性变化的组合来表示,最终产生输出。

关于神经网络最好的定义是由Matthew Mayo给出的:

神经网络是由大量彼此相连、概念化的人造神经元组成的,这些神经元彼此之间传递着数据,相应的权重也会随着神经网络的经历而进行调整。神经元们有着激活的阈值,当它们遇到相应的数据以及权重时会被激活,这些被激活的神经元组合起来导致了“学习”行为的产生。

从名字中就能看出,输入层代表接受输入数据的一层,基本上是网络的第一层;输出层是产生输出的一层,或者是网络的最后一层,而网络中间的处理层叫做隐藏层。
这些隐藏层对输入的数据进行特定的处理,再将其输入到下一层。输入层和输出层是可见的,而中间层通常是被隐藏起来的。

一个单一的神经元不能够完成复杂的任务,因此需要将它们堆叠起来工作进而产生有用的输出。
最简单的神经网络包括一个输入层、一个隐藏层和一个输出层。每一层都由多个神经元组成,每一层的每个神经元都与下一层中的所有神经元相连。这样的网络可以被称为是全连接网络。

正向传播是指信号从输入层经过隐藏层到输出层的传输过程。在正向传播中,信号是沿着单一方向进行传播,即输入层给隐藏层提供输入,进而最终产生相应的输出。

学习速率定义为在每次迭代过程中对 成本函数最小化 的次数 。简单来说,学习速率就是指朝着成本函数最小值的 下降速率 。选择学习速率需要很谨慎,过大会导致可能越过最优解,过小会导致收敛花费太多的时间。

在定义一个神经网络的过程中, 每个节点会被随机地分配权重和偏置。一次迭代后,我们可以根据产生的结果计算出整个网络的偏差,然后用偏差结合成本函数的梯度,对权重因子进行相应的调整,使得下次迭代的过程中偏差变小。这样一个结合成本函数的梯度来调整权重因子的过程就叫做反向传播。

在反向传播中,信号的传递方向是朝后的,误差连同成本函数的梯度从输出层沿着隐藏层传播,同时伴随着对权重因子的调整。

比如一共有10000条数据,分成10个batch,每个batch就是100条数据。
当在训练一个神经网络的时候,相对于一次性将所有的数据全输入进去,有一个更好的方法:先将数据随机地分为几个大小一致的数据块,再分批次输入。跟一次性训练出来的模型相比,分批训练能够使模型的适用性更好。

比如一共有10000条数据,分成10个batch,每个batch就是100条数据。正向,反向跑完所有10000条数据,即一个epoch。
一个周期表示对所有的数据批次都进行了一次迭代,包括一次正向传播和一次反向传播,所以一个周期/纪元就意味着对所有的输入数据分别进行一次正向传播和反向传播。

训练网络周期的次数是可以选择的,往往周期数越高,模型的准确性就越高,但是,耗时往往就越长。同样你还需要考虑如果周期/纪元的次数过高,那么可能会出现过拟合的情况。

Dropout是一个可以阻止网络过拟合(overfitting)的规则化方法(regularization)。就像它的名字那样,在训练过程中隐藏的某些特定神经元会被忽略掉(drop)。这意味着网络的训练是在几个不同的结构上完成的。
这种dropout的方式就像是一场合奏,多个不同结构网络的输出组合产生最终的输出结果。

分批标准化就像是人们在河流中用以监测水位的监察站一样。这是为了保证下一层网络得到的数据拥有合适的分布。在训练神经网络的过程中,每一次梯度下降后权重因子都会得到改变,从而会改变相应的数据结构。

但是下一层网络希望能够得到与之前分布相似的数据,因此在每一次数据传递前都需要对数据进行一次正则化处理。

Goal: Penalize the complexity of the model, avoid explicitly fitting the training-data.
Different regularization methods:
They are different ways to define the "complexity" of a model

参数统计 是 统计学 的一个分支,它假设样本数据来自总体,而总体可以通过具有固定参数集的 概率分布 进行充分建模。 [1] 相反, 非参数模型 的确切区别在于其参数集(或 机器学习 中的 特征集 )不是固定的,如果收集到新的相关信息,则该参数集可能会增加甚至减少。 [2]
Example:
正态分布族 都具有相同的一般形态,并可以通过均值和标准差进行 参数化 。这意味着,如果均值和标准差已知,并且分布是正态的,则任何将来观察到的给定范围内的概率都是已知的。

假设有一个存在99个测试分数的样本,平均值为100,标准差为1。如果假设所有99个测试分数都是从正态分布中随机观察到的,那么我们预测第100个测试分数有1%的概率将高于102.33(即平均值加2.33标准偏差)。给定99个来自相同正态分布的 独立 观测值,可使用参数统计方法计算上述标准偏差值。

对同一事物的 非参数 估计是前99个分数中的最大值。不需要假设考试分数的分布情况就可以推断出,在我们进行考试之前,最高分数会出现在前100个分数中。因此,第100个分数有1%的可能性高于之前的99个分数。

以上是关于Deep Learning 概念概览的主要内容,如果未能解决你的问题,请参考以下文章

基于Deep Learning 的视频识别方法概览

基于Deep Learning 的视频识别方法概览

翻译: 深入神经网络概览Dive into Deep Learning

Deep learning:学前了解

快速掌握 深度学习(Deep Learning) 常用概念术语,常用模型

《deep learning book--引言