AI之(神經網路+深度學習)
目前的人工智慧,或者說以深度學習為代表的一些方法論的研究,更像是古代的鍊金術,而不像是現代的化學。
沒想到吧,高大上的AI(人工智慧)核心技術基礎 ——機器學習,其實模仿的是人類學習的套路:模型+內容(資料)+……
作為一名創業者或者投資人,你該瞭解的機器學習常識是怎樣的?世界頂尖AI學者邢波教授給出了系統的解答。
目前的人工智慧,或者說以深度學習為代表的一些方法論的研究,更像是古代的鍊金術,而不像是現代的化學。
—— 邢波
20年前,當我剛進入這個領域的時候,人工智慧還處在谷底,是一個比較冷門的、不被重視的狀態。那個時候,這個專業叫 ——機器學習。
這是人工智慧的核心技術基礎。
事實上,我更喜歡這個名字,因為它把“人”這個詞給去掉了,免除了很多不必要的誤解。
我就是用一臺計算機或者一種裝置,來學習某一種能力,這個能力是人的能力,還是其他的能力,並不重要,從而使得這個工作本身更加穩健和專注。
一
什麼是機器學習?
P、T、E
人在學習什麼東西呢?
人的學習可能要更高階一點,它其實包含了對環境變化所做的預測,甚至是預測後面的規則,是人所感興趣並希望學到的。
比如說我們對自然科學知識的學習,就包括了學習它的法則、流程或者語法這些不同的規則,這些都是我們從資料或者從知識環境裡面,可以獲得的一些學習的套路。
學多了以後,你就會發現,有時候就變成機械化,你不想,就可以反應了。
同樣的道理,機器學習的定義是這樣的 ——它關注的是怎麼能夠建立一個通過體驗,自動提升自己功能的計算體系或者計算系統。這個計算系統能夠通過跟環境互動的體驗,自動提升自己的能力。
再詳細點說,機器學習的計算系統,包括三樣東西:
P就是效能(performance),機器學習非常重要的一件事兒就是效能,就是“好不好”。
T就是任務(task),到底是做什麼事。
E就是體驗(experience),實際上就是資料或者是獲得資料的過程。
接下來的一個關鍵問題是,機器學習實際上是怎樣發生的?
基本上來說,機器學習的流程需要三大因素:
一個是要有“環境”,環境裡面有資料,資料裡面包括了音訊、視覺、行為等各種各樣的資料,還包括了體驗;
然後就是“感知”(learning),實際上是把這些資料形式化、抽象化,然後再瞭解裡面的關聯,甚至瞭解裡面的一些因果關係。資料的表徵裡面能夠獲得對於預測的應對關係;
最後,學完了以後就需要來做“決策”。
決策的本質就是在一個特徵空間裡面做邊界的劃分。
✦ 舉個例子,如何區分南方人和北方人?
由於時代的變遷,如果僅從飲食習慣、外形和身材等維度去區分,不是很容易,但如果增加一個維度或者邊界,比如說個北京話繞口令,這個問題就容易解決了。
整個過程的完成,通常無法依靠數學解析,而需要使用適當演算法實現一個遞迴迴圈的過程,不斷地迭代以後希望它能夠收斂。
為什麼說“希望”收斂呢?在很多情況下,依據數學方程的形式和決策,試了很多次還是收斂不了,那這種情況下就只能看運氣了。
所以,選擇用什麼樣的方程,選擇最有效的決策,使用什麼演算法,甚至在什麼計算裝置上實現,實際上對於機器學習的最後結果的質量是有很大的關係的。
作為一個研發人員,需要具備比較充分的理論知識,才能在演算法或者方案不太靈光的時候能夠有足夠的知識儲備找出替代方案,所以知識體系很重要。
二
怎麼實現機器學習?
掌握4個要點,擁有更強的實戰能力
實現機器學習的手段相當豐富。所以,一個成熟的工程師和研發人員,只有具備系統地結構化的知識儲備,才能有更強的實戰能力。
所以,在長期教授機器學習的過程中,我有意識地把機器學習的手段,進行了分類,就好比一個書架,把每不同的書給放在不同的層裡面。
簡單講,是這樣的:
① 起點,即選擇“目標方程”。
舉個例子,假設要培養小孩,有人會要他上私校、彈鋼琴、學數學、參加奧賽……這就是所謂的優化小孩能力的演算法。
那最終目的是什麼呢?
這個最後想要達到的結果就叫“目標方程”,比如說這個方程最後是小孩考上了大學,或者成為一個成功的企業家。
② 結構
模型本身,變數之間,有不同的架構和關聯。
③ 限制
這個模型是可以在無邊界的情況下自由選擇?還是隻在一個空間裡,做有限的選擇?
有時候,“限制”是好事,可操作性強一點。但有時候,也會損失很多機會。
比如送小孩兒上學,需要選學區,還有價格的考量,這些都是限制。
④ 演算法
用哪種方法論來實現“目標方程”?包括不同的數學技巧,就好比培養人,是讓他學琴還是學數學,來達到育人的目的。
⑤ 停止條件
什麼時候該停下來呢?
比如說,是直到小孩考上哈佛才停下來,還是到了30歲就停下來?
總之,你不能永遠地訓練下去,需要有一個跟價值或者跟回報相關的停止條件。
怎麼實現機器學習?我們再來用“神經網路+深度學習”來說明一下。
它的起點非常非常樸素 ——人工神經元,神經網路就是好幾個神經元變成了一個網路。
✦ 什麼是人工神經元?
在人的大腦裡,有一個元件叫神經元,它是一個細胞,包含了細胞核、突觸。經過神經學的研究,發現突觸實際上就像導線一樣,可以跟其他的神經元產生接觸,獲得訊號。而細胞核實際上是一個啟用機制,當訊號強度達到一個比較高的水平以後,它的離子開關就被打開了,這樣可以產生一個電擊的訊號。
後來,人們用數學的方式,模仿生成了一個有類似功能的元件,即人工神經元。
到了工程層面,可以把抽象的數學描述變得更具體化、可操作化。
比如有3個自變數(年齡、性別、階段)的輸入。然後它可以進入下一個神經元,在進入的過程中它其實可以被加權,這叫權重。
中間是隱含層,輸出還沒看到的部分。
最後還有一個所謂的閥門函式。
比如這個函式是一個生存概率,它健康還是不健康,這就是一個函式。可以把整個的過程當成一個F,自變數就是X,結果就是Y,但這個F是用了一個多級的組合加權重加域值的方法來定義的F,是一套組合動作,而不只是一個簡單的方程,就不是一個簡單的線性邊界了。
你看,就這一個神經網路模型,就把感知和決策都放進去了。
所以,深度神經網路並不神祕,這個深度神經網路裡面有很多很多層,根據經驗來決定到底多少層是最好的。
總之,深度學習整個的設計,大致是模仿了很多人、動物,或者是一個能夠想象的、靠譜的神經系統對於物體的認知過程。
轉載自 小電呼機器人(公眾號)作 者 木易