第1282期机器学习日报(2018-03-23)

更新于 2018年3月24日 机器学习
我来说两句
0 2018年3月24日

2018-03-23 日报 机器学习

机器学习日报 2018-03-23

@好东西传送门 出品,由@AI100运营, 过往目录http://daily.awesomeport.cn/ml

订阅:关注微信公众号 AI100(ID:rgznai100,扫二维码),回复“机器学习日报”,加你进日报群

微信公众号:rgznai100

本期话题有:

全部13 算法9 深度学习8 自然语言处理5 公告板5 视觉5 应用4 会议活动2 资源2 经验总结2

用日报搜索找到以前分享的内容: http://ml.memect.com/search/

wx:杨文   网页版 2018-03-24 03:55
公告板 会议活动 深度学习 视觉 算法 自然语言处理 ICLR 会议 论文 神经科学 神经网络 问题
「学界 | DeepMind论文解读:通过删除神经元来了解深度学习」AI科技评论按:深度神经网络由许多单独的神经元组成,它们以复杂且违反人直觉的方式组合起来,以解决各种具有挑战性的任务。这种复杂性一方面赋予神经网络神秘力量,另一方面,也让它们变成了人类难懂的黑匣子。了解神经网络的深层功能对于解释它们是如何做决定至关重要,并且能帮我们构建更强大的系统。就像,你不了解各个齿轮如何配合工作,你在试图做一个钟表时就很困难。要想理解神经科学和深度学习中的神经网络,一种方法是弄清单个神经元的作用,尤其是那些易于解释的神经元。DeepMind 最新的一篇关于神经网络学习的论文《On the Importance of Single Directions for Generalization》(https://arxiv.org/abs/1803.06959)将投稿在第六届 ICLR(国际学习表征会议)。这项研究所采用的方法是受数十年临床神经系统科学的启发,通过探索损伤神经元的影响来确定小规模神经元组对神经网络的重要性。深度神经网络中的那些越容易解释的神经元对神经网络的计算性能越重要吗?研究人员通过删除单个神经元或神经元组来衡量它是否对网络的性能产生了影响。这项实验有了两个令人惊讶的发现:1.虽然以前的许多研究集中于易理解,可解释的单个神经元(例如「猫神经元」,或深层网络的隐藏层中的神经元,它们只对猫的图像有反应),但我们发现这些可解释的神经元和那些难以理解,不可描述的神经元对神经网络的影响,并没什么不同。2.在同样删除神经元的情况下,能正确分类没见过的图像的网络比仅能对看到过的图像进行分类的网络恢复的更快。换句话说,推理性好的网络比那些单纯的记忆网络更不依赖于单一方向。 在神经科学和深度学习中,广泛分析了仅对单一输入类别的图像(例如狗)作出响应的易解释神经元(「选择性」神经元)。这导致了在深度学习中对猫神经元,情绪神经元和括号神经元过度强调它们的重要性; 在神经科学中,对例如詹妮弗安妮斯顿神经元,以及一些类似的神经元的过度强调等等。然而,这些少数高选择性神经元相对于大多数具有低选择性,更令人费解且难以解释的神经元,哪个相对更重要仍然未知。 具有明显响应模式(例如,对猫活跃,对其他所有活动不活跃)的神经元比那些随着图像随机活动或不活动的令人难理解的神经元更容易解释。为了评估神经元的重要性,研究人员测量了当神经元被删除时,图像分类任务的网络性能是如何变化。 如果一个神经元是非常重要的,删除它应该是具有高度破坏性的并且大大降低网络性能,而删除一个不重要的神经元应该没有什么影响。 神经科学家经常进行类似的实验,尽管它们很难在人造神经网络中获得这些实验所必需的细粒度和精确度。上图是在一个简单神经网络上删除神经元产生影响的概念图,较深的神经元更活跃。  需要注意的是,删除一个或两个神经元对输出影响很小,而删除大部分神经元会产生很大的影响,并且一些神经元比其他神经元更重要。令人惊讶的是,研究员发现神经网络的选择和重要性之间几乎没有关系。换句话说,「猫神经元」并不比令人难解的神经元更重要。这一发现与最近在神经科学方面的工作相呼应,已经证明令人难解的神经元实际上可以提供丰富的信息,并且表明今后在探索上必须超越最易于解释的神经元,以便理解深度神经网络。尽管可解释神经元在直觉上更容易理解(比如,「它喜欢狗」),但它们并没有比那些没有明显偏好的难解释神经元更重要。 我们试图构建智能系统,如果系统能够推理出新的场景,我们只能称之为系统智能。例如,一个图像分类网络只能对以前看过的特定狗图像进行分类,而不能对同一只狗的新图像进行分类,这个网络是没有价值的。只有在新样本中依然能智能分类,这些系统才能获得它们的效用。去年,Google Brain、Berkeley 和 DeepMind 合作的论文在 ICLR 2017 上获得最佳论文,表明深层网络可以简单地记住他们接受训练的每个图像,而不是以更像人类的方式在学习(例如,了解抽象的「狗」概念)。 然而,网络是否已经学会了一种能够推理到新的任务场景中的解决方案,这往往是不清楚的。通过逐渐删除越来越大的神经元组,研究员发现,相比于简单记忆在训练期间看到的图像的网络,具有良好泛化能力的网络对删除神经元组后的稳健性要强得多。换句话说,泛化好的网络很难被打破(尽管它们肯定还是会被打破的)。通过以这种方式衡量网络的稳健性,可以评估一个网络是否在利用简单的记忆来「欺骗」人类。了解网络在记忆过程中是如何变化的将有助于建立新网络,网络记忆越少,推理性就越强。 总之,这些发现证明了使用基于临床神经科学启发的技术来理解神经网络的力量是可行的。 使用这些方法,发现高选择性个体神经元并不比非选择性神经元更重要,并且那些广义的网络比单纯记忆训练数据的网络更不依赖于单个神经元。 这些结果意味着单个神经元的重要性可能看起来的那么重要。通过努力解释所有神经元的作用,而不仅仅是那些易于解释的神经元,我们希望更好地理解神经网络的内部工作,最关键的是,利用这种理解来构建更加智能和通用的系统。论文地址:https://arxiv.org/abs/1803.06959ICLR 2017最佳论文:https://arxiv.org/abs/1611.03530via DeepMind,AI科技评论编译对了,我们招人了,了解一下? 限时拼团—NLP工程师入门实践班三大模块,五大应用,知识点全覆盖;海外博士讲师,丰富项目分享经验;理论+实践,带你实战典型行业应用;专业答疑社群,结交志同道合伙伴。点击阅读原文或扫码立即参团~┏(^0^)┛欢迎分享,明天见! via: http://mp.weixin.qq.com/s?__biz=MzI5NTIxNTg0OA==&mid=2247490197&idx=3&sn=2587fe634e16e6882e71b5e13c50ec22&scene=0#wechat_redirect

 

wx:   网页版 2018-03-24 07:03
公告板 算法 应用 自然语言处理 问题 信息检索
「白话TF-IDF应用(一):自动提取关键词」有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyphrase extraction),完全不加以人工干预,请问怎样才能正确做到?这个问题涉及到数据挖掘、文本处理、信息检索等很多计算机前沿领域,但是出乎意料的是,有一个非常简单的经典算法,可以给出令人相当满意的结果。它简单到都不需要高等数学,普通人只用10分钟就可以理解,这就是我今天想要介绍的TF-IDF算法。让我们从一个实例开始讲起。假定现在有一篇长文《中国的蜜蜂养殖》,我们准备用计算机提取它的关键词。 原文链接:https://mp.weixin.qq.com/s/xjSw7PbVrESo9u4otBOM1Q via: http://mp.weixin.qq.com/s?__biz=MzA4NDEyMzc2Mw==&mid=2649678838&idx=3&sn=921db91132f81c2d32efa7c8d08265c7&scene=0#wechat_redirect

 

