李宏毅2020机器学习笔记

1.机器学习概论

 

 

为解决不同的问题、完成不同的任务,需要找到不同的函数,那机器学习能找到哪些函数呢?

1.回归(Regression):输出是一个连续的数值、标量,比如PM2.5预测。

2.分类(Classification):输出是一个离散的值。

3.二分类(Binary Classification):的输出就是0或1、Yes或No、…,比如文本情感分析的输出可以是正面和负面。

4.多分类(Multi-Category Classification):的输出就是[1,2,3,…,N],比如图像分类里判断一张图片是猫还是狗还是杯子。

5.生成(Generation):很多教科书把机器学习划分为回归问题和分类问题,但其实不止这两种问题,还有其它问题, 生成(Generation)指让机器学习如何创造/生成,比如生成文本、图片等。

监督学习(Supervised Learning)

可以把有监督学习中的“监督”理解为“标签(Label)”,即数据集中不仅包括特征还包括标签。

有了标签,我们就可以评价一个函数的好坏,进而优化这个函数。

使用Loss判断函数的好坏,Loss越小,函数越好。

强化学习(Reinforcement Learning)

原始的AlpahGo是先通过有监督学习优化到一定程度,然后用强化学习继续优化。

新版本的AlphaGo是完全通过强化学习实现的,优于原始的AlphaGo。

无监督学习(Unsupervised Learning)

只给机器提供数据特征,但不提供数据标签。

监督学习VS强化学习

监督学习:函数的输入(数据特征)就是棋盘状态,函数的输出(数据标签)就是下一步落棋的位置。此时,我们需要为机器提供的数据就类似棋谱(如果现在棋局是这样,那下一步怎么落棋最好),但其实人类不一定知道怎么落棋最好。

强化学习:让机器跟自己、别人下棋,把结果(赢或输)作为Reward引导机器学习如何下棋。如果它赢了,那它就知道这一盘里有几步棋下得好,但不知道是哪几步;如果它输了,它就知道这一盘里有几步棋下得不好,但不知道是哪几步。

机器如何找出我们想找到的函数

1.给定函数形式/范围(模型)

比如假定函数是线性模型、神经网络等等。模型就是一个函数集,模型的参数确定以后,才得到一个函数。

2.找到更好的函数:

使用梯度下降(Gradient Descent),找到更好的函数。

机器学习的三个步骤

1.确定模型(Model)/函数集(Function Set)

2.确定如何评价函数的好坏

3.确定如何找到最好的函数

2.Regression

2.1线性回归模型

线性回归模型(Linear Regression Model)

y=fx=ω∙x+b

y 是输出

y 是真实值/标签(label)

ω 是权重(weight)

b 是偏置(bias)

x 是输入(input),也可叫做特征(feature)

数据集中一般包含多个object,每个object一般包含多个component。此时,上标是object的索引,下标是component的索引。

损失函数(Loss Function)

如果不考虑模型的好坏,衡量一个函数的好坏,其实是衡量模型参数的好坏。

以线性模型为例,就是衡量参数和的好坏。如Lf=Lω,b=n=110(y-(b+ω*xn))2 , 把所有样本误差的平方和作为损失函数

输入:一个函数

输出: 多么地不好(how bad it is)。损失函数值越大,则这个函数越差、与数据集中内容越不相符。

梯度下降(Gradient Descent)

https://www.cnblogs.com/chouxianyu/p/14198053.html(Adagrad)

梯度下降可以优化损失函数的值,使其尽量小,即可找到最好(在数据集上拟合效果最好)的模型参数。

现在假设模型f 中只有一个参数ω ,则损失函数为Lf=L(ω) ,梯度下降算法如下(若模型有多个参数,按相同方法更新各参数)

1.初始化参数

随机选取一个ω0  (并不一定是随机选取),令ω=ω0

2.计算梯度

dLf|ω=ω0

如果小于0,此时ω 增大则L(f) 会减小;如果大于0,此时ω 减小则L(f) 会减小。

如果模型有多个参数,则计算损失函数在各个参数方向上的偏导数。

3.更新模型参数

ω1=ω0-lrdLf|ω=ω0

 ω 的变化量取决于梯度和学习率(Learning Rate)的大小:梯度绝对值或学习率越大,则 ω 变化量越大。

如果模型有多个参数,则用上一步计算出的偏导数对应更新各参数。

4.重复第2步和第3步

