管中窺豹 機器學習之我見

2021-10-19 17:42:17 字數 2587 閱讀 2225

人工智慧領域顯然是這兩年技術的熱點區域,特別是機器學習、深度學習、各種神經網路技術,更是火的一塌糊塗。

這些技術都被冠以智慧型的高帽,讓人望而生畏。不過,我突然發現乙個有意思的現象。當你對乙個

三、四歲的小孩提問時,他會思考一下,然後要麼告訴你他的理解,要麼回答你不知道。可是,如果提問的物件是各種所謂智慧型的語音助手的話,這些「智者」很難回答你一句不知道,而是想方設法,總會回答你點什麼,即使風馬牛不相及。如果真有那麼一天,智慧型機械人被創造出來的話,我覺得他們一定是非常外向的。

下面梳理下我對機器學習的粗淺理解。

首先,確定要解決的問題。

其次,研究問題涉及的方面。

最後,選擇乙個模型。比如線性回歸模型,最簡單的情況如一條直線,y=kx+b。複雜的,y=ax+w,變成矩陣形式,對應張量。

以上為第一部分。針對問題域,確定大的演算法範圍,也可以理解為建乙個好的模型。有了模型後,需要繼續明確以下元素。

一 確定成本函式(評估函式 損失函式 評價函式...)。不管是哪種叫法,目的都是評價當前結果的優劣,為下一步的行動提供參考。比如最簡單的,使用均方誤差,複雜的,各種距離,範數等。

上圖就是基於均方誤差評估線性模型。

二 確定梯度下降演算法。梯度下降,我理解是最快接近目標的方向。假設成本函式越小越好,則梯度下降方向意味著選擇成本函式下降最快的引數,從而能夠最快到達期望的極值。當然,這裡存在區域性極值和全域性極值,正常是要找到全域性極值。

三 確定學習率。還沒有理解數學含義。不過通過查閱網上的一些資料了解到這個引數是乙個經驗值,需要多次試驗後才可能取得較好的訓練效果。個人理解,對於梯度下降,學習率會影響到每次探測的距離。當這個值比較小時,探測的就比較精細,不容易錯過極值,但是明顯的,需要耗費更多的時間;如果這個值比較大時,探測的就會比較粗糙,容易錯過極值,甚至無法找到極值,難以收斂,好處就是速度快。

四 訓練模型。模型只是乙個抽象的指導思想、機制、方**,至於具體的策略、判斷邏輯是什麼樣子,還需要通過訓練來獲取。所謂訓練,就是把獲取的樣本資料,輸入到模型框架中,從而不斷的對模型進行修正,明確化,使得其對樣本的**極限接近真實結果。

比如就上面的線性模型而言,選擇直線模型,而非曲線或其他形狀,這只是乙個策略預判。在不同的樣本空間中,這個直線的傾斜角度怎樣,這就是需要訓練明確的。一旦訓練完成,直線的樣子也就明確化了,而不再是乙個抽象的、籠統的直線概念。

五 確定結束條件。訓練過程是乙個迴圈優化的過程。這個過程得有個結束條件,要麼是達到了預期的精度或閾值,要麼是達到了設定的迴圈次數。

以上為第二部分。針對模型,使用樣本資料進行訓練,獲取針對該問題域使用該模型的最優引數。有了訓練好的模型,下一步就是讓其發揮功效,這就是**了。這也是前面所有工作的目的。

六 **。有了訓練得到的具體化、引數化的模型,就可以用其來進行**了。所謂**,就是將新的資料條件輸入模型,由模型給出結果、判斷或者分類等。比如對上述線性模型,

輸入新的「x」條件,即可得到近似的「y」結果。

通過上面的梳理,我們來看所謂的機器學習、深度學習,以及進一步的深度神經網路等等,本質上是什麼?是真的智慧型嗎?顯然,從上面的線性回歸例子,還絲毫看不出智慧型的影子。

那這些所謂的學習到底在學習什麼?怎麼學習?從目前來看,大部分的學習都需要大量的樣本資料,整個學習過程瀰漫著獲取統計特性的味道。神經網路也並非跟人類大腦裡的神經網路是一回事,而是類似神經網路的一種模型結構。總的來看,個人理解,所謂的學習,本質上就是構造一種擬合資料的過濾器。特別是有監督類的學習。學習過程就是不斷的用已知資料加上人類已知的一些策略對過濾器調優,直到達到預先設定的條件為止。上面的線性回歸就是最簡單的擬合過濾器,一條直線。複雜點的有曲線,曲面,以及更複雜的無明顯可視規則的高維空間「形狀」。舉個不那麼恰當的例子,某個神經網路結構最終構造出來的擬合過濾器也許是下面這個紙團樣子,新資料通過它得到**結果。

提到神經網路,補充記錄一點。之前參加乙個活動,在介紹神經網路底層硬體優化時提到神經網路的底層本質是矩陣計算,所謂的優化就是如何提公升矩陣計算的效能。活動結束後,中間的種種一概不再記得,唯有這個「神經網路的底層本質是矩陣計算」一直縈繞在腦海中,揮之不去。突然乙個早晨,靈光一閃,想明白了,特此記錄在這裡。

雖然很簡單,但是對於久不接觸數學的俺來講,還是有那麼一點小小的成就感。

以下圖為例,左邊為輸入,中間為隱層,右邊為輸出。

對輸入到隱層的連線,進行編號。比如x1引出到1的權重為w11,到2的權重為w12,x2引出到1的權重為w21,到2的權重為w22,...以此類推。則有:

節點1的結果為  x1*w11+x2*w21+x3*w31

節點2的結果為  x1*w12+x2*w22+x3*w32

節點3的結果為  x1*w13+x2*w23+x3*w33

節點4的結果為  x1*w14+x2*w24+x3*w34

這不就是下面矩陣的乘嗎!

機器學習mAP之我見

在模型評估時,我們往往會參照一些效能指標,最基本的如準確率和召回率。看過西瓜書的同學應該對下面這張 很熟悉 這張表其實很好記憶,橫著看 actual p和actual n 代表實際所屬的類別 豎著看 predicted p和predicted n 代表 的型別。如果實際和 都一樣,那就是真正例 tp...

深度學習之我見

2006年hinton等人提出深度學習的概念 是人工智慧這幾年最大的突破的原因。這裡一句話概括下什麼是深度學習 輸入乙個物件,通過逐層進行多維度運算,最後輸入結果 深度學習其實是相對專家系統而言,之前的判斷是通過用大量 如果 就 if then 規則定義的,自上而下的思路。深度學習是仿照人工神經網路...

管中窺豹 揭秘機械人程式設計教育的優質少年

現在零零後的少年們學業負擔很重,光是主課都要在校外補習鞏固,有一種少兒機械人程式設計教育正悄然無息進入國內中小學的課堂中,格物斯坦助力高科技行業,學好了該程式設計,可以讓孩子們德智體美勞得到全方位的提公升,晉公升為 一枚 優秀少年。學好該程式設計,孩子們的思考能力猶如豹子奔跑般綿長迅捷,勢不可擋。在...