基礎
機器學習(machine learning)
機器學習,是讓電腦透過研究例子把一件事做得越來越好,而不是有人遞給它一本規則手冊。想像教一個孩子認貓:你不會背誦「貓」的定義,只是指著上百隻貓,直到那個模式在他腦中「咔」地接通。機器學習程式也是這樣——給它看成千上萬張標註著「貓」或「不是貓」的照片,它就一點一點地自我調整,直到能認出一隻它從沒見過的貓。
這個轉變意義深遠。在老式程式設計裡,每一條規則都得由人手寫出來:郵件裡如果出現「免費賺錢」,就標為垃圾郵件。可是發垃圾郵件的人很狡猾,規則永遠寫不完。機器學習把它反了過來——你把一堆已經分好「垃圾」與「非垃圾」的郵件餵給程式,它自己去發現那些蛛絲馬跡般的模式。正因如此,它如今驅動著從你的相簿應用,到幫你把句子補完的種種建議。
一個常見的誤解,是以為機器「理解」了它學到的東西。其實並沒有——它只是找到了行得通的統計模式。餵給它帶偏見或馬虎的例子,它會一絲不苟地把偏見也一併學去。模型的好壞,永遠不會超過它所學的資料,這正是為什麼例子的分量,遠比大多數人想像的要重。
不要去寫「如果像素拼出鬍鬚和尖耳朵,那就是貓」這條規則。給它看一萬張標註好的照片,讓程式自己把這條規則找出來。
把規則搬出去,把例子放進來:這正是機器學習核心處的那一次反轉。
「機器學習」一詞由 IBM 工程師亞瑟·塞繆爾於1959年提出。他的西洋跳棋程式靠著和自己對弈而越下越強,自行調整對棋局優劣的判斷——從經驗中學習,而非依賴人手寫下的指令。
又稱
另見