量化百科

CNN入门讲解:为什么要做训练(Training)?

由iquant创建,最终由iquant 被浏览 16 用户

今天我要讲的是一个很基础很基础的东西,适合初学者:

模型训练(Training)

如果你刚开始接触CNN,你一定会好奇,我给CNN灌入大量的数据做训练,到底要让CNN获得一种什么能力

首先我们的目的是:

给数据作分类

怎么给数据作分类:

要么找到数据的因果关系,要么找到数据间的关联

我们希望找到一个规则,或者一个表达式,它的作用是

理清楚数据间的关系,或者拟合数据的分布

我们就暂时给这个作用起名叫:

kernel

因为这个kernel 的作用,我们对数据之间的关系更加明晰,进而更好的分类,如下图所示:

![](data:image/svg+xml;utf8,<svg%20xmlns='http://www.w3.org/2000/svg' width='838' height='334'></svg>)

那么我们的目的就变成了:

怎么找到最好的kernel

我们知道:

两层或者以上的神经网络,几乎可以拟合任意函数

那么就回到了今天的主题,为什么要做训练,目的就在于:

通过训练,我找到可以理清数据间关系的神经网络,或者拟合数据分布的神经网络

CNN中各个层,就好比这一个个Kernel,她的目的就是一层一层去找到数据特征间的关系,直到最后,我们可以很好地将数据特征分类,以此来对特征进行分类

下面我来举个例子:

训练前,用模型提取出来的特征分布图, 可以看到不同数据之间的特征‘纠缠’在一起,难分难解

![](data:image/svg+xml;utf8,<svg%20xmlns='http://www.w3.org/2000/svg' width='729' height='555'></svg>)

经过足够的训练之后,你应该能明显看到特征甚至已肉眼可分的方式,被区分开来

是不是很棒棒?

![](data:image/svg+xml;utf8,<svg%20xmlns='http://www.w3.org/2000/svg' width='720' height='545'></svg>)

就问你,6不6 吧?

标签

CNN模型训练