神经网络(深度学习)到底是在干什么
我一直很难学会我不能理解得东西,就比如这个神经网络,为什么经过一系列得计算就能进行分类或者是图像识别,人脸识别。今天好像突然开窍了,原来就这啊。。。。
玩色子
应该都接触过摇色子赌大小得游戏,微信表情包就有这个,总共有六个点数,如下:
一般电视剧里用两只碗扣在一块,里面有三个色子,最大是18点,最小是3点,所以这里暂且以11为中位数,大于等于11的为大,小于11的为小,刚好8个大点、8个小点。
建模型
神经网络包括三个部分——输入层、隐藏层和输出层。我们建立一个神经网络模型来让机器识别我们摇出来的点数是大还是小。
先摇三个点。。。
很明显的是1+3+4 = 8 <11,问题是隐藏层 “ ”到底做了什么?该怎么做?
出结果
其实这个隐藏层的函数(或者叫矩阵)就是三个值为1的常数函数。
计算方式为点对点相乘然后相加(相当于深度学习里面的全连接层)
1×1+3×1+4×1 = 8 < 11,然后只需要一个判断函数就可以将“小”作为结果输出。
同样:
3×1+5×1+6×1 = 14 >11,输出“大”。
当然了,这个只是一个很简单的分类模型,而且只有两个分类结果。
一般用于实现数字识别或者图像识别的隐藏层比较复杂,甚至需要很多个隐藏层。分别命名为j卷积层(一个模型中可能会多次使用)、池化层(一个模型中可能会多次使用)、全连接层,还会有对应的激活函数。
看吧,其实就是一个很简单的模型而已,只是名字唬人罢了。
突然觉得,有些东西一旦明白了也就没啥意思了。。。
后面再写写神经网络是怎么训练模型(计算隐藏层的)吧,嗯,可以再写写。。。。