最近幾年機器學習比較火,眾多程序猿大神們分享文章探討高維數據樣本相似度時,會經常提到「歐拉距離」這個詞。
首先,拋出結論:「歐拉距離」說法是錯誤的,應當是「歐幾裡得距離」,或者「歐氏距離」。當然,還有文獻提到「歐式距離」,更是大錯特錯,顯然不小心被不懂「數學」的輸入法(同音字,「歐式」比「歐氏」更高頻)帶到溝裡了。
對數學史感興趣,並自認為對數學家歐拉Euler略知一二的小樂,一開始看到這個詞,比較納悶,還以為自己孤陋寡聞,居然不知道這個概念。於是一探究竟,發現這貨根本不是歐拉發明的一種數學概念,而應是歐幾裡得距離Euclidean distance,中文也叫歐氏距離,兩個數學家都姓「歐」(中譯),但此「歐」非彼「歐」,兩個人年齡相差約2000歲。出現這種以訛傳訛的現象,是時候值得糾正了,不然就像身邊人總是把「閾[yù]值」念成「閥[fá]值」,《漂洋過海來看你》誤把「情不自已[yǐ]」唱成「情不自己[jǐ]」(應為:我竟悲傷得不能自「已」[yǐ] [yǐ] [yǐ]),令強迫症難以接受。
小樂認為,第一個誤用「歐拉距離」的程序猿,應當是對數學家歐拉比較熟悉,甚至懷著激賞與崇敬之情的,但對數學知識概念的深入了解可能不夠,導致一聽到「歐氏」,立即大腦第一反應認為理所當然就是「歐拉」,畢竟我們見過太多歐拉發明或發現的數學知識理論了,歐拉函數,歐拉公式,歐拉方程,歐拉定理,歐拉角,歐拉線,歐拉常數,等等不一而足(當然這些冠以歐拉名字的玩意,都是後人冠名)。話說回來,我們不能奢望所有的程序猿都能精通數學理論和史實(除非他是高德納Donald Knuth),正如不能指望所有數學家都會編程,電腦玩得很溜一樣。
就在本文寫作之時,手上的編輯器還「智能」檢測出,提示小樂把「歐氏」改為「歐式」,讓人不禁唏噓,難道程序猿寫個錯別字的檢測程序,只考慮詞頻,都不考慮一下上下文嗎?
當然最後小樂還可以奢望一下,發起一個倡議,所有的現代文本編輯器(作業系統自帶的,基於瀏覽器web的或者App Native原生的),都能支持標準的數學公式編輯排版(例如:LaTeX語法之類),所有的瀏覽器都能支持數學公式的原生渲染(各瀏覽器大廠的產品經理和程序猿,聯合W3C之類的組織,來推動統一一下行業標準,例如統一支持用KaTeX之類渲染啊),就像小樂數學編輯器目前支持的各種數學公式一樣。這樣,小編們編輯微信公眾號文章,編輯百家號圖文,以及學生老師家長、科學家、數學家交流數學題時,就不要老用一大堆圖片,甚至粗暴手繪拍照,或者SVG複雜技術曲線救國了),畢竟圖片佔用的存儲資源和傳輸帶寬比文字大多了。