機器學習入門 常見演算法

2021-09-02 16:32:59 字數 3721 閱讀 1416

乙個故事說明什麼是機器學習:

機器學習這個詞是讓人疑惑的,首先它是英文名稱machine learning(簡稱ml)的直譯,在計算界machine一般指計算機。這個名字使用了擬人的手法,說明了這門技術是讓機器「學習」的技術。但是計算機是死的,怎麼可能像人類一樣「學習」呢?

關於機器學習的詳細內容:

機器學習入門:常見演算法

傳統上如果我們想讓計算機工作,我們給它一串指令,然後它遵照這個指令一步步執行下去。有因有果,非常明確。但這樣的方式在機器學習中行不通。機器學習根本不接受你輸入的指令,相反,它接受你輸入的資料! 也就是說,機器學習是一種讓計算機利用資料而不是指令來進行各種工作的方法。這聽起來非常不可思議,但結果上卻是非常可行的。「統計」思想將在你學習「機器學習」相關理念時無時無刻不伴隨,相關而不是因果的概念將是支撐機器學習能夠工作的核心概念。你會顛覆對你以前所有程式中建立的因果無處不在的根本理念。

這個例子**於我真實的生活經驗,我在思考這個問題的時候突然發現它的過程可以被擴充化為乙個完整的機器學習的過程,因此我決定使用這個例子作為所有介紹的開始。這個故事稱為「等人問題」。

我相信大家都有跟別人相約,然後等人的經歷。現實中不是每個人都那麼守時的,於是當你碰到一些愛遲到的人,你的時間不可避免的要浪費。我就碰到過這樣的乙個例子。

對我的乙個朋友小y而言,他就不是那麼守時,最常見的表現是他經常遲到。當有一次我跟他約好3點鐘在某個麥當勞見面時,在我出門的那一刻我突然想到乙個問題:我現在出發合適麼?我會不會又到了地點後,花上30分鐘去等他?我決定採取乙個策略解決這個問題。

要想解決這個問題,有好幾種方法。第一種方法是採用知識:我搜尋能夠解決這個問題的知識。但很遺憾,沒有人會把如何等人這個問題作為知識傳授,因此我不可能找到已有的知識能夠解決這個問題。第二種方法是問他人:我去詢問他人獲得解決這個問題的能力。但是同樣的,這個問題沒有人能夠解答,因為可能沒人碰上跟我一樣的情況。第三種方法是準則法:我問自己的內心,我有否設立過什麼準則去面對這個問題?例如,無論別人如何,我都會守時到達。但我不是個死板的人,我沒有設立過這樣的規則。

事實上,我相信有種方法比以上三種都合適。我把過往跟小y相約的經歷在腦海中重現一下,看看跟他相約的次數中,遲到佔了多大的比例。而我利用這來**他這次遲到的可能性。如果這個值超出了我心裡的某個界限,那我選擇等一會再出發。假設我跟小y約過5次,他遲到的次數是1次,那麼他按時到的比例為80%,我心中的閾值為70%,我認為這次小y應該不會遲到,因此我按時出門。如果小y在5次遲到的次數中佔了4次,也就是他按時到達的比例為20%,由於這個值低於我的閾值,因此我選擇推遲出門的時間。這個方法從它的利用層面來看,又稱為經驗法。在經驗法的思考過程中,我事實上利用了以往所有相約的資料。因此也可以稱之為依據資料做的判斷。

依據資料所做的判斷跟機器學習的思想根本上是一致的。

剛才的思考過程我只考慮「頻次」這種屬性。在真實的機器學習中,這可能都不算是乙個應用。一般的機器學習模型至少考慮兩個量:乙個是因變數,也就是我們希望**的結果,在這個例子裡就是小y遲到與否的判斷。另乙個是自變數,也就是用來**小y是否遲到的量。假設我把時間作為自變數,譬如我發現小y所有遲到的日子基本都是星期五,而在非星期五情況下他基本不遲到。於是我可以建立乙個模型,來模擬小y遲到與否跟日子是否是星期五的概率。

這樣的圖就是乙個最簡單的機器學習模型,稱之為決策樹。

當我們考慮的自變數只有乙個時,情況較為簡單。如果把我們的自變數再增加乙個。例如小y遲到的部分情況時是在他開車過來的時候(你可以理解為他開車水平較臭,或者路較堵)。於是我可以關聯考慮這些資訊。建立乙個更複雜的模型,這個模型包含兩個自變數與乙個因變數。

再更複雜一點,小y的遲到跟天氣也有一定的原因,例如下雨的時候,這時候我需要考慮三個自變數。

如果我希望能夠**小y遲到的具體時間,我可以把他每次遲到的時間跟雨量的大小以及前面考慮的自變數統一建立乙個模型。於是我的模型可以**值,例如他大概會遲到幾分鐘。這樣可以幫助我更好的規劃我出門的時間。在這樣的情況下,決策樹就無法很好地支撐了,因為決策樹只能**離散值。我們可以用節2所介紹的線型回歸方法建立這個模型。