经过多次参数更新/迭代(iteration),可以使损失函数的值达到局部最小(即局部最优,Local Optimal),但不一定是全局最优。

2.2如何选择模型,减少误差

模型选择(How to select model)

模型越复杂,一般其在训练集上的误差(Error)越小。

因为更复杂的模型(函数集)包含了更多的函数。比如二次模型包含了线性(一次)模型。

模型越复杂,其在测试集上的误差(Error)不一定越小。

因为模型过于复杂时,越容易被数据影响,可能导致过拟合。

误差(Error)

暂时称通过机器学习得到的函数人工函数,它其实是对“上帝函数”的估计(Estimator)和“上帝函数”之间是有误差的。

误差来源于两方面:

一是Bias,二是Variance,需要权衡(trade-off)两者以使总误差最小

如上图所示,Bias是指人工函数(的期望)和上帝函数之间的距离Variance是指人工函数的离散程度(或者说是不稳定程度)。

如上图所示,横轴是模型的复杂程度(1次幂、2次幂、……),纵轴是误差大小。模型越复杂,Bias越小,Variance越大。

Variance

定义:使用相同模型在不同数据上拟合得到的函数是不同的,这些函数之间的离散程度就是Variance

以射箭为例,Variance衡量的就是射得稳不稳

模型越复杂,Variance越大。

因为模型越简单,越不容易被数据影响(对数据不敏感,感知数据变化的能力较差),那Variance就越小。

Bias

定义:使用相同模型在不同数据上拟合得到的函数是不同的,取这些函数的“期望”,该期望与“真理”的差距就是Bias。

以射箭为例,Bias衡量的就是射得准不准

模型越简单,Bias越大

因为模型就是个函数集(Function Set)。模型越简单,则其包含的函数就越少、包含“上帝函数”的几率就越小,甚至可能不包括上帝函数。

在函数集很小的情况下,即使是其中最好的函数,它与“上帝函数”的差距也还是很大的。

欠拟合Bias越大 Variance越小

过拟合Bias越小 Variance越大

2.3欠拟合与过拟合

欠拟合(Underfitting)

定义:Bias较大、Variance较小。

如果模型在训练集上的误差很大,则此时Bias是大的,情况为欠拟合。

处理:使用更复杂的模型,比如添加考虑更多维度的输入、把线性模型换成非线性模型。

过拟合(Overfitting)

定义:Bias较小、Variance较大。

如果模型在训练集上的误差很小,但是在测试集上的误差很大,则此时Variance是大的,情况为过拟合。

处理

1.使用更复杂的数据集

比如添加数据(很有效,但不一定做得到)、数据增强等方法。

2.使用更简单的模型(不是根本方法)

可能是模型过于复杂导致了过拟合,因此可以简化模型缓解过拟合。

3.正则化(Regularization)

正则化可能会使Bias增大,所以需要调整正则化的参数。

Lnew=Lold(wi)2 ,其中λ 是一个常数。

加上正则项λ(wi)2 的目的是让函数参数的值尽可能地接近0,使函数变得更平滑。

平滑(Smooth)

定义:平滑是指输入变化影响输出变化的程度(输出对输入的敏感程度)。

假设输入变化,如果函数越不平滑,则输出变化程度越大

函数参数越接近0,这个函数就越平滑(smooth)。

我们为什么喜欢一个平滑的函数?

适度平滑的函数可以缓解函数输入中包含的噪声对函数输出的影响。

如果输入中包含一些噪声/干扰(noise),那平滑函数的输出受输入中包含的噪声干扰的程度更小

我们为什么不喜欢过于平滑的函数?

函数过于平滑,就无法有效地提取数据的特征,这不是我们想要的函数。

假设有一个极限平滑的函数,即该函数的输出不受输入的影响,那当然不是个好的函数。

e.g.:f(x)=0

2.4交叉验证

交叉验证(Cross Validation)

在机器学习中,通常不能将全部数据用于模型训练,否则将没有数据集可以用来评估模型

The Validation Set Approach

定义:将数据集划分训练集(Training Set)测试集(Test Set)两部分。

缺点:依赖于训练集和测试集的划分方法,并且只用了部分数据进行模型的训练

LOOCV(Leave One Out Cross Validation)

定义:假设数据集中有N个数据,取其中1个数据作为测试集,将剩下的N-1个数据作为训练集,这样重复N次就得到N个模型以及N个误差值,最终使用这N个误差值的平均值评估该模型

