隨著網際網路的不斷發展,程式設計師在學習程式語言的種類上也開始偏向於人工智慧ai技術方面的知識學習了,下面我們就一起來了解一下,關於機器學習我們都需要解決哪些問題。
機器學習一般用來解決哪些方面的問題?
要問機器學習主要能解決什麼問題,拋開各式各樣的機器學習流派和層出不窮的演算法模型不談,機器學習主要解決的是兩類問題:監督學習和無監督學習。掌握機器學習,主要就是學習這兩類問題,掌握解決這兩類問題的基本思路。
1、什麼是解決這兩類問題的基本思路呢?
基本思路,簡而言之就是「套路」。放在這裡的語境,那就是指:
如何把現實場景中的問題抽象成相應的數學模型,並知道在這個抽象過程中,數學模型有怎樣的假設。
2、如何利用數學工具,對相應的數學模型引數進行求解。
3、如何根據實際問題提出評估方案,對應用的數學模型進行評估,看是否解決了實際問題。
這三步就是我們學習監督學習和無監督學習,乃至所有的機器學習演算法的核心思路。機器學習中不同模型、不同演算法都是圍繞這三步來展開的,我們不妨把這個思路叫作「三步套路」。
那什麼是監督學習呢?監督學習是指這麼乙個過程,我們通過外部的響應變數(responsevariable)來指導模型學習我們關心的任務,並達到我們需要的目的。這也就是「監督學習」中「監督」兩字的由來。也就是說,監督學習的終目標,是使模型可以更準確地對我們所需要的響應變數建模。比如,我們希望通過一系列特徵來**某個地區的房屋銷售**,希望**電影的票房,或者希望**使用者可能購買的商品。這裡的「銷售**」、「電影票房」以及「可能購買的商品」都是監督學習中的響應變數。
那什麼是無監督學習呢?通常情況下,無監督學習並沒有明顯的響應變數。無監督學習的核心,往往是希望發現資料內部的潛在結構和規律,為我們進行下一步決斷提供參考。典型的無監督學習就是希望能夠利用資料特徵來把資料分組,機器學習語境下叫作「聚類」。
根據不同的應用場景,聚類又有很多變種,比如認為某乙個資料點屬於乙個類別,或者認為某乙個資料點同時屬於好幾個類別,只是屬於每個類別的概率不同等等。
無監督學習的另外乙個作用是為監督學習提供更加有力的特徵。通常情況下,無監督學習能夠挖掘出資料內部的結構,而這些結構可能會比我們提供的資料特徵更能抓住資料的本質聯絡,因此監督學習中往往也需要無監督學習來進行輔助。
我們簡要回顧了機器學習中兩大類問題的定義。在學習這兩大類模型和演算法的時候,有這麼乙個技巧,就是要不斷地回歸到上面提到的基本思路上去,就是這個「三步套路」,反覆用這三個方面來審視當前的模型。另外,我們也可以慢慢地體會到,任何新的模型或者演算法的誕生,往往都是基於舊有的模型演算法,在以上三個方面中的某乙個或幾個方向有所創新。
監督學習的基礎
監督學習的基礎是三類模型:
掌握這三類模型就掌握了監督學習的主幹。利用監督學習來解決的問題,佔所有機器學習或者人工智慧任務的絕大多數。這裡面,有90%甚至更多的監督學習問題,都可以用這三類模型得到比較好的解決。
這三類監督學習模型又可以細分為處理兩類問題:
分類問題的核心是如何利用模型來判別乙個資料點的類別。這個類別一般是離散的,比如兩類或者多類。回歸問題的核心則是利用模型來輸出乙個**的數值。這個數值一般是乙個實數,是連續的。
有了這個基本的認識以後,我們利用前面的思路來看一下如何梳理監督學習的思路。這裡用線性模型的回歸問題來做例子。但整個思路可以推廣到所有的監督學習模型。
線性回歸模型(linearregression)是所有回歸模型中簡單也是核心的乙個模型。我們依次來看上面所講的「三步套路」。
響應變數的**值是資料特徵的線性變換。這裡的引數是一組係數。而**值是係數和資料特徵的線性組合。
響應變數的**值和真實值之間有乙個誤差。這個誤差服從乙個正態(高斯)分布,分布的期望值是0,方差是σ的平方。
有了這樣的假設以後。二步就要看線性回歸模型的引數是如何求解的。這裡從歷史上就衍生出了很多方法。比如在教科書中一般會介紹線性回歸的解析解(closed-formsolution)。線性回歸的解析解雖然簡單優美,但是在現實計算中一般不直接採用,因為需要對矩陣進行逆運算,而矩陣求逆運算量很大。解析解主要用於各種理論分析中。
線性回歸的引數還可以用數值計算的辦法,比如梯度下降(gradientdescent)的方法求得近似結果。然而梯度下降需要對所有的資料點進行掃瞄。當資料量很多的時候,梯度下降會變得很慢。於是隨機梯度下降(stochasticgradientdescent)演算法就應運而生。隨機梯度下降並不需要對所有的資料點掃瞄後才對引數進行更新,而可以對一部分資料,有時甚至是乙個資料點進行更新。
從這裡我們也可以看到,對於同乙個模型而言,可以用不同的演算法來求解模型的引數。這是機器學習的乙個核心特點。
後三步,我們來看如何評估線性回歸模型。由於線性回歸是對問題的響應變數進行乙個實數**。那麼,簡單的評估方式就是看這個**值和真實值之間的絕對誤差。如果對於每乙個資料點我們都可以計算這麼乙個誤差,那麼對於所有的資料點而言,我們就可以計算乙個平均誤差。
上述對於線性回歸的討論可以擴充套件到監督學習的三類基本模型。這樣你就可以很快掌握這些模型的特點和這些模型演算法之間的聯絡。
無監督學習的基礎
現實中絕大多數的應用場景並不需要無監督學習。然而無監督學習中很多有價值的思想非常值得初學者掌握。另外,無監督學習,特別是深度學習支援下的無監督學習,是目前機器學習乃至深度學習的前沿研究方向。所以從長遠來看,了解無監督學習是非常必要的。
我們前面說到,無監督學習的主要目的就是挖掘出資料內在的聯絡。這裡的根本問題是,不同的無監督學習方法對資料內部的結構有不同的假設。因此,無監督學習不同模型之間常常有很大的差別。在眾多無監督學習模型中,聚類模型無疑是重要的代表。了解和熟悉聚類模型有助於我們了解資料的一些基本資訊。
聚類模型也有很多種類。這裡我們就用常見的、非常重要的k均值演算法(k-means),來看看如何通過前面講過的「三步套路」來掌握其核心思路。
先,k均值演算法認為資料由k個類別組成。每個類別內部的資料相距比較近,而距離所有其他類別中的資料都比較遙遠。這裡面的數學假設,需要定義資料到乙個類別的距離以及距離函式本身。在k均值演算法中,資料到乙個類別的距離被定義為到這個類別的平均點的距離。這也是k均值名字的由來。而距離函式則採用了歐幾里得距離,來衡量兩個資料點之間的遠近。
直接求解k均值的目標函式是乙個np難(np-hard)的問題。於是大多數現有的方法都是用迭代的貪心演算法來求解。
一直以來,對聚類問題、對無監督學習任務的評估都是機器學習的乙個難點。無監督學習沒有乙個真正的目標,或者是我們之前提到的響應變數,因此無法真正客觀地衡量模型或者演算法的好壞。對於k均值演算法而言,比較簡單的衡量指標就是,看所有類別內部的資料點的平均距離和類別兩兩之間的所有點的平均距離的大小。如果聚類成功,則類別內部的資料點會相距較近,而類別兩兩之間的所有點的平均距離則比較遠。
以上我們通過「三步套路」的三個方面討論了k均值演算法的核心思路,這種討論方法也適用所有的聚類模型和演算法。
解決機器學習問題的一般流程
學習更多的機器學習 深度學習的知識!很多部落格 教程中都對機器學習 深度學習的具體方法有很詳細的講解,但卻很少有人對機器學習問題的流程進行總結,而了解解決機器學習問題的一般流程對於新手而言還是非常必要的,所以本文是非常適合機器學習入門者的一篇文章,它會讓你對機器學習的整個流程有很好的理解。當我們拿到...
機器學習任務的一般步驟
1.確定特徵 選取合適的資料和特徵可能是最重要的步驟,也包括資料的預處理或清洗,通常可以稱之為特徵工程。2.確定模型 確定目標函式及決策邊界的形狀。可選擇多個模型進行比較。3.模型訓練 根據訓練資料估計模型引數。4.模型評估 這裡要區分兩個概念 模型選擇 估計不同模型的效能,選出最好的模型。通常在校...
機器學習專案的一般流程
將實際問題抽象為機器學習能處理的數學問題,理解實際業務場景問題是機器學習的第一步。機器學習的特徵工程和模型訓練通常都是一件非常耗時的過程,胡亂嘗試時間成本是非常高的。深入理解要處理的問題,能避免走很多彎路。理解問題,包括明確可以獲得什麼樣的資料,機器學習的目標是乙個分類 回歸還是聚類。如果都不是的話...