作者:探碼科技, 原文鏈接: http://nbbskj.com/learning/311
? ? ? 從廣義上來說,機器學習是一種能夠賦予機器學習的能力以此讓它完成直接編程無法完成的功能的方法,即計算機利用已有的數據,得出某種模型,并利用此模型預測未來的一種方法。從實踐的意義上來說,機器學習是一種通過利用數據,訓練出模型,然后使用模型預測的一種方法。
? ? ? 人類在成長、生活過程中積累了很多的歷史與經驗。人類定期地對這些經驗進行“歸納”,獲得了生活的“規律”。當人類遇到未知的問題或者需要對未來進行“推測”的時候,人類使用這些“規律”,對未知問題與未來進行“推測”,從而指導自己的生活和工作。
? ? ? ? ? ?
? ? ? 機器學習中的“訓練”與“預測”過程可以對應到人類的“歸納”和“推測”過程。通過這樣的對應,我們可以發現,機器學習的思想并不復雜,僅僅是對人類在生活中學習成長的一個模擬。由于機器學習不是基于編程形成的結果,因此它的處理過程不是因果的邏輯,而是通過歸納思想得出的相關性結論。
? ? ? 機器學習的一個主要目的就是把人類思考歸納經驗的過程轉化為計算機通過對數據的處理計算得出模型的過程。經過計算機得出的模型能夠以近似于人的方式解決很多靈活復雜的問題。
? ? ? ? ? ? ?
?
三、機器學習的范圍
? ? ? 模式識別=機器學習。兩者的主要區別在于前者是從工業界發展起來的概念,后者則主要源自計算機學科。
? ? ? 數據挖掘=機器學習+數據庫。近幾年數據挖掘的概念幾乎等同于炒作。只要說到數據挖掘,都會吹噓數據挖掘如何如何,什么從數據中挖出金子,以及將廢棄的數據轉化為價值等等。但是,盡管可能會挖出金子,但也可能挖的是“石頭”。意思是說數據挖掘僅僅是一種思考方式,告訴我們應該嘗試從數據中挖掘出知識,但不是每個數據都能挖掘出金子的。一個系統絕對不會因為上了一個數據挖掘模塊就變得無所不能,恰恰相反,一個擁有數據挖掘思維的人員才是關鍵,而且他還必須對數據有深刻的認識,這樣才可能從數據中導出模式指引業務的改善。大部分數據挖掘中的算法是機器學習的算法在數據庫中的優化。
? ? ? 統計學習近似等于機器學習。統計學習是個與機器學習高度重疊的學科。因為機器學習中的大多數方法來自統計學,甚至可以認為,統計學的發展促進機器學習的繁榮昌盛。例如著名的支持向量機算法,就是源自統計學科。但是在某種程度上兩者是有分別的:統計學習者重點關注的是統計模型的發展與優化,偏數學;而機器學習者更關注的是能夠解決問題,偏實踐,因此機器學習研究者會重點研究學習算法在計算機上執行的效率與準確性的提升。
? ? ? 計算機視覺=圖像處理+機器學習。圖像處理技術用于將圖像處理為適合進入機器學習模型中的輸入,機器學習則負責從圖像中識別出相關的模式。計算機視覺相關的應用非常的多,例如百度識圖、手寫字符識別、車牌識別等等。隨著機器學習的新領域深度學習的發展,大大促進了計算機圖像識別的效果,因此未來計算機視覺界的發展前景也是不可估量的。
? ? ? 語音識別=語音處理+機器學習。語音識別就是音頻處理技術與機器學習的結合。語音識別技術一般不會單獨使用,一般會結合自然語言處理的相關技術。比如蘋果的語音助手siri等。
? ? ? 自然語言處理=文本處理+機器學習。自然語言處理技術主要是讓機器理解人類的語言的一門領域。在自然語言處理技術中,大量使用了編譯原理相關的技術,例如詞法分析,語法分析等等。除此之外,在理解這個層面,則使用了語義理解,機器學習等技術。
以上可以看出機器學習在眾多領域的外延和應用。機器學習技術的發展促使了很多智能領域的進步,改善著我們的生活。
? ? ? ? ? ? ??
? ? ? 大部分機器學習課程中,回歸算法都是被介紹的第一個算法。原因一是因為回歸算法比較簡單,介紹它可以讓人平滑地從統計學遷移到機器學習中。二是回歸算法是后面若干強大算法的基石,如果不理解回歸算法,無法學習那些強大的算法。
? ? ? 此外回歸算法有兩個重要的子類:線性回歸和邏輯回歸。
? ? ? 線性回歸當中會涉及到求解問題,一般使用“最小二乘法”來求解。最小二乘法將最優問題轉化為求函數極值問題。函數極值在數學上我們一般會采用求導數為0的方法。但這種做法并不適合計算機,可能求解不出來,也可能計算量太大。
? ? ? 而在計算機科學界專門有一個學科叫“數值計算”,專門用來提升計算機進行各類計算時的準確性和效率問題。例如,著名的“梯度下降”以及“牛頓法”就是數值計算中的經典算法,也非常適合來處理求解函數極值的問題。
? ? ? 邏輯回歸是一種與線性回歸非常類似的算法,但是,從本質上講,線型回歸處理的問題類型與邏輯回歸不一致。線性回歸處理的是數值問題,也就是最后預測出的結果是數字。而邏輯回歸屬于分類算法,也就是說,邏輯回歸預測結果是離散的分類。?
? ? ? 神經網絡的誕生起源于對大腦工作機理的研究。早期生物界學者們使用神經網絡來模擬大腦。機器學習的學者們使用神經網絡進行機器學習的實驗,發現在視覺與語音的識別上效果甚好。
? ? ? 具體說來,神經網絡的學習機理就是分解與整合。
? ? ? ? ??
? ? ? 讓我們看一個簡單的神經網絡的邏輯架構。在這個網絡中,分成輸入層,隱藏層,和輸出層。輸入層負責接收信號,隱藏層負責對數據的分解與處理,最后的結果被整合到輸出層。每層中的一個圓代表一個處理單元,可以認為是模擬了一個神經元,若干個處理單元組成了一個層,若干個層再組成了一個網絡,也就是”神經網絡”。
? ? ? 神經網絡在圖像識別領域的一個著名應用,這個程序叫做LeNet,是一個基于多個隱層構建的神經網絡。
? ? ? 進入90年代,神經網絡的發展進入了一個瓶頸期。其主要原因是盡管有BP算法的加速,神經網絡的訓練過程仍然很困難。因此90年代后期支持向量機(SVM)算法取代了神經網絡的地位。
? ? ? 支持向量機算法的核心步驟中,有一步證明,即將數據從低維映射到高維不會帶來最后計算復雜性的提升。于是,通過支持向量機算法,既可以保持計算效率,又可以獲得非常好的分類效果。因此支持向量機在90年代后期一直占據著機器學習中最核心的地位,基本取代了神經網絡算法。直到現在神經網絡借著深度學習重新興起,兩者之間才又發生了微妙的平衡轉變。
? ? ? 前面的算法中的一個顯著特征就是訓練數據中包含了標簽,訓練出的模型可以對其他未知數據預測標簽。在下面的算法中,訓練數據都是不含標簽的,而算法的目的則是通過訓練,推測出這些數據的標簽。這類算法有一個統稱,即無監督算法(前面有標簽的數據的算法則是有監督算法)。無監督算法中最典型的代表就是聚類算法。
聚類算法中最典型的代表就是K-Means算法。
? ? ? 降維算法也是一種無監督學習算法,其主要特征是將數據從高維降低到低維層次。在這里,維度其實表示的是數據的特征量的大小。
降維算法的主要作用是壓縮數據與提升機器學習其他算法的效率。通過降維算法,可以將具有幾千個特征的數據壓縮至若干個特征。另外,降維算法的另一個好處是數據的可視化,例如將5維的數據壓縮至2維,然后可以用二維平面來可視。
降維算法的主要代表是PCA算法(即主成分分析算法)。
? ? ? ? ? ?
? ? ? 推薦算法是目前業界非常火的一種算法,在電商界,如亞馬遜,天貓,京東等得到了廣泛的運用。推薦算法的主要特征就是可以自動向用戶推薦他們最感興趣的東西,從而增加購買率,提升效益。推薦算法有兩個主要的類別:
? ? ? 一類是基于物品內容的推薦,是將與用戶購買的內容近似的物品推薦給用戶,這樣的前提是每個物品都得有若干個標簽,因此才可以找出與用戶購買物品類似的物品,這樣推薦的好處是關聯程度較大,但是由于每個物品都需要貼標簽,因此工作量較大。
? ? ? 另一類是基于用戶相似度的推薦,則是將與目標用戶興趣相同的其他用戶購買的東西推薦給目標用戶,例如小A歷史上買了物品B和C,經過算法分析,發現另一個與小A近似的用戶小D購買了物品E,于是將物品E推薦給小A。
兩類推薦都有各自的優缺點,在一般的電商應用中,一般是兩類混合使用。推薦算法中最有名的算法就是協同過濾算法。
? ? ? 在機器學習界還有其他的算法,如高斯判別,樸素貝葉斯,決策樹等等算法。但是上面列的六個算法是使用最多,影響最廣,種類最全的典型。
? ? ? 監督學習算法:
? ? ? 線性回歸,邏輯回歸,神經網絡,SVM
? ? ? 無監督學習算法:
? ? ? 聚類算法,降維算法
? ? ? 除了這些算法以外,有一些算法的名字在機器學習領域中也經常出現。但他們本身并不算是一個機器學習算法,而是為了解決某個子問題而誕生的。你可以理解他們為以上算法的子算法,用于大幅度提高訓練過程。
? ? ? 其中的代表有:梯度下降法,主要運用在線型回歸,邏輯回歸,神經網絡,推薦算法中;牛頓法,主要運用在線型回 歸中;BP算法,主要運用在神經網絡中;SMO算法,主要運用在SVM中。
? ? ? ? ? ?
? ? ? 在2010年以前,機器學習的應用在某些特定領域發揮了巨大的作用,如車牌識別,網絡攻擊防范等等。從2010年以后,隨著大數據概念的興起,機器學習大量的應用都與大數據高度吻合,幾乎可以認為大數據是機器學習應用的最佳場景。
例如經典的Google利用大數據預測了H1N1在美國某小鎮的爆發。百度預測2014年世界杯,從淘汰賽到決賽全部預測正確。
? ? ? ? ? ?
? ? ? 大數據的核心是利用數據的價值,機器學習是利用數據價值的關鍵技術。對于大數據而言,機器學習是不可或缺的。相反,對于機器學習而言,越多的數據會越可能提升模型的精確性,同時,復雜的機器學習算法的計算時間也迫切需要分布式計算與內存計算這樣的關鍵技術。因此,機器學習的興盛也離不開大數據的幫助。大數據與機器學習兩者是互相促進、相依相存的關系。
? ? ? 機器學習與大數據緊密聯系。但是,必須清醒的認識到,大數據并不等同于機器學習,同理,機器學習也不等同于大數據。大數據中包含有分布式計算,內存數據庫,多維分析等等多種技術。單從分析方法來看,大數據也包含以下四種分析方法:
? ? ? 即數據倉庫領域的OLAP分析思路,也就是多維分析思想。
? ? ? 這個代表的就是數據挖掘與機器學習分析法。
? ? ? 這個主要指的是事件驅動架構。
? ? ? 經典代表是NoSQL數據庫。
? ? ? 機器學習僅僅是大數據分析中的一種而已。盡管機器學習的一些結果具有很大的魔力,在某種場合下是大數據價值最好的說明。但這并不代表機器學習是大數據下的唯一的分析方法。
? ? ? ? ? ?
? ? ? 在大數據的時代,有好多優勢促使機器學習能夠應用更廣泛。例如隨著物聯網和移動設備的發展,我們擁有的數據越來越多,種類也包括圖片、文本、視頻等非結構化數據,這使得機器學習模型可以獲得越來越多的數據。同時大數據技術中的分布式計算Map-Reduce使得機器學習的速度越來越快,可以更方便的使用。種種優勢使得在大數據時代,機器學習的優勢可以得到最佳的發揮。
? ? ? 機器學習中常見的模型分類
? ? ? 常見的判別模型有線性回歸、對數回歸、線性判別分析、支持向量機、boosting、條件
? ? ? 隨機場、神經網絡等。
? ? ? 常見的生產模型有隱馬爾科夫模型、樸素貝葉斯模型、高斯混合模型、LDA、Restricted
? ? ? Boltzmann Machine 等。