根據MATLAB的官方介紹,它是「 科學計算的語言」,是「靈感與創新的工具」,可以幫助使用者更好的「開拓思維」以及「付諸實踐」。機器之心對MathWorks北美教育科技市場部程邺博士進行了專訪。程邺詳細介紹了MATLAB等産品的用途,尤其是在人工智能、機器人領域的應用,以及MathWorks公司的理念之一:讓更多的人掌握與機器交流的通用「語言」,讓更多非專業的人們能夠享受技術帶來的樂趣和益處,進而提升自己的教育、工作和生活。

1、關于MathWorks
MathWorks一直以來非常重視學校和教育,多年來一直在支援各種領域的學生大賽。這與公司的基因和發展曆程是分不開的。1979年,Cleve Moler教授在斯坦福大學教一門叫做數值計算的課程,為了讓學生把精力更多地投入到學習數學概念,而不是程式設計語言上,他引進了自己前些年編寫的進階語言,來代替Fortran。這門語言就是MATLAB。學生們非常喜歡MATLAB,并為它找到了很多Moler教授自己都沒有想到的應用方向。MATLAB就在斯坦福學生和他們的朋友圈中傳開了。其中的一個年輕人就是Jack Little。Jack将MATLAB的功能又拓展了一些。1984年,MathWorks公司成立,MIT買了第一個軟體。是以,雖然MathWorks産品已演化成工業界科學計算和基于模型設計的标準平台,但是它會一直重視在教育界的深深根基。學生課内外用MATLAB,不僅僅是在學程式設計,而是在通過這門進階的語言了解專業知識,把想象付諸實踐,甚至是在學習一種全新的表達自我的方式。
2、MATLAB:幫助學術界和工業界良好結合
MATLAB是MathWorks的主要産品之一,它不僅是一個程式設計語言,同時也是一個多元化的平台。另一大産品家族是Simulink,一個面向多域仿真并和基于模型設計的框子產品圖環境。除了這兩種主要工具以外,還有上百種工具包來适應不同的行業需求。比如說,有專門做實體模型的Simscape和SimMechanics。例如使用者需要仿真一個人類關節,利用工具箱裡自帶的基礎子產品,可以很快地組裝并模拟關節的運動及系統動力學。
MATLAB可以将很抽象的東西現實化,有助于學生的了解和學習。全球5000多個大學都在教學和科研中應用MATLAB。同時,在工業界,MATLAB滲透于航空航天、汽車、生物制藥、電子、能源、金融、人工智能等領域。 教育和工業的同時滲透,使MathWorks處在一個獨特的地位:幫助科研合作、建立學校教育和工業界需求的橋梁。比如,工業界早已選取仿真和實驗的結合,采用自動代碼生成。但在學校裡面可能還是一些比較傳統的教育方法,學生最後學到的知識就可能太書本了,很難産業化。MathWorks緻力于通過産品的通用性和工程師的服務來彌補這一鴻溝。
3、MathWorks和RoboCup機器人世界杯的故事
RoboCup是國際上最大型、級别最高、最受國際認可的機器人大賽。每年有來自世界各地的200多個團隊參加,大會的目标是讓機器人在2050年擊敗人類世界杯冠軍。
這是一個很振奮人心的想法,2050年離現在還有35年,可以說這個目标是挺有野心的。但是你要回想35年之前,我們想不到資訊科技和機器人會有如此的發展,是以我對這個目标還是滿懷信心的。雖然叫做機器人世界杯賽,足球是最主要的一個項目,但還有其他多種比賽,比如說救援機器人、物流機器人和工業上的工廠中的房間機器人等。
這個比賽分為很多組,有面向大學生的成人組,還有以國中高中生為主的青少年組。根據機器人大小又可以分成小型組和中型組;還有标準平台組,是基于同一款機器人上開發應用 ; 此外還有類人組和仿真組(沒有實體機器人,隻是在電腦上做二維和三維的模拟)。
我們能為這些團隊,為這個大賽做些什麼?首先,給團隊提供免費的軟體,同時,提供技術支援,幫他們解決難題,實作設計目标。比賽進行中,所有判斷全是機器人自己做出的,沒有人類幹擾,是以前期的算法設計和實行有很多挑戰,涉及到圖像識别、機器人控制、運動平衡、路徑優化、政策選擇,以及團隊協作等等方面。這些都是MathWorks工具的強項。
4、MATLAB讓更多的人掌握通用語言,讓程式設計更好玩
就像人類說人類語言,計算機說機器語言。MathWorks的軟體相當于是創造了一種更接近人類語言的語言,使機器能夠「聽懂」,讓我們更好的與機器進行互動。這可以了解成翻譯,我們在人類語言和機器語言之間進行翻譯,在進階機器語言和低級機器語言之間進行翻譯。
最近有一種趨勢,叫做計算語言素養,就好像是傳統的識字、文學語言素養,學習的卻是計算機語言。人人學習計算機語言,并不是說人人都要成為軟體工程師,而是要懂得現今的技術社會是怎樣運作的,培養基本的邏輯思維。如今人手都持有多個智能電子産品,Internet of Things(IOT)、Smart Things等滲入于普通人生活的各個方面,能夠對這些物品最基本的運作方式有些了解,甚至能和機器進行更好的交流,在逐漸變為一種素養。連前紐約市長、彭博集團總裁Michael Bloomberg都将學習程式設計作為新年志願。一個億萬富翁為什麼要學會程式設計呢?他真的覺得這件事情很重要,讓他有一種新的視角來了解世界。
MathWorks工具被廣泛應用于教育業以及工業界,它的容易上手并且功能強大的特點也同時被很多業餘愛好者和創客們接受。他們把自己的想象力和創造力用MATLAB、Simulink和其它工具箱很快的實作起來。有人做了會自動解魔方的機器人、智能手環、心率監測儀。有人自制家庭控溫系統,行動監測器、天氣探測器,聲控燈。創客們之是以能快速将自己的想象現實化,因為MATLAB和Simulink提供很多與低成本硬體(比如Arduino,Raspberry Pi、 BeagleBoard等)的連接配接支援,并且有強大的圖像處理、資料采集、信号處理、控制等等的工具箱。幾行代碼、幾個子產品,不用是專業的工程師或者程式員,大衆也可以享受的MATLAB的應用和樂趣。
5、MathWorks在人工智能和機器人領域發揮的作用
在給機器人程式設計時有一些非常複雜的數學模型,開發者可以用比較低級的語言一點點寫,這會花很多時間。但MATLAB的平台上已經提供很多工具箱和自帶算法,一行MATLAB函數,也許需要幾十行C語言。自動代碼生成大大縮短研發時間、并減少了手動代碼的出錯率。
除了機器人大賽,MathWorks也非常關注機器人領域的發展。 2015年推出了一個新的工具包 - Robotics System Toolbox,對于仿真機和硬體機器人都有提供直接的接口,還包含地圖、路徑規劃、圖像識别、自動控制等多種算法,為機器人領域的研發提供了一個更好的軟體平台。
以一個工業焊接的機械臂為例,它是讓焊接槍沿着一定軌迹運動,這其實是一個相當複雜的 動力學及控制問題。是以,要想讓手臂末端指向空間一點或者沿一軌迹運動,需要列出并解 決很多很複雜的數學公式,每個關節的運動軌迹、速度、以及促使運動需要的力和力矩等都 是要計算的未知量。沒有計算機的幫助,靠手算是基本不可能的。MATLAB和Simulink是進階的計算和模組化工具,可以大大節省設計、仿真、和跟硬體結合的時間。在使用這些工具時, 所有的部件、關節和限制等都是子產品化的。使用者可以直接選擇一個SimMechanics工具箱自帶的子產品,比如定軸轉動子產品,設好其限制,機器人手臂的肩膀關節就做成了。用同樣的方式很快便能組成整個機器人手臂的模型,并且模拟其運動,實時計算各關節需要的力矩。如果靠人自己推倒公式,或者用C語言來從零開發,工作量将成幾何倍增加,使用MATLAB和 Simulink進行模組化和仿真的方式則大大降低了研發成本和時間,這就是為什麼工業界會采用這種标準流程。
人工智能方面,拿人臉跟蹤來說(程邺示範了一個小程式,使攝像頭能夠自動識别人臉并進行跟随),程式首先需要的就是人臉識别,在MATLAB裡,我們隻需輸入指令「識别一雙眼睛」,然後系統就找到了眼睛。因為背景做了很多資料庫,做人臉識别是需要針對資料集進行訓練的。我們并不是人臉識别專家,但是用這一句MATLAB語言就可以使用這個功能。
MathWorks關注教育、關注工業、關注金融等各行各業的背後,是對人類技術和創新的不斷追求,是對于人類與機器溝通的向往。你會說MATLAB嗎?