优点:该方法不受训练集和测试集划分方法的影响,因为每个数据都单独做过测试集;同时该方法用了N-1个数据训练模型,也几乎用到了所有的数据,保证了模型的Bias更小

缺点:该方法的缺点是计算量过大,是The Validation Set Approach耗时的N-1倍。

K折交叉验证(K-fold Cross Validation)

定义:该方法是LOOCV的折中,即将数据集分成K份。

如何选取K的值

K的选取是一个Bias和Variance的trade-off。一般选择K=5或10

K越大,每次训练时训练集的数据量就越大,则Bias越小;但每次训练时的训练集之间的相关性越大(考虑最极端的情况K=N,也就是LOOCV,每次训练使用的数据几乎是一样的),这种大相关性会导致最终的误差具有更大的Variance。

4. Classification

4.1分类简介及其与回归的区别

分类模型应用案例(Classification Cases):

1. 手写文字识别(Handwritten Character Recognition)

输入:文字图片

输出:是哪一个汉字

2. 人脸识别(Face Recognition)

输入:面部图片

输出:是哪个人

不能将分类当成回归去做!!

假设有两个类别,其中类别1的标签为1,类别2的标签为-1,那0就是分界线,大于0就是类别1,小于0就是类别2。

回归模型会惩罚那些太正确的样本。如果结果远远大于1,它的分类应该是类别1还是类别2?这时为了降低整体误差,需要调整已经找到的回归函数,就会导致结果的不准确。

如图所示,当存在结果远大于1的样本时,为了迁就该类样本,回归函数将从绿线向蓝线转变,这会使结果的准确性降低

理想替代方案(Ideal Alternatives)

模型:可以根据特征判断类型,输入是特征,输出是类别

损失函数:预测错误的次数,即

Lf=nδ(f(xnyn))   (这个函数不可微)

如何找到最好的函数

比如感知机(Perceptron)支持向量机(SVM)

4.2分类模型之概率生成模型

贝叶斯公式

PA∩B=PAPBA=P(B)P(A|B)

PA|B=PBAPAP(B)

全概率公式

PB=i=1NP(Ai)P(B|Ai)

概率生成模型(Probalitity Generative Model)

假设有两个类别C1C2 ,要判断对象x属于哪个类别,即计算x 属于类别C1的概率,这样把分类问题变成了概率计算问题。

1.根据贝叶斯公式和全概率公式可以知道,x 属于类别C1 的概率为:
PC1|x=PxC1PC1P(x)=PxC1PC1PxC1PC1+PxC2PC2

如果PxC1>0.5 , 则类别为C1,否则类别为C2

2. 概率生成模型的意思就是可以通过这个模型生成一个x , 具体来讲就是,根据

Px= PxC1PC1+PxC2PC2 , 就可以知道x 的分布进而生成x 。如果想要计算出Px ,就要根据训练集估计出PC1PxC1PC2PxC2 这四个值。

3. 可以根据数据集中属于两个类别的对象的数量计算PC1和PC2这两个先验概率(Prior Probability)。

如果有2个样本属于类别C1 ,4个样本属于类别C2 ,那PC1=1/3 、PC2=2/3

4. 要计算后验概率(Posterior Probability)PxC1PxC2 ,可以假设训练集中的各类别样本的特征分别是从某个多元正态分布(多元对应特征的多维)中取样得到的,或者说是假设训练集中各类别样本的特征分别符合某多元正态分布。

e.g.: 该正态分布的输入是一个样本的特征x ,输出为样本x 是从这个正态分布取样得到(或者说该样本属于某类别)的概率密度,然后通过积分就可以求得PxC1PxC2.

5. 正态分布有2个参数,即均值μ (代表正态分布的中心位置)和协方差矩阵(Covariance Matrix)σ (代表正态分布的离散程度),计算出均值μ 和协方差σ 即可得到该正态分布。

6.实际上从任何一个正态分布中取样都有可能得到训练集中的特征,只是概率不同而已。通过极大似然估计(Maximum Likelihood Estimate,MLE),我们可以找到取样得到训练集特征的概率最大的那个正态分布.

(在一组Function Set里的每一个Function,对于同一组训练数据,都有可能产生,区别在于每一个Function产生这组数据的概率并不相同,通过极大似然估计,可以找到在这组Function Set里的所有Function中产生这组数据概率最大的那一个Function,该Function就是我们所要找到的最佳的Function)

