機器學習——機器學習概論


上半年的alphago圍棋大戰李世石,以4:1的比分大勝李世石——新浪科技-AlphaGo最終局戰勝李世石 人機大戰總比分1:4,這也讓人工智能再一次的吸引了全世界人的目觀,其中的一些詞匯也是火了一把,人工智能(Artificial intelligence),深度學習(Deep learning)以及DeepMind。這里稍微解釋以上幾個詞匯。

人工智能:人工智能格式計算機科學的一個分支,它研究的是計算機模擬人的意識,思維方式來處理問題。就是說計算機能像人一樣思考。

深度學習:深度學習是只是機器學習的一類方法,機器學習是人工智能的一個分支,主要是實現人工智能的一些方法,可以說是方法論。

DeepMind:DeepMind只是一個組織,主要研究方向也就是深度學習相關內容。現在被Google收購

機器學習概論

深度學習是一種特殊的機器學習machine learning)方法,為了更好的理解深度學習,首先要對機器學習的主要內容有一個大致的了解。接下來的一些章節是機器學習的一些重要的方法。這樣對于新手讀者或者那些想要對機器學習有一個更加廣闊了解的人來說基本都能全面覆蓋。如果你對機器學習的基本方法比較了解可以略過這些內容。

我們先定義學習算法到底是什么,提出以下的例子:線性回歸算法Linear regression algorithm)。然后,我們會繼續描述如何擬合訓練數據發現其模式,把該模式推廣到新的數據中。這其實就是學習的基本定義,能從訓練數據中學到“知識”,然后把該“知識”應用到新的數據中。大部分機器學習算法需要學習的其實是模型的參數。為了得到該學習的模型一般是最小化一個代價函數,該函數需要求解的未知數就是模型的參數,而該模型的已知變量就是訓練數據集。機器學習的本質是應用統計學習,統計訓練數據的模型得到一系列的規律。

大部分的機器學習方法可劃分成以下兩種:監督學習(supervised learning)和無監督學習(unsupervised learning)。對于這兩種分類,我也會給出一些學習算法的實例。大部分的機器學習(深度學習)問題都是通過隨機梯度下降的方法解決的,隨機梯度下降是一種優化算法,簡單來說就是求解代價函數的方法。所以把機器學習可以看成是以下的幾個組成:一個代價函數,一個模型,一個數據集和一種求解的算法。

學習算法

一個機器學習算法其實就是能從數據中學到“知識”的一種方法。但是如何定義學習呢?Mitchell 1997年給了一個定義:一個計算機程序通過經驗E完成了一個任務T,評價它的性能的辦法是P。所以這章的內容將會從機器學習的任務T,評價方法P和經驗E來展開。

機器學習任務

機器學習可以解決一些人類能夠解決的任務,如果是提供一些訓練數據和一個任務,機器學習能做的效果也是接近于人類的。一般的,機器學習要做的事情是對于一個樣本該如何處理。這個樣本可以用特征來表示,也就是說一個樣本可以通過一個n維的向量來表示,$x \in R^n$。比如一幅圖像可以用像素值來表示。

許多任務都能通過機器學習來解決,包括以下的任務:

分類(classification)

在這個任務中,計算機程序需要講一個樣本分在K個類中的一個。K是指所有的類別的個數。為了解決這個問題需要得打這樣一個函數$f: R^n \rightarrow {1,...,K}$,該函數$y=f(x)$可以表示從樣本x到類別標簽y的映射。這樣的一個函數就能解決我們需要的分類任務。一般的,函數f的輸出是一個概率分布,它是指樣本x屬于每一個類別的概率,概率最高的那個即是x的類標。一個分類的例子就是物體識別(Object Recognitions),即給定一張圖像,判斷這張圖像屬于什么物體。

CIFAR-10

現在解決物體識別任務基本最好的方法都是深度學習(Krizhevsky et al 2012

回歸任務(Regression)

在這個任務中,計算機程序需要的是在給定一個輸入時,輸出一個數值。解決該任務需要得到的函數是 $f:R^n \rightarrow R$,該任務與分類任務很像但不同的地方是輸出是一個數值(連續的)而不是一個類標(離散的)。例如我們要預測從某地到另一地所需要的時間,輸入的可能是兩個地點或者一連串地點的坐標信息,需要輸出的是花費的時間time。再比如本文開始alphago下圍棋問題,計算機程序要做的是在當前狀態下判斷最佳的下棋位置,即計算每一個空位的得分。

機器翻譯(Machine Translation)

在機器翻譯的任務中,給定某種語言的一個文字序列,需要翻譯成給定語言,即得到另一個文字序列。比如中文翻譯成英文,現在常用到的一些應用包括Google翻譯,百度翻譯都是機器學習的成果。現在機器翻譯大都是基于深度學習的一些方法。

其實還包括許多的機器學習任務,比如推薦系統,結構輸出,聚類,目標檢測等。還可以通過應用分成三大類,一個是對于圖像的處理,還有一個是對于文本處理和語音。對于圖像比如給圖像著色,找出圖像中的人臉,找出背景圖,識別圖片中的物體,描述一幅圖像等。對于文本處理比如機器翻譯,文本分類,文本的情感分析,文本總結,閱讀理解等。語音可以是語音識別,生成語音等。能想到的很多任務都是機器學習的常見任務,大概機器學習的終極目標就是解決人類能解決的所有問題吧。

性能方法

為了評價一個機器學習算法的能力好壞,需要設計一個性能的評價方法P,不同的機器學習任務一般有不同的評價方法。對于一個分類任務,評價辦法就是對于給定一個測試集合,分類之后計算其分類的正確率(Accuracy),即算法分類得到正確結果的比例,也可以用錯誤率來評價。正確率越高(錯誤率越低)則該算法的性能越好,否則越差。而對于一個回歸問題,可以計算預測結果與正確結果的誤差來評價。總誤差越小說明算法的性能越好。對于一些其他的機器學習的評價也可以通過誤差來計算。有了評價方法就可以判斷機器學習算法的性能,人們根據這個來挑戰更加好的機器學習算法。

參考?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容