「Garbage in, garbage out」是人工智慧專案中常聽見的一句話,很多時候,我們以為蒐集到資料就可以開始,其實並不然,因為資料的處理往往佔據整個專案大半的時間,且處理的好壞也會影響專案成敗。為何有這麼大的影響呢?成功大學電機工程學系教授黃仁暐帶你一探究竟。
資料處理對AI專案的成敗影響高達七成
資料、演算法、算力可說是人工智慧的三大關鍵,在我們想著利用各式演算法協助解決問題前,有個重要的步驟絕對不能忽視,那就是:資料前處理。黃仁暐說,一個人工智慧專案的成敗,有百分之七十至八十的影響來自「資料前處理」,包括對於資料的了解、分析及處理方式。
資料需要考慮的面向包括資料來源、處理方式、儲存位置、特徵選取、如何計算資料間的相似度與距離等問題。黃仁暐說,資料科學家的任務除了設計演算法之外,更要知道該領域的知識或是能跟領域專家合作,才能掌握資料的特性並選擇適用的處理方式,才不會影響到後續模型的結果。
首先,光是資料的來源就有許多種,包括1.手動蒐集:藉由感測器或問卷蒐集而來;2.開放性資料:他人蒐集並整理好放到網路上公開的資料;3.其他公司提供的API:非完全公開的資料,需要透過程式抓取並逐步蒐集;4.Webpage crawlers:未經整理也沒有API的網頁資料,同樣需要程式抓取內容;5.直接向擁有資料的公司購買:最常發生的就是某個網站公司蒐集了許多用戶聯絡資料後,轉賣給其他公司。黃仁暐說,在開放資料部分,最常見的除了地方政府的公開資料外,許多公司或單位也會將自己的資料上傳到kaggle這個網站上,尋求各方好手協助解決問題。因此,如果想要測試想法或是演算法,可以先到kaggle上尋找看看是否有適用的資料集,可以用來實驗或驗證,確認可行後再拿自己公司的資料實際應用。
收集完資料的第二個步驟就是清理資料,大部分的資料常包含許多雜質,可能會因現場作業環境的意外,導致資料缺失或是出現異常值,根據不同的資料特性或是搜集情境,會有不同的處理方式,這些都需要專家根據對資料的理解進行判斷及做出不同的因應方式。
當我們有了資料之後,下一步要考慮的就是如何有效率的管理資料?除了透過建立不同檔名存放在檔案中外,現在最常用的就是使用資料庫管理及儲存資料。資料庫的好處包括:1.獨立性:每筆資料獨立不受其他筆資料影響;2.資料庫介面較有效率;3.可允許多人共同使用;4.當發生不太嚴重的錯誤時,有一定機會能將資料救回來,但仍然建議在其他地方備份;5.縮減背後的應用開發時間。
找出重複的現象,挖出藏在資料中的鑽石
擁有對資料的認識之後,我們又該如何從現有的資料中發現對企業有用的幫助呢?例如賣場老闆是否能從大筆的顧客購買資料中,找到對生意有幫助的線索?老闆可能記錄了賣場中的每筆交易紀錄,接著分析被購買的不同品項中,是否有彼此共同出現的特性。例如買了A商品的人是不是也會買B商品?或是買了C商品的人,會不會買D商品?並試著從這些特性中找出關聯結果,並在改變商品的陳列方式以增加賣場的銷售量。同樣的結果可以制定不同的策略,但前提必須要在資料中找到重複出現的現象,才能根據根據這個現象做決策。
近來備受矚目的資料探勘,就是從大量看似無意義的資料中,找出有用知識的過程。隨著人們每天產生的資料越來越多,資料量也越來越龐大,大到沒有辦法用人工處理,因此更需要透過機器或是演算法幫忙。黃仁暐說,資料探勘所包含的範圍十分廣泛,任何技術與資料,只要能從資料中找到有意義知識的技巧都可以使用。他指出,領域專家可以藉由小量資料找到共通的規則,而這些規則也是進行大量資料處理的重要依據。