隨著電腦科技的進步,我們有能力去儲存與處理大量資料,甚至彙整來自不同地方的資料,例如像是世界連鎖企業,販售數以千記的商品給百萬客戶,每天將這些交易紀錄儲存下來。然而對於這些沒有經過分析的資料(Data),如何轉換成有意義的資訊(Information),是一件很有趣的事情,例如像是預測(Prediction)。
雖然我們不曉得哪些人會喜歡哪些特定的商品,但是我們可以透過資料的萃取(Abstration),將我們有興趣的資訊,從隱含的資料中找出來。例如說,當人們到超級市場,買啤酒的人會順便買洋芋片,但是買洋芋片的不一定會買啤酒,而大部分的人夏天會買冰淇淋,冬天會買麻辣火鍋,這似乎有一個樣本(Pattern)存在其中。
當然我們無法做完全的預測,但可以找到一個比較好且近似的法則,這個近似法則沒辦法符合所有現實狀況,但至少他可以代表部份的資料,像是一些樣本或者規律,那這些樣本或規律性,就可以當作我們預測的基準,對未來預測(Future Prediction)。這個就是機器學習(Machine Learning)的雛型。
應用機器學習的方法處理大量資料庫數據又稱資料探勘(Data Mining),這個名詞的意謂,就好比是在大體積的地球,從一堆粗糙的金屬中萃取出金礦(Gold Mine)。由於資料探勘技術的進步,許多演算法都可以達到高度的正確性,因此應用相當廣泛,例如零售連鎖(Retail Chain)、銀行金融、測謊(Fraud Detection)和股票市場(Stock Market)。在製造業可以用來做最佳化流程、控管與除錯分析;在醫學方面可以用來做病例診斷(Medical Diagnosis);在通訊方面可以分析數據做網路最佳化(Network Optimization)與提昇服務品質(Quality of Service, Qos);還有資料以爆炸性速度增加的WWW(World Wide Web),這些巨大的資料都無法用人工的方式做處理來得到有用的資訊。
但機器學習並非只是用在處理資料庫問題,它是屬於人工智慧(Actifical Intelligence)的一部分。也被廣泛應用在視訊辨識(Vision&Speech Recognition)與機器人學(Robotics)上,再舉一個人臉辨識的例子,我們知道一張圖片是由許多像素隨意組成的,但人臉有結構(Structure),並且是對稱的,眼睛鼻子嘴巴都在特定的相對位置上,為了利用這些特徵找出人臉,我們可以撰寫一支程式去鑑定是否有這些特徵樣本的存在,這就是一個樣本辨識(Pattern Recognition)的例子。
機器學習可以從過去的資料或經驗當中,萃取出感興趣的部份,我們可以構造一個模型(Model),其中定義不同的參數(Parameters),而學習(Learning)這件事就是讓這個模型以程式的方式執行,利用測試資料(Training Data)來調整最佳化這些參數,等到訓練樣本到一定的程度後,參數的定義也成熟了(ex: 人的眼睛應該要在哪個位置),這支程式就可以做預測,而這裡的預測也就是我們常說得猜(Guess),猜猜看照片中哪個部份有人臉,但不同的是經過模型定義與資料訓練的機器學習程式,他的「猜」是有根據的,且命中率高的。
那機器學習利用許多統計的定理,因為這是推論(Inference)的主要核心依據。在電腦科學(Computer Science)領域中,我們在訓練資料時,會需要一個有效率的演算法來做最佳化問題,並處理大量的資料-空間,再來當一個模型被學習後,這代表演算法的推論能力要更有效率-時間,因此空間和時間的複雜度(Space and Time Complexity)也和預測準確度一般重要。
另外機器學習又分為監督式學習(supervised Learning)、非監督式學習(Unsupervised Learning)與加強式學習(Reinforcement Learning)。監督式與非監督式的差別在於有無訓練資料,非監督式學習直接以我們投入的價值觀做判斷,在這方面的描述我覺得MMdays的文章寫得很好!文章的描述我還需要再多加強,如果有興趣瞭解的可以看看下面三篇。
人工智慧與機器學習-MMdays
KNN演算法-MMdays
KNN演算法(更正篇)-MMdays
本系列的文章都來自於Introduction to Machine Learning一書,
內容經過閱讀後所寫,所以會有部份語句因翻譯不通順,造成閱讀不便請見諒!
留言列表