機器學習簡介

2021-08-21 10:06:48 字數 2757 閱讀 5992

機器學習101

在這篇博文中,我們將從以下幾個方面簡要地向大家介紹一下機器學習。

如果你不是這方面的專家,也不需要擔心,因為在這篇博文中談及的內容僅需要高中的數學知識就足夠了。

什麼是機器學習?

牛津詞典將機器學習定義為:「the capacity of a computer to learn from experience」(計算機從經驗中學習的能力)。

機器學習的目標是做出可以讓計算機從一些示例資料中學會如何完成特定任務的演算法。

舉個例子。假設我們想編寫乙個程式用來玩圍棋。我們可以通過人工定義如何玩遊戲的規則來完成這個程式。我們可以編制一些開放策略和決策規則——例如,吃掉一顆棋子比不吃掉強。

但是有乙個問題是,手動編制這些規則意味著他們可能很快就會變得很複雜,並且也會受到程式設計師能夠想到的策略的限制。乙個更好的解決方案是構建機器學習演算法。機器學習可以像人類一樣通過案例和經驗來學習如何去玩圍棋。這就是deepmind利用alphago所做的事情,利用基於深度學習的演算法成功打敗了人類圍棋世界冠軍。

訓練機器學習模型

機器學習演算法通過使用標記好的資料來訓練模型。機器學習演算法通常會定義擁有可調引數和優化演算法的模型,如下圖所示。該模型獲取輸入資料(

x) 並以這個輸入資料和它的引數為基礎來得到輸出(

y) 。優化演算法試圖找到引數的最佳組合,以便在給定輸入示例x的情況下,模型的輸出y盡可能接近預期輸出。訓練的模型被表示為給定輸入x就能得到輸出y的函式f

,即y=f(x)。

訓練機器學習模型的流程

優化有許多方法可以供找到最佳的引數組合,使模型f的輸出y在給定輸入x的情況下盡可能接近預期輸出。一種方法是嘗試所有可能的引數組合,並選擇能夠產生最佳結果的組合。如果只有有限數量的引數組合,這樣也許能找到需要的組合,但是對於具有數千乃至數百萬引數的典型機器學習模型而言,獲取所有的引數組合完全是不切實際的。幸運的是(感謝17世紀數學家牛頓的發明),我們有一種更好的方法來找到某些型別的模型的最佳解決方案。

牛頓和萊布尼茨——

牛頓的發明是導數(也通常被稱為梯度)。函式的導數表示該函式相對於它某個引數的變化,並且它指向函式增加的方向。假設我們有乙個具有引數p的函式f,那麼函式f的變化df相對於引數p的變化dp被記作df(p)/dp。

對於不同的p值,f(p) = 

p⋅sin(p^2)的導數(梯度)df(p)/dp 。

那麼導數又是如何提高模型的優化效率的呢?假設我們有一些資料(x, t),其中x對應於目標t。這些資料被繪製如下:

標記的資料 (x,t)

如果我們現在想建立乙個對於所有的樣例都有乙個輸入x能夠滿足目標t

的模型,那麼我們可以嘗試從原點出發擬合直線(這也被稱為線性回歸)。這條直線可以用函式y=f(x)表示,其中f(x)=p⋅x

,p是模型的唯一引數(注意p表示直線的斜率)。該模型可以直觀地表示為:

我們的模型y=f(x)的表示

為了找到引數p使得y=x⋅p對於所有給定的例子(x,t)都接近於t,我們必須以數學的方式來定義度量標準「接近度」。這個度量標準被稱為成本函式。這個問題的典型成本函式是在所有樣例(x,t)上對目標t和模型輸出y的差的絕對值的平方:|t-y|²求和。最終成本函式變為∑|t - (x⋅p)|² ,其中∑代表求和。因為這個例子十分簡單,我們可以很容易地繪製出對於所有引數p的成本函式:

我們例子的成本函式

要找到最佳引數p,我們需要最小化成本函式值。請記住我們的模型有乙個引數p,獲取輸入x並產生輸出y。我們可以把模型寫成y=x⋅p。因為成本是 ∑|t-y|² ,我們可以替換掉y,並將成本函式寫為∑|t - (x⋅p)|²。如果我們想最小化這個函式並使輸出y盡可能地接近目標t,我們可以為每個輸入樣本(x,t)嘗試p的所有可能值,並利用在所有輸入樣本上的最小成本函式值來選取p的值。在這種情況下(只有乙個引數p

的情況)

嘗試所有可能的p值是可行的,但當模型的引數變多時,這很快也就變得不可行。這就是導數發揮作用的地方。通過使用導數,我們可以簡單地為p隨機選擇初始引數值,並開始沿著導數相反的方向去找到成本函式上的最低點。這個隨著導數(梯度)下降的過程也被稱為梯度下降。下面將說明該過程,我們從

p=0.3開始隨著梯度變換進行了12步,同時改善模型與資料的擬合(如右圖所示的直線)。當成本連續降低很小時,我們停止擬合,所以最後的引數p為1.94,成本為0.451。請注意,最後的直線比初始直線更適應資料(x,t)。

梯度下降優化

神經網路

實際上,上文提到的是我們訓練神經網路時才會發生的事情。然後,典型的神經網路模型一般是由比我們的y=x⋅p模型複雜得多的函式組成。神經網路模型多種多樣,但通常它們都是可微的,並且可以使用梯度下降進行優化,正如我們在這篇部落格中所說的那樣。

機器學習簡介

機器學習簡介 機器學習是人工智慧的乙個分支。人工智慧的研究是從以 推理 為重點到以 知識 為重點,再到以 學習 為重點,一條自然 清晰的脈絡。顯然,機器學習是實現人工智慧的乙個途徑,即以機器學習為手段解決人工智慧中的問題。機器學習在近30多年已發展為一門多領域交叉學科,涉及概率論 統計學 逼近論 凸...

機器學習 簡介

機器學習,即人工智慧的乙個分支,人工智慧目前具有一定的限制,無法突破強人工智慧,即無法像人類一樣思考,感受等。機器學習其實就是通過大量的資料輸入,找出符合資料集的演算法模型,在輸入新的資料集時在進行判斷其屬性,是數學 計算機和統計學的集合。類似於人類的學習經驗,使用經驗判斷的過程。機器學習在於區分和...

機器學習簡介

先說點廢話 我們先做一些模擬資料 我做的這些資料大致滿足y 3x,一共有50個資料點,在最開始的時候初始的引數可能是0.1,y 0.1x顯然是不能模擬這些資料的,學習的過程就是在不斷的調整引數至不斷接近3的過程,當擬合的差不多的時候,我們就有了乙個比較好的模型,假如現在有乙個新的x 20,我們可以大...