用可视化理解神经网络!

↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

 Datawhale干货 

译者:刘洋,中科院大学,Datawhale成员

最近,人们对深度神经网络产生了极大的兴趣,因为它们在计算机视觉等领域取得了突破性的成果。

尽管如此,仍有一些人对此表示关切。一是很难去理解神经网络真正在做什么。如果一个人训练得很好,就可以获得高质量的结果,但是要理解它是如何做到的是很困难的。如果网络出现故障,很难解释出了什么问题。

虽然理解深层神经网络的一般行为很有挑战性,但事实证明,探索低维深层神经网络要容易得多——每层只有几个神经元的网络。事实上,我们可以通过可视化来理解这种网络的行为和训练。这一观点将使我们对神经网络的行为有更深的直觉,并观察到神经网络与一个称为拓扑学的数学领域之间的联系。

接下来有许多有趣的事情,包括能够对特定数据集进行分类的神经网络复杂性的基本下界。

一个简单的例子

让我们从一个非常简单的数据集开始,平面上的两条曲线上的所有点。神经网络将试着把点分为两类。

一个最直观的方式去观察神经网络的行为(或任何分类算法),就是看看它是如何对每个可能的数据点进行分类的。

我们将从最简单的神经网络开始,这个只有一个输入层和一个输出层。这样的网络只是试图用一条线将这两类数据分开。

这种网络不够有趣。现代神经网络通常在输入和输出之间有多层,称为“隐藏”层。但这个网络好歹有一层可研究。

一个简单的网络图,来自维基百科

类似地,我们可以通过查看神经网络对其域中不同点所做的操作,来观察该网络的行为。下面这个图用比直线更复杂的曲线来分离数据。

对于每一层,网络都会转换数据,创建一个新的表示形式。我们可以查看这些表示形式中的数据以及网络如何对它们进行分类。当我们得到最终的表示时,网络只会在数据中画一条线(可能在更高的维度中,是一个超平面)。

在前面的可视化中,我们查看了数据的“原始”表示形式。你可以把它看作是我们在看「输入层」。现在我们将在它被第一层转化之后再看一看。你可以认为这是我们在看「隐藏层」。

每一个维度都对应于该层神经元的激活。

隐藏层学习的一种表示,这样使得数据可以线性分离

层的连续可视化

在上一节中概述的方法中,我们通过查看与每一层对应的表示来学习理解网络。这给了我们一个离散的表示列表。

棘手的部分在于理解我们如何从一个到另一个。谢天谢地,神经网络层有很好的特性,使这变得非常容易。

在神经网络中有各种不同的层。我们将讨论 tanh 层作为一个具体例子。一个tanh层

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值