機器學習算法簡介

歡迎你們前往騰訊雲社區,獲取更多騰訊海量技術實踐乾貨哦~算法

導語: 本文是對機器學習算法的一個概覽,以及我的的學習小結。經過閱讀本文,能夠快速地對機器學習算法有一個比較清晰的瞭解。本文承諾不會出現任何數學公式及推導,適合茶餘飯後輕鬆閱讀,但願能讓讀者比較溫馨地獲取到一點有用的東西。服務器

引言

本文是對機器學習算法的一個概覽,以及我的的學習小結。經過閱讀本文,能夠快速地對機器學習算法有一個比較清晰的瞭解。本文承諾不會出現任何數學公式及推導,適合茶餘飯後輕鬆閱讀,但願能讓讀者比較溫馨地獲取到一點有用的東西。網絡

本文主要分爲三部分,第一部分爲異常檢測算法的介紹,我的感受這類算法對監控類系統是頗有借鑑意義的;第二部分爲機器學習的幾個常見算法簡介;第三部分爲深度學習及強化學習的介紹。最後會有本人的一個小結。機器學習

1 異常檢測算法

異常檢測,顧名思義就是檢測異常的算法,好比網絡質量異常、用戶訪問行爲異常、服務器異常、交換機異常和系統異常等,都是能夠經過異常檢測算法來作監控的,我的認爲這種算法很值得咱們作監控的去借鑑引用,因此我會先單獨介紹這一部分的內容。ide

異常定義爲「容易被孤立的離羣點 (more likely to be separated)」——能夠理解爲分佈稀疏且離密度高的羣體較遠的點。用統計學來解釋,在數據空間裏面,分佈稀疏的區域表示數據發生在此區域的機率很低,於是能夠認爲落在這些區域裏的數據是異常的。函數

圖1-1離羣點表現爲遠離密度高的正常點學習

如圖1-1所示,在藍色圈內的數據屬於該組數據的可能性較高,而越是偏遠的數據,其屬於該組數據的可能性就越低。優化

下面是幾種異常檢測算法的簡介。人工智能

1.1 基於距離的異常檢測算法

圖1-2 基於距離的異常檢測3d

思想:一個點若是身邊沒有多少小夥伴,那麼就能夠認爲這是一個異常點。

步驟:給定一個半徑r,計算以當前點爲中心、半徑爲r的圓內的點的個數與整體個數的比值。若是該比值小於一個閾值,那麼就能夠認爲這是一個異常點。

1.2 基於深度的異常檢測算法

圖1-3 基於深度的異常檢測算法

思想:異常點遠離密度大的羣體,每每處於羣體的最邊緣。

步驟:經過將最外層的點相連,並表示該層爲深度值爲1;而後將次外層的點相連,表示該層深度值爲2,重複以上動做。能夠認爲深度值小於某個數值k的爲異常點,由於它們是距離中心羣體最遠的點。

1.3 基於分佈的異常檢測算法

圖1-4 高斯分佈

思想:當前數據點偏離整體數據平均值3個標準差時,能夠認爲是一個異常點(偏離多少個標準差可視實際狀況調整)。

步驟:計算已有數據的均值及標準差。當新來的數據點偏離均值3個標準差時,視爲異常點。

1.4 基於劃分的異常檢測算法

圖1-5孤立深林

思想:將數據不斷經過某個屬性劃分,異常點一般能很早地被劃分到一邊,也就是被早早地孤立起來。而正常點則因爲羣體衆多,須要更屢次地劃分。

步驟:經過如下方式構造多顆孤立樹:在當前節點隨機挑選數據的一個屬性,並隨機選取屬性的一個值,將當前節點中全部數據劃分到左右兩個葉子節點;若是葉子節點深度較小或者葉子節點中的數據點還不少,則繼續上述的劃分。異常點表現爲在全部孤立樹中會有一個平均很低的樹的深度,如圖1-5中的紅色所示爲深度很低的異常點。

2 機器學習常見算法

簡單介紹機器學習的幾個常見算法:k近鄰、k-means聚類、決策樹、樸素貝葉斯分類器、線性迴歸、邏輯迴歸、隱馬爾可夫模型及支持向量機。遇到講得很差的地方建議直接跳過。

2.1 K近鄰

圖2-1距離最近的3個點裏面有2個點爲紅三角,因此待斷定點應爲紅三角

分類問題。對於待判斷的點,從已有的帶標籤的數據點中找到離它最近的幾個數據點,根據它們的標籤類型,以少數服從多數原則決定待判斷點的類型。

2.2 k-means聚類

圖2-2不斷迭代完成「物以類聚」

k-means聚類的目標是要找到一個分割,使得距離平方和最小。初始化k箇中心點;經過歐式距離或其餘距離計算方式,求取各個數據點離這些中心點的距離,將最靠近某個中心點的數據點標識爲同一類,而後再從標識爲同一類的數據點中求出新的中心點替代以前的中心點,重複上述計算過程,直到中心點位置收斂再也不變更。

2.3 決策樹

圖2-3 經過決策樹判斷今天是否適合打球

決策樹的表現形式和if-else相似,只是在經過數據生成決策樹的時候,須要用到信息增益去決定最早使用那個屬性去作劃分。決策樹的好處是表現力強,容易讓人理解結論是如何獲得的。

2.4 樸素貝葉斯分類器

樸素貝葉斯法師基於貝葉斯定理與特徵條件獨立性假設的分類方法。由訓練數據學習聯合機率分佈,而後求得後驗機率分佈。(抱歉,沒圖,又不貼公式,就這樣吧-_-)

2.5 線性迴歸

圖2-4 擬一條直線,與全部數據點實際值之差的和最小

