AMMAI

鬱金香可能是花!

昨天報告的時候講到鬱金香不是花這一神奇論述,覺得怪怪的,還是查證一下。

首先我發現我誤會論文了,上面是寫WordNet認為鬱金香不是花(見下圖),但我誤認為他寫的是百科全書中認定鬱金香不是花。這顯然就是一種簡化世界的機制帶來的認知錯誤,因為這一段的開頭提到common sense跟encyclopedic knowledge可能有衝突,我就把後面的例子都簡化成百科全書了。

1

因為有點好奇,我還是去查了一下,鬱金香是一個屬,依序是:

植物界=>被子植物門=>單子葉植物綱=>百合目=>百合科=>鬱金香屬

雖然沒有找到關於花的嚴格定義,但是鬱金香有花柱、花瓣、花蕊等等構造,應該也算是一種花吧。因為不能確定,所以標題只敢下鬱金香可能是花XD

AMMAI

Fisher Vector簡介

這禮拜因為要上台報告,發現如果沒好好弄懂這東西可能會講不清楚,想說既然有機會那就好好地學一下這個技巧,畢竟由其衍生出來的VLAD聽說是在深度學習出來前,分類準確率最高的image representation方法。

先附上兩個可以供參考的資源:

http://blog.csdn.net/breeze5428/article/details/32706507

http://www.duzhongxiang.com/fisher-vector/

不過最後幫助我弄懂的還是”Fisher Kernel on Visual Vocabularies for Image Categorization”這篇第一個把Fisher Kernel用在影像分類上的論文,如果不排斥的話,還是去看看會比較好。

先不講數學,主要觀念比較重要。Fisher Vector主要的概念是,我先用GMM來model一張影像的local descriptor分佈,所以對不同的影像來說,我都只需要用GMM就可以描述,也就是說每張影像都可以被表現成一個維度一樣的向量(維度就等於GMM的parameter數)。這邊厲害的地方在於,原本每張影像所取出的local descriptor數都不盡相同,但因為用GMM描述,就可以讓每一張影像被表示成維度相同的向量。

但Fisher Vector沒有這麼單純,他不是單純用GMM的每個參數值來表示一張影像,他是先定義一個function,這個function定義了一張影像跟GMM對這張影像的model的相似程度。然後藉由對GMM每個參數做偏微分,就可以得到每個參數變化一點點,這張影像跟GMM對這張影像的model的相似程度的變化量,把每個偏微分都定義成Vector的一個維度,就可以得到一個長度還是跟參數量一樣的Vector。最後,為了分類器的需求,再把這個vector用Fisher Information Matrix做完normalization,就可以得到Fisher vector了。

AMMAI

AMMAI(Week 15) – What does classifying more than 10,000 image categories tell us?

Paper Info

“What does classifying more than 10,000 image categories tell us?,” J. Deng, A. C. Berg, K. Li, and L. Fei-Fei, ECCV 2010.

Motivation

人類可以辨識的物體種類有成千上萬種,那如果嘗試讓電腦來辨識這麼多種的物體,會出現哪些問題?這是這篇論文主要想探討的問題。

Technical Summary&Experiment

因為這篇論文比較是討論性質的,所以重點在實驗,所以把Technical Summary跟Experiment合在一起寫。

使用的Datasets

ImageNet10K, ImageNet7K, ImageNet1K, Rand200, Ungulate183, Fungus134, Vehicle262, CalNet200

Evaluation的方法

mean accuracy, mean misclassfication cost(例如把狗分類成貓跟把狗分類成汽車的錯誤程度是不同的)

分類演算法

GIST+NN, BOW+NN, BOW+SVM, SPM+SVM

運算時間的分析

這邊他們做了滿多種方法的分析,但發現有很多方法,光是訓練分類器就要花上以年為單位的時間,然後testing需要數小時來跑完全部影像的分類,所以他們有試著去用平行運算來處理,發現如果用66個CPU的叢集一起算,只要幾個禮拜就可以訓練完,所以他們認為需要平行運算才能處理這麼多類的物體分類問題。

類別數量的分析

