機器學習概念、步驟、分類和實踐

2021-02-14 智能計算芯世界


近年來人工智慧和大數據的迅速發展正在深刻改變著這個世界和我們的生活方式。人工智慧的核心是機器學習(Machine Learning) 算法,自 2006 年以來,在機器學習領域,以深度學習(Deep Lerning) 為代表的機器學習算法取得了突破性的進展,在2017年AlphaGo大戰圍棋冠軍李世石後這一技術加速走向市場、落地應用。而SSD作為大數據的一種存儲介質,正在取代HDD成為主流的存儲設備。那麼當機器學習遇上SSD,會擦出怎樣的火花呢?

一、什麼是機器學習?

機器學習是讓計算機具有學習的能力,無需進行明確編程。—— 亞瑟·薩繆爾,1959

電腦程式利用經驗 E 學習任務 T,性能是 P,如果針對任務 T 的性能 P 隨著經驗 E 不斷增長,則稱為機器學習。—— 湯姆·米切爾,1997

機器學習是一類算法的總稱,這些算法從大量歷史數據中挖掘出其中隱含的規律,並用於預測或者分類,更具體的說,機器學習可以看作是尋找一個函數,輸入是樣本數據,輸出是期望的結果,只是這個函數過於複雜,以至於不太方便形式化表達。需要注意的是,機器學習的目標是使學到的函數很好地適用於「新樣本」,而不僅僅是在訓練樣本上表現很好。學到的函數適用於新樣本的能力,稱為泛化(Generalization)能力。

二、機器學習步驟

通常學習一個好的函數,分為以下三步:

1、選擇一個合適的模型,這通常需要依據實際問題而定,針對不同的問題和任務需要選取恰當的模型,模型就是一組函數的集合。 

2、判斷一個函數的好壞,這需要確定一個衡量標準,也就是我們通常說的損失函數(Loss Function),損失函數的確定也需要依據具體問題而定,如回歸問題一般採用歐式距離,分類問題一般採用交叉熵代價函數。 

3、找出「最好」的函數,如何從眾多函數中最快的找出「最好」的那一個,這一步是最大的難點,做到又快又準往往不是一件容易的事情。常用的方法有梯度下降算法,最小二乘法等和其他一些技巧(tricks)。 

學習得到「最好」的函數後,需要在新樣本上進行測試,只有在新樣本上表現很好,才算是一個「好」的函數。 

三、機器學習的類型

機器學習主要有三種基本類型:監督學習、非監督學習和強化學習。

1監督學習


監督學習是使用已知正確答案的示例來訓練模型。已知數據和其一一對應的標籤,訓練一個智能算法,將輸入數據映射到標籤的過程,它的常見應用場景如分類問題和回歸問題。常見的算法有K近鄰算法、線性回歸、邏輯回歸、支持向量機(SVM)、決策樹和隨機森林、神經網絡。

分類

在分類中,機器被訓練成將一個組劃分為特定的類。分類的一個簡單例子是電子郵件帳戶上的垃圾郵件過濾器。過濾器分析你以前標記為垃圾郵件的電子郵件,並將它們與新郵件進行比較。如果它們匹配一定的百分比,這些新郵件將被標記為垃圾郵件並發送到適當的文件夾。那些比較不相似的電子郵件被歸類為正常郵件並發送到你的郵箱。

也許你會問這個分類算法對於SSD有什麼用呢?SSD中的一個典型的分類問題是IO模式識別,判斷IO是純讀、純寫或者混合讀寫的,這是一個三分類的問題;判斷IO是順序的還是隨機的,這是一個二分類的問題。可以根據實際情況選擇相應的相應的機器學習分類算法識別出不同的IO模式,然後針對不同的模式FTL就可採取不同策略,進而提升SSD的性能。

回歸

回歸問題通常是用來預測一個值,它的預測結果是連續的,如預測房價、未來的天氣情況等,例如一個產品的實際價格為500元,通過回歸分析預測值為499元,我們認為這是一個比較好的回歸分析。

回歸算法在SSD中能用在什麼地方呢?回歸算法在SSD的一個應用是IO強度預測,在一定模式下IO強度在時序上是有一定規律的,可以根據前一段時間的IO強度預測下一段時間的IO強度,Smart-IO技術採用長短期記憶人工神經網絡LSTM對IO強度進行預測。提前預測出IO強度後就可優化FTL策略、合理分配GC佔用資源、合理調度、提高數據命中率等,進而提升SSD性能。

 2非監督學習


