禁止转载,侵权必究!Update2022.02.21

CNN:Convolutional Neural Network,中文称卷积神经网络。

直观认识CNN

可视化CNN教程产生直观认识。

想更多了解CNN,可以看演示by google

CNN的几个核心概念

1. tensor 张量

就是数学中的矩阵,用来存储CNN的变换数据。

2. weight&biases 权重&偏移量

Y = aX + b

其中a就是weight,b就是biase

3. Convolutional Layers 卷积层

卷积函数构建ML模型的层。内部涉及到超参数,比如kernel、stride(就是所谓的核函数和步长)。Java工程师不需要理解它在干啥,只要知道它是CNN的重要步骤–卷积。

4. Pooling Layer 池化层

避免过拟合的层。通过kernel、stride抛弃掉一些数据,减少计算量同时避免过拟合。

5. Flatten Layer 展平层

把tensor转换回一维数组,便于使用Softmax函数

4. 激活函数ReLU

这么多年,CNN的各路大神找到的最好的激活函数。Java工程师不需要理解它在干啥,只要知道它是CNN的重要步骤–激活。

比如说要训练一个头像,当图片从背景过渡到脸部,显然模型需要训练得到这个重要信息,靠的就是这一步的激活函数。

CNN还可以用其他的激活函数

5. 概率函数Softmax

在output(输出层)之前,把CNN计算结果转换为概率函数(0~1)。

这里只涉及CNN分类问题,所以是Softmax函数,还有更复杂的场景