wx:杨文   网页版 2018-03-24 03:55
深度学习 视觉 算法 自然语言处理 GPU 何恺明 论文 强化学习 神经科学 神经网络 吴育昕
「动态 | 何恺明团队最新力作:群组归一化(Group Normalization)」AI科技评论按:近日,FAIR 研究工程师吴育昕和研究科学家何恺明联名著作的一篇论文 Group Normalization 提到了一种新的训练神经网络的方法。该方法称为群组归一化(Group Normalization),试图以群组方式实现快速训练神经网络,这种方法对于硬件的需求大大降低,并在实验中超过了传统的批量归一化方法。 批量归一化(Batch Normalization,以下简称 BN)是深度学习发展中的一项里程碑式技术,可让各种网络并行训练。但是,批量维度进行归一化会带来一些问题——批量统计估算不准确导致批量变小时,BN 的误差会迅速增加。在训练大型网络和将特征转移到计算机视觉任务中(包括检测、分割和视频),内存消耗限制了只能使用小批量的BN。在这篇论文中,作者巧妙提出了群组归一化 Group Normalization (简称 GN) 作为 BN 的替代方案。GN 将通道分成组,并在每组内计算归一化的均值和方差。GN 的计算与批量大小无关,并且其准确度在各种批量大小下都很稳定。在 ImageNet 上训练的 ResNet-50 上,GN 使用批量大小为 2 时的错误率比 BN 的错误率低 10.6%;当使用典型的批量时,GN 与 BN 相当,并且优于其他标归一化变体。而且,GN 可以自然地从预训练迁移到微调。在进行 COCO 中的目标检测和分割以及 Kinetics 中的视频分类比赛中,GN 可以胜过其竞争对手,表明 GN 可以在各种任务中有效地取代强大的 BN。在最新的代码库中,GN 可以通过几行代码轻松实现。 批量归一化已被证实为深度学习中非常有效的组成部分,在很大程度上推动了计算机视觉领域的发展。许多实践都证明了这一点,BN 使用(小)批计算的均值和方差对特征进行归一化,以简化优化使非常深的网络能够融合。批量统计的随机不确定性也可以作为一个正则化器,它可以适用于泛化。BN 一直是许多最先进的计算机视觉算法的基础。尽管 BN 取得了巨大的成功,但其存在的弊端也是由于其独特的归一化行为造成的。图1. ImageNet分类错误与批量大小的对比图,这是一个ResNet-50模型,使用8张GPU卡在ImageNet训练集中进行训练,并在验证集中进行评估。特别是,BN 要求有足够大的批量才能工作。小批量会导致批量统计数据的估算不准确,并且减少 BN 的批量大小会显著增加模型误差(图 1)。因此,最近的许多模型都是用较大的批量来进行训练的,这些大批量都是很耗费内存的。反过来,训练模型时对 BN 有效性的高度依赖性阻碍了人们用有限内存探索更高容量的模型。计算机视觉任务(包括检测、分割、视频识别和其他基于此的高级系统)对批量大小的限制要求更高。例如,Fast / er 和 Mask R-CNN 框架使用批量为 1 或 2 的图像,为了更高的分辨率,其中 BN 通过变换为线性层而被「固定」;在 3D 卷积视频分类中,时空特征的出现导致在时间长度和批大小之间需要作出权衡。BN 的使用通常要求这些系统在模型设计和批大小之间作出妥协。本文提出群组归一化(GN)作为 BN 的替代方案。作者注意到像 SIFT 和 HOG 这样的许多经典特征是分组特征并且包括分组规范化。例如,HOG 矢量是几个空间单元的结果,其中每个单元由归一化方向直方图表示。同样,作者提出 GN 作为一个层,将通道划分为组,并对每个组内的特征进行归一化(图 2)。GN 不用批量维度,其计算与批量大小无关。GN 在大范围的批量下运行都非常稳定(图 1)。在批量大小为 2 的样本中,GN 比 ImageNet 中的 ResNet-50 的 BN 对应的误差低 10.6%。对于常规的批量规格,GN 与 BN 表现相当(差距为 0.5%),并且优于其它归一化变体 。此外,尽管批量可能会发生变化,但 GN 可以自然地从预训练迁移到微调。在 COCO 目标检测和分割任务的 Mask R-CNN 上,以及在 Kinetics 视频分类任务的 3D 卷积网络上,相比于 BN 的对应变体,GN 都能获得提升或者超越的结果。GN 在 ImageNet、COCO 和 Kinetics 上的有效性表明 GN 是 BN 的有力竞争者,而 BN 在过去一直在这些任务上作为主导方法。图2已有的方法,如层次归一化(LN)和实例归一化(IN)(图 2),也避免了沿着批量维度进行归一化。这些方法对训练序列模型(RNN / LSTM )或生成模型(GANs)是有效的。但正如论文中通过实验表明的那样,LN 和 IN 在视觉识别方面取得的成功是有限的,GN 可以提供了更好的性能表现。甚至,GN 可以用来替代 LN 和 IN,来适用于有序或生成模型。这超出了本文的研究重点,但它对未来的研究提供了启示。视觉表现的通道并不完全独立。SIFT ,HOG 和 GIST 的典型特征是按设计分组表示的,其中每组通道由某种直方图构成。这些功能通常通过每个直方图或每个方向上的分组归一化进行处理。VLAD 和 Fisher Vector(FV)等更高级的特征也是群组特征,其中一组可以被认为是相对于一个群集计算的子向量。类似地,没有必要将深层神经网络特征看作非结构化向量。例如,对于网络的 conv1(第一卷积层),期望滤波器及其水平翻转在自然图像上呈现类似的滤波器响应分布是合理的。如果 conv1 碰巧近似学习这一对滤波器,或者如果通过设计将水平翻转(或其他变换)设计为架构 ,则可以将这些滤波器的相应通道一起归一化。越高层的图层越抽象,它们的行为也不那么直观。然而,除了方向(SIFT ,HOG )之外,还有许多因素可能导致分组,例如频率,形状,光照度和质地,它们的系数可以相互依存。事实上,神经科学中广为接受的计算模型是在细胞反应中归一化 ,「具有各种感受野中心(包括视野)和各种时空频率音调;这不仅可以发生在初级视觉皮层,而且可以发生在「整个视觉系统」。受到这些研究的启发,我们提出了新的泛神经网络的泛型归一化。图3GN 可以通过 PyTorch  和 TensorFlow 中的几行代码轻松实现,图 3 显示了基于 TensorFlow 的代码。事实上,只需要指定如何计算均值和方差(「矩」),用归一化方法定义的适当的坐标轴。 在三个不同类型的数据集上做了实验对比。分别是 ImageNet 中的图像分类,COCO 中的对象检测和分割,Kinetics 中的视频分类。具体的实验方法、实验步骤,以及实验结果,原论文中有详细描述。GN 在检测,分割和视频分类方面的改进表明,GN 对于当前处于主导地位的 BN 技术而言是强有力的替代。 论文中把 GN 作为一个有效的归一化层且不用开发批量维度,同时也评估了 GN 在各种应用中的行为表现。不过,论文作者也注意到,由于 BN 之前拥有很强的影响力,以至于许多先进的系统及其超参数已被设计出来。这对于基于 GN 的模型可能是不利的,不过也有可能重新设计系统或搜索 GN 的新超参数将会产生更好的结果。此外,作者表明,GN 与 LN 和 IN 有关,LN 和 IN 两种归一化方法在训练循坏(RNN / LSTM)或生成(GAN)模型中特别成功。这表明将来 GN 也会研究这些领域。另外作者还将探索 GN 在强化学习(RL)任务学习表征方面的表现,其中 BN 在训练非常深的模型中起着重要作用 。论文地址:https://arxiv.org/abs/1803.08494对了,我们招人了,了解一下? 限时拼团—NLP工程师入门实践班三大模块,五大应用,知识点全覆盖;海外博士讲师,丰富项目分享经验;理论+实践,带你实战典型行业应用;专业答疑社群,结交志同道合伙伴。点击阅读原文或扫码立即参团~┏(^0^)┛欢迎分享,明天见! via: http://mp.weixin.qq.com/s?__biz=MzI5NTIxNTg0OA==&mid=2247490197&idx=2&sn=a5f83179cd155f2977e9ffb9b825692f&scene=0#wechat_redirect

 