在無監督學習中,數據是無標籤的。學習模型是為了推斷出數據的一些內在結構。無監督學習主要分為聚類和降維。

聚類用於根據屬性和行為對象進行分組。這與分類不同,因為這些組不是你提供的。聚類的一個例子是將一個組劃分成不同的子組(例如,基於年齡和婚姻狀況),然後應用到有針對性的營銷方案中。大多數大數據可視化使用降維來識別趨勢和規則。主要算法: K-means、層次聚類分析(HCA)、DBSCAN。

高維數據中很容易出現樣本稀疏、距離計算困難等問題,即「維度災難」,為了緩解維度災難,常用的就是降維。降維的主要方法有主成分分析(PCA)、線性判別分析(LDA)、局部線性嵌入(LLE)。如圖所示,通過PCA的方法可以把一個三位的數據降維成一個二維數據。

無監督學習由於沒有標籤,相比監督學習來說相當於少了一些輸入信息,實際應用中相對監督學習學習會困難一些,那麼在SSD是否就無用武之地了呢?非也非也。Smart-IO數據分組技術用K-means算法對IO進行冷熱數據分組,然後把不同組的數據寫到不同的block或者die上,那麼就可以減小,可減小WA,延長SSD使用壽命。

 3 強化學習


強化學習算法的思路非常簡單,以遊戲為例,如果在遊戲中採取某種策略可以取得較高的得分,那麼就進一步「強化」這種策略,以期繼續取得較好的結果。這種策略與日常生活中的各種「績效獎勵」非常類似。我們平時也常常用這樣的策略來提高自己的遊戲水平。AlphaGo下圍棋也是這個原理,只告訴機器圍棋的基本規則,但是不告訴它人類摸索了上千年才總結出來的定式等圍棋戰術,讓機器完全依靠自學,打敗人類。

 強化學習感覺和SSD很難沾上邊,不過熟悉SSD(固態硬碟)的人都知道,垃圾回收(GC,Garbage Collection)是SSD固件設計中的重要一環,也是影響SSD主控性能的重要因素。一般的GC機制都是只根據當前硬碟空閒空間狀態來做GC的:當有空閒空間的時,不啟動GC;反之,當沒有空閒空間的情況下,執行GC任務。這種策略的缺點是如果在用戶操作的時候進行GC會造成SSD性能明顯下降,可以在主控空閒時提前進行GC,但是GC過於頻繁會造成WA寫放大過大,所以需要一個平衡,需要一種算法來自動確定何時GC,強化學習正好可以排上用場,給定一定的衡量標準,然後讓機器通過強化學習的方法訓練來自動學習GC的時機,得到更優的GC的策略。

四、 DapuStor機器學習技術

 DapuStor已基於SSD開發出Smart-IO Data Grouping和Smart-IO Intensities Prediction等先進技術,把機器學習的先進算法用到了SSD中,提升了SSD的產品性能。同時自研的帶有計算和智能的數據存儲處理器晶片(簡稱DPU),可以在晶片層面實現更多的智能功能和硬體加速,實現存算一體,滿足高端存儲和邊緣計算市場的需求。

[1]Dongyang Li, Yan Wang, Bin Xu , Wenjiang Li, Weijun Li, Lina Yu3, Qing Yang ,PIPULS: Predicting I/O Patterns Using LSTM in Storage Systems, 2019 International Conference on High Performance Big Data and Intelligent Systems (HPBD&IS)[2]Wonkyung kang,dongkun shin,sungjoo yoo,Reinforcement Learning-Assisted Garbage Collection to Mitigate Long-Tail Latency in SSD, ACM Transactions on Embedded Computing Systems, Vol. 16, No. 5s, Article 134. Publication date: September 2017[3]http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML19.html[4]https://blog.csdn.net/hohaizx/article/details/80584307[5]https://blog.csdn.net/qq_28168421/article/details/81351321[6]https://www.toutiao.com/a6656380484144071179/


<伺服器基礎知識全解(終極版)>,內容無死角全面覆蓋,知識點深度講解,提供182頁完整版付費下載。


獲取方式:點擊「閱讀原文」即可查看詳情,提供PPT可編輯版本和PDF閱讀版本。

溫馨提示:

請搜索「AI_Architect」或「掃碼」關注公眾號實時掌握深度技術分享,點擊「閱讀原文」獲取更多精彩技術乾貨。


