機器學習可以解決哪些類型的任務?
機器學習可以讓我們解決一些人為設計和實現(xiàn)固定程序很難解決的問題。從科學和哲學的角度來看,機器學習受到關注是因為發(fā)展我們對機器學習的認識需要發(fā)展我們對智能背后原理的理解。
如果考慮“任務”比較正式的定義,那么學習的過程并不是任務。學習是我們所謂的獲取完成任務的能力。例如,我們的目標是會行走的機器人,那么行走便是任務。我們可以編程讓機器人學會如何行走,或者可以編寫特定的指令,人工指導機器人如何行走。
通常機器學習任務定義為機器學習系統(tǒng)該如何處理樣本(example)。樣本是指我們從某些希望機器學習系統(tǒng)處理的對象或事件中收集到的已經(jīng)量化的特征(feature)的集合。我們通常會將樣本表示成一個向量x∈Rn其中向量的每一個元素xi 是一個特征。例如,一張圖片的特征通常是指這張圖片的像素。
機器學習可以解決很多類型的任務。一些非常常見的機器學習任務列舉如下:
分類:在這類任務中,計算機程序需要指定某些輸入屬于K類中的哪一類。為了完成這個任務,學習算法通常會返回一個函數(shù)。當y = f(x) 時,模型為向量x 所代表的輸入指定數(shù)字碼y 所代表的類別。還有一些其他的分類問題,例如,f 輸出的是不同類別的概率分布。分類任務中有一類是對象識別,輸入是圖片(通常用一組像素亮度值表示),輸出是表示圖片物體的數(shù)字碼。例如Willow Garage PR2 機器人像服務員一樣識別不同飲料,并送給點餐的顧客。目前,***的對象識別工作正是基于深度學習。對象識別同時也是計算機識別人臉的基本技術,可用于標記相片集中的人臉,有助于計算機更自然地和用戶交互。
輸入缺失分類:當輸入向量的每個度量不被保證的時候,分類問題將會更有挑戰(zhàn)。為了解決分類任務,學習算法只需要定義一個從輸入向量映射到輸出類別的函數(shù)。當一些輸入可能丟失時,學習算法必須學習一組函數(shù),而不是單個分類函數(shù)。每個函數(shù)對應著分類具有不同缺失輸入子集的x。這種情況在醫(yī)療診斷中經(jīng)常出現(xiàn),因為很多類型的醫(yī)學測試是昂貴的,對身體有害的。有效地定義這樣一個大集合函數(shù)的方法是學習所有相關變量的概率分布,然后通過邊緣化缺失變量來解決分類任務。使用n 個輸入變量,我們現(xiàn)在可以獲得每個可能的缺失輸入集合所需的所有2n 個不同的分類函數(shù),但是計算機程序僅需要學習一個描述聯(lián)合概率分布的函數(shù)。了解以這種方式將深度概率模型應用于這樣任務的示例。本節(jié)中描述的許多其他任務也可以推廣到缺失輸入的情況; 缺失輸入分類只是機器學習能夠解決的問題的一個示例。
回歸:這類任務中,計算機程序會給定輸入預測數(shù)值。為了解決這個問題,學習算法會輸出函數(shù)。除了返回結果的形式不一樣外,這類問題和分類問題是很像的。這類任務的一個示例是預測投保人的索賠金額(用于設置保險費),或者預測證券未來的價格。這類預測也用在算法交易中。
轉錄:這類任務中,機器學習系統(tǒng)觀測一些相對非結構化表示的數(shù)據(jù),并轉錄信息為離散的文本形式。例如,光學字符識別要求計算機程序根據(jù)文本圖片返回文字序列(ASCII 碼或者Unicode 碼)。谷歌街景以這種方式使用深度學習處理街道編號。另一個例子是語音識別,計算機程序輸入一段音頻波形,輸出一序列音頻記錄中所說的字符或單詞ID 的編碼。深度學習是現(xiàn)代語音識別系統(tǒng)的重要組成部分,廣泛用于各大公司,包括微軟,IBM 和谷歌。
機器翻譯:在機器翻譯任務中,輸入是一種語言的符號序列,計算機程序必須將其轉化成另一種語言的符號序列。這通常適用于自然語言,如將英語譯成法語。最近,深度學習已經(jīng)開始在這個任務上產生重要影響。
結構化輸出:結構化輸出任務涉及到輸出是不同元素之間重要關系的向量(或者是含多個值的其他數(shù)據(jù)結構)的任務。這是一個很大的范疇,包括上面轉錄任務和翻譯任務在內的很多其他任務。例如語法分析——映射自然語言句子到語法結構樹,并標記樹的節(jié)點為動詞,名詞,副詞等等。參考應用深度學習到語法分析。另一個例子是圖像的像素級分割,將每一個像素分配到特定類別。例如,深度學習可用于標注航拍照片中的道路位置。在這些標注型的任務中,輸出的結構形式不需要和輸入盡可能相似。例如,在圖片標題中,計算機程序觀察到一幅圖,輸出描述這幅圖的自然語言句子。這類任務被稱為結構化輸出任務是因為輸出值之間內部緊密相關。例如,圖片標題程序輸出的單詞必須組合成一個通順的句子。
異常檢測:這類任務中,計算機程序在一組事件或對象中篩選,并標記不正常或非典型的個體。異常檢測任務的一個例子是信用卡欺詐檢測。通過對你的購買習慣建模,信用卡公司可以檢測到你的卡是否被濫用。如果竊賊竊取你的信用卡或信用卡信息,竊賊采購物品的分布通常和你的不同。當該卡發(fā)生了不正常的購買行為時,信用卡公司可以盡快凍結該卡以防欺詐。了解欺詐檢測方法。
合成和采樣:這類任務中,機器學習程序生成一些和訓練數(shù)據(jù)相似的新樣本。通過機器學習,合成和采樣可能在媒體應用中非常有用,可以避免藝術家大量昂貴或者乏味費時的手動工作。例如,視頻游戲可以自動生成大型物體或風景的紋理,而不是讓藝術家手動標記每個像素。在某些情況下,我們希望采樣或合成過程可以根據(jù)給定的輸入生成一些特定類型的輸出。例如,在語音合成任務中,我們提供書寫的句子,要求程序輸出這個句子語音的音頻波形。這是一類結構化輸出任務,但是多了每個輸入并非只有一個正確輸出的條件,我們明確希望輸出有很大的偏差,使結果看上去更加自然和真實。
缺失值填補:這類任務中,機器學習算法給定一個新樣本x∈Rn,x 中某些元素xi 缺失。算法必須填補這些缺失值。
去噪:這類任務中,機器學習算法的輸入是,由未知破壞過程從干凈樣本x∈Rn得到的污染樣本。算法根據(jù)污染后的樣本x 預測干凈的樣本x,或者更一般地預測條件概率分布P(x |~x)。
密度估計或概率分布律函數(shù)估計:在密度估計問題中,機器學習算法學習函數(shù)可以解釋成樣本采樣空間的概率密度函數(shù)(如果x 是連續(xù)的)或者概率分布律函數(shù)(如果x 是離散的)。要做好這樣的任務當我們討論性能度量P 時,我們會明確定義任務是什么),算法需要學習觀測到的數(shù)據(jù)的結構。算法必須知道什么情況下樣本聚堆出現(xiàn),什么情況下不太可能出現(xiàn)。以上描述的大多數(shù)任務都要求學習算法至少能隱式地抓住概率分布的結構。密度分布可以讓我們顯式地抓住該分布。原則上,我們可以在該分布上計算以便解決其他任務。例如,如果我們通過密度估計得到了概率分布p(x),我們可以用該分布解決缺失值填補任務。如果xi 的值是缺失的,但是其他的變量值x??i 已知,那么我們可以得到條件概率分布。現(xiàn)實中,密度估計并非能夠解決所有這類問題,因為在很多情況下p(x) 是難以計算的。
當然,還有很多其他或其他類型的任務。這里我們列舉的任務類型只是用來介紹機器學習可以做哪些任務,并非嚴格地定義機器學習任務分類。