1. 程式人生 > >機器學習基礎概念(一)

機器學習基礎概念(一)

“無監督學習”是指人們在獲得訓練的向量資料後在沒有標籤的情況下嘗試找出其內部蘊含關係的一種挖 掘工作,這個過程中使用者除了可能要設定一些必要的超引數( hyper-parameter)以外,不 用對這些樣本做任何的標記甚至是過程干預;

“有監督學習”與此不同,每一個樣本都有著 明確的標籤,最後我們只是要總結出這些訓練樣本向量與標籤的對映關係。

 

所以這在這兩 種方式下,處理的邏輯有很大的區別,初學的朋友需要格外注意。

 

聚類( clustering)是一種典型的“無監督學習”,是把物理物件或抽象物件的集合分組 為由彼此類似的物件組成的多個類的分析過程。

 

較常用的聚類演算法有 K -means、DBSCAN等幾種,基本的思路就是利用每個向量之間的“距離”一一空間中的歐氏距離或者曼哈頓距離,從遠近判斷是否從屬於同一類別。

 

迴歸是一種解題方法,或者說“學習”方法。

簡單說就是“由果索因” 的過程,是一種歸納的思想一一當我看到大量的事實所呈現的樣態,我推斷出原因或客觀 蘊含的關係是如何的;當我看到大量的觀測而來的向量(數字)是某種樣態,我設計一種假 說來描述它們之間蘊含的關係是如何的。

,最常用的迴歸有兩大類一一一類是線性迴歸,一類是非線性迴歸。

所謂線性迴歸,就是在觀察和歸納樣本的過程中認為向量和最終的函式值呈現線性的 關係。 而後設計這種關係為:

y=J(x)=wx+b

這裡的 w 和 x 分別是 1 × n 和 n × 1 的矩陣, wx 則指的是這兩個矩陣的內積。

 

 

非線性迴歸類中,在機器學習領域應用最多的當屬邏輯迴歸。邏輯迴歸看上去更像分類。 在這種模型中觀察者假設的前提是y 只有兩種值: 一種是 l , 一種 是 0,或者說“是”或“否”的這種判斷。

 

 

分類的訓練過程和迴歸的訓練過程一樣,都是極為套路化的程式。

第一,輸入樣本和分類標籤。

第二,建立對映假說的某個y=f{x) 的模型。

第三,求解出全域性的損失函式 Loss 和待定係數 w 的對映關係, Loss=g(w)。

第四,通過迭代優化逐步降低 Loss,最終找到一個 w 能使召回率和精確率滿足當前場 景需要。

注意,這裡尤其指在驗證資料集上的表現。

 

 

生成對抗網路( Generative Adversarial Network),這種網路的特點就是可以進行復雜內容的生成,而非生成一個標籤這麼簡單。

 

 

激勵函式( activation function) -一也有翻譯成啟用函式的,也是神經元中重要的組成部 分。 激勵函式在一個神經元當中跟隨在j{x)=附+b 函式之後,用來加入一些非線性的因素。

 

Sigmoid 函式 它的定義是這樣的:

 

Sigmoid 函式是一種較早出現的激勵函式,把激勵值最終投射到了。和 1 兩個值上。 通 過這種方式引入了非線性因素。 其中的“1”表示完全啟用的狀態,“0”表示完全不啟用的狀態,其他各種輸出值就介於兩者之間,表示其啟用程度不同。

 

Tanh 函式 在後面學習迴圈神經網路 RNN ( recurrent neural networks)的時候我們就會接觸到了。

.ReLU 函式 (修正線性單元)

ReLU 函式是目前大部分卷積神經網路 CNN ( convolutional neural networks)中喜歡使 用的激勵函式,它的全名是 rectified linear units。

Linear 函式

Linear 激勵函式在實際應用中並不太多,原因剛剛已經做過簡單的解釋了。 那就是如 果網路中前面的線性層引人的是線性關係,後面的激勵層還是線性關係,那麼就會讓網路 沒辦法很好地擬合非線性特性的關係,從而發生嚴重的欠擬合現象。

神經網路

 

一個神經網路中通常會分這樣幾層:輸入層( input layer)、隱藏層( hidden layer,也叫隱含 層)、輸出層(output layer)。

 

輸入層在整個網路的最前端部分,直接接受輸入的向量,它是不對資料做任何處理的, 所以通常這一層是不計人層數的。

隱藏層可以有一層或多層,現在比較深的網路據我所知有超過 50 層的,甚至在一些“特殊”的網路一一例如深度殘差網路中有超過 150 層的!這已經非常多了,在本書所涉及 的實驗中是沒有這麼多層的神經網路出現的。

輸出層是最後一層,用來輸出整個網路處理的值,這個值可能是一個分類向量值,也 可能是一個類似線性迴歸那樣產生的連續的值,也可能是別的複雜型別的值或者向量,根 據不同的需求輸出層的構造也不盡相同,後面我們會逐步接觸到。