就是對函數f(x)=ax+b,經過代入已有數據(x,y),找到最合適的參數a和b,使函數最能表達已有數據輸入和輸出之間的映射關係,從而預測將來輸入對應的輸出。

2.6 邏輯迴歸

圖2-5 邏輯函數

邏輯迴歸模型其實只是在上述的線性迴歸的基礎上,套用了一個邏輯函數,將線性迴歸的輸出經過邏輯函數轉化成0到1之間的數值,便於表示屬於某一類的機率。

2.7 隱馬爾科夫模型

圖2-6 隱藏狀態x之間的轉移機率以及狀態x的觀測爲y的機率圖

隱馬爾科夫模型是關於時序的機率模型,描述由一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態的序列,再由各個狀態隨機生成一個觀測而產生觀測的序列的過程。隱馬爾科夫模型有三要素和三個基本問題,有興趣的能夠單獨去了解。最近看了一篇有意思的論文,其中使用了隱馬爾可夫模型去預測美國研究生會在哪一個階段轉專業,以此作出對策挽留某專業的學生。公司的人力資源會不會也是經過這個模型來預測員工會在哪一個階段會跳槽,從而提早實施挽留員工的必要措施?(^_^)

2.8 支持向量

圖2-7支持向量對最大間隔的支持

支持向量機是一種二分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器。如圖2-7所示,因爲支持向量在肯定分離超平面中起着關鍵性的做用,因此將這種分類模型稱爲支持向量機。

對於輸入空間中的非線性分類問題,能夠經過非線性變換(核函數)將它轉換爲某個高維特徵空間中的線性分類問題,在高維特徵空間中學習線性支持向量機。如圖2-8所示,訓練點被映射到能夠容易地找到分離超平面的三維空間。

圖2-8將二維線性不可分轉換爲三維線性可分

3 深度學習簡介

這裏將簡單介紹神經網絡的由來。介紹順序爲:感知機、多層感知機(神經網絡)、卷積神經網絡及循環神經網絡。

3.1 感知機

圖3-1輸入向量經過加權求和後代入激活函數中求取結果

神經網絡起源於上世紀5、六十年代,當時叫感知機,擁有輸入層、輸出層和一個隱含層。它的缺點是沒法表現稍微複雜一些的函數,因此就有了如下要介紹的多層感知機。

3.2 多層感知機

圖3-2多層感知機,表現爲輸入與輸出間具備多個的隱含層

在感知機的基礎上,添加了多個隱含層,以知足能表現更復雜的函數的能力,其稱之爲多層感知機。爲了逼格,取名爲神經網絡。神經網絡的層數越多,表現能力越強,可是隨之而來的是會致使BP反向傳播時的梯度消失現象。

3.3 卷積神經網絡

圖3-3卷積神經網絡的通常形式

全鏈接的神經網絡因爲中間隱含層多,致使參數數量膨脹,而且全鏈接方式沒有利用到局部模式(例如圖片裏面臨近的像素是有關聯的,可構成像眼睛這樣更抽象的特徵),因此出現了卷積神經網絡。卷積神經網絡限制了參數個數而且挖掘了局部結構這個特色,特別適用於圖像識別。

3.4 循環神經網絡

圖3-4 循環神經網絡能夠當作一個在時間上傳遞的神經網絡

循環神經網絡能夠當作一個在時間上傳遞的神經網絡,它的深度是時間的長度,神經元的輸出能夠做用於下一個樣本的處理。普通的全鏈接神經網絡和卷積神經網絡對樣本的處理是獨立的,而循環神經網絡則能夠應對須要學習有時間順序的樣本的任務,好比像天然語言處理和語言識別等。

4 我的小結

機器學習實際上是學習從輸入到輸出的映射:

即但願經過大量的數據把數據中的規律給找出來。(在無監督學習中,主要任務是找到數據自己的規律而不是映射)

總結通常的機器學習作法是:根據算法的適用場景,挑選適合的算法模型,肯定目標函數,選擇合適的優化算法,經過迭代逼近最優值,從而肯定模型的參數。

關於將來的展望,有人說強化學習纔是真正的人工智能的但願,但願能進一步學習強化學習,而且要再加深對深度學習的理解,才能夠讀懂深度強化學習的文章。

最後最後,因爲本人也只是抽空自學了幾個月的小白,因此文中有錯誤的地方,但願海涵和指正,我會當即修改,但願不會誤導到別人。

參考文獻

【1】 李航. 統計學習方法[J]. 清華大學出版社, 北京, 2012.

【2】 Kriegel H P, Kröger P, Zimek A. Outlier detection techniques[J]. Tutorial at KDD, 2010.

【3】 Liu F T, Ting K M, Zhou Z H. Isolation forest[C]//Data Mining, 2008. ICDM'08. Eighth IEEE International Conference on. IEEE, 2008: 413-422.

【4】 Aulck L, Aras R, Li L, et al. Stem-ming the Tide: Predicting STEM attrition using student transcript data[J]. arXiv preprint arXiv:1708.09344, 2017.

【5】 李宏毅.deep learning tutorial. http://speech.ee.ntu.edu.tw/~tlkagk/slide/Deep%20Learning%20Tutorial%20Complete%20(v3)

【6】 科研君.卷積神經網絡、循環神經網絡、深度神經網絡的內部結構區別. https://www.zhihu.com/question/34681168

相關閱讀

網頁加速特技之 AMP

表格行與列邊框樣式處理的原理分析及實戰應用

「騰訊雲遊戲開發者技術沙龍」11月24 日深圳站報名開啓 暢談遊戲加速

 

此文已由做者受權騰訊雲技術社區發佈,轉載請註明原文出處

原文連接:https://cloud.tencent.com/community/article/570843?utm_source=bky

海量技術實踐經驗,盡在騰訊雲社區

相關文章
相關標籤/搜索