如何写一个游戏AI(二)卷积神经网络是什么,怎么使用?
开始接触卷积神经网络已经有**个星期了。觉得还是有一些概念,要刚开始知道会比较容易理解这个东西。
1.什么是卷积神经网络
其实这个东西应该是这样读的,卷积 神经网络。卷积是用来提取特征的,神经网络是用来分类的。合起来就是,卷积神经网络用来提取特征然后分类的。下面继续解释
2.为什么卷积可以提取特征
在使用卷积神经网络时,经常看到一个概念叫做卷积核(滤波器),这个东西为什么可以提取特征呢。举个可能不恰当的例子,例如,你现在有一堆混合物(大米+红豆+大豆),要对它们进行分类,这个使用你使用一个筛子,这个筛子就类似于上面说的卷积核(滤波器),你通过改变它,既可以提取特征。就像你改变你的筛子大小,最小的时候,你只能筛出大米,别的东西无法通过筛子,你的卷积核就提取了大米的特征。
3.什么是神经网络
如上图所示,这就是一个神经网络的结构,简单来说,就是输入层(两个神经元,红色)--->隐藏层(三个神经元,绿色)--->输出层(两个神经元,黄色)。即,给定了输入,最后得到输出。为什么可以分类,我也不太清楚,可以自行百度。
4.使用卷积神经网络的实际例子
用大白话举例过程,原理是这样的,但是实际操作会有一些别的不通。比如用卷积神经网络训练了一个可以识别猫、狗图像的AI。
1.把海量的猫图片、狗图片作为输入
2.当输入猫图片时,让训练模型输出为A
3.当输入狗图片时,让训练模型输出为B
4.当训练的时候,海量的训练数据就会反复调整卷积核,不停的改变参数(也就是学习),最后拿到最优的模型
5.最后,使用时当你给定一张猫的图片的时候,猫图片输入模型,模型会预测出这张图最大概率结果是A。如果输入的是狗的图片,则这张图最大概率是B
最后有两点要说一说
1.其实使用卷积神经网络训练AI并没有想象的那么可怕,会自己思考,什么的七七八八。你必须事先告诉它结果。例如,你给他一巴掌作为输入时,输出为AI给你100元。当训练完之后,你给它一巴掌,它只会给你100元,并不会反过来打你一巴掌。
2.要想使用卷积神经网络训练AI,必须要规定相应的输入和输出作为训练,这个输入和输出是我们程序员自己定的。