當類別數量增加,準確度會下降,實驗結果在下圖中呈現,有趣的地方是,原本在比較少類別的資料中表現較好的SVM居然在類別變多時輸給了簡單的NN方法。他們的猜測是,1-vs-all的分類器在種類更多的時候會有更差的表現(因為每個種類都一樣多張影像的話,種類越多,表示對的資料比例急速下降,所以分類器得到的正確範例很少,自然學不好)。

1

另外一個實驗的結果指出有些class因為彼此之間有關係,所以分類結果會相關。

1

資料庫內種類密度的分析

作者們發現了一件有趣的事情,雖然很直覺,但我覺得很重要。就是資料庫內的物體種類越密集(密集度由wordnet當中這些類別之間的距離平均來計算),分類器的辨識結果就會越差。

1

利用語意的階層來幫助分類的分析

他們主要的argument很有道理,就是如果分類器把貓分成夠,這樣的錯誤應該要比把貓分成微波爐還要小,但原本的分類只有分正確或錯誤,就沒有辦法反映這個現象。所以他們定出hierarchical cost,使用WordNet的距離來定義cost(那因為貓跟狗的距離比貓跟微波爐的距離小,就可以把cost function變得更好)。

1

2

Contribution

這篇論文應該是第一個探討極大量種類的物體辨識的論文,討論的面向相當完整,而且他們有提出怎麼利用WordNet的類別來幫助改進分類器的辨識結果(利用一種hierarchical cost),我覺得有運用到人類如何做物體辨識的概念,是吸當有趣的研究。

Question

1. 是不是一定要實作出人類的認知架構才夠達到人類班的辨識水平?考慮到人類的學習其實包含視覺,觸覺等多種知覺的刺激,真的有可能只藉由影像的data得到很好的物體辨識模組嗎?

AMMAI

AMMAI(Week 14) – Text Understanding from Scratch

Paper Info

Zhang, Xiang, and Yann LeCun. “Text Understanding from Scratch.” arXiv preprint arXiv:1502.01710 (2015).

Motivation

這篇論文嘗試用Deep Learning來做各種文字分析的task, 包含ontology classification, sentiment analysis跟text categorization等。

Technical Summary

怎麼將character表示成向量

他們統一將字母用69維的向量表示,69維包含26個字母,10個數字跟33個其他符號,而如果是空白就用69維的0向量表示。而且不需要做normalization就可以達到還不錯的效果。

ConvNet model設計

他們設計了一大一小的類神經網路,兩個都是6層的conv layer,3層的FC layer。

1

2

3

Data Augmentation技巧

在理想情況下,讓人來把訓練資料裡的句子用不同的用法重新寫過會很有用,但實際上因為成本不可能這樣做,所以這邊的作法就是把句子中可以替換掉的字換成同義字,藉以增加訓練資料的多樣性。不過從實驗結果可以看出有沒有做這一步其實沒有差很多。

Experiment

因為有很多資料庫都是他們自己建的,沒有現成數據以供比較,所以他們又實作了BOW跟Word2vec來進行比較。

DBpedia Ontology Classification

1

Amazon Review Sentiment Analysis

2

3

Yahoo! Answer Topic Classification

4

News Categorization in English

5

News Categorization in Chinese

6

Contribution

他們在某種程度上證明即時沒有任何事先知道的knowledge,利用深度學習,單純靠字母level的輸入也可以做到很不錯的精準度。

AMMAI

AMMAI(Week 13) – Deep neural networks for acoustic modeling in speech recognition

Paper Info

Hinton, Geoffrey, et al. “Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups.” Signal Processing Magazine, IEEE 29.6 (2012): 82-97.

Motivation

以往的Speech recognition做法主要都是利用HMM來model聲音訊號的順序關係(frame to frame)、配合GMM來model單一frame,而這篇希望討論利用DNN來取代GMM的做法,另外也討論了DNN的其他性質和可能用法。

Technical Summary

怎麼將聲音訊號導入DNN

DNN的用法是接收MFCC或是Filter-bank的係數(也就是一個高維度的向量),然後輸出就是這個向量屬於每個state的機率。而且有趣的是,DNN+HMM的方法使用Filter-bank的係數得到的performance還比MFCC好,論文上指出說可能是因為GMM需要input的資料的每個維度彼此比較獨立,但DNN不需要。

怎麼把DNN跟HMM接起來

