神经网络,流形和拓扑

神经网络,流形和拓扑

这当然不是我写的,这是我翻译的,原文地址是:https://colah.github.io/posts/2014-03-NN-Manifolds-Topology

    原作者是Chris,不过原作者数学水平非常高,文章内有大量的拓扑学和分形学的数学名词,我基本上按照字面理解去翻译并没有全部考证。由于水平有限,文章最后,链锁部分并没有理解,所以并没有全部翻译。

    近期,深度学习在CV界取得了巨大的突破,着实让人兴奋。

    但是,关于它们仍然存在一些问题。首先就是神经网络究竟学习了什么,这个很难去理解。即使它训练出高精度的结果来,但是我们还是很难理解它为什么可以成功。如果网络失败了,很难解释它为什么错了。

虽然深度神经网络如何解释这么难,但是对于低维度的神经网络(每一层只有几个神经元)还是比较简单去解释的。事实上,我们可以通过可视化来了解这类的神经网络训练的过程。这种 会允许我们神经网络和网络节点有更深的直觉拓扑感受。

一个简单的例子

我们先从几个简单的数据集开始,观察图上两个曲线。通过这两组曲线坐标和对应的标签,神经网络将要学习对其他点如何分类。

    可视化最简单的方式是看一下每个点进去都发生了什么。

    我们从只有一个输入层和一个输出层神经网络开始。用这个神经网络拟合一条曲线来对两类数据进行分类。

 

    这个神经网络的分类不是很如意。现在的神经网络通常不知有两个层,它们在输入层和输出层之间还可能有隐藏层。最少的情况下,它们也有一个隐藏层。

    像之前一样,我们可以可视化这个网络的行为,观察其对不同的点的反应。它拟合了比一条直线复杂的曲线分离了数据。

 

    神经网络的每一层都相当于对数据进行了坐标变换,使其变成了另一种表示方式。2我们可以通过分别观察数据在每层的表示方式,来看看神经网络如何对它们进行分类。当我们观察最后一层时,网络会在数据间拟合一条曲线(如果是多维的话,会拟合一个超平面)。

    之前的可视化中,我们已经看到了数据的“原始”表示方式。你可以把它想象成输出层。现在我们观察一下,通过第一次转化候,输入变成了什么样子。这其实就是在观察隐藏层。

一个维度对应一个神经元。

 

     可见隐藏层对数据进行了空间变换,使数据变成了线性可分。隐藏层是两个神经元,所以变换出来并没有升维

继续对神经网络层进行可视化。

    前面几节中,我们学到了如何通过观察每个层表示来解释神经网络。这回给我们展示一系列的数据表示方式

    棘手的部分是理解如何更进一步的通用的解释 值得庆幸的是,神经网络的叠加的属性让通用的解释不是很难。

    神经网络中

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值