機器學習:新手入門概覽(一)

Cup發表於2018-01-10

機器學習:新手入門概覽(一)

定義

百度百科定義

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。 它是人工智慧的核心,是使計算機具有智慧的根本途徑,其應用遍及人工智慧的各個領域,它主要使用歸納、綜合而不是演繹。

分類

通常分為有監督學習(supervised Learning)和無監督學習(unsupervised Learning)。 從 Andrew Ng 與 Geoffrey Hinton 的訪談錄影中,Hinton 提到無監督學習一直是科學家們所追逐的最終目標,但目前困難重重,僅就當前來看,監督學習發展的更為迅速,所湧現的科研成果也更為豐富。

應用領域

最主要的應用領域有:專家系統、認知模擬、規劃和問題求解、資料探勘、網路資訊服務、圖象識別、故障診斷、自然語言理解、機器人和博弈等領域。

其中影象識別屬於計算機視覺(Computer Vision, CV)領域,當前流行的卷積神經網路(Convolutional Nerual Network, CNN)等深度學習演算法並非 CV 領域一直使用的演算法,而是在深度神經網路 AlexNet 等模型表現極為出色之後,才被眾人認可。自此,機器學習在 CV 領域的應用才全面發展起來。

博弈領域的問題以增強學習(Reinforcement Learning, RL)為主要演算法,著名模型為 AlphaGO。其中涉及的演算法有深度神經網路(Deep Neural Network, DNN)(其中包含 CNN 和其它型別的深度神經網路),蒙特卡洛方法,Q-learning等,其中前兩者在有大量資料的情況下表現突出。

自然語言處理(Natural Language Processing, NLP)中包含自動分詞,句法/詞性分析,自然語言生成,機器翻譯等領域,其中迴圈神經網路(Recurrent Neural Network, RNN)在機器翻譯中表現出了強大的能力。

學術

由於近年機器學習發展速度極快,相對於學術期刊,國際學術會議中的各類論文更新更快,因此各類與機器學習相關的會議非常值得關注。

頂級或者高水平會議:
機器學習領域:ICML, NIPS,COLT,ECML
計算機視覺與機器學習混合:CVPR,ICCV,ECCV
機器學習與資料探勘大雜燴:AAAI,IJCAI
主要是資料探勘領域:KDD,SDM,ICDM
其他機器學習領域比較知名的:UAI,AISTATS
其他資料探勘領域比較知名的:CIKM,PKDD
主要是資料庫方向的,部分包含機器學習與資料探勘:SIGMOD,VLDB,ICDE
交叉領域:WWW,SIGIR
頂級或者高水平期刊:
機器學習相關領域:
TPAMI, IJCV,JMLR
資料探勘相關領域:
TKDE,TKDD,TIST,TODS,TOIS,KIS
作者:知乎使用者
連結:https://www.zhihu.com/question/20224890/answer/136485243
來源:知乎

常用模型

這裡提到的只是其中一部分機器學習模型及演算法,主要是監督學習的模型。

線性迴歸 Linear Regression

計算與目標函式的誤差,通過不斷調整引數來減小誤差。通常分為兩個主要函式:

  1. 誤差(損失)函式(loss function):常用的函式為 mse(mean squared error function)
  2. 優化函式(optimizer):包括梯度下降演算法(Gradient Descent),牛頓法,以及衍生出的如 sgd(Stochastic Gradient Descent),Levenberg–Marquardt演算法等等。

而在梯度下降演算法等優化函式中,需要根據具體問題進行超引數(Hyperparameter)的調整,如學習速率(Learning Rate)決定了演算法下降的快慢以及能否找到全域性最優值。這一點在之後的神經網路中有更多相關的演算法與討論,但並沒有可靠的公式可以依賴,多數依靠經驗來做出判斷和調整,這也是機器學習有時被稱為“煉丹”的原因之一。

邏輯迴歸 Logistic Regression

線上性迴歸的基礎上進行改造,總體上架構類似,只是在最後的輸出時加入啟用函式(Activation Function)。在最後的輸出效果上,二項分類中最後輸出的是 1 或 0,表示是否。而多項分類輸出的是一個維度為類別數量 n 的(或 n+1 多出的一個元素在目標不屬於任何類別時為 1)向量,如[0 0 1 0 0]。

  1. 損失函式: 交叉熵損失函式(cross entropy loss function)
  2. 啟用函式: 常用的啟用函式有 sigmoid 函式(用於二項分類),softmax 函式(用於多項分類)。

