本篇文章3113字,读完约8分钟
对于matlab,很多人仍然有在学校学习高级线性代数解算器的印象。在他们看来,matlab只是一个高级计算器。
什么是matlab?从本质上说,这种观点并没有错。由于matlab确实提供了丰富的数学计算功能,即使是为了简化使用,这些功能也是在数学的介绍语法中尽可能简单地实现的,因此几乎没有编程经验的初学者可以快速地将描述良好的数学方程直接“翻译”成matlab语言,这已经成为matlab作为一种数值计算语言的主要优势之一。
然而,这种观点是不完整的。由于matlab不仅能做各种数学运算,事实上,在过去的30年里,matlab积累了大量与工业应用相关的工具箱,涉及到数据分析、通信与信号处理、复杂控制系统、代码生成、金融甚至生物信息学等诸多领域,已经成为通信信号处理和控制算法开发的通用平台之一。
此外,近年来,随着大数据和深度学习技术的兴起,matlab也引入了与大数据分析和人工智能相关的各种新功能,如统计和机器学习工具箱、神经网络工具箱、数据库工具箱和自动驾驶工具箱。
不仅如此,根据matlab官方网站,事实上,公司有一个专门的测试团队,每天测试和验证matlab提供的函数库和工具箱,以确保它们的稳定性和可靠性。
然而,在这个大数据风起云涌、开源项目层出不穷的时代,matlab作为一款功能强大、易用可靠的巨无霸级商业软件,在某些领域似乎陷入了巨大的危机。例如,在人工智能领域,像tensorflow和caffe这样的开源框架似乎更受欢迎,相应地,像numpy、scipy和sympy这样的基于python的数学计算开源库被越来越多地使用。为什么一个任务也能完成,而matlab在这些场景中的出现率较低?与这些开源项目相比,谁是matlab的目标用户?
为了回答这些问题,雷锋。(公开号码:雷锋。最近采访了中国mathworks公司的高级应用工程师陈建平,从他的口中,我们对matlab有了更深的了解。
matlab的目标用户“在行业中有专长,而数据科学家不是专业的程序员。”陈建平说:“一直以来,matlab的目标客户是各个领域的算法开发人员和科学家。在大数据时代,matlab的大数据客户集中于工业生产的大数据分析。”
陈建平说这些人不是专业的程序员。他们有丰富的工业知识和背景,但不擅长计算机和编程。由于科学研究和工业应用的需要,他们必须使用计算机程序来做一些数值运算和数据处理任务,所以他们需要matlab。Matlab可以为这些用户弥补计算机编程的不足,让他们专注于自己的业务工作。这与开源软件的目标用户大相径庭,大多数开源项目的用户都是编程专家。
“例如,在大数据处理领域,matlab为用户提供了极简api,方便用户将一系列数值计算问题顺利迁移到haddop/spark平台。即使是没有太多软件开发经验的人,只要有行业背景,也可以在很短的时间内开发和部署大数据应用。”陈建平说。
"具体来说,实际上有两种类型的产品与matlab函数重叠."陈建平进一步说:“一个是数值运算工具,如numpy和scipy,另一个是框架级产品,如tensorflow和caffe。”Matlab具有简单、高效的特点。只要你懂数学或者有一定的工业背景,你就可以在几个小时内快速入门,而且matlab还配备了非常全面和详细的帮助文档。”
“但是这些开源项目是不同的,虽然它们是免费的,这似乎节省了开发成本,但是每个工具的学习实际上都需要一定的编程基础,这远不如使用matlab简单,而且遇到问题时几乎没有相应的帮助文档,这实际上延长了开发周期。当然,我不是说这些开源框架不好。现在各种算法都是开放的,每个人的实现都是相似的,只是各种工具的应用重点不同。如果你在特定的领域结合几个开源工具,你也许能够完成一个工程项目,但是它的可靠性和库的质量不能保证,它的效率可能不如商业软件。这里的根本原因是商业软件是专业团队大量验证和评估的结果。商业公司对其产品负责,而开源项目不能保证稳定性和可靠性。”
matlab的定位陈建平认为,从根本上讲,matlab和这些开源工具的定位也是非常不同的。Matlab按照工业应用的顺序集成各种相关功能,形成一套完整的过程工具。然而,开源框架更多地考虑了如何做好其中的一点。例如,张量流侧重于深度学习,而caffe侧重于卷积处理。陈建平说:“我相信,在某些情况下,开源工具可能在某一点上表现得非常好,超过matlab,但matlab将更接近工业应用,涵盖从数据收集、整理和分析到工程产品发布的所有重要环节,这是其他开源工具无法做到的。”
“例如,与张量流相比,matlab是解决工程计算问题的典型工程数值软件;张量流更注重深度学习,旨在简化深度学习的算法开发。一个是通用的数值计算软件,一个是专门的深度学习软件。两者的定位非常不同。”
此外,这种定位上的差异主要体现在产业背景上。现有的工业用户已经收集了大量的工业数据,单一的数据分析方法往往不能满足工业用户的需求。工业数据的特点要求工程师具备专业领域知识,能够在领域知识和大数据分析之间高效协作。要实现这一点,最简单的解决方案是一个统一的平台,这就是传统的工业仿真和分析软件matlab发挥作用的地方。
“我们需要一种方法来简化专业工程师的工作,降低工程师和数据科学家之间的通信成本,并提高企业大数据分析的效率,这与开源框架有很大不同。”陈建平说:“例如,在机器学习中,许多人注意如何在模型训练和算法实现中间做好工作,但实际上,工程中最大的时间分配是在数据预处理中。这部分需要工程师的领域知识才能做到最好,这需要工具的合作,而不是纯粹的机器学习。让我给你举个简单的例子。即使阿尔法戈学会了围棋,它也需要最好的围棋专家和大量的棋谱。直接将19x19表单发送给算法是没有用的。”
陈建平说:“matlab更注重工业数据分析,其主要优势在于工业领域几十年积累的各种性能稳定的工具箱。虽然matlab也做机器学习和深度学习相关的功能,但实际上,它只涉及一些接近工业应用的部分,这是不全面的。我们在业界提供了一些方便快捷的工具箱,并提供了许多图形工具来简化开发过程。”
总的来说,正是因为matlab是专门为不擅长编程和有工业背景的科研用户量身定做的,而且它也适用于实际的工业场景。因此,在人工智能领域,它大多由编程专家和学者组成,还处于学术发展阶段,自然被忽视。然而,正如陈建平反复强调的那样:“工具没有好坏之分。面对具体问题时选择具体的工具是正常的。就好像每个人都说C语言和汇编是万能的,但是没有人会用C语言和汇编来做任何事情。”
最后,陈建平提到了在人工智能领域人们很少提及matlab的另一个重要原因。他说:“开源软件的一个重要优势是社区讨论。所有用户都可以下载并使用该软件,然后根据自己的使用结果、收获和问题进行讨论。然而,商业软件是不同的。商业软件需要购买,而matlab的用户群更集中在企事业单位。这些用户很少公开发布他们产品的核心技术,他们也不会分享这些代码。这也是matlab与开源软件相比出现率较低的一个重要因素。”
事实上,“matlab只是一个高级计算器”这句话已经表达了一个固有的印象:matlab只是专门用于数学计算。虽然客观上matlab软件已经在数学计算的基础上得到了广泛而深入的扩展,但这种固有的印象似乎需要时间来改变。
雷锋。(公开号码:雷锋。相关阅读:
这是打开张量板的正确方法,张量流的可视化工具!(带有项目源代码)
推荐|思想工厂丹尼尔教你如何开始使用张量流
雷锋原创文章。严禁擅自转载。详情请参考转载说明。
来源:搜狐微门户
标题:在人工智能时代 MATLAB 还是曾经的那个“高级计算器”么?
地址:http://www.shwmhw.com/shxw/60578.html