动手深度学习——高维理解及卷积神经网络

动手深度学习

高维理解及卷积神经网络



前言

最近在从tensorflow框架转到pytorch框架,跟着李沐大大的动手深度学习,从头又过了一遍。后续会一直更新一些学习的心得,可能会很简单,仅仅是自己在学习过程中觉得有点困难的部分,希望大佬们多多指点。

至于写这篇blog的原因。一来是,高维向量在刚开始学数据分析时带来了巨大的困惑。三维向量还是十分好理解的,但是,一旦维度高了就很难想象及理解。二来是,在学习动手深度学习时也发现,有提到为什么卷积层是一个四维的。借着这篇文章聊聊自己的一些看法。


一、如何理解高维?

1.1 一般的理解

在学校,学习python的numpy库过程中,发现很多同学对于高维及axis也就是轴有很大的困惑。一般的理解都是一维就是一条记录,从几何的角度就是线;二维就是一张表,也就是一张平面;而三维就是一个体。那四维呢?五维呢?如果单从几何的角度考虑似乎有点困难了。任课老师提出了一个穿脱衣服的理论,很形象的解释了删减括号带来的维度的变化,但是我觉得并未很好的解释数据分析过程中高维的概念。

下文我将从几个角度来讲下我的想法。

1.2 图书馆理论

我们顺着一维就是一条记录,二维就是一张表(一条记录,一张表的定义其实非常的不好,请各位仅仅理解成一维数组,二维数组的概念),请各位只是理解成的思路继续向下,那三位是什么呢?
众所周知,一个EXCEL文件下可以有多张表。
在这里插入图片描述
那是不是说,我们可以将三维考虑成一个excel文件?(需要注意的是,当我们引入sheet的概念时,就已经将维度提升了一个。

可能这一步也有点困难。需要说明的是,维度的提升在我的理解下是一个堆叠的过程。堆叠的概念非常重要:如果我们将一维的定为最基础的维度,不可分,那么二维表格仅仅是一维记录的堆叠。换到几何的角度考虑,一维的线堆叠后成为二维的面,那么二维的面堆叠就是体。那么二维的表格堆叠成的文件是不是也可以是三维的表现形式?(细心的读者也应该意识到了,这里有个小问题,就是堆叠的方向,如果一维的记录仅仅是延长记录的形式堆叠,还是一维的。这就是后面要说明的axis的内容了)

ok,我相信各位已经有了一个简单的雏形了。如果我问四维怎么理解呢?那么把所有的excel文件放到一个文件夹下就行了,对吧?那么五维呢?也很简单,把之前放excel文件的文件放在一个文件下。那么更高的维度呢?就把文件不断打包就成了。

但是,这里也有一个问题,那就是什么是文件的文件?如果到高维度就会出现文件的文件的文件的文件的······非常的复杂。能否形象一点呢?这就引入了图书馆理论。

我们将一维理解成一行字,将二维理解成一行一行的文字,三维就是一页一页,四维就是一本一本,五维就是一排一排,六维依此往后。

那么我们如何索引一个字(一个元素)呢?
以五维为例,我们需要先找到哪一排,再找到是哪一本、哪一页、哪一行、哪一个字。

这个索引其实能说明两个问题:

  1. 维度和我们需要索引的条件数量是一致的
  2. 每一个条件其实就是一个axis,即轴。

1.3轴

如果到这你都没什么问题,其实轴的概念已经非常明显了。
我再形象的阐述下,很多同学不能很快的明白依靠轴的选取、索引。
比如,我们现在需要每一排书的每一本书的每一页的每一行的第一个字,如何快速索引?从字的角度选第一个就行了。

1.4箱子理论

上文的阐述其实已经引申出了一个非常重要的内容——堆叠,或者说,包装。一行行文字的包装成为了一页,一页页地包装成为了一本书。如果强化这个部分就可以推出箱子理论。箱子理论更贴近于numpy中ndarray的形式

如果我们将最基本地维度理解成一个箱子,那多个箱子堆叠包装起来就会升一个维度。如此反复即可得到高维。就和numpy中表达的一样,多个数组逗号连接,打上[],升一个维度。

1.5平面化思考

现在我来解释下为什么我说一条记录,一张表的定义其实非常的不好。如果我们从表和记录的角度去看,其实已经可以认为是一个高维的向量了。

我们都知道记录的每个字段有自己的意义,如果范式足够的高,每个字段的独立性会非常的好。其实,每个字段即可理解成一个维度,恰如空间上一个点的表示。(1)表示数轴上的点,(1,1)表示平面的点,(1,1,1)表示体中的点,(1,1,1,1)表示一个四维空间中的点。因此在之前的理论中,我们需要取消每个字段自身含义,而将其仅仅当作一个位置,或者说堆叠的情况。

为什么一个记录可以理解成一个高维的向量呢?从两个角度就可以说明:第一,将其理解成一个高维空间点的表示;第二,如果将其理解成一个索引,就会发现每条记录都是不同的,需要每个字段的值确定下来,整条记录才能确定下来。

二、卷积神经网络

2.1 为什么卷积层是四维

最开始学的时候一直一维卷积层是个三维的东西,无非就是多个不同的卷积核在同一层。李沐大大提到四维的时候还有点懵逼。其实非常好理解:卷积核是三维相信各位是非常清楚的,由于每一个卷积层有in_channel,也有out_channel,而每个卷积核扫一张图只能得到一个channel,因此如果我们想确定一个卷积核,应该是从某一个out_channel开始索引的。

总结

简单的聊了下高维的理解以及卷积中高维的应用,希望对各位有些许的帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值