协方差矩阵共享

每个类别的特征符合一个多元正态分布,每个多元正态分布也有不同的均值和协方差矩阵。让每个类别对应的多元正态分布共享一个协方差矩阵(各个协方差矩阵的加权平均和),公式为

σ=N1N2+N1σ1+N2N2+N1σ2

(可以减少模型参数,缓解过拟合。)

极大似然估计

定义:

极大似然估计指已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,然后通过若干次试验,观察其结果,利用结果推出参数的大概值。一般说来,在一次试验中如果事件A发生了,则认为此时的参数值会使得P(A|θ) 最大,极大似然估计法就是要这样估计出的参数值,使所选取的样本在被选的总体中出现的可能性为最大。

求极大似然函数估计值的一般步骤:

1.写出似然函数

2.对似然函数取对数,并整理

3.求导数

4.解似然方程

除了正态分布,还可以用其它的概率模型。

比如对于二值特征,可以使用伯努利分布(Bernouli Distribution)

朴素贝叶斯分类

如果假设样本各个维度的数据是互相独立的,那这就是朴素贝叶斯分类器(Naive Bayes Classfier)。

Sigmoid函数(11+e-z=σ(z))

已知
PC1|x=PxC1PC1P(x)=PxC1PC1PxC1PC1+PxC2PC2=11+PxC2PC2PxC1PC1

z=lnPxC2PC2PxC1PC1

PxC1PC1PxC1PC1+PxC2PC2=11+PxC2PC2PxC1PC1=11+e-z=σ(z)

最后可得到PC1|x=σw*x+b  (w,b为常数)

4.3分类模型之逻辑回归

概率生成模型:1.假定Function Set(例如正态分布,高斯分布)2.根据最大似然估计和Training DataFunction Set中选择最合适的Function

逻辑回归

模型定义:在分类(Classification)一节中,我们要找到一个模型Pw,b(C1|x) ,如果Pw,bxC1>0.5 ,则x 属于类别C1 ,否则属于类别C2

可知Pw,bxC1=σ(z) ,其中11+e-z=σ(z) (Sigmoid Function)(细节见4.2)

z=ω∙x+b=i=1Nωixi+b

最终我们找到了模型

fw,bx=σ(i=1Nωixi+b)

Loss Function

从模型fw,bx=Pw,bxC1 中取样得到训练集的概率为:(似然函数)

Lw,b=fw,bx1fw,bx21-fw,bx3fw,b(xN)

要求

w*,b*=arg maxw,bL(w,b)

等同于:

w*,b*=arg minw,b-lnL(w,b)

(对数似然方程,Log-likelihood Equation)

-lnLw,b=-lnfw,bx1-lnfw,bx2-ln1-fw,bx3…-lnfw,b(xN)

其中

lnfw,bxn=ynlnfw,bxn+(1-yn)ln⁡[1-fw,bxn]

所以

-lnLw,b=n=1N-[ynlnfw,bxn+(1-yn)ln⁡[1-fw,bxn]]

逻辑回归VS线性回归

模型:

逻辑回归模型比线性回归模型多了一个sigmoid函数;

逻辑回归输出是[0,1],而线性回归的输出是任意值。

损失函数

逻辑回归模型使用的训练集中label的值必须是0或1,而线性回归模型训练集中label的值是真实值。(图中线性回归损失函数中的1/2是为了方便求导)

梯度

逻辑回归模型和线性回归模型的梯度公式一样

判别模型VS生成模型

形式对比

逻辑回归是一个判别模型(Discriminative Model),

用正态分布描述后验概率(Posterior Probability)则是生成模型(Generative Model)。

如果生成模型中共用协方差矩阵,那两个模型其实是一样的,都是

PC1|x=σw*x+b

因为做了不同的假设,即使是使用同一个数据集、同一个模型,找到的函数是不一样的。

优劣对比

1.如果现在数据很少,当假设了概率分布之后,就可以需要更少的数据用于训练受数据影响较小;而判别模型只根据数据来学习易受数据影响需要更多数据

2.当假设了概率分布之后,生成模型受数据影响较小对噪声的鲁棒性更强

3.对于生成模型来讲,先验的和基于类别的概率即PC1PC2 ,可以从不同的来源估计得到。以语音识别为例,如果使用生成模型,可能并不需要声音的数据,网上的文本也可以用来估计某段文本出现的概率。