爱可可-爱生活   网页版 2018-03-23 20:27
代码
【快速、简单的通用矢量嵌入(存储)程序库】’Magnitude: a fast, simple vector embedding utility library’ by Plasticity GitHub: http://t.cn/RnoNsX9

 

爱可可-爱生活   网页版 2018-03-23 05:46
深度学习 代码
【Deeplab_V3卷积语义分割网络解析】《Diving into Deep Convolutional Semantic Segmentation Networks and Deeplab_V3》by Thalles Silva http://t.cn/RnaTeYO GitHub:http://t.cn/RnaTeYN pdf:http://t.cn/RnaTeYp

 

wx:关注前沿科技   网页版 2018-03-23 20:49
公告板 视觉 应用 自然语言处理 机器人 问题 智能汽车
「MIT发布软体机器鱼,卧底鱼群大计可成」某子:子非鱼,安知… SoFi:就你话多… 遥远的南太平洋,斐济的彩虹礁,几乎通体雪白的鱼摇摆着尾鳍,自在地游走。不论直线还是转弯,上浮还是下沉,都优雅流畅。它看上去和珊瑚礁的其他居民并没有什么不同,也没有引起谁的注意。不过,它没有鱼的脊骨,也没有鱼的脏器,取而代之的是电子元件的组合。尾鳍的摆动也并非归功于肌肉和鳞片,而是液压泵。这是来自麻省理工学院计算机科学与人工智能实验室 (MIT CSAIL) 的机器鱼SoFi。作为被科研团队寄予厚望的机器人,它虽然还不算完美,但已解决了水下无人机面对的一些重要问题。首先是通讯问题。由于无线电的水下传播能力非常有限,有效距离仅有几厘米,水下无人机通常需要以物理方式与船只相连。SoFi的不同之处则在于,其利用声学通讯系统代替无线电,声波不仅可以传得更远,对能量的需求也比较低。这样一来,通过机身摄像头与SoFi共享视野的潜水员,可以在距离机器人约20米远处,利用声波来操控SoFi改变运动速度,完成特定的动作,或朝特定的方向转弯。其次是“姿势”问题。传统机器人的执行器 (电机) 通常体积较大,产生的动作也并不十分流畅。SoFi的尾部设有两个像气球一样的空腔,注满水后机器人便可以游动起来。当其中一个空腔开始扩大,它便会向另一侧弯曲;而当唯一电机将水推向另一侧,另一空腔则会朝反方向弯曲。这样一来,水循环达成,机器人就可以像鱼一样左右摇摆着向前游动了。只要改变SoFi体内水的流动规律,便能够调整尾部的动作,从而改变它的运动速度。平均来说,SoFi的秒速接近半个身体的长度。第三个问题是,游泳消耗的能量非常可观。鱼类需要让自己时刻保持在某个特定的水深,而在涌动的海水中不停地上下调整,并不是一种高效的方式。于是,漫长的自然选择让鱼类拥有了名为鳔的器官,它可以帮助主人获得最为适宜的浮力。SoFi也有自己的“鳔”,就是浮力控制单元。那是一个圆柱体结构,通过压缩和解压空气,来实时调整机器人的密度,从而改变浮力,将SoFi保持在所需要的水深。如今,SoFi已经可以依靠压强控制,潜入约18米深的水下。另外,SoFi身体两侧有一对鳍,可以调整鱼身的俯仰角度,帮助它逐渐向上或向下游动。在测试过程中,科研人员发现,一些鱼有时会和SoFi一起游动,可能是产生了好奇。也有时候,鱼类完全不受机器人的干扰。相比之下,在潜水员靠近鱼类的时候,它们便会迅速游开去。也就是说,从外表和运动方式来看,SoFi已是足以乱真的鱼了。这意味着,人类可以在更近的距离内观察珊瑚礁,以及周围动物的生活。目前,SoFi尚处于测试阶段,仍是通过遥控装置操纵。不过,未来的升级版本可能搭载计算机视觉,机器人锁定一条鱼,便跟着它一路游下去,并且不引起鱼的怀疑。科学家们希望,此类机器人可以为研究鱼类的集群、洄游等行为提供帮助,或者在污染日益严重的海域监测某一鱼群的健康状况。而在执行任务的同时,机器人自然的运动不会扰乱所在海域的正常生态。今日最佳:SoFi的遥控器,是超级任天堂手柄。— 完 —加入社群量子位AI社群15群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot6入群;此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。进群请加小助手微信号qbitbot6,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)诚挚招聘量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。量子位 QbitAI · 头条号签约作者վ’ᴗ’ ի 追踪AI技术和产品新动态 via: http://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247495882&idx=3&sn=2aa30af559f57b4d2721bb77c4164883&scene=0#wechat_redirect

 

算法组   网页版 2018-03-23 16:04
深度学习 算法 代码 神经网络
『用全卷积网络去(半透明)水印』《Fully convolutional deep neural network to remove transparent overlays from images》 Github:http://t.cn/REuGYog

 

