CNN入门讲解:为什么要做训练(Training)?
蒋竺波
首发于专栏:
欢迎大家关注我的公众号:follow_bobo
麻烦大家给我点个赞,就是那种让我看起来,写的还不错的样子!
拜托了!!o(´^`)o
今天我要讲的是一个很基础很基础的东西,适合初学者:
模型训练(Training)
如果你刚开始接触CNN,你一定会好奇,我给CNN灌入大量的数据做训练,到底要让CNN获得一种什么能力
首先我们的目的是:
给数据作分类
怎么给数据作分类:
要么找到数据的因果关系,要么找到数据间的关联
我们希望找到一个规则,或者一个表达式,它的作用是
理清楚数据间的关系,或者拟合数据的分布
我们就暂时给这个作用起名叫:
kernel
因为这个kernel 的作用,我们对数据之间的关系更加明晰,进而更好的分类,如下图所示:
那么我们的目的就变成了:
怎么找到最好的kernel
我们知道:
两层或者以上的神经网络,几乎可以拟合任意函数
那么就回到了今天的主题,为什么要做训练,目的就在于:
通过训练,我找到可以理清数据间关系的神经网络,或者拟合数据分布的神经网络
CNN中各个层,就好比这一个个Kernel,她的目的就是一层一层去找到数据特征间的关系,直到最后,我们可以很好地将数据特征分类,以此来对特征进行分类
下面我来举个例子:
训练前,用模型提取出来的特征分布图, 可以看到不同数据之间的特征‘纠缠’在一起,难分难解
经过足够的训练之后,你应该能明显看到特征甚至已肉眼可分的方式,被区分开来
是不是很棒棒?
就问你,6不6 吧?
发布于 2018-06-10 22:40