要學習人工智能,實際上我們對于智能要有一個認真的思考,所謂智能就是預測的能力吧,能夠預測未來,根據現在的數據推測未來數據的能力就是智能吧。之前牛頓從蘋果掉落總結出重力的定律,愛因斯坦總結智能方程其實都是智能化的一種吧。
根據各種已有的數據/現象總結出規律,可以是一個線性函數或者一個概率函數其實都是一種智能化的體現,比如根據數序列1,2,4,8,16...總結y=x的平方,我們就具備了輸入X可以得到Y的預測能力了吧,這個函數可以很好的擬合未來的數據序列,那就是一種智能化能力吧。這是人的一種學習能力,把這種能力反應到機器上就是機器學習能力把,機器也可以學習y=x的平方 這樣簡單的函數能力,還可以學習更復雜的能力,比如人臉識別、語音識別和語義理解等等,只不過用到的函數非常復雜,還不一定擬合的這么準確罷了。無論什么樣的智能或者學習,都是根據輸入,按照模型得到輸出的過程吧。其實計算機就是一種智能啊,有輸入、有輸出,有一個黑盒模型。
機器學習最常見的一種是監督學習,最開始的幾步是對于模型的訓練,“多了”或“少了”可以理解為訓練時的誤差,模型根據誤差調整自身參數,這就是機器學習里常用的反向傳播(Backpropagation)的簡單的解釋。因為我們現實生活中面對的數據序列不都是簡單的1,2,4,8,16...這些序列或者現實中都不存在,我們面對的是海量的數據,復雜無頭緒的數據,我們看到之前數據的因果關系,但是我們不知道為什么,怎么計算的。比如你看到張三的臉,就能認出來是張三,這個模型對人來說很簡單,但是對于機器確實來說超級復雜,我們沒有一個函數可以輸出這個結果。就需要一個超級復雜的模型不斷來驗證,這個就是監督式學習吧,根據已有的推測未知的未來。
其實人類的學習也是監督式學習,人的學習按邏輯順序可分為三個階段:輸入,整合,輸出。人的學習是一個人根據過往的經驗,對一類問題形成某種認識或總結出一定的規律,然后利用這些知識來對新的問題下判斷的過程。按照貝葉斯原理,可能我們的學習方式就是這樣的,總是根據已知來推測未知,同時根據獲得的新數據、新知識來不斷修正未來的方式。我們的物理好像就是這樣的吧,一開始式牛頓,后來有麥克斯韋,有愛因斯坦,都是站在巨人的肩膀上做出的努力(都是根據已有數據,再加上新的觀測和數據,來修正我們對未知的預測或者看法)。學習能力絕對是人類打猩猩時代起憋出的大招,在它的幫助下人類一舉登頂食物鏈之巔。就是人類的腦容量和壽命畢竟有限,由于這個限制,縱使人類有超級的學習能力,還是很難讓現有知識爆炸性增長的。幫助人類突破這個瓶頸的,正是計算機,或者說是“機器學習”
怎么指導計算機或者機器從數據中總結規律呢?
它們就是各式各樣的機器學習算法。機器學習是指用某些算法指導計算機利用已知數據得出適當的模型,并利用此模型對新的情境給出判斷的過程。而在這整個過程中,最關鍵的是數據,是數據,是數據!重要的事情說三遍。機器學習三要素是模型、策略和算法,其實感覺還應該加上“數據”吧。
機器學習是你不去設計, 而讓計算機自己去磨,如同用一套很一般的模子里打磨出能夠解決特定問題的武器。這點上,機器學習做的正是” 自發能夠產生解決問題的程序的程序” , 一些機器學習的經典算法如線性回歸, SVM, 神經網絡, 它們單個都不能解決問題, 但是通過“學習”卻可以一會去預測房價一會去尋找美女。
機器學習是一個源于數據的模型的訓練過程,最終歸納出一個面向一種性能度量的決策。 “訓練一個模型”代表訓練實例,“模型”表示通過經驗學習獲得的狀態,“歸納出一個決策”代表基于輸入做出決策的能力,并且需要一個用于未來決策的、不可見的預期輸入。最后,“面向一種性能度量”是指準備好的模型的針對性需要和定向特性。
機器學習里面有一個定理:沒有免費的午餐定理,就是說沒有一個優秀的或者通用的算法可以對一切問題進行擬合,要根據不同的數據,不同的情況,按照不同的模型,優化不同的參數。
機器學習就是在總結過去,預測未來。