wx:   网页版 2018-03-23 15:30
公告板 会议活动 经验总结 入门 视觉 算法 资源 Python Thomas A. Garrity 博客 活动 矩阵 课程 书籍 数据质量 问题 左乘
「理解矩阵背后的现实意义」这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,想起很多朋友问过矩阵,虽对矩阵似懂非懂,但却很想弄懂它,希望这几篇文章能帮你一下,故转之:线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个“前无古人,后无来者”的古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的,就开始钻火圈表演了,这未免太“无厘头”了吧!于是开始有人逃课,更多的人开始抄作业。这下就中招了,因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头的行列式的,是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括起来,并且不紧不慢地说:“这个东西叫做矩阵”的时候,我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以后,在几乎所有跟“学问”二字稍微沾点边的东西里,矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说,矩阵老大的不请自来每每搞得我灰头土脸,头破血流。长期以来,我在阅读中一见矩阵,就如同阿Q见到了假洋鬼子,揉揉额角就绕道走。事实上,我并不是特例。一般工科学生初学线性代数,通常都会感到困难。这种情形在国内外皆然。瑞典数学家Lars Garding在其名著Encounter with Mathematics中说:”如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。”,然而“按照现行的国际标准,线性代数是通过公理化来表述的,它是第二代数学模型,…,这就带来了教学上的困难。”事实上,当我们开始学习线性代数的时候,不知不觉就进入了“第二代数学模型”的范畴当中,这意味着数学的表述方式和抽象性有了一次全面的进化,对于从小一直在“第一代数学模型”,即以实用为导向的、具体的数学模型中学习的我们来说,在没有并明确告知的情况下进行如此剧烈的paradigm shift,不感到困难才是奇怪的。大部分工科学生,往往是在学习了一些后继课程,如数值分析、数学规划、矩阵论之后,才逐渐能够理解和熟练运用线性代数。即便如此,不少人即使能够很熟练地以线性代数为工具进行科研和应用工作,但对于很多这门课程的初学者提出的、看上去是很基础的问题却并不清楚。比如说:矩阵究竟是什么东西?向量可以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是,为什么偏偏二维的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一次,变成三维的立方阵,是不是更有用?矩阵的乘法规则究竟为什么这样规定?为什么这样一种怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法,这难道不是很奇妙的事情?难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,这些本质规律是什么?行列式究竟是一个什么东西?为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对m x n矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系,为什么又在很多方面决定了矩阵的性质?难道这一切仅是巧合?矩阵为什么可以分块计算?分块计算这件事情看上去是那么随意,为什么竟是可行的?对于矩阵转置运算AT,有(AB)T = BTAT,对于矩阵求逆运算A-1,有(AB)-1 = B-1A-1。两个看上去完全没有什么关系的运算,为什么有着类似的性质?这仅仅是巧合吗?为什么说P-1AP得到的矩阵与A矩阵“相似”?这里的“相似”是什么意思?特征值和特征向量的本质是什么?它们定义就让人很惊讶,因为Ax =λx,一个诺大的矩阵的效应,竟然不过相当于一个小小的数λ,确实有点奇妙。但何至于用“特征”甚至“本征”来界定?它们刻划的究竟是什么?这样的一类问题,经常让使用线性代数已经很多年的人都感到为难。就好像大人面对小孩子的刨根问底,最后总会迫不得已地说“就这样吧,到此为止”一样,面对这样的问题,很多老手们最后也只能用:“就是这么规定的,你接受并且记住就好”来搪塞。然而,这样的问题如果不能获得回答,线性代数对于我们来说就是一个粗暴的、不讲道理的、莫名其妙的规则集合,我们会感到,自己并不是在学习一门学问,而是被不由分说地“抛到”一个强制的世界中,只是在考试的皮鞭挥舞之下被迫赶路,全然无法领略其中的美妙、和谐与统一。直到多年以后,我们已经发觉这门学问如此的有用,却仍然会非常迷惑:怎么这么凑巧?我认为,这是我们的线性代数教学中直觉性丧失的后果。上述这些涉及到“如何能”、“怎么会”的问题,仅仅通过纯粹的数学证明来回答,是不能令提问者满意的。比如,如果你通过一般的证明方法论证了矩阵分块运算确实可行,那么这并不能够让提问者的疑惑得到解决。他们真正的困惑是:矩阵分块运算为什么竟然是可行的?究竟只是凑巧,还是说这是由矩阵这种对象的某种本质所必然决定的?如果是后者,那么矩阵的这些本质是什么?只要对上述那些问题稍加考虑,我们就会发现,所有这些问题都不是单纯依靠数学证明所能够解决的。像我们的教科书那样,凡事用数学证明,最后培养出来的学生,只能熟练地使用工具,却欠缺真正意义上的理解。清华大学课程–量化交易系统实战周末班震撼来袭! Python技巧量化交易体系基础理论驱动型策略的研究框架 行为金融学量化基础及应用融数据清洗,如何把原始数据变得可用量化交易体系中的头寸管理和风控方案上课地点:北京上课时间2018年3月31日、4月1日、4月14日、4月15日(共4天)报名电话/微信:18516600808对于线性代数的类似上述所提到的一些直觉性的问题,两年多来我断断续续地反复思考了四、五次,为此阅读了好几本国内外线性代数、数值分析、代数和数学通论性书籍,其中像前苏联的名著《数学:它的内容、方法和意义》、龚昇教授的《线性代数五讲》、前面提到的Encounter with  Mathematics(《数学概观》)以及Thomas A. Garrity的《数学拾遗》都给我很大的启发。不过即使如此,我对这个主题的认识也经历了好几次自我否定。比如以前思考的一些结论曾经写在自己的blog里,但是现在看来,这些结论基本上都是错误的。因此打算把自己现在的有关理解比较完整地记录下来,一方面是因为我觉得现在的理解比较成熟了,可以拿出来与别人探讨,向别人请教。另一方面,如果以后再有进一步的认识,把现在的理解给推翻了,那现在写的这个snapshot也是很有意义的。因为打算写得比较多,所以会分几次慢慢写。也不知道是不是有时间慢慢写完整,会不会中断,写着看吧。 今天先谈谈对线形空间和矩阵的几个核心概念的理解。这些东西大部分是凭着自己的理解写出来的,基本上不抄书,可能有错误的地方,希望能够被指出。但我希望做到直觉,也就是说能把数学背后说的实质问题说出来。首先说说空间(space),这个概念是现代数学的命根子之一,从拓扑空间开始,一步步往上加定义,可以形成很多空间。线形空间其实还是比较初级的,如果在里面定义了范数,就成了赋范线性空间。赋范线性空间满足完备性,就成了巴那赫空间;赋范线性空间中定义角度,就有了内积空间,内积空间再满足完备性,就得到希尔伯特空间。总之,空间有很多种。你要是去看某种空间的数学定义,大致都是“存在一个集合,在这个集合上定义某某概念,然后满足某些性质”,就可以被称为空间。这未免有点奇怪,为什么要用“空间”来称呼一些这样的集合呢?大家将会看到,其实这是很有道理的。我们一般人最熟悉的空间,毫无疑问就是我们生活在其中的(按照牛顿的绝对时空观)的三维空间,从数学上说,这是一个三维的欧几里德空间,我们先不管那么多,先看看我们熟悉的这样一个空间有些什么最基本的特点。仔细想想我们就会知道,这个三维的空间:1. 由很多(实际上是无穷多个)位置点组成;2. 这些点之间存在相对的关系;3. 可以在空间中定义长度、角度;4. 这个空间可以容纳运动,这里我们所说的运动是从一个点到另一个点的移动(变换),而不是微积分意义上的“连续”性的运动。上面的这些性质中,最最关键的是第4条。第1、2条只能说是空间的基础,不算是空间特有的性质,凡是讨论数学问题,都得有一个集合,大多数还得在这个集合上定义一些结构(关系),并不是说有了这些就算是空间。而第3条太特殊,其他的空间不需要具备,更不是关键的性质。只有第4条是空间的本质,也就是说,容纳运动是空间的本质特征。认识到了这些,我们就可以把我们关于三维空间的认识扩展到其他的空间。事实上,不管是什么空间,都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现,在某种空间中往往会存在一种相对应的变换,比如拓扑空间中有拓扑变换,线性空间中有线性变换,仿射空间中有仿射变换,其实这些变换都只不过是对应空间中允许的运动形式而已。因此只要知道,“空间”是容纳运动的一个对象集合,而变换则规定了对应空间的运动。下面我们来看看线性空间。线性空间的定义任何一本书上都有,但是既然我们承认线性空间是个空间,那么有两个最基本的问题必须首先得到解决,那就是:1. 空间是一个对象集合,线性空间也是空间,所以也是一个对象集合。那么线性空间是什么样的对象的集合?或者说,线性空间中的对象有什么共同点吗?2. 线性空间中的运动如何表述的?也就是,线性变换是如何表示的?我们先来回答第一个问题,回答这个问题的时候其实是不用拐弯抹角的,可以直截了当的给出答案。线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。通常的向量空间我就不说了,举两个不那么平凡的例子:L1. 最高次项不大于n次的多项式的全体构成一个线性空间,也就是说,这个线性空间中的每一个对象是一个多项式。如果我们以x0, x1, …, xn为基,那么任何一个这样的多项式都可以表达为一组n+1维向量,其中的每一个分量ai其实就是多项式中x(i-1)项的系数。值得说明的是,基的选取有多种办法,只要所选取的那一组基线性无关就可以。这要用到后面提到的概念了,所以这里先不说,提一下而已。L2. 闭区间[a, b]上的n阶连续可微函数的全体,构成一个线性空间。也就是说,这个线性空间的每一个对象是一个连续函数。对于其中任何一个连续函数,根据魏尔斯特拉斯定理,一定可以找到最高次项不大于n的多项式函数,使之与该连续函数的差为0,也就是说,完全相等。这样就把问题归结为L1了。后面就不用再重复了。所以说,向量是很厉害的,只要你找到合适的基,用向量可以表示线性空间里任何一个对象。这里头大有文章,因为向量表面上只是一列数,但是其实由于它的有序性,所以除了这些数本身携带的信息之外,还可以在每个数的对应位置上携带信息。为什么在程序设计中数组最简单,却又威力无穷呢?根本原因就在于此。这是另一个问题了,这里就不说了。下面来回答第二个问题,这个问题的回答会涉及到线性代数的一个最根本的问题。线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。是的,矩阵的本质是运动的描述。如果以后有人问你矩阵是什么,那么你就可以响亮地告诉他,矩阵的本质是运动的描述。可是多么有意思啊,向量本身不是也可以看成是n x 1矩阵吗?这实在是很奇妙,一个空间中的对象和运动竟然可以用相类同的方式表示。能说这是巧合吗?如果是巧合的话,那可真是幸运的巧合!可以说,线性代数中大多数奇妙的性质,均与这个巧合有直接的关系。上一篇里说“矩阵是运动的描述”,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时候,总会有人照本宣科地告诉你,初等数学是研究常量的数学,是研究静态的数学,高等数学是变量的数学,是研究运动的数学。大家口口相传,差不多人人都知道这句话。但是真知道这句话说的是什么意思的人,好像也不多。简而言之,在我们人类的经验里,运动是一个连续过程,从A点到B点,就算走得最快的光,也是需要一个时间来逐点地经过AB之间的路径,这就带来了连续性的概念。而连续这个事情,如果不定义极限的概念,根本就解释不了。古希腊人的数学非常强,但就是缺乏极限观念,所以解释不了运动,被芝诺的那些著名悖论(飞箭不动、飞毛腿阿喀琉斯跑不过乌龟等四个悖论)搞得死去活来。因为这篇文章不是讲微积分的,所以我就不多说了。有兴趣的读者可以去看看齐民友教授写的《重温微积分》。我就是读了这本书开头的部分,才明白“高等数学是研究运动的数学”这句话的道理。不过在我这个《理解矩阵》的文章里,“运动”的概念不是微积分中的连续性的运动,而是瞬间发生的变化。比如这个时刻在A点,经过一个“运动”,一下子就“跃迁”到了B点,其中不需要经过A点与B点之间的任何一个点。这样的“运动”,或者说“跃迁”,是违反我们日常的经验的。不过了解一点量子物理常识的人,就会立刻指出,量子(例如电子)在不同的能量级轨道上跳跃,就是瞬间发生的,具有这样一种跃迁行为。所以说,自然界中并不是没有这种运动现象,只不过宏观上我们观察不到。但是不管怎么说,“运动”这个词用在这里,还是容易产生歧义的,说得更确切些,应该是“跃迁”。因此这句话可以改成:“矩阵是线性空间里跃迁的描述”。可是这样说又太物理,也就是说太具体,而不够数学,也就是说不够抽象。因此我们最后换用一个正牌的数学术语——变换,来描述这个事情。这样一说,大家就应该明白了,所谓变换,其实就是空间里从一个点(元素/对象)到另一个点(元素/对象)的跃迁。比如说,拓扑变换,就是在拓扑空间里从一个点到另一个点的跃迁。再比如说,仿射变换,就是在仿射空间里从一个点到另一个点的跃迁。附带说一下,这个仿射空间跟向量空间是亲兄弟。做计算机图形学的朋友都知道,尽管描述一个三维对象只需要三维向量,但所有的计算机图形学变换矩阵都是4 x 4的。说其原因,很多书上都写着“为了使用中方便”,这在我看来简直就是企图蒙混过关。真正的原因,是因为在计算机图形学里应用的图形变换,实际上是在仿射空间而不是向量空间中进行的。想想看,在向量空间里向一个向量平行移动以后仍是相同的那个向量,而现实世界等长的两个平行线段当然不能被认为同一个东西,所以计算机图形学的生存空间实际上是仿射空间。而仿射变换的矩阵表示根本就是4 x 4的。又扯远了,有兴趣的读者可以去看《计算机图形学——几何工具算法详解》。一旦我们理解了“变换”这个概念,矩阵的定义就变成:“矩阵是线性空间里的变换的描述。”到这里为止,我们终于得到了一个看上去比较数学的定义。不过还要多说几句。教材上一般是这么说的,在一个线性空间V里的一个线性变换T,当选定一组基之后,就可以表示为矩阵。因此我们还要说清楚到底什么是线性变换,什么是基,什么叫选定一组基。线性变换的定义是很简单的,设有一种变换T,使得对于线性空间V中间任何两个不相同的对象x和y,以及任意实数a和b,有:T(ax + by) = aT(x) + bT(y),那么就称T为线性变换。定义都是这么写的,但是光看定义还得不到直觉的理解。线性变换究竟是一种什么样的变换?我们刚才说了,变换是从空间的一个点跃迁到另一个点,而线性变换,就是从一个线性空间V的某一个点跃迁到另一个线性空间W的另一个点的运动。这句话里蕴含着一层意思,就是说一个点不仅可以变换到同一个线性空间中的另一个点,而且可以变换到另一个线性空间中的另一个点去。不管你怎么变,只要变换前后都是线性空间中的对象,这个变换就一定是线性变换,也就一定可以用一个非奇异矩阵来描述。而你用一个非奇异矩阵去描述的一个变换,一定是一个线性变换。有的人可能要问,这里为什么要强调非奇异矩阵?所谓非奇异,只对方阵有意义,那么非方阵的情况怎么样?这个说起来就会比较冗长了,最后要把线性变换作为一种映射,并且讨论其映射性质,以及线性变换的核与像等概念才能彻底讲清楚。我觉得这个不算是重点,如果确实有时间的话,以后写一点。以下我们只探讨最常用、最有用的一种变换,就是在同一个线性空间之内的线性变换。也就是说,下面所说的矩阵,不作说明的话,就是方阵,而且是非奇异方阵。学习一门学问,最重要的是把握主干内容,迅速建立对于这门学问的整体概念,不必一开始就考虑所有的细枝末节和特殊情况,自乱阵脚。接着往下说,什么是基呢?这个问题在后面还要大讲一番,这里只要把基看成是线性空间里的坐标系就可以了。注意是坐标系,不是坐标值,这两者可是一个“对立矛盾统一体”。这样一来,“选定一组基”就是说在线性空间里选定一个坐标系,就这意思。好,最后我们把矩阵的定义完善如下:“矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。”理解这句话的关键,在于把“线性变换”与“线性变换的一个描述”区别开。一个是那个对象,一个是对那个对象的表述。就好像我们熟悉的面向对象编程中,一个对象可以有多个引用,每个引用可以叫不同的名字,但都是指的同一个对象。如果还不形象,那就干脆来个很俗的类比。比如有一头猪,你打算给它拍照片,只要你给照相机选定了一个镜头位置,那么就可以给这头猪拍一张照片。这个照片可以看成是这头猪的一个描述,但只是一个片面的的描述,因为换一个镜头位置给这头猪拍照,能得到一张不同的照片,也是这头猪的另一个片面的描述。所有这样照出来的照片都是这同一头猪的描述,但是又都不是这头猪本身。同样的,对于一个线性变换,只要你选定一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。但是这样的话,问题就来了如果你给我两张猪的照片,我怎么知道这两张照片上的是同一头猪呢?同样的,你给我两个矩阵,我怎么知道这两个矩阵是描述的同一个线性变换呢?如果是同一个线性变换的不同的矩阵描述,那就是本家兄弟了,见面不认识,岂不成了笑话。好在,我们可以找到同一个线性变换的矩阵兄弟们的一个性质,那就是:若矩阵A与B是同一个线性变换的两个不同的描述(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系),则一定能找到一个非奇异矩阵P,使得A、B之间满足这样的关系:A = P-1BP线性代数稍微熟一点的读者一下就看出来,这就是相似矩阵的定义。没错,所谓相似矩阵,就是同一个线性变换的不同的描述矩阵。按照这个定义,同一头猪的不同角度的照片也可以成为相似照片。俗了一点,不过能让人明白。而在上面式子里那个矩阵P,其实就是A矩阵所基于的基与B矩阵所基于的基这两组基之间的一个变换关系。关于这个结论,可以用一种非常直觉的方法来证明(而不是一般教科书上那种形式上的证明),如果有时间的话,我以后在blog里补充这个证明。这个发现太重要了。原来一族相似矩阵都是同一个线性变换的描述啊!难怪这么重要!工科研究生课程中有矩阵论、矩阵分析等课程,其中讲了各种各样的相似变换,比如什么相似标准型,对角化之类的内容,都要求变换以后得到的那个矩阵与先前的那个矩阵式相似的,为什么这么要求?因为只有这样要求,才能保证变换前后的两个矩阵是描述同一个线性变换的。当然,同一个线性变换的不同矩阵描述,从实际运算性质来看并不是不分好环的。有些描述矩阵就比其他的矩阵性质好得多。这很容易理解,同一头猪的照片也有美丑之分嘛。所以矩阵的相似变换可以把一个比较丑的矩阵变成一个比较美的矩阵,而保证这两个矩阵都是描述了同一个线性变换。这样一来,矩阵作为线性变换描述的一面,基本上说清楚了。但是,事情没有那么简单,或者说,线性代数还有比这更奇妙的性质,那就是,矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述。而作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能够把线性空间中的一个坐标系(基)表换到另一个坐标系(基)去。而且,变换点与变换坐标系,具有异曲同工的效果。线性代数里最有趣的奥妙,就蕴含在其中。理解了这些内容,线性代数里很多定理和规则会变得更加清晰、直觉。上一篇里说“矩阵是运动的描述”,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时候,总会有人照本宣科地告诉你,初等数学是研究常量的数学,是研究静态的数学,高等数学是变量的数学,是研究运动的数学。大家口口相传,差不多人人都知道这句话。但是真知道这句话说的是什么意思的人,好像也不多。简而言之,在我们人类的经验里,运动是一个连续过程,从A点到B点,就算走得最快的光,也是需要一个时间来逐点地经过AB之间的路径,这就带来了连续性的概念。而连续这个事情,如果不定义极限的概念,根本就解释不了。古希腊人的数学非常强,但就是缺乏极限观念,所以解释不了运动,被芝诺的那些著名悖论(飞箭不动、飞毛腿阿喀琉斯跑不过乌龟等四个悖论)搞得死去活来。因为这篇文章不是讲微积分的,所以我就不多说了。有兴趣的读者可以去看看齐民友教授写的《重温微积分》。我就是读了这本书开头的部分,才明白“高等数学是研究运动的数学”这句话的道理。不过在我这个《理解矩阵》的文章里,“运动”的概念不是微积分中的连续性的运动,而是瞬间发生的变化。比如这个时刻在A点,经过一个“运动”,一下子就“跃迁”到了B点,其中不需要经过A点与B点之间的任何一个点。这样的“运动”,或者说“跃迁”,是违反我们日常的经验的。不过了解一点量子物理常识的人,就会立刻指出,量子(例如电子)在不同的能量级轨道上跳跃,就是瞬间发生的,具有这样一种跃迁行为。所以说,自然界中并不是没有这种运动现象,只不过宏观上我们观察不到。但是不管怎么说,“运动”这个词用在这里,还是容易产生歧义的,说得更确切些,应该是“跃迁”。因此这句话可以改成:“矩阵是线性空间里跃迁的描述”。“矩阵是线性空间里的变换的描述。”到这里为止,我们终于得到了一个看上去比较数学的定义。不过还要多说几句。教材上一般是这么说的,在一个线性空间V里的一个线性变换T,当选定一组基之后,就可以表示为矩阵。因此我们还要说清楚到底什么是线性变换,什么是基,什么叫选定一组基。线性变换的定义是很简单的,设有一种变换T,使得对于线性空间V中间任何两个不相同的对象x和y,以及任意实数a和b,有:T(ax + by) = aT(x) + bT(y),那么就称T为线性变换。首先来总结一下前面两部分的一些主要结论: 1. 首先有空间,空间可以容纳对象运动的。一种空间对应一类对象。 2. 有一种空间叫线性空间,线性空间是容纳向量对象运动的。 3. 运动是瞬时的,因此也被称为变换。 4. 矩阵是线性空间中运动(变换)的描述。 5. 矩阵与向量相乘,就是实施运动(变换)的过程。 6. 同一个变换,在不同的坐标系下表现为不同的矩阵,但是它们的本质是一样的,所以本征值相同。下面让我们把视力集中到一点以改变我们以往看待矩阵的方式。我们知道,线性空间里的基本对象是向量,而向量是这么表示的:        [a1, a2, a3, …, an]        矩阵呢?矩阵是这么表示的:         a11, a12, a13, …, a1n         a21, a22, a23, …, a2n                      …         an1, an2, an3, …, ann不用太聪明,我们就能看出来,矩阵是一组向量组成的。特别的,n维线性空间里的方阵是由n个n维向量组成的。我们在这里只讨论这个n阶的、非奇异的方阵,因为理解它就是理解矩阵的关键,它才是一般情况,而其他矩阵都是意外,都是不得不对付的讨厌状况,大可以放在一边。这里多一句嘴,学习东西要抓住主流,不要纠缠于旁支末节。很可惜我们的教材课本大多数都是把主线埋没在细节中的,搞得大家还没明白怎么回事就先被灌晕了。比如数学分析,明明最要紧的观念是说,一个对象可以表达为无穷多个合理选择的对象的线性和,这个概念是贯穿始终的,也是数学分析的精华。但是课本里自始至终不讲这句话,反正就是让你做吉米多维奇,掌握一大堆解偏题的技巧,记住各种特殊情况,两类间断点,怪异的可微和可积条件(谁还记得柯西条件、迪里赫莱条件…?),最后考试一过,一切忘光光。要我说,还不如反复强调这一个事情,把它深深刻在脑子里,别的东西忘了就忘了,真碰到问题了,再查数学手册嘛,何必因小失大呢?言归正传。如果一组向量是彼此线性无关的话,那么它们就可以成为度量这个线性空间的一组基,从而事实上成为一个坐标系体系,其中每一个向量都躺在一根坐标轴上,并且成为那根坐标轴上的基本度量单位(长度1)。现在到了关键的一步。看上去矩阵就是由一组向量组成的,而且如果矩阵非奇异的话(我说了,只考虑这种情况),那么组成这个矩阵的那一组向量也就是线性无关的了,也就可以成为度量线性空间的一个坐标系。结论:矩阵描述了一个坐标系。 “慢着!”,你嚷嚷起来了,“你这个骗子!你不是说过,矩阵就是运动吗?怎么这会矩阵又是坐标系了?”嗯,所以我说到了关键的一步。我并没有骗人,之所以矩阵又是运动,又是坐标系,那是因为: 对不起,这话其实不准确,我只是想让你印象深刻。准确的说法是:“对象的变换等价于坐标系的变换”。或者: “固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换。”说白了就是: “运动是相对的。”  让我们想想,达成同一个变换的结果,比如把点(1, 1)变到点(2, 3)去,你可以有两种做法。第一,坐标系不动,点动,把(1, 1)点挪到(2, 3)去。第二,点不动,变坐标系,让x轴的度量(单位向量)变成原来的1/2,让y轴的度量(单位向量)变成原先的1/3,这样点还是那个点,可是点的坐标就变成(2, 3)了,方式不同,结果一样。    从第一个方式来看,那就是我在《理解矩阵》1/2中说的,把矩阵看成是运动描述,矩阵与向量相乘就是使向量(点)运动的过程。在这个方式下,Ma = b 的意思是: “向量a经过矩阵M所描述的变换,变成了向量b。” 而从第二个方式来看,矩阵M描述了一个坐标系,姑且也称之为M。那么: Ma = b 意思是: “有一个向量,它在坐标系M的度量下得到的度量结果向量为a,那么它在坐标系I的度量下,这个向量的度量结果是b。”这里的I是指单位矩阵,就是主对角线是1,其他为零的矩阵。 而这两个方式本质上是等价的。 我希望你务必理解这一点,因为这是本篇的关键。 正因为是关键,所以我得再解释一下。 在M为坐标系的意义下,如果把M放在一个向量a的前面,形成Ma的样式,我们可以认为这是对向量a的一个环境声明。它相当于是说: “注意了!这里有一个向量,它在坐标系M中度量,得到的度量结果可以表达为a。可是它在别的坐标系里度量的话,就会得到不同的结果。为了明确,我把M放在前面,让你明白,这是该向量在坐标系M中度量的结果。” 那么我们再看孤零零的向量b: b  多看几遍,你没看出来吗?它其实不是b,它是:  Ib 也就是说:“在单位坐标系,也就是我们通常说的直角坐标系I中,有一个向量,度量的结果是b。” 而 Ma = Ib的意思就是说:  “在M坐标系里量出来的向量a,跟在I坐标系里量出来的向量b,其实根本就是一个向量啊!”这哪里是什么乘法计算,根本就是身份识别嘛。从这个意义上我们重新理解一下向量。向量这个东西客观存在,但是要把它表示出来,就要把它放在一个坐标系中去度量它,然后把度量的结果(向量在各个坐标轴上的投影值)按一定顺序列在一起,就成了我们平时所见的向量表示形式。你选择的坐标系(基)不同,得出来的向量的表示就不同。向量还是那个向量,选择的坐标系不同,其表示方式就不同。因此,按道理来说,每写出一个向量的表示,都应该声明一下这个表示是在哪个坐标系中度量出来的。表示的方式,就是 Ma,也就是说,有一个向量,在M矩阵表示的坐标系中度量出来的结果为a。我们平时说一个向量是[2 3 5 7]T,隐含着是说,这个向量在 I 坐标系中的度量结果是[2 3 5 7]T,因此,这个形式反而是一种简化了的特殊情况。注意到,M矩阵表示出来的那个坐标系,由一组基组成,而那组基也是由向量组成的,同样存在这组向量是在哪个坐标系下度量而成的问题。也就是说,表述一个矩阵的一般方法,也应该要指明其所处的基准坐标系。所谓M,其实是 IM,也就是说,M中那组基的度量是在 I 坐标系中得出的。从这个视角来看,M×N也不是什么矩阵乘法了,而是声明了一个在M坐标系中量出的另一个坐标系N,其中M本身是在I坐标系中度量出来的。 回过头来说变换的问题。我刚才说,“固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换”,那个“固定对象”我们找到了,就是那个向量。但是坐标系的变换呢?我怎么没看见? 请看: Ma = Ib 我现在要变M为I,怎么变?对了,再前面乘以个M-1,也就是M的逆矩阵。换句话说,你不是有一个坐标系M吗,现在我让它乘以个M-1,变成I,这样一来的话,原来M坐标系中的a在I中一量,就得到b了。我建议你此时此刻拿起纸笔,画画图,求得对这件事情的理解。比如,你画一个坐标系,x轴上的衡量单位是2,y轴上的衡量单位是3,在这样一个坐标系里,坐标为(1,1)的那一点,实际上就是笛卡尔坐标系里的点(2, 3)。而让它原形毕露的办法,就是把原来那个坐标系:2 0 0 3 的x方向度量缩小为原来的1/2,而y方向度量缩小为原来的1/3,这样一来坐标系就变成单位坐标系I了。保持点不变,那个向量现在就变成了(2, 3)了。被矩阵: 1/2   0 0   1/3 左乘。而这个矩阵就是原矩阵的逆矩阵。 “对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘。”  再一次的,矩阵的乘法变成了运动的施加。只不过,被施加运动的不再是向量,而是另一个坐标系。如果你觉得你还搞得清楚,请再想一下刚才已经提到的结论,矩阵MxN,一方面表明坐标系N在运动M下的变换结果,另一方面,把M当成N的前缀,当成N的环境描述,那么就是说,在M坐标系度量下,有另一个坐标系N。这个坐标系N如果放在I坐标系中度量,其结果为坐标系MxN。在这里,我实际上已经回答了一般人在学习线性代数是最困惑的一个问题,那就是为什么矩阵的乘法要规定成这样。简单地说,是因为: 1. 从变换的观点看,对坐标系N施加M变换,就是把组成坐标系N的每一个向量施加M变换。 2. 从坐标系的观点看,在M坐标系中表现为N的另一个坐标系,这也归结为,对N坐标系基的每一个向量,把它在I坐标系中的坐标找出来,然后汇成一个新的矩阵。 3. 至于矩阵乘以向量为什么要那样规定,那是因为一个在M中度量为a的向量,如果想要恢复在I中的真像,就必须分别与M中的每一个向量进行內积运算。我把这个结论的推导留给感兴趣的朋友吧。应该说,其实到了这一步,已经很容易了。综合以上1/2/3,矩阵的乘法就得那么规定,一切有根有据,绝不是哪个神经病胡思乱想出来的。 我已经无法说得更多了。矩阵又是坐标系,又是变换。到底是坐标系,还是变换,已经说不清楚了,运动与实体在这里统一了,物质与意识的界限已经消失了,一切归于无法言说,无法定义了。道可道,非常道,名可名,非常名。矩阵是在是不可道之道,不可名之名的东西。到了这个时候,我们不得不承认,我们伟大的线性代数课本上说的矩阵定义,是无比正确的:  “矩阵就是由m行n列数放在一起组成的数学对象。” 好了,这基本上就是我想说的全部了。还留下一个行列式的问题。矩阵M的行列式实际上是组成M的各个向量按照平行四边形法则搭成一个n维立方体的体积。对于这一点,我只能感叹于其精妙,却无法揭开其中奥秘了。也许我掌握的数学工具不够,我希望有人能够给我们大家讲解其中的道理了。 我不知道是否讲得足够清楚了,反正这一部分需要您花些功夫去推敲。来源:360doc个人图书馆深圳期权集训营开课通知期权快速入门认识期权交易软件如何做投机?解读期权实战交易二十条真经解读期权实战武功之降龙十八掌上课时间:2018年04月14-15日线        下:深圳市(具体地点待定)线        上:目睹直播平台 http://mudu.tv报名电话/微信:18516600808 via: http://mp.weixin.qq.com/s?__biz=MzA3MDI3ODQxOA==&mid=2651248144&idx=7&sn=869f2089a93fecf72fc3cd3c93b1bf07&scene=0#wechat_redirect

 