多分类(Multi-class Classification

3个类别C1C2C3为例,分别对应参数(w1b1),(w2b2),(w3b3

z1=w1∙x+b1

z2=w2∙x+b2

z1=w3∙x+b3

Softmax

yi=ezij=13ezj

梯度:和逻辑回归的思路一样。

逻辑回归的局限

如下图所示,假如有2个类别,数据集中有4个样本,每个样本有2维特征,将这4个样本画在图上。

如下图所示,假如用逻辑回归做分类,即y=σz=σ(w1x1+w2x2+b) , 我们找不到一个可以把“蓝色”样本和“红色”样本间隔开的函数。

特征变换(Feature Transformation

如下图所示,我们可以把原始的数据/特征转换到另外一个空间,在这个新的特征空间中,找到一个函数将“蓝色”样本和“红色”样本间隔开。

5.1深度学习

深度学习的三个步骤(和机器学习)一样:

1.确定模型(Model/函数集(Function Set,在深度学习中就是定义一个神经网络。

不同的连接会构成多样的网络结构。

2.确定如何评价函数的好坏

如果是多分类,那和Classification一章中一样,计算每个样本预测结果与Ground Truth的交叉熵,然后求和,即为Loss。

3.确定如何找到最好的函数

还是Gradient Descent。

神经网络模型对应的函数比较复杂,而反向传播算法(Backpropagation)是一个很有效的计算神经网络梯度的方法。

神经网络的结构

1.输入层(Input Layer

实际上就是输入,并不是真正的“层”。

2.隐藏层(Hidden Layers

输入层和输出层之间的层。Deep指有很多隐藏层,多少层才算Deep并没有统一标准。

可以看成特征提取器(Feature Extractor),作用是代替特征工程(Feature Engineering)。

3.输出层(Output Layer

最后一层。

可以看成分类器

全连接前馈神经网络(FNN)

1.全连接是指每个神经元与上一层的所有神经元相连

2.前馈神经网络(FNN,Feedforward Neural Network)是指各神经元分层排列,每个神经元只与前一层的神经元相连接收前一层的输出并输出给下一层,各层间没有反馈

5.2神经网络为什么要是深度的

为什么是“深度”神经网络?

1.在参数量相当的情况下,高瘦的神经网络(即深度神经网络)的准确度更高,因为深度可以实现模块化

2.只用一个神经元足够多的隐藏层,这个模型就包括了任意函数, 但实现的效率不高

如下图所示,我们可以先定义各属性的分类器(Classifiers for the attributes),即先定义性别和头发长短的分类器,然后再做四分类。这样第一层分类器就不会遇到样本少的问题,第二层的分类器也容易训练,整体上也需要更少的训练集。

在深度神经网络中,每层网络都可以作为下一层网络使用的一个模块,并且这个模块化是通过机器学习自动得到的。

5.3神经网络中的反向传播算法

链式法则(Chain Rule

z=hy,y=gxdzdx=dzdydydx

z=kx,y,x=gs,y=hsdzds=dzdxdxds+dzdydyds

反向传播算法(Backpropagation

变量定义

神经网络的输入为xn ,该输入对应的labelyn神经网络的参数是θ神经网络的输出是yn

整个神经网络的Loss为

Lθ=n=1NCn(θ)

假设θ 中有一个参数ω ,那么

∂L(θ)∂ω=n=1NCn(θ)∂ω

Forward Pass

Forward Pass是为所有参数ω 计算z∂ω ,它的方向是从前往后算的,所以叫Forward Pass。

以一个神经元为例,因为z=x1ω1+x2ω2+b ,所以∂zω1=x1 , ∂zω2=x2 (规律是:该权重乘以的那个输入的值)

所以当有多个神经元时,如下图所示。

Backward Pass

Backward Pass是为所有激活函数的输入z 计算∂C∂z , 它的方向是从后往前算的,要先算出输出层的∂C∂z , 再往前计算其它神经元的∂C∂z , 所以叫Backward Pass。

 

6.1神经网络训练问题与解决方案

在深度学习中,一般有两种问题:

在训练集上性能不好

在测试集上性能不好。

处理神经网络在训练集上性能不好的情况的方法

1.修改神经网络架构,比如换成更好的激活函数

sigmoid函数会导致梯度消失,可以换成ReLU、Leaky ReLU、Parametric ReLU、Maxout

2.调整学习率

比如RMSProp、Momentum、Adam

处理神经网络在测试集上性能不好的情况的方法

1.Early Stopping、Regularization,这两个是比较传统的方法,不只适用于深度学习

2.Dropout,比较有深度学习的特色

6.2神经网络精度低不一定是因为过拟合

如果神经网络在训练集上精度高但在测试集上精度低,这才说明神经网络过拟合了。

6.3常用激活函数

梯度消失(Vanishing Gradient Problem)

sigmoid函数:随着神经网络层数增加,识别准确率逐渐下降,这个现象的原因并不是过拟合,而是梯度消失。

当神经网络层数很多时,

靠近输入层的参数的梯度会很小,靠近输出层的参数的梯度会很大。

当每个参数的学习率相同时,

靠近输入层的参数会更新得很慢,靠近输出层的几层参数会更新得很快。

所以,当靠近输入层的参数几乎还是随机数时,靠近输出层的参数已经收敛了。

ReLU(Rectified Linear Unit)

定义

当输入小于等于0时,输出为0;当输入大于0时,输出等于输入。

优点

相比于sigmoid函数:

1.等同于无穷多个bias不同的sigmoid函数叠加起来

2.可以解决梯度消失问题

如何解决梯度消失问题

ReLU输出为0时该激活函数对神经网络不起作用,所以在神经网络中生效的激活函数都是输出等于输入,所以就不会出现sigmoid函数导致的减弱输入变化导致输出变化的幅度的情况。

ReLU会使整个神经网络变成线性的吗?

可知有效的激活函数都是线性的,但整个神经网络还是非线性的。当输入改变很小、不改变每个激活函数的Operation Region(操作区域,大概意思就是输入范围)时,整个神经网络是线性的;当输入改变很大、改变了Operation Region时,整个神经网络就是非线性的

ReLU可以做微分吗?

不用处理输入为0的情况,当输入小于0时,微分就是0,当输入大于0时微分就是1

MaxOUT

定义

通过学习得到一个激活函数,人为将每层输出的多个值分组,然后输出每组值中的最大值。(ReLU是Maxout的一个特例)

如何训练Maxout

Maxout只是选择输出哪一个线性函数的值而已,因此Maxout激活函数还是线性的。

因为在多个值中只选择最大值进行输出,所以会形成一个比较瘦长/窄深的神经网络。

在多个值中只选择最大值进行输出,这并不会导致一些参数无法被训练:因为输入不同导致一组值中的最大值不同,所以各个参数都可能被训练到。

当输入不同时,形成的也是不同结构的神经网络。

7.1CNN入门详解

FNN用于图片处理的缺点:

  1. 需要很多的参数
  2. 该架构中每个神经元就是一个分类器,这是没必要的

图片性质:

  1. Some patterns are much smaller than the whole image.
  2. The same patterns appear in different regions.

比如说人脸可以在图片的中间区域,也可以在图片的某个角落区域。所以识别不同区域中的相同pattern的多个分类器(或detector)应该用同一组参数或者共享参数

(在图片中,不同图片的同一目标特征可能出现在不同位置)

  1. Subsampling the pixels will not change the object

将图片缩小/下采样,并不会影响我们理解图片。所以我们可以通过将图片变小,进而用更少的参数处理图片。

CNN架构说明

图片经过卷积层然后进行最大池化(max pooling,这个步骤可以进行多次;然后将数据展开(Flatten,然后将数据传进全连接前馈网络得到最后的图片分类结果。

Convolution VS Fully Connected

  1. 模型的参数更少:因为没有使用所有像素、不是全连接,因此需要的参数更少。
  2. 参数共享:因为用同1个卷积核在图片的不同区域做卷积,即1组参数对不同区域的像素进行计算,得到了多个值、达成了多个神经元的效果,实现了参数共享

最大池化(Max Pooling

Flatten & FNN

经过一系列的卷积和最大池化,将得到的特征图展开排列,作为FNN的输入,最后输出结果。

(CNN目的是将图片数据进行压缩处理,最终将得到的特征图展开为向量,连接FNN作为其输入)

7.2CNN学到了什么

卷积核(filter)学到了什么

各卷积核适用于检测小的纹理

全连接层学到了什么

卷积核学习到的是较小的pattern,全连接层中的神经元学习到的是尺寸较大的pattern。

输出层学到了什么:我们所要筛选的目标

9.1循环神经网络RNN

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值