DNN的輸出就可以當作HMM的輸入,這是比較簡單的做法。

另外這篇論文滿詳細地說明了用RBM跟DBN來做預訓練的方法,雖然後來發現不太需要做預訓練也可以達到很好的效果。

Experiment

他們有在TIMIT上面做測試,也有在一些比較large scale的dataset測試performance。

1

2

3

Contribution

這篇論文把DNN應用於語音辨識的主要概念、方法還有跟前人的比較都做了詳盡的介紹,是一篇入門語音處理的重要論文,基本上掌握HMM-GMM跟這篇應該就對語音處理會有一個大的綱架了。

Question

1.為什麼用GMM來model球面上很接近的一些點會需要用到一堆Gaussian?

Tools Learned

Deep belief network, Restricted Boltzmann Machine

AMMAI

AMMAI(Week 12) – Rich feature hierarchies for accurate object detection and semantic segmentation

Paper Info

“Rich feature hierarchies for accurate object detection and semantic segmentation.” Girshick, Ross, et al. CVPR 2014.

Motivation

之前的論文主要是將DNN應用在global的影像分類上,但如果我們想將影像中的物體一個個的locate出來並貼上標籤,那就是完全不同的task,所以這篇論文被提出來處理這個問題。

Technical Summary

主要架構圖

1

從主要架構圖可以看出,其實在經過region proposal之後,後面做的事情就像是一般的image classification(不過這篇是使用linear SVM來做分類)。所以在test stage,他們用selective search的方法產生2000個左右的region,接著把每個region都直接warp成227×227的影像,餵進CNN後就都變成同樣長度的特徵向量,再提供給SVM做最後的分類。

能夠做warping的理由也滿直觀的,我覺得warping後的結果依然可以被人所辨識,這表示重要的特徵其實是還留著的,所以CNN理論上也可以萃取出來。

1

另外一點值得關注的點是,他們在training的時候用到了ILSVRC的data來幫忙訓練,因為CNN需要大量的訓練資料,所以不太可能只由PASCAL VOC的data來訓練。他們證明可以先用比較general的大量資料來做預訓練、再用小量的domain specific資料來做訓練。(ILSVRC有1000類、PASCAL VOC只有21類)

Experiment

這個方法在PASCAL VOC上的mAP比之前最好的結果多了30%,非常厲害。

3

2

Contribution

1. 他們把CNN的架構跟bottom up的region proposal方法結合起來,使得CNN也可以處理物體定位跟辨識的問題。

2. 當training data不多的時候,他們也可以利用ILSVRC的data來做pre-training,再用僅有的一些data做fine tuning也可做到不錯的結果。

Question

1. 能不能不要做warping,直接把影像放進227×227的大小,其他塞0就好? 這樣效果會如何?

Tools Learned

Selective search, R-CNN, Region proposal方法(2.1中列了很多)

AMMAI

AMMAI(Week 11) –ImageNet Classification with Deep Convolutional Neural Networks

Paper Info

“ImageNet Classification with Deep Convolutional Neural Networks,” Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, NIPS 2012.

Motivation

這篇論文嘗試把DNN的架構用在ImageNet的比賽上,討論了其中的做法跟需要考慮的設計因素。

Technical Summary

整體的架構圖

1

上面的架構圖是這篇論文的精髓,一開始從最左邊輸入一張224×224影像,然後第一層我們用48個kernel(每個都是11x11x3的大小),所以到第一層會有48張55×55的feature map。然後Max pooling的意思是把值比較大的區塊再取出來(有點取response最強的部分的味道)。之後4層都是一樣的意思。

經過5層的conv跟pooling,最後會得到一個feature vector。接下來再用3層的Fully connected NN來訓練1000種的分類,最後得到分類的結果。所以前面的5層主要是萃取特徵、後面的3層是要做分類。

避免overfitting

他們主要使用了Dropout跟Data augmentation的方法來減少overfitting。

Experiment

他們用ILSVRC的performance來比較

0

2

他們的方法用來作query的效果也很好

1

Contribution

這篇論文算是開啟DNN應用於影像分類的經典論文,之前雖然陸續有一些研究,但都沒有辦法做到這麼好的效果,這篇算是真的用DNN做出很好結果的第一篇。

Tools Learned

CNN, Dropout, Pooling