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

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

首发于专栏:

欢迎大家关注我的公众号:follow_bobo

麻烦大家给我点个赞,就是那种让我看起来,写的还不错的样子!

拜托了!!o(´^`)o


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

模型训练(Training)

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

首先我们的目的是:

给数据作分类

怎么给数据作分类:

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

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

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

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

kernel

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

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

怎么找到最好的kernel

我们知道:

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


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

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

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

下面我来举个例子:

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


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

是不是很棒棒?

就问你,6不6 吧?

发布于 2018-06-10 22:40