機器學習已經開始改變軟件開發行業

硬件能力的發展和海量數據使得現有的機器學習方法成爲可能,例如模式識別、自然語言處理和強化學習。人工智能正在影響軟件開發過程,給版本控制、CI/CD和測試等帶來了額外的複雜性。

ThoughtWorks人工智能全球主管Christoph Windheuser在Goto Berlin 2018大會上談到了各個行業中的人工智能應用程序。InfoQ通過問答、摘要和文章的形式報道了本次大會。

Windheuser認爲,機器學習方法的最大優點是可以通過學習數據而不是編程來優化算法。這意味着算法可以實現無法通過編程來實現的行爲,例如光學和聲學模式識別或自然語言處理。他說,隨之而來的是全新的應用程序,可能性是無窮無盡的。

Windheuser表示,在數據科學和機器學習項目中,開發人員不僅需要處理他們的編程代碼,還需要處理大量數據,例如訓練模式、從這些模式中提取的特徵以及學習算法的參數和超參數。他認爲,這爲開發過程帶來了新的複雜性。

在他的演講之後,InfoQ採訪了Windheuser。

InfoQ:人工智能爲我們帶來了哪些可能性?

Christoph Windheuser:隨着硬件功能的大幅進步和可用的大量數據,一些衆所周知的舊機器學習方法出現了全新可擴展和可操作的應用方式。在模式識別領域有語音識別和圖像識別,在自然語言處理領域有語言翻譯、情感分析、意圖識別、文本到語音和聊天機器人。通過強化學習,甚至可以學會玩電子遊戲、下棋或平穩駕駛汽車。如果沒有機器學習方法,這一切都是不可能的。

InfoQ:數據在應用人工智能方面扮演着什麼樣的角色?

Windheuser:數據是機器學習算法的基礎。對於像反向傳播這樣的監督學習,爲了實現神經網絡的泛化,你需要的訓練模式數量遠遠超過了用於優化(權重)的參數。對於具有大量層、每層具有大量單元的深度學習模型,參數的數量很容易就達到數百萬個,要進行成功的訓練,這需要更多的訓練模式。

對於監督學習,訓練模式需要標籤(例如對模式的正確分類),而這些通常需要手動進行。除此之外,數據模式必須具有正確的形式,這樣才能被學習算法接受。這意味着必須從訓練數據中提取正確的特徵。這對於獲得良好的訓練算法來說非常重要。

例如,如果你想了解未來客戶對雜貨店商品的需求,可以使用歷史銷售數據來預測未來的銷售情況。你可以直接使用POS(銷售點)數據來訓練你的網絡。從POS數據中提取時間戳的工作日部分會非常有用,並將其作爲特徵提供給神經網絡。因爲客戶需求高度依賴於工作日,這將有助於神經網絡更容易、更快地學習。

InfoQ:人工智能將如何改變軟件開發和部署流程?

Windheuser:人工智能已經在很多方面改變了開發過程。爲了能夠在出現問題或者訓練實驗沒有顯示預期結果的情況下進行回滾,代碼和數據必須被設置回過去定義的某個一致的點。我們使用開源工具DVC(數據科學版本控制——dvc.org)獲得了一些很好的體驗,即使數據位於遠程的雲存儲桶中。

此外,持續集成/持續交付(CI/CD)環境的設置變得越來越複雜。你通常會同時擁有多個流和管道,例如,一個用於應用程序開發,一個用於數據科學和機器學習模型。如果你爲了加速訓練速度在多臺計算機上進行並行訓練,則必須藉助管道的扇入和扇出來並行化訓練,並在之後進行同步測試。在我們的很多項目中,我們使用的是GoCD環境,這是一個由ThoughtWorks開發的開源工具,能夠管理這種複雜的CI/CD環境。

使用機器學習組件測試應用程序的需求也變得越來越普遍。除了不同組件的單元測試之外,還必須使用一些KPI(例如錯誤率或在獨立測試集上實現的混淆矩陣)來測試訓練階段的成功率。在很多情況下,功能測試無法完全自動化。以聊天機器人爲例:它的功能不能完全通過自動化進行測試,因爲自動化測試只能測試到一小部分對話。由於機器學習應用程序功能測試的成本很高,我們經常使用“測試表”而不是經典的“測試金字塔”。

InfoQ:人工智能將爲我們帶來怎樣的未來?

Windheuser:這很難預測,因爲這個領域正在快速發生變化。爲了將人工智能及其應用推向一個新的水平,新的科學突破是必要的,例如在無監督學習、獲取現實世界知識或推理領域。這可能會在接下來的幾個月或幾年內發生,或者可能需要幾十年,中間還可能出現另一個AI寒冬。我真的相信,最終,擁有超智能的通用人工智能(AGI)將成爲可能,但這仍需要很長時間。

查看英文原文Q&A with Christoph Windheuser on AI Applications in the Industry

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章