【一文带你看懂什么是神经网络】
原作 Jean-Carlos Paredes
Root 编译自 TowardDataScience
量子位 出品 | 公众号 QbitAI
卷积神经网络本身好复杂的说,想入门的小白们迫切希望有个太长不看版。
正好最近,国外最潮的DL学习网站Fast.ai在GitHub分享了个用Excel画的图,简单地解释了下啥是卷积神经网络。原作Jean-Carlos Paredes还特地把要点整理在博客上,顺便给大家介绍下搭建深度学习模型的大概过程。以下是原文。
下面这个图,是简化版的神经网络。
输入层
这个数字7的图像数据是MNIST数据集里的(默认大家都是用预训练模型来分类)。
第1个隐藏层
隐藏层从输入数据中提取出更复杂的特征,传给输出层,从而做出更好的评估。
两个过滤器将负责处理不同的形状。第一个过滤器负责检测水平边缘,第二个过滤器负责检测垂直边缘。 这个3×3过滤器被称为卷积核 。 如果检测到输入图像有水平边缘,那过滤器1就会被激活。 Conv1(下图右侧区域)显示,从输入值中取出3×3的区域后,乘以卷积核,会让两个过滤器都被激活。 看下图会更好理解。
尽管这是用二维数组表示的,但按道理来说,它们是一个张量 。 每个矩阵表示张量中的一个切片。以上这些都是线性代数的行运算。
= SUM(F11:H13 * $ AD $ 11:$ AF $ 13)表明在用卷积。
该总和将导致输入中该特定3×3区域的激活值为3。
△ 这可以代表单层
激活函数
接下来,为了把负数去掉,我们用ReLU激活函数作非线性单位。处理后,下一张照片的负数就消失了。
第2个隐藏层
接下来,作为下一个隐藏层,Conv2会用乘积和函数权衡两个Conv1矩阵。 这里的卷积核将代表一个2X3X3的张量。
在使用ReLU函数之后,我们现在来创建第二层。
△ 第1层和第2层
最大池化
在Conv2中(下图的左侧部分),最大池化的高度和宽度的分辨率仅为2×2的最大值的一半。 在最大池化的矩阵中,我们可以看到Conv2的2×2区域的最大值,即33(小蓝框的左下角和右下角都是)。也就是说,池化的计算速度比卷积更快。 此外,池化还能有一些平移不变性 。
输出层
然后,我们把层都全部连接起来,并给最大池化中的所有的激活值用矩阵函数加个权重。
最后,在Excel中,算出激活值和权重的乘积和。完全连接的层(密集层)对卷积层提取的特征分类,并经最大池化层处理向下取样。而不必像以前那样,在卷积层中解析每个部分。
这篇文章呢,就只举数字7这个例子,代表一个数字类的识别过程。大家可以试试拿其他数字练个手,遇到啥不懂的就查一下原文和GitHub呗ヾ(o◕∀◕)ノ
原文链接及fast.ai做的Excel表链接:
https://towardsdatascience.com/understanding-convolutions-using-excel-886ca0a964b7
https://github.com/fastai/fastai/tree/master/courses/dl1/excel
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ’ᴗ’ ի 追踪AI技术和产品新动态
转载请注明:徐自远的乱七八糟小站 » 【一文带你看懂什么是神经网络】