一小時後,方鴻再次來到了量化資本總部。
陳宇的助理前來接待他,領着他向着招待室走去,并說道:“方先生,陳總正在技術部開會,您稍等,我去知會他一聲。”
方鴻如是說道:“不用,直接帶我去他的會議室,我去旁聽一下。”
聞言,陳宇的助理拿出手機給他發了個信息,很快陳宇就回消息,這位助理轉而看向方鴻微笑道:“方先生,您這邊請。”
不一會兒,方鴻便來到了陳宇所在的會議室,在場有三十多号人,看到走進來一個陌生的青年,大家都頗爲好奇的打量了一下。
他們發現方鴻跟自己老闆陳宇的年齡差不多,但不同的是,他們從方鴻身上感受到了一種在這個年齡階段所沒有的上位者氣場,這讓大家意識到這個陌生青年不是一般人。
此刻,陳宇看到方鴻與之相視點頭緻意,後者微微一笑便在會議室裏默默地找了個位置坐下旁聽。
陳宇收回目光,轉而環視一衆與會者繼續說道:“……對于人工智能的基本實現思路,機器學習的過程,簡單的說就是電腦到底是如何自我學習的。”
“因爲計算機的一切運算,其基礎都是數學運算,所以任何機器學習的思路,歸根結底就是把一個實際問題轉化爲數學問題。爲了讓計算機能夠預測或者識别什麽東西,就需要先構造一個數學函數,這個數學函數就叫預測函數。”
一般人可能很難想象,量化資本作爲一家多元金融公司,在大多數股民眼裏甚至就是一家非銀金融投資公司,掌門人也是做投資交易的,卻在公司裏談論這些内容。
不過方鴻是很淡定,這其實很正常,華爾街就是彙集了一群頂尖的數學家、物理學家。
此刻,陳宇轉而看向會議屏幕道:“比如預測一個吃飽飯的函數,就可以描述成[吃飽=N碗飯],這個預測計算到底準不準?一個人吃幾碗飯和吃飽之間的關系有是什麽?是吃一碗還是三碗才能吃的飽?”
“這就需要實際去試一下,如果預測是兩碗飯吃飽,但實際要吃三碗飯才飽,其中一碗的誤差就是損失,描述這個損失的函數即[3-N=1],這就是損失函數。”
“機器學習就是通過不斷嘗試讓這個誤差達到最小的過程,尋找損失最小值的方法通常是梯度下降,一旦我們找到了最小誤差,就會發現當[N=3]的時候誤差最小,也就是機器學習找到了真實的規律,就成功解決問題了。”
陳宇再度看向衆人道:“所以,機器學習就是在尋找數據的規律,大部分時候,它的本質就是把數據投射到坐标系裏,然後用計算機通過數學方法畫一條線區分或者模拟這些數據的過程。”
“不同的機器學習方法,就是在使用不同的數學模型來投射數據和畫線,從上世紀到現在,不同的流派找到了不同的方法,擅長于解決不同的問題,影響比較巨大的有這麽幾種:線性回歸和邏輯回歸、K近鄰、決策樹、支持向量機、貝葉斯分類以及感知機等。”
方鴻坐在一邊旁聽默默不言,他也算是計算機科學領域的半個業内人士,更有前世記憶先知先覺的優勢,此刻旁聽也是毫無壓力。
陳宇他們走的顯然就是神經網絡這個流派,不過也向前推進了一步,進入到了強化深度學習,而神經網絡的前身就是感知機。
這三個名詞本質上都是在玩同一個東西。
卻說此刻,陳宇緩緩地說道:“深度學習最基本的思想就是模拟大腦神經元的活動方式來構造預測函數和損失函數,既然叫神經網絡,必然和人的大腦神經元有一定的關系,單個感知機的算法機制其實就是在模拟大腦神經元的運行機制。”
屏幕上呈現一張大腦神經元的結構圖。
“這是一個神經元,大家都知道它的結構,這是樹突,這是軸突,其它神經元發過來的信号通過樹突進入神經元,再通過軸突發射出去,這就是一個神經元的運行機制。”
“現在我們把神經元的樹突變成輸入值,把軸突變成一個輸出值,于是這個神經元就變成了這樣的一張圖。把它轉化爲一個數學公式就更簡單了,[X1+X2+X3=Y],就是這個公式。”
“沒錯,就這麽簡單。最複雜的事物往往是有最簡單的事物創造的,簡單的0和1就塑造了龐大的計算機世界,四種核苷酸就空置了紛繁複雜的生命現象,一個簡單的神經元反射就塑造了我們的大腦。”
陳宇停頓了一會兒,再度環視衆人:“問題的關鍵不是基本結構有多簡單,而是我們如何使用這個基本結構來構建龐大的世界,神經元之所以神奇是因爲它有一個激活機制,即所謂的阈值。”
“神經元的每一個樹突不斷的接受輸入信号,但并不是每一個輸入信号都能讓軸突輸出信号,每一個樹突在輸入時所占的權重也不一樣。”
“比如你追求一個妹子,你孜孜不倦地采取各種行動,今天送了她一束花,明天請她吃大餐,但你發現這些行動都打動不了她。直到有一天伱陪她逛了一天街,她忽然間就被打動了,答應做你女朋友,這說明什麽?”
“說明并不是所有的輸入權重都是一樣的,在妹子那裏可能逛街的權重最大,其次是效果的積累并非是一個線性漸進的過程,而是量變引起質變。”
“所有的輸入在某一個點之前完全沒效果,可一旦達到某個值就突然被激發了,所以,模仿神經元的這種激活特性,那麽對剛才的公式做一下改造。”
“每個輸入需要一定的權重,在前面加一個調節權重的系數[W],後面加一個常數方便更好地調整阈值,于是這個函數就變成了這個樣子。”
方鴻也看向了會議大屏幕,是一個新的數學公式。
【W1X1+W2X2+W3X3+b=Y】
陳宇看着屏幕裏的公式說:“爲了實現激活的過程,對輸出值再作進一步的處理,增加一個激活函數,比如當X>1時,輸出1;當X<1時,輸出0,于是就成了這個樣子。”
“不過這個函數看起來不夠圓潤,不是處處可導,因此不好處理,換成Sigmoid函數,這樣一個簡單的函數就可以處理分類問題了。”
“單個的感知機,其實就是畫了一條線,把兩種不同的東西分開,單個感知機可以解決線性問題,但是對于線性不可分的問題卻無能爲力了,那意味着連最簡單的異或問題都無法處理。”
異或問題對于在場的所有人包括方鴻都明白,這是計算機的基本運算之一。
這時,陳宇自我反問道:“異或問題處理不了,那豈不是判死刑的節奏?”
陳宇旋即自答:“很簡單,直接用核函數升維。感知機之所以能變成現在的深度學習,就是因爲它從一層變成了多層,深度學習的深度就是指感知機的層數很多,我們通常把隐藏層超過三層的神經網絡就叫深度神經網絡,感知機是如何通過加層搞定異或問題的?”
陳宇回頭看向屏幕調取下一張幻燈圖并說:“計算機有四大基本運算邏輯,與、或、非、異或,這個不用多講了。如果我們把異或放在一個坐标系來表示就是這樣的。”
“原點位置X是0,Y是0,于是取0;X=1時,Y=0,兩者不同取1,通力,這兒也是1,而這個位置X、Y都等于1,所以取0,在這張圖上如果我們需要吧0和1分開,一條直線是做不到的。”
“怎麽辦?這就要看異或運算的本質了,數學上來說,異或運算其實一種複合運算,它其實可以通過其它的運算來得到,證明過程太複雜這裏就不展開了。”
“如果我們能用感知機先完成括号裏的運算,然後再把得出的結果輸入到另一個感知機裏邊進行外面的這層運算,就可以完成疑惑運算了,然後異或問題就這麽神奇的解決了,解決問題的同時順帶還解決了線性不可分的問題。”
“這說明什麽?說明不管多麽複雜的數據,通過加層的方式都可以拟合出合适的曲線将他們分開,而加層就是函數的嵌套,理論上來講不管多麽複雜的問題,我們都可以通過簡單的線性函數組合出來,因此,理論上講,多層的感知機能夠成爲通用的方法,可以跨領域地解決各類機器學習問題。”
……
(本章完)