相關焦點

  • 概念解析:深入理解人工智慧和機器學習
    【導讀】本文是數據科學家Vijay Yadav的一篇帖子,主要內容是介紹機器學習和人工智慧的概念。
  • 機器學習實踐指南
    編譯自 | https://medium.freecodecamp.org/how-machines-learn-a-practical-guide-203aae23cafb  作者 | Karlijn Willems 譯者 | Flowsnow你可能在各種應用中聽說過機器學習machine learning(ML),比如垃圾郵件過濾、光學字符識別(OCR)和計算機視覺。
  • 機器學習分類和應用
    其中:圖1-8 機器學習的從經驗中學習示意圖在上圖中顯示,機器(計算機系統)本身包含兩個主要組件:學習機和推理機(learner and  reasoner)。藉助於輸入和背景知識,學習機可以生成模型。該模型包含從輸入和背景知識中學習到的信息。現在,將任務/問題(problem/task)(例如預測、分類等)提供給推理機。
  • 如何通過7個簡單步驟掌握Python的機器學習
    機器學習是當下的熱門詞彙之一,近年來正經歷著它的擴展和普及。但是目前市場上缺乏熟練的機器學習專業人員,這是開始機器學習領域職業生涯的大好時機。Python被認為是所有機器學習開發語言列表中的第一名。本文旨在通過7個步驟為您介紹如何開始使用Python進行機器學習。步驟1.
  • 算法應用|機器學習python應用,簡單機器學習項目實踐
    上一篇文章中介紹了機器學習的簡單知識,還有python中進行機器學習實踐需要的生態環境,接下來將會通過鳶尾花分類這個例子對機器學習做一個簡要的介紹。通過一步一步地實現這個項目來介紹以下內容。導入和使用python中機器學習的各個方面的類庫。
  • 機器學習流程,以及實踐應用
    編輯導語: 機器學習是一種數據分析技術,讓計算機執行人和動物與生俱來的活動:從經驗中學習,也被稱為預測分析;本文作者分享了關於機器學習的流程以及實踐應用,我們一起來看一下。
  • 機器學習基礎圖表:概念、原理、歷史、趨勢和算法
    四大會計師事務所之一的普華永道(PwC)發布了多份解讀機器學習基礎的圖表,其中介紹了機器學習的基本概念、原理、歷史、未來趨勢和一些常見的算法。為便於讀者閱讀,機器之心對這些圖表進行了編譯和拆分,分三大部分對這些內容進行了呈現,希望能幫助你進一步擴展閱讀。
  • 歐空局2018機器學習系列課程發布:從概念到實踐(視頻+PPT)
    嶽排槐 發自 凹非寺量子位 出品 | 公眾號 QbitAI今年,歐洲空間局(ESA)在歐洲空間控制中心(ESOC)舉辦了一次為期六講的機器學習課程。這個系列課程,主要定位於基本概念級別的講授,而且不會在數學方面太過深入,更多是的案例介紹。
  • 十個人工智慧的機器學習面試問題和答案
    他們釋放的創新,機遇和威脅與眾不同。隨著它們的增長,對這些領域的專家的需求也在增長。根據最新行業報告的調查結果,機器學習,人工智慧和數據科學等新興技術的工作在新興工作中名列前茅。機器學習,人工智慧或數據科學等新興技術的職業生涯可以獲得高額利潤,也可以獲得智力刺激。
  • 機器學習自動文本分類
    網頁、電子郵件、科學期刊、電子書、學習內容、新聞和社交媒體都充滿了文本數據。我們想要快速創建、分析和報告信息,自動文本分類也就應運而生了。更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)文本分類是對文本進行智能分類。使用機器學習來實現這些任務的自動化,使整個過程更加快速高效。人工智慧和機器學習可以說是近來最受益的技術。
  • 如何通過7個步驟構建機器學習模型
    精度和混淆矩陣值可接受的參數是什麼?對模型的預期輸入和預期輸出是什麼?要解決的問題的特徵是什麼?這是分類、回歸還是聚類問題?什麼是「啟發式」:解決不需要機器學習的問題的快速方法?模型需要比啟發式方法好多少?
  • 機器學習丨機器學習中最常見的四種分類模型
    舉一個簡單易懂的例子:將電子郵件分類為「 垃圾郵件 」或「 非垃圾郵件」(二分類的典型特徵「非此即彼」,關於二分類,後文會涉及)。你可能會在機器學習中遇到許多不同類型的分類任務,但是其實每種模型都會使用與之相對應的建模方法。因此在本文中,你將了解到機器學習中不同類型的分類預測建模方法。
  • ...分類與聚類:三大方向剖解機器學習算法的優缺點(附Python和R實現)
    對機器學習算法進行分類不是一件容易的事情,總的來看,有如下幾種方式:生成與判別、參數與非參數、監督與非監督等等。然而,就實踐經驗來看,這些都不是實戰過程中最有效的分類算法的方式。因為對於應用機器學習而言,開發者一般會在腦海中有一個最終目標,比如預測一個結果或是對你的觀察進行分類。因此,我們想介紹另一種對算法進行分類的路數,其基於機器學習任務來分類。
  • 模式識別:人類和機器學習的基礎
    人類和動物藉助感官進行學習。學習有助於識別和分辨我們周圍的模式。模式識別的過程包括將接收到的信息與大腦中已經儲存的信息進行匹配。把記憶和感知到的信息聯繫起來是模式識別的一個名為識別的步驟。模式識別需要重複經驗。迄今為止,所有發現和發明都是人類模式識別技能的結果。人類傾向於在各處看到模式。當進行比較,判斷和獲取知識時,它們很重要。尋找模式非常重要。
  • 精算改革:基於編程實踐、機器學習的思考
    機器學習可以通過模型的改造升級,跳出到費歇爾推斷統計體系之外來研究精算問題,以犧牲可解釋性獲得顯著的預測精度提升。本文作者對外經貿大學保險學院副院長謝遠濤教授,由淺入深,從北美精算師協會、英國精算師協會實施以編程實踐、機器學習為內容的新一輪改革談起,引出如何在統計精算與機器學習中取捨,如何在代碼編程與輕代碼、無代碼編程中取捨,如何實施基於編程實踐、機器學習的精算教學等方面的思考和探討。
  • 預測建模、監督機器學習和模式分類概覽
    模式分類(pattern classification)和機器學習(machine learning)是非常熱的話題,幾乎在所有的現代應用程式中都得到了應用:例如郵局中的光學字符識別(OCR),電子郵件過濾,超市條形碼掃描,等等。在這篇文章中,我會簡要描述一個典型的監督學習任務的主要概念,這些概念將作為將來的文章和實現各種學習算法的基礎。
  • 機器學習課程教與學(教學大綱和教案)
    本課程的教學目的是使學生理解機器學習的基本問題和基本算法,掌握它們的實踐方法,為學生今後從事相關領域的研究工作或項目開發工作奠定堅實的基礎。 二、教學要求總體上,本課程的教學應本著理論與實踐相結合的原則,深入淺出,突出重點,在重視基礎理論的同時,注意培養學生獨立思考和動手能力。在內容設計上,應以示例入手,逐步推進,詳盡剖析算法思想與基本原理。在實施方法上,應採取啟發式教學方法,在簡要介紹算法思想和流程的基礎上,引導學生自行運行並分析實現代碼。
  • 機器學習之KNN分類算法介紹: Stata和R同步實現(附數據和代碼)
    ,2前沿: 機器學習在金融和能源經濟領域的應用分類總結,3文本分析的步驟, 工具, 途徑和可視化如何做?4文本大數據分析在經濟學和金融學中的應用, 最全文獻綜述,5最全: 深度學習在經濟金融管理領域的應用現狀匯總與前沿瞻望, 中青年學者不能不關注!
  • 《Python機器學習實踐指南》高清PDF
    本書適合Python 程式設計師、數據分析人員、對算法感興趣的讀者、機器學習領域的從業人員及科研人員閱讀。機器學習是近年來漸趨熱門的一個領域,同時Python 語言經過一段時間的發展也已逐漸成為主流的程式語言之一。本書結合了機器學習和Python 語言兩個熱門的領域,通過利用兩種核心的機器學習算法來將Python 語言在數據分析方面的優勢發揮到極致。
  • 從理論概念到庫函數語法:機器學習速查表全集
    首先第一張圖描述了機器學習的主要分類和算法。雖然有幾個表情沒看懂,但我們發現這些表情還是挺有意思的。如下圖所示,機器學習可分為監督學習、無監督學習和強化學習。接下來主要是回歸方法、分類方法、聚類方法、降維方法和其他一些重要的特徵。我們還可以看看具體算法的表情,隨機森林是四棵不同的樹我們能懂,但為什麼支持向量機是一隻獨角獸?