多項分類有時也稱為 softmax 迴歸

sigmoid 函式影象——引用來源:百度百科

機器學習:新手入門概覽(一)

支援向量機 Support Vector Machine

簡單來講即為將低維度中看起來不可分的樣本,對映至高維度空間之中,然後使得樣本變得可分。而在向高維度的對映過程中,SVM 藉助核函式的特性在對映的同時避免了隨著而來的高計算代價,因而在分類問題中表現良好。
知乎的回答中,很多人的圖例解釋的很清楚。

圖片引用來源:知乎 https://www.zhihu.com/question/21094489

機器學習:新手入門概覽(一)

決策樹 Decision Tree

決策樹(Decision Tree)是在已知各種情況發生概率的基礎上,通過構成決策樹來求取淨現值的期望值大於等於零的概率,評價專案風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。由於這種決策分支畫成圖形很像一棵樹的枝幹,故稱決策樹。——百度百科

其中改進的演算法還有隨機森林(Random Forest) 演算法等,其中隨機森林由多個決策樹組成,依舊是一種預測分類器。

神經網路 Neural Network

機器學習中的神經網路指的實際上是前饋神經網路(Feedforward Neural Network),所謂前饋,是指在模型的運算過程中,後層的神經元只接收前面神經元的輸入資訊,而不會立即給予反饋。神經網路由三個部分組成:輸入層,隱藏層和輸出層。而其中最為複雜多變的是隱藏層,通過隱藏層中不同的連線方式,組成了各類複雜的神經網路。神經網路本身的厲害之處,筆者認為,是特徵的自行提取,隨著網路的一步步深入,所提取的特徵也從低階特徵逐漸變為高階特徵,這也是不少的 CNN 網路可以用來遷移學習的原因之一。

例如,當神經網路識別一隻貓的影象時,低層神經層提取的是貓的顏色、邊沿等低階特徵,往上一層之後,這些特徵會進行組合,變為了三角形、四邊形,再往上,會逐漸變成眉毛、嘴巴等人類可識別的特徵。在真實情況中可能與例子不完全一樣,但性質是類似的。

更多關於神經網路的例子與解釋,還可以參考我的另一篇文章

圖片來源:https://user-gold-cdn.xitu.io/2018/1/10/160e06eadc4d24f8?w=500&h=274&f=png&s=65767

機器學習:新手入門概覽(一)

神經網路的深淺

關於神經網路的層數與深度,據筆者所知,暫時沒有一個較為明確的定義。但一般來講,深度神經網路的隱藏層至少在兩層以上,隨之而來的各種技巧與最初的神經網路也有較大的不同,整體來說,無需糾結於深淺的區分。

神經網路的組成

通常來講,最基本的神經網路的公式中有三個基本引數, a, w 與 b。其中 a 是指的神經元的值, w 為權重(weights), 而 b 是偏置引數(bias)。除了這三個重要引數之外,還有 g 表示啟用函式,所以後一層的值可通過 g(aw + b) 得到。

神經網路的反向傳播演算法

正是反向傳播(Back Propogation, BP)演算法的出現,解決了多層神經網路的隱含層權重等問題。BP 演算法的基本原理為根據計算得出的損失函式(loss function) ,使用優化函式(optimize function)對各個神經元的權重進行調整,進而使得輸出結果擬合最終結果。

神經網路的啟用函式

啟用函式的意義: 常常有人說,沒有啟用函式的神經網路就是個悲劇。是因為神經網路模型本身,在沒有啟用函式時,只能解決線性問題,而對於非線性分類,則是無能為力的。而在加入了啟用函式之後,模型具有了解決非線性問題的能力,能夠處理的問題也大大增多。

常見啟用函式: 有之前提到的sigmoid函式,softmax函式,以及tanh函式,還有著名的 ReLu函式,它的出現大大加快了深度神經網路訓練的速度。還有 RMSprop函式以及 Adam 函式,它們的出現在一定程度上消除了優化過程中演算法來回擺動的問題。之後還有Adam衍生出的其他啟用函式。

啟用函式在神經網路中的表示: 啟用函式本身,在神經網路中也是一層神經層,只不過只是對前面一層的結果套用啟用函式進行處理,然後將結果直接傳入下一層。

相關文章