第二個五分鐘,催動人工智慧的的內力——機器學習
前邊我五分鐘的觀點,總結起來就是,人工智慧是一系列技術的集合,而不是一個單獨的技術。
回想一下不難發現,前一篇講到的這些看似很新的技術並不是剛剛發明出來的,比如人機對弈,深藍戰勝國際象棋大師都已經二十多年了,運用圖像識別技術的Kinect體感遊戲機也已經上市8年了,為什麼這些技術在當時沒有這麼大範圍的火爆起來呢?
其實這些年來,相關領域的研究歷經了好幾次大起大落。核心問題主要有兩個,一個是沒有那麼多的數據用以整理歸納,另一個是沒有足夠的算力來支撐(畢竟超級計算機全世界就那麼幾台,還要用來辦大事去)。
隨著互聯網的發展,尤其是智能手機的普及帶來的移動互聯網的發展,讓人們再衣食住行等各個方面都越來越依賴互聯網,帶來了數據的井噴式爆發。而隨著各種晶元算力的提升,都為人工智慧技術的發展提供了充分的平台支撐。
利用計算機的演算法從大數據當中總結出規律,並且做出分類的預測,也就是所謂的機器學習。如果說人工智慧是個在各個領域大殺四方的武功,那麼機器學習就是催動人工智慧技術實現各項功能的內力。
目前應用比較廣泛的機器學習演算法包括支持向量機、神經網路等基本技術。不論何種技術,其核心都是利用求取最優解的演算法,歸納出大量的數據樣本特徵和我們希望預測或者分類的標籤之間的內在數學關係,從而用以根據新樣本的特徵預測出標籤的過程。類似現代控制理論中的狀態空間表達式,不過狀態空間表達式在數學上更成體系,而且由於其具有一系列標準的解法來解算或者預測出系統變數的取值,計算也更加精準。
現在流行的說法還有深度學習、卷積神經網路等等,這些演算法跟機器學習大同小異,而且大多數情況下被用作宣傳的噱頭。
可以說,當前如此火爆的人工智慧技術,核心就是機器學習演算法,而後面所涉及到的運算平台、晶元等產品也都是人工智慧系統中用來實現機器學習演算法的部分。
下面就幾個主要概念和一個一般的工作流程,來簡單梳理以下機器學習的工作過程。以谷歌開發者平台上給出的加州房產和房價的統計表為例。
1.標籤,我們需要判斷或者說是預測的變數,比如阿爾法狗下棋的時候需要預測下一步往哪落子勝率最高,在本樣例中則是預測房價。
2.特徵,預測標籤的參考,還以上邊兩個例子而言,阿爾法狗要根據前序步數和當前局面來決定下一步落子位置,那麼前面敵我的每一步落子都是特徵,要根據上表預測房價,則要根據前幾列的房齡、房間總數、卧室總數的關係來計算,比如房齡越小,總房間數越多,房價就應該越高,特別是當房間總數多而卧室總數少的這種,就住宅而言更接近別墅的格局,價格會更高。注意這裡我用了一個組合特徵,就是房間總數和卧室總數之間的關係。
3.樣本,就是數據表格里的每一項,學習樣本,或者說訓練樣本,是已知標籤值的項,還拿這個表格來說,樣本住房的房價都是已知的,機器用來求解其中的規律。
4.模型,還是從現代控制理論的角度來理解(剛考試不久,而且還在用這套理論建模,比較熟悉一些),我前面的文章里講到的狀態空間表達式,系統流程圖這些就是一個系統的模型,通過求解模型可以得到系統的狀態。機器學習的模型獲取過程可以簡單粗暴地認為,是給每個特徵賦予不同的權值,直到特徵與權值的乘積之和逼近標籤為止,這組權值就是一個模型。至於什麼情況下算是足夠逼近呢,一般用均方差來衡量,程序員根據擬合效果來確定系統到達合適的均方差時停止訓練。
5.預測(分類),有了模型,當新的無標籤樣本輸入,比如我們知道一套房子的房齡、房間總數、卧室總數等特徵了,系統就可以預測出這套房的參考售價,至於能不能賣這麼多錢,那就是中介的事了。除了預測之外還有一類學習以分類為目的,比如垃圾郵件分類,其實也是預測出一封郵件是垃圾郵件的概率,再根據概率門限給出結論。
機器學習這個詞呢,由於看起來比較基礎,不夠高大上,已經比較少見於商家宣傳用語了,現在比較流行的是深度學習,聽起來更加低調奢華有內涵是吧。其實深度學習並沒有超出機器學習和神經網路的框架的範疇很多。
這張圖是我對現代控制理論的狀態空間模型和神經網路模型做出的一個簡單的對比,控制系統中的輸入輸出變數數目是可以調整的,神經網路的樣本特徵標籤特徵組合層數的數量也是可變的,當有精確數學運算規律的情況下,狀態空間模型還是要比神經網路模型對系統狀態的預測更準確,畢竟,神經網路模型多數情況下只能降低誤差,而很難將誤差完全消除,所以機器學習的衡量指標通常是通過均方根誤差低於某個值,就認為這個模型滿足應用的需要了,而狀態空間模型解算出來的系統狀態是可以不存在誤差的。
這些基本的演算法,對於普通用戶來講,還是比較抽象,屬於看不見摸不著的東西,下一講我們就來看點具體的,這些演算法是用什麼東西實現的,是打算盤還是敲計算器(摁計算器的說法實在是太low了,家傳的銀行知識告訴我,專業會計用計算器的手法是遠快於鍵盤俠敲鍵盤速度的,手速直逼電競選手)。
由於人工智慧的概念現在鬧得鋪天蓋地,這個詞已經在一定程度上引起反感了,所以後續對實現人工智慧的演算法一概用機器學習來代替,既不招人討厭,也顯得我更專業!
扯一點我對人工智慧這個詞反感在哪啊。現在好像再傳統家電的基礎上加個APP就能叫智能家電了。比如某著名生態圈企業推出的一款電水壺,可以通過手機APP控制保溫的溫度,就叫智能電水壺了。更扯的是一款裝上液晶屏加一排按鍵的定時插座也叫智能插座。這都跟人工智慧不挨邊好吧?不抬杠地說,跟我定義的智能電水壺比,這真不算智能了。什麼叫智能水壺?我口渴了找你,你給我燒水,跟我自己取燒水有區別么?智能水壺嘛,你得知道我什麼時候想喝水(這個可以參考小罐茶的定製茶杯,一杯水多少毫升,杯子多大,每口喝多少,多長時間喝完),把水燒開再晾到的習慣的溫度,這個溫度就得看我平時喝什麼了,泡茶基本上得80℃左右吧,沖速溶咖啡有個50~60℃就差不多了,直接喝的話是喜歡喝溫水還是豁冰髓,對吧,這些都準備好,就等我倒水,這才叫智能水壺呢。至於有的智能家電集成了攝像頭,再裝個APP,可以聯網遠程操作或者根據你的手勢調整功能,姑且不論你要控制個家電還得學習一套廣播體操,就說你家裡擺著的家電上有個能聯網的攝像頭,你害怕不害怕?
一點題外話哈,回歸主題,以後相關技術就都用機器學習來指代了啊。


※十大Python機器學習常用庫 python開發,你用過幾個?
※人工智慧、機器學習、模式識別、數據挖掘關係
TAG:機器學習 |