新智元   网页版 2018-03-23 13:36
深度学习 算法 神经科学 神经网络
【新智元导读】深度神经网络由许多个体神经元组成,具有很高的复杂性。这种复杂性使其难懂,被认为是看不透的黑匣子。DeepMind最新发表针对对单一方向泛化的重要性的研究,采用来自实验神经科学的启发的方法,即通过探索删除神经元带来的影响确定深度神经网络中神经元小组的重要性。…全文: http://m.weibo.cn/5703921756/4220727689803838

 

网路冷眼   网页版 2018-03-23 10:00
公告板 深度学习
【What is wrong with variational autoencoders?】http://t.cn/RnUPvGi 变分自动编码器有什么问题? ​

 

爱可可-爱生活   网页版 2018-03-23 05:49
深度学习 算法 应用 神经网络 预测
【基于深层神经网络预测的运动错觉重现】《Illusory Motion Reproduced by Deep Neural Networks Trained for Prediction | Psychology》 http://t.cn/RnaHPaM

 

爱可可-爱生活   网页版 2018-03-23 05:05
算法 论文 神经网络
《Neural Network Quine》O Chang, H Lipson [Columbia University] (2018) http://t.cn/RnxMifi view:http://t.cn/RnaTwwC

 

wx:   网页版 2018-03-24 05:33
经验总结 深度学习 视觉 算法 应用 语音 资源 自然语言处理 博客 广告系统 机器翻译 机器人 神经科学 神经网络 书籍 推荐系统 语言学
「推荐!神经进化才是深度学习未来的发展之路!」 来源:全球人工智能 过去几年时间里,我们有一个完整的团队致力于人工智能研究和实验。该团队专注于开发新的进化计算方法(EC),包括设计人工神经网络架构、构建商业应用程序,以及使用由自然进化激发的方法来解决具有挑战性的计算问题。这一领域的发展势头非常强劲。我们相信进化计算很可能是人工智能技术的下一个重大课题。 EC与Deep Learning(DL)一样都是几十年前引入的,EC也能够从可用的计算和大数据中得到提升。然而,它解决了一个截然不同的需求:我们都知道DL侧重于建模我们已知的知识,而EC则专注于创建新的知识。从这个意义上讲,它是DL的下个步骤:DL能够在熟悉的类别中识别对象和语音,而EC使我们能够发现全新的对象和行为-最大化特定目标的对象和行为。因此,EC使许多新的应用成为可能:为机器人和虚拟代理设计更有效的行为,创造更有效和更廉价的卫生干预措施,促进农业机械化发展和生物过程。 前不久,我们发布了5篇论文来报告在这一领域上取得了显著的进展,报告主要集中在三个方面:(1)DL架构在三个标准机器学习基准测试中已达到了最新技术水平。(2)开发技术用于提高实际应用发展的性能和可靠性。(3)在非常困难的计算问题上证明了进化问题的解决。 本文将重点介绍里面的第一个领域,即用EC优化DL架构。 深度学习的大部分取决于网络的规模和复杂性。随着神经进化,DL体系结构(即网络拓扑、模块和超参数)可以在人类能力之外进行优化。我们将在本文中介绍三个示例:Omni Draw、Celeb Match和Music Maker(语言建模)。在这三个例子中,Sentient使用神经进化成功地超越了最先进的DL基准。 音乐制作(语言建模) 在语言建模领域,系统被训练用来预测“语言库”中的下一个单词,例如《华尔街日报》几年内的大量文本集合,在网络做出预测结果后,这个输入还可以被循环输入,从而网络可以生成一个完整的单词序列。有趣的是,同样的技术同样适用于音乐序列,以下为一个演示。用户输入一些初始音符,然后系统根据该起始点即兴创作一首完整的旋律。通过神经元进化,Sentient优化了门控周期性(长期短期记忆或LSTM)节点(即网络的“记忆”结构)的设计,使模型在预测下一个音符时更加准确。 在语言建模领域(在一个叫Penn Tree Bank的语言语料库中预测下一个词),基准是由困惑点定义的,用来度量概率模型如何预测真实样本。当然,数字越低越好,因为我们希望模型在预测下一个单词时“困惑”越少越好。在这种情况下,感知器以10.8的困惑点击败了标准的LSTM结构。值得注意的是,在过去25年内,尽管人类设计了一些LSTM变体,LSTM的性能仍然没有得到改善。事实上,我们的神经进化实验表明,LSTM可以通过增加复杂性,即记忆细胞和更多的非线性、平行的途径来显著改善性能。 为什么这个突破很重要?语言是人类强大而复杂的智能构造。语言建模,即预测文本中的下一个单词,是衡量机器学习方法如何学习语言结构的基准。因此,它是构建自然语言处理系统的代理,包括语音和语言接口、机器翻译,甚至包括DNA序列和心率诊断等医学数据。而在语言建模基准测试中我们可以做得更好,可以使用相同的技术建立更好的语言处理系统。 Omni Draw Omniglot是一种可以识别50种不同字母字符的手写字符识别基准,包括像西里尔语(书面俄语)、日语和希伯来语等真实语言,以及诸如Tengwar(《指环王》中的书面语言)等人工语音。 上图示例展示了多任务学习,模型可以同时学习所有语言,并利用不同语言中字符之间的关系。例如,用户输入图像,系统根据匹配输出不同语言的含义,“这将是拉丁语中的X,日语中的Y以及Tengwar中的Z等等”——利用日本、Tengwar和拉丁语之间的关系找出哪些角色是最好的匹配。这与单一任务学习环境不同,单一环境下模型只对一种语言进行训练,并且不能在语言数据集上建立相同的连接。 虽然Omniglot是一个数据集的例子,但每个语言的数据相对较少。例如它可能只有几个希腊字母,但很多都是日语。它能够利用语言之间关系的知识来寻找解决方案。为什么这个很重要?对于许多实际应用程序来说,标记数据的获取是非常昂贵或危险的(例如医疗应用程序、农业和机器人救援),因此可以利用与相似或相关数据集的关系自动设计模型,在某种程度上可以替代丢失的数据集并提高研究能力。这也是神经进化能力的一个很好的证明:语言之间可以有很多的联系方式,并且进化发现了将他们的学习结合在一起的最佳方式。 Celeb Match Celeb Match的demo同样适用于多任务学习,但它使用的是大规模数据集。该demo是基于CelebA数据集,它由约20万张名人图像组成,每张图片的标签都由40个二进制标记属性,如“男性与女性”、“有无胡子”等等。每个属性都会产生一个“分类任务”,它会引导系统检测和识别每个属性。作为趣味附加组件,我们创建了一个demo来完成这项任务:用户可以为每个属性设置所需的程度,并且系统会根据进化的多任务学习网络来确定最接近的名人。例如,如果当前的图片为布拉德·皮特的形象,用户可以增加“灰色头发”属性,已发现哪个名人与他相似但是头发不同。  在CelebA多任务人脸分类领域,Sentient使用了演化计算来优化这些检测属性的网络,成功将总体三个模型的误差从8%降到了7.94%。 这一技术使得人工智能在预测人类、地点和物质世界各种属性的能力上提升了一大步。与基于抽象,学习功能找到相似性的训练网络不同,它使相似的语义和可解释性也成为可能。 原文:https://www.sentient.ai/blog/evolution-is-the-new-deep-learning/?spm=a2c4e.11153959.blogcont554768.14.7c4f381flMPfCF 未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文” via: http://mp.weixin.qq.com/s?__biz=MzIwOTA1MDAyNA==&mid=2649847959&idx=3&sn=68ce04e7674c64a6d0b65282e6c42e90&scene=0#wechat_redirect

 

回复