qml開發的缺點(稱得上是開發人員的一大福音)
2023-05-30 23:52:14 1
點擊上方關注,All in AI中國
在最近的WWDC期間,蘋果公司推出了他們最新的工具CreateML。作為一名ML愛好者,作者對CreateML的印象非常深刻,研究一下它的能力到底有多強大是非常值得的。
1.對CreateML的簡述(如果你已經看了WWDC相關文件,可以跳過)
CreateML是一個全新的框架,旨在幫助開發人員輕鬆使用SWIFT和Xcode快速地構建機器學習模型。目前,它能夠處理3種類型的數據:圖像、文本和表格數據。工作流程非常簡單,你只需要一組訓練數據,並編寫幾行代碼,就會有神奇的事情發生了,小的CoreML模型已經支持在你的應用程式中使用。蘋果承諾這項技術將大大縮短訓練時間。如果有1萬張圖像,它會在幾分鐘內計算完(蘋果公司總是不提供具體的細節)。訓練很快,因為(在圖像分類器的情況下)蘋果使用遷移學習。我們不知道神經網絡的基礎是什麼,但是在WWDC文件中,Inception-v3被認為是圖像分類解決方案中一個最先進的例子。
2.WWDC演示文稿簡述
在WWDC期間,工作人員展示了我們如何輕易地構建不同的模型,首先是圖像分類器,只使用幾行代碼構建:
第二個例子是用文本分類器決定文本是"正的"的還是"負的",就像在圖像案例中,只有幾行代碼就足以訓練它:
對作者來說,最有趣的演示是最後一個演示,用表格數據演示工作。在例子中,CreateML使用新的數據格式,稱為MLDataTable,乍一看它只是普通數據矩陣的包裝器,然而它內置了CSV和JSON解析器。
在表格數據的情況下,CreateML提供了兩種方法:簡單的方法和稍微複雜一點的方法。首先看一看最簡單的房價公式,它看起來與前面的兩個例子幾乎相同:
表格數據問題可以通過使用MLRegressor來解決,使用MLClassfier進行分類(取決於情況)。但這並不是真正有趣的地方,在處理表格數據時,你可以手動決定將使用哪種分類/回歸方法,因為CreateML支持行業中最常用的方法:
3.現實生活中的CreateML
為了便於更多人的理解,WWDC的演示總是儘可能簡單。然而,在機器學習的情況下,事實是某些東西可以用簡單的例子,但這並不意味著它將與一個更複雜的例子一起工作。CreateML的目標用戶是開發人員,而不是ML專家或數據科學家,所以作者決定像普通的ML新手一樣行事,不對數據進行深入分析,只是將數據集放入CreateML並讓它發揮作用。作者決定以Kaggle為基準,將CreateML的成果與Kagglers的成果進行比較,也順便檢查一下CreateML有多快。在許多情況下,一個好模型的關鍵是對數據的理解和預處理。如果開發人員只導入csv並運行MLRegressor,就期望獲得一個高質量的成果,他可能會有失望。正因為如此,作者決定選擇一些例子,這些例子接近現實生活中的問題,而且不算複雜。
你可以把作者的Macbook Pro配置作為參考:
作者從測試圖像分類器開始,為了測試,作者使用了"植物幼苗分類"(https://www.kaggle.com/c/plant-seedlings-classification),其目的是從圖像中確定幼苗的種類。數據集比演示中顯示的數據集大得多,它包含了4300多幅圖像,而作者只使用了2行代碼,結果如下所示:
作者對這個結果的印象極其深刻,使用1.7GB的訓練數據,和5分鐘的時間就訓練了一個相當好的模型。還有沒有更好的方法來構建模型,並將其應用到iOS/macOS應用程式中以驗證?作者不這麼認為。作者表示,在當前的時間段裡,蘋果已經做到了極致。值得注意的是,CreateML會自動創建測試集,因此開發人員不必手工拆分這些數據,這無疑會簡化一些不必要的流程。
然而,並不是每一個人都會把它用於構建應用程式。所以讓我們來看看機器學習中另一個非常常見的案例,數據分析和分類、回歸問題。在這裡,作者以"鐵達尼號"為例(https://www.kaggle.com/c/titanic)。
作者下載了csv文件,創建了MLClassfier
好的,它不起作用,CreateML需要"完全乾淨"的數據。這不是什麼大問題,可以使用Python刪除空行,但是這也將訓練數據量從891個例子減少到183個,但至少它是有效的。
最後得到了工作模型:
作者對CreateML的工作效率又有了新的認識,不得不承認它速度快,效率高。
作者進行的第二次嘗試是對食堂收入的預測。(https://www.kaggle.com/c/restaurant-revenue-prediction/data)
在這種情況下,CreateML決定使用Boosted Tree Regressor,然而結果卻出人意料的低。當然,原因可能是這份數據還有尚未公開的部分。但是CreateML仍然能穩定的發揮作用,甚至可以在幾秒鐘內與一些模型相媲美。這是大多數開發人員需要的。
4.CreateML的利弊
優點:
目前,這是為IOS/MacOS構建ML模型的最簡單方法,尤其是用於應用程式的證明,或者那些使用相對簡單數據的應用程式。CreateML為成千上萬的IOS/MacOS開發人員打開了ML世界非常有效和易於使用缺點:
很少有優化和調試最終模型的方法不知道用什麼模型對圖像進行分類沒有數據預處理工具(但很明顯,蘋果的目標人群不是數據科學家,而是軟體開發人員)5.作者的意見
看起來CreateML確實是一個很好的工具,特別是對於那些根本不使用機器學習的開發人員來說,它速度快,效率很高,而且非常容易開始。如果你是iOS/MacOS開發人員,值得嘗試。
6.未解決的問題
由於所有的權重都存儲在iOS/macOS中,CreateML構建的CoreML模型只包含最後的、重新訓練過的層(incep-v3),那麼關於大型ML模型的圖像分類問題是被隱藏了嗎?
,