如果我把這些建立模型的過程交給電腦。比如把所有的自變數和因變數輸入,然後讓計算機幫我生成乙個模型,同時讓計算機根據我當前的情況,給出我是否需要遲出門,需要遲幾分鐘的建議。那麼計算機執行這些輔助決策的過程就是機器學習的過程。

機器學習方法是計算機利用已有的資料(經驗),得出了某種模型(遲到的規律),並利用此模型**未來(是否遲到)的一種方法。

通過上面的分析,可以看出機器學習與人類思考的經驗過程是類似的,不過它能考慮更多的情況,執行更加複雜的計算。事實上,機器學習的乙個主要目的就是把人類思考歸納經驗的過程轉化為計算機通過對資料的處理計算得出模型的過程。經過計算機得出的模型能夠以近似於人的方式解決很多靈活複雜的問題。

機器學習(machine learning, ml)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。

它是人工智慧的核心,是使計算機具有智慧型的根本途徑,其應用遍及人工智慧的各個領域,它主要使用歸納、綜合而不是演繹。

從廣義上來說,機器學習是一種能夠賦予機器學習的能力以此讓它完成直接程式設計無法完成的功能的方法。但從實踐的意義上來說,機器學習是一種通過利用資料,訓練出模型,然後使用模型**的一種方法。

機器學習所牽扯的一些相關範圍的學科與研究領域。

模式識別

模式識別=機器學習。兩者的主要區別在於前者是從工業界發展起來的概念,後者則主要源自計算機學科。在著名的《pattern recognition and machine learning》這本書中,christopher m. bishop在開頭是這樣說的「模式識別源自工業界,而機器學習來自於計算機學科。不過,它們中的活動可以被視為同乙個領域的兩個方面,同時在過去的10年間,它們都有了長足的發展」。

資料探勘

資料探勘=機器學習+資料庫。這幾年資料探勘的概念實在是太耳熟能詳。幾乎等同於炒作。但凡說資料探勘都會吹噓資料探勘如何如何,例如從資料中挖出金子,以及將廢棄的資料轉化為價值等等。但是,我儘管可能會挖出金子,但我也可能挖的是「石頭」啊。這個說法的意思是,資料探勘僅僅是一種思考方式,告訴我們應該嘗試從資料中挖掘出知識,但不是每個資料都能挖掘出金子的,所以不要神話它。乙個系統絕對不會因為上了乙個資料探勘模組就變得無所不能(這是ibm最喜歡吹噓的),恰恰相反,乙個擁有資料探勘思維的人員才是關鍵,而且他還必須對資料有深刻的認識,這樣才可能從資料中匯出模式指引業務的改善。大部分資料探勘中的演算法是機器學習的演算法在資料庫中的優化。

統計學習

統計學習近似等於機器學習。統計學習是個與機器學習高度重疊的學科。因為機器學習中的大多數方法來自統計學,甚至可以認為,統計學的發展促進機器學習的繁榮昌盛。例如著名的支援向量機演算法,就是源自統計學科。但是在某種程度上兩者是有分別的,這個分別在於:統計學習者重點關注的是統計模型的發展與優化,偏數學,而機器學習者更關注的是能夠解決問題,偏實踐,因此機器學習研究者會重點研究學習演算法在計算機上執行的效率與準確性的提公升。

計算機視覺

語音識別

語音識別=語音處理+機器學習。語音識別就是音訊處理技術與機器學習的結合。語音識別技術一般不會單獨使用,一般會結合自然語言處理的相關技術。目前的相關應用有蘋果的語音助手siri等。

自然語言處理

可以看出機器學習在眾多領域的外延和應用。機器學習技術的發展促使了很多智慧型領域的進步,改善著我們的生活。

機器學習入門 常見演算法

阿里雲大學課程 機器學習入門 常見演算法 課程介紹 機器學習 machine learning,ml 是人工智慧的核心,專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能,它是使計算機具有智慧型的根本途徑,其應用遍及人工智慧的各個領域。本課...

機器學習常見演算法

缺點 貝葉斯公式是乙個後驗概率公式 應用例項 中文的詞串分詞功能,如給 南京市長江大橋 分詞,有兩種可能性 貝葉斯影象識別 首先是視覺系統提取圖形的邊角特徵,然後使用這些特徵自底向上地啟用高層的抽象概念 比如是 e 還是 f 還是等號 然後使用乙個自頂向下的驗證來比較到底哪個概念最佳地解釋了觀察到的...

機器學習常見演算法概述

原創 2016 08 22 14 34 28 雪倫 閱讀數 4813 更多分類專欄 機器學習 機器學習 機器學習 machine learning,ml 是一門多領域交叉學科,涉及概率論 統計學 逼近論 凸分析 演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或...