Google研究TensorFlow.js使用者,探討其學習機器學習的動機、困難以及願景,Google提到,大多數的開發人員都誤以為無法掌握機器學習技術,是因為缺乏高階數學能力,但事實上缺乏的是機器學習的概念。這篇研究論文在IEEE VL/HCC研討會上發表,並且獲得最佳論文獎。

由於機器學習的技術越來越普及,更多的開發人員也必須使用機器學習技術來解決原領域的問題,而近年來有越來越多的函式庫,將複雜的模型行為抽象為高階的API,以降低機器學習的使用障礙。Google開源的TensorFlow.js函式庫,便可讓開發人員使用JavaScript,開發在瀏覽器上執行的機器學習功能,儘管Google下了許多功夫,盡可能使API容易使用,但他們還是不知道沒有機器學習背景的開發人員,在使用這些框架所遭遇的問題。

因此Google調查了645個TensorFlow.js用戶,這些受訪者大多數都是軟體和網頁開發人員,但是不熟悉機器學習技術,平常也並未把機器學習用在主要工作上。Google研究了這些人員使用機器學習框架遇到的障礙,並且了解受訪者認為最有助於他們應用框架的功能與工具。

Google發現這些受訪者應用框架遇到的困難,並非是框架提供的API不夠清楚,而是本身欠缺對機器學習概念的理解,這阻礙了他們學習使用框架,並且誤以為需要擁有高階數學能力,才能學會使用框架。且由於缺乏機器學習的概念性理解,開發人員無法挑選出一個好問題,來應用TensorFlow.js解決該問題,也無法區分機器學習成果的好壞,在創建神經網路架構時,也無法適當地配置模型的細節或是調整參數。

而且開發人員也難以從基本的hello world教學範例中學習,無法將學到的經驗轉移到自己的案例上使用,Google提到,雖然API範例會提供實作特定模型的語法,但是不足的知識基礎,讓開發人員難以一般化這些知識,應用到特定的問題上。

有趣的是,開發人員通常把這些學習機器學習遇到的障礙,歸因於自己缺乏高階數學能力,Google表示,API文件中的數學專有名詞可能加深了這樣的錯誤印象,事實上掌握概念並將其應用到實際問題,並不需要高級數學能力,機器學習框架並非為線性代數或是微積分專家設計。

受訪者希望框架不只能提供預訓練模型,而且還需要帶有明確修改提示,Google提到,雖然當前包括TensorFlow.js在內的機器學習平臺,都有提供預訓練模型,但是這些模型並非為新手設計,因此在缺乏明確操作指示的情況下,新手會難以修改現有模型,更別說用在自己的案例上。

再來,受訪者還希望框架可以提供最佳實踐,以即時提示的方式,在流程中引導開發者。機器學習專家可能對調整參數具有豐富的經驗,但對於新手來說,可能連決定第一個要調整的參數,都會不知所錯,Google提到,將最佳實踐嵌入到開發流程中,可以縮小開發者的決策空間。

而受訪者也期待機器學習框架,可以提供做中學的資源,也就是開發人員希望在開發機器學習應用程式的同時,能夠看到更多的範例和資源,對此,Google表示,機器學習框架可能需要區分不同程度,在特定時機提供不同的學習資源。


Advertisement

更多 iThome相關內容