玖叶教程网

前端编程开发入门

一文带你看懂什么是神经网络(神经网络到底是怎样一回事)

原作 Jean-Carlos Paredes

Root 编译自 TowardDataScience

量子位 出品 | 公众号 QbitAI

卷积神经网络本身好复杂的说,想入门的小白们迫切希望有个太长不看版。

正好最近,国外最潮的DL学习网站Fast.ai在GitHub分享了个用Excel画的图,简单地解释了下啥是卷积神经网络。原作Jean-Carlos Paredes还特地把要点整理在博客上,顺便给大家介绍下搭建深度学习模型的大概过程。以下是原文。

下面这个图,是简化版的神经网络。

输入层

这个数字7的图像数据是MNIST数据集里的(默认大家都是用预训练模型来分类)。

第1个隐藏层

隐藏层从输入数据中提取出更复杂的特征,传给输出层,从而做出更好的评估。

两个过滤器将负责处理不同的形状。第一个过滤器负责检测水平边缘,第二个过滤器负责检测垂直边缘。 这个3x3过滤器被称为卷积核 。 如果检测到输入图像有水平边缘,那过滤器1就会被激活。 Conv1(下图右侧区域)显示,从输入值中取出3x3的区域后,乘以卷积核,会让两个过滤器都被激活。 看下图会更好理解。

尽管这是用二维数组表示的,但按道理来说,它们是一个张量 。 每个矩阵表示张量中的一个切片。以上这些都是线性代数的行运算。

= SUM(F11:H13 * $ AD $ 11:$ AF $ 13)表明在用卷积。

该总和将导致输入中该特定3×3区域的激活值为3。

这可以代表单层

激活函数

接下来,为了把负数去掉,我们用ReLU激活函数作非线性单位。处理后,下一张照片的负数就消失了。

第2个隐藏层

接下来,作为下一个隐藏层,Conv2会用乘积和函数权衡两个Conv1矩阵。 这里的卷积核将代表一个2X3X3的张量。

在使用ReLU函数之后,我们现在来创建第二层。

第1层和第2层

最大池化

在Conv2中(下图的左侧部分),最大池化的高度和宽度的分辨率仅为2x2的最大值的一半。 在最大池化的矩阵中,我们可以看到Conv2的2x2区域的最大值,即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技术和产品新动态

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言