機器學習:幾種分類識別問題
分類和識別是機器學習領域非常常見的一類問題,比如之前非常火熱的 ImageNet 挑戰(zhàn)賽,還有人臉識別,人臉表情識別等,接觸機器學習的一般來說,都是從識別開始,因為識別比較簡單直觀,而且大家都對目前識別領域比較常見的幾個數(shù)據(jù)集比如 MNIST, CIFAR-10, CIFAR-100 還有 ImageNet 等都比較熟悉了,這些都是為了解決分類識別問題而設計的數(shù)據(jù)集。
隨著深度學習的蓬勃發(fā)展,在分類識別領域,又分化出來很多不同的方式,雖然這些概念在深度學習出來之前,就已經(jīng)有了,但是有了深度神經(jīng)網(wǎng)絡結合大數(shù)據(jù),以前的這些概念又被重新翻出來,不管是新瓶裝舊酒,還是煥發(fā)了第二春,反正這些概念最近又開始被吵的火熱了,什么 few-shot learning, zero-shot learning, incremental-learning,meta-learning 之類的又開始受到了越來越多的關注。雖然這些概念不僅僅用于分類識別,不過用分類識別問題來解釋這些概念簡單直白。
一般來說,給定一個數(shù)據(jù)集 X={xi}Ni=1 \mathcal{X}=\{ \mathbf{x}_i \}_{i=1}^{N}X={x
i
?
}
i=1
N
?
,這個數(shù)據(jù)集屬于 K KK類,假設標簽空間為Y={yj}Nj=1 \mathcal{Y}=\{ \mathbf{y}_j \}_{j=1}^{N}Y={y
j
?
}
j=1
N
?
,x \mathbf{x}x 一般表示為圖像,比如手寫數(shù)字的MNIST數(shù)據(jù)集,一張圖就是一個數(shù)字比如 0, 1, 2, 3, 4 等等,或者ImageNet 的圖像,一張圖表示某一個物體,比如貓啊, 狗啊什么的,y \mathbf{y}y 表示一個標簽,就是我們常說的 one-hot 向量,比如 MNIST 的標簽是 10 維的向量,ImageNet 的標簽是 1000 維的向量, 只有一個位置是1,其他位置都是0,每個類的標簽按列拼在一起,就可以組成一個標準的單位矩陣。分類問題,簡單來說,就是把屬于同一類的圖像聚到一起,都是手寫數(shù)字 0 的圖像,應該都歸為一類,都是手寫數(shù)字 2 的圖像,應該歸為另外一類,不能把手寫數(shù)字 8 的圖像,歸到 0 這一類,所以分類問題,簡單來說,就是物以類聚。
從數(shù)學的角度上來說,分類識別就是圖像到標簽的一個映射過程 :
X?Y \mathcal{X} \Rightarrow \mathcal{Y}
X?Y
說了這么多,我們把什么是分類識別問題解釋了,現(xiàn)在來看看,經(jīng)過這么多年的發(fā)展,學術界把分類識別問題又做了不同的劃分,根據(jù)不同的設定,著手解決不同的問題,歸納起來,主要有以下幾類:
有監(jiān)督學習(supervised learning)
無監(jiān)督學習(unsupervised learning)
半監(jiān)督學習(semi-supervised learning)
小樣本學習(few-shot learning)
零樣本學習(zero-shot learning)
增量學習(incremental learning)
元學習(meta-learning)
open question (classification in the real-world, open environment)
有監(jiān)督學習
有監(jiān)督學習,應該是最常見,發(fā)展最成熟的一種分類識別問題了,所謂的有監(jiān)督,那就是類別的標簽是已知的,目前學術界研究的大多數(shù)分類識別問題都屬于這一類,所以我們見到的數(shù)據(jù)集一般都是帶著標簽的,這類問題,都是希望找到一個映射,圖像空間到類別空間的一個映射,借著類別標簽的 “指引”,把同一類的圖像盡可能的映射到一塊,聚在一起,因為有標簽的“指引”,所以這類問題,相對來說比較容易解決,特別是隨著深度神經(jīng)網(wǎng)絡與算力的發(fā)展,各大從前的榜單都在被不斷刷新,ImageNet 火了幾年之后,也不再舉辦了,估計這榜再刷下去也沒什么意思了,有監(jiān)督學習,發(fā)展到現(xiàn)在,越來越像在燒錢,比拼的是數(shù)據(jù)和計算資源。
無監(jiān)督學習
有監(jiān)督學習,正如上面說的,需要有標簽做“指引”,所以需要很多有標簽的數(shù)據(jù),而且深度學習需要消耗大量的數(shù)據(jù),有標簽的數(shù)據(jù)越來越難獲取,需要消耗大量的人力與物力。所以,就有人想,能不能研究一種學習模式,可以不需要類別標簽,也能讓模型學會分類,所以就發(fā)展出了所謂的無監(jiān)督學習,無監(jiān)督學習,顧名思義,是不需要類別標簽做“指引”的, 直接從數(shù)據(jù)圖像中尋找每一類內在的聯(lián)系,把同一類圖像的特征耦合在一起,不過,到目前為止,這類無監(jiān)督學習的效果一直不太理想,沒有標簽的指引,模型好像很難學好。
半監(jiān)督學習
介紹了有監(jiān)督學習和無監(jiān)督學習,接下來介紹半監(jiān)督學習,半監(jiān)督學習結合了有監(jiān)督學習和無監(jiān)督學習,半監(jiān)督學習,既不需要有監(jiān)督學習那么多的有標簽數(shù)據(jù),不過與無監(jiān)督學習相比,又多了一些標簽數(shù)據(jù)做 “指引”,所以基本上一種把有標簽數(shù)據(jù)和無標簽數(shù)據(jù)混合在一起學習的一種模式。
小樣本學習 (Few-shot learning)
小樣本學習,在深度學習火熱起來之前,也有一些人研究,最近兩年,這個課題又開始受到越來越多的關注,小樣本學習,應該還是屬于有監(jiān)督學習的一種,只是與常規(guī)的有監(jiān)督學習相比,每一類的有標注的數(shù)據(jù)非常少,學術界經(jīng)常說的的 1-shot, 5-shot 等等,就是說每一類都只有一個或者五個有標簽的樣本,這個課題的起源,是為了更好的研究模擬人的認知能力,因為人去學習識別一個東西,是不需要去看那么多的有標簽的數(shù)據(jù)的,不過,從目前學術界發(fā)表的研究成果來看,基本還是基于 metric-learning 或者 meta-learning 的方式,利用 遷移學習的概念,先在大量的有標簽的數(shù)據(jù)上訓練網(wǎng)絡,讓網(wǎng)絡學到一種有效的特征提取或者學到一套有效的模型參數(shù),然后再在小樣本數(shù)據(jù)集上進行訓練。目前,這個方向發(fā)表出來的結果,在 Mini-Image Net 上的識別率還不是很高,還有進一步的提升空間。
零樣本學習 (Zero-shot learning)
零樣本學習,是比小樣本學習更進一步,最近兩年也變得火熱起來了, 所謂零樣本,那就是完全不需要樣本的參考,而去推斷識別新的類別,這個研究目前還處于起步階段,用到的最多的方式,就是基于屬性的識別,可以把每個類別進一步拆分成很多個不同屬性的組合,某些屬性的組合,可能就大概率的對應某個類別,所以,雖然新的類別,沒有帶標簽的樣本,但是,從之前的數(shù)據(jù)集上,可以讓模型先學習識別不同的屬性,碰到新樣本的時候,先識別出該樣本的屬性,然后再結合不同的屬性,進而判斷出該樣本屬于什么類。
增量學習 (Incremental learning)
這個也是目前比較火熱的一個研究方向,所謂增量學習,與之前見識的學習問題不太一樣,早期的分類識別,都假設類別是已知的,并且是固定的,也就是說,我們會先分好訓練集,測試集,并且知道訓練集與測試集的類別都是已知的,但是增量學習,提出了另外一種學習問題,在真實的環(huán)境中,數(shù)據(jù)肯定不是一次性就全部給定的,而是在逐漸增加的,逐漸增加的數(shù)據(jù),有可能是新的類別,也有可能是原來的類別,這樣的話,就需要找到一種學習策略,讓模型能夠不斷的去適應環(huán)境,增量學習最想解決的一個問題就是“參數(shù)遺忘”,我們知道,神經(jīng)網(wǎng)絡在訓練的時候,都是盡可能地去擬合它所見到的數(shù)據(jù),如果神經(jīng)在學習的過程中,只能見到當前的數(shù)據(jù),而以前的數(shù)據(jù)無法再見到的話, 那么之前學到的關于之前數(shù)據(jù)的性質,都將被遺忘,這就有點像狗熊掰棒子一樣,只能顧到當下,以前的全給忘了,增量學習就是想解決這個問題,讓模型隨著見到的數(shù)據(jù)越來越多,模型的識別能力可以逐步提升。
元學習(meta-learning)
meta-learning, 號稱,learning to learn,是目前比較火的一種學習策略,說通俗一點,就是希望讓模型自己學會怎么訓練,類似 auto-ML 的一些東西,這個在 few-shot learning 領域,有些研究已經(jīng)結合了 meta-learning 的思想,去訓練網(wǎng)絡。
Open question
最后,說一些題外話,現(xiàn)在學術界,考慮分類識別的時候,更多的時候還是在一種可控的環(huán)境下來做,比如 ImageNet 1000 類,聽起來似乎很多,但是與真實的環(huán)境相比,這 1000 類一點也不多,目前所有主流的測評,都是基于這 1000 類來進行比較,而忽略了其他類,這就是我們所說的開放環(huán)境,學術界是不考慮開放環(huán)境的,因為開放環(huán)境太復雜,沒有辦法做,如果模型在一個封閉的環(huán)境下學習,只能認識有限的類別,那這種模型永遠沒有辦法在實際環(huán)境中工作。
所以,雖然現(xiàn)在 AI 引爆了一股股的熱潮,但是離通用的 AI 還很遙遠,即使是在簡單的分類識別問題上,學術界的AI 研究,很多時候,都是基于 100% 的已知可控,數(shù)據(jù)集被研究了無數(shù)遍,但是真實環(huán)境中,可能 90% 都是未知的,如何用 10% 的已知去應對 90% 的未知,這可能是機器學習最大的難點。
————————————————
版權聲明:本文為CSDN博主「Matrix_11」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/matrix_space/article/details/83713632 |