本發(fā)明屬于信息技術(shù)領(lǐng)域,具體的來說,是指一種基于K-means與深度學習的圖像分類算法,適用于互聯(lián)網(wǎng)中海量高維數(shù)據(jù)圖像的分類,還用于網(wǎng)絡圖像檢索、視頻檢索、遙感圖像分類、交互式游戲、智能機器人等領(lǐng)域的圖像數(shù)據(jù)分類。
背景技術(shù):
在海量圖像數(shù)據(jù)處理技術(shù)領(lǐng)域,深度學習是一種較為常見的算法。深度學習作為一種算法于2006年被Hinton提出,并得到了廣泛的認可與應用,其本質(zhì)是通過建立具有多個隱層的人工神經(jīng)網(wǎng)絡模型和大規(guī)模的訓練數(shù)據(jù),來學習有用且抽象的特征,最終的結(jié)果是提升圖像分類的準確性。因此,深度學習能很好地解決海量圖像數(shù)據(jù)處理問題。Hinton提出DBN網(wǎng)絡,并證實了(1)深層網(wǎng)絡結(jié)構(gòu)較淺層網(wǎng)絡結(jié)構(gòu)具有更好的特征學習能力;(2)通過逐層訓練的方式使得深層網(wǎng)絡結(jié)構(gòu)能得到很好地訓練。此后,有較多的深度學習模型相繼被提出,這些模型也印證了Hinton的觀點。
傳統(tǒng)神經(jīng)網(wǎng)絡的訓練方法主要是采用反向傳播算法(BP)的方式,采用隨機初始化的方法,通過迭代的方式計算當前網(wǎng)絡的輸出,然后根據(jù)當前預測標簽和實際標簽之間的差去不斷調(diào)整前面各層之間的參數(shù),直到整個模型收斂。傳統(tǒng)的BP算法作為一種有監(jiān)督學習算法,存在著梯度彌散問題、訓練樣本不足以及局部最優(yōu)等問題,與此同時,由于互聯(lián)網(wǎng)中海量無標簽圖像呈爆發(fā)式增長,傳統(tǒng)的BP算法已不能滿足日前海量無標簽圖像分類的需求。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是針對傳統(tǒng)神經(jīng)網(wǎng)絡的訓練方法存在著梯度彌散問題、訓練樣本不足以及局部最優(yōu)的問題,提出一種基于K-means與深度學習的圖像分類算法。
為實現(xiàn)上述目的,本發(fā)明所設計的一種基于K-means與深度學習的圖像分類算法,包括如下步驟:
1)將無標簽圖像作為輸入圖像,并隨機抽取圖像塊構(gòu)成大小相同的無標簽圖像集;
2)采用K-means算法提取一次最佳聚類中心;
3)構(gòu)建特征映射函數(shù),提取無標簽圖像集的圖像特征;
4)進行池化操作與歸一化處理;
5)采用K-means算法提取二次最佳聚類中心,并采用卷積操作,提取最終圖像特征,對最終圖像特征進行標準化處理;
6)通過分揀器對經(jīng)過標準化處理的最終圖像特征進行分類。
優(yōu)選地,所述步驟2)的具體步驟包括:
21)設定k個初始的聚類中心{μ1,μ2,μ3…μk},k為自然數(shù),建立初始化的準則函數(shù)
其中,μj為每一個樣本x(i)對應的聚類中心,j=1~k,i為自然數(shù),且i>j;x(i)表示n個無標簽圖像集中的樣本,n為自然數(shù),表示無標簽圖像集中樣本的個數(shù)。
22)依次求取每一個樣本x(i)到所有初始的聚類中心{μ1,μ2,μ3…μk}的距離的最小值,記為該樣本的類別標簽c(i),將該樣本x(i)歸為c(i)類,再根據(jù)所述類別標簽c(i)更新計算聚類中心,得到過程聚類中心μj′,j=1~k;
c(i)=argmin||x(i)-μj′||
23)將所有所述過程聚類中心μj′帶入準則函數(shù)計算,判斷準則函數(shù)是否收斂,否則返回步驟22),是則將至步驟24);
24)將過程聚類中心μj′確定為一次最佳聚類中心{μ′1,μ′2,μ′3…μ′k},將每一個樣本x(i)歸類至距離最近的聚類中心,記為xj(i),每一個樣本x(i)到距離最近的聚類中心的類別標簽記為cj(i)。
優(yōu)選地,所述步驟3)的具體步驟為:定義樣本x(i)的特征映射函數(shù),提取特征向量y(i),其中h(z)表示每一類中所有樣本到聚類中心的距離的平均值,Zj(i)表示每一類中的每一個樣本x(i)到對應的聚類中心的距離;
y(i)=fk(x)=max{0,h(z)-Zj(i)}
Zj(i)=||x(i)-μj||2
優(yōu)選地,所述步驟4)中歸一化處理的公式為:
y(i)是樣本圖像塊的特征向量,var和mean表示方差和均值,σ是去噪常量,是歸一化處理后的圖像塊的特征向量。
優(yōu)選地,所述步驟5)的具體過程包括:
51)設定p個初始的聚類中心{μ1,μ2,μ3…μp},p為自然數(shù),重復步驟2),得到二次最佳聚類中心{μ1′,μ2′,μ3′…μ′p};
52)采用卷積操作,提取最終圖像特征卷積公式為:
其中為最終圖像特征,μl為二次最佳聚類中心,l=1~p;
53)對最終圖像特征進行歸一化處理,歸一化處理的公式同步驟4)。
優(yōu)選地,所述步驟1)與步驟2)之間還包括對無標簽圖像集進行歸一化和白化處理的預處理步驟。
優(yōu)選地,所述白化處理的具體過程包括:
A)計算協(xié)方差矩陣∑
其中,表示歸一化處理后的表示無標簽圖像集中的樣本,n為表示無標簽圖像集中樣本的個數(shù);
B)令協(xié)方差矩陣∑的特征向量U為U=[u1,u2…un],UTU=I,特征向量u1,u2…un構(gòu)成一個基向量,用來映射數(shù)據(jù),表示旋轉(zhuǎn)后的圖像,輸入歸一化處理后的無標簽圖像集中的樣本以特征向量U為基向量表示為
C)設協(xié)方差矩陣∑的特征值為λ2,…,λn,則PCA白化后的圖像為
其中ε表示為平滑圖像塊的常量。
本發(fā)明的優(yōu)點包括:
(1)采用無監(jiān)督學習算法K-means作為深層網(wǎng)絡結(jié)構(gòu)的訓練方法,避免了對各種參數(shù)的訓練,只需訓練字典(即聚類中心),使得訓練過程簡單,時間效率高,具有簡單、高效、訓練參數(shù)少等優(yōu)點,對于海量高維圖像的分類具有很好的效果。
(2)對輸入圖像進行預處理,達到改善圖像分類效果,提高分類精度的效果。
(3)采取歸一化操作,增強圖像對比度以減少光線的影響。
(4)由于圖像數(shù)據(jù)間存在一定的相關(guān)性,本發(fā)明采取PCA白化處理消除圖像間的冗余性。
(5)采取均值池化處理降低特征向量的維數(shù)和整合圖像特征,待池化圖像特征后,為了平衡特征的各個分量的影響,對已池化的圖像特征進行歸一化處理,以改善后續(xù)Softmax分類器對圖像特征的分類效果。
附圖說明
圖1為本發(fā)明一種基于K-means與深度學習的圖像分類算法的流程圖;
圖2為K-means算法流程圖;
圖3為卷積提取特征示意圖;
圖4a為三種模型對MNIST數(shù)據(jù)集分類的分類準確率與迭代次數(shù)的關(guān)系圖;
圖4b為三種模型對Cifar-10數(shù)據(jù)集分類的分類準確率與迭代次數(shù)的關(guān)系圖;
圖4c為三種模型對The four-vehicle數(shù)據(jù)集分類的分類準確率與迭代次數(shù)的關(guān)系圖。
具體實施方式
以下結(jié)合附圖和具體實施例對本發(fā)明作進一步的詳細描述。
如圖1和圖2所示,本發(fā)明一種基于K-means與深度學習的圖像分類算法,包括如下步驟:
1)將無標簽圖像作為輸入圖像,并隨機抽取圖像塊構(gòu)成大小相同的無標簽圖像集。本實施例中設置無標簽圖像集的樣本數(shù)量為100,000個,對應的樣本的大小為12*12*3的圖像塊。
對無標簽圖像集進行預處理,包括歸一化處理和白化處理。
歸一化處理的過程為:
其中,x為輸入的無標簽圖像集的樣本,表示歸一化處理后的表示無標簽圖像集中的樣本,var和mean分別表示方差和均值,σ為去噪常量,避免分母為0和對圖像去噪。
白化處理的過程為:
A)計算協(xié)方差矩陣∑
其中,表示歸一化處理后的表示無標簽圖像集中的樣本,n為表示無標簽圖像集中樣本的個數(shù),此例中n=100,000。
B)令協(xié)方差矩陣∑的特征向量U為U=[u1,u2…un],UTU=I,特征向量u1,u2…un構(gòu)成一個基向量,用來映射數(shù)據(jù),表示旋轉(zhuǎn)后的圖像,輸入歸一化處理后的無標簽圖像集中的樣本以特征向量U為基向量表示為
C)設協(xié)方差矩陣∑的特征值為λ2,…,λn,則PCA白化后的圖像為
其中ε表示為平滑圖像塊的常量。
2)采用K-means算法提取一次最佳聚類中心。
將預處理后的無標簽圖像集作為K-means聚類數(shù)據(jù),通過K-means聚類算法訓練網(wǎng)絡得到聚類中心,也就是字典。K-means聚類算法作為一種無監(jiān)督學習算法,避免了對各種參數(shù)的訓練,只需訓練字典,使得訓練過程簡單,時間效率高。
令預處理后的無標簽圖像集為{x(1),x(2),x(3),…,x(n)},x(i)∈Rn(其中n表示圖像集中樣本的個數(shù),i=1~n,此例中n=100,000,x(i)表示n個樣本中的某一個樣本,Rn表示n維向量),通過K-means聚類算法對無標簽圖像集進行聚類。
21)設定k個初始的聚類中心{μ1,μ2,μ3…μk},k為自然數(shù),此例中取k=1600,建立初始化的準則函數(shù)
其中,μj為每一個樣本x(i)對應的聚類中心,j=1~k,i、j為自然數(shù),且i>j;x(i)表示n個無標簽圖像集中的樣本。
22)依次求取每一個樣本x(i)到所有初始的聚類中心{μ1,μ2,μ3…μk}的距離的最小值,記為該樣本的類別標簽c(i),將該樣本x(i)歸為c(i)類,再根據(jù)所述類別標簽c(i)更新計算聚類中心,得到過程聚類中心μj′,j=1~k。
c(i)=argmin||x(i)-μj′||
23)將所有過程聚類中心μj′帶入準則函數(shù)計算,判斷準則函數(shù)是否收斂,否則返回步驟22),是則將至步驟24)。
24)將過程聚類中心μj′確定為一次最佳聚類中心{μ′1,μ′2,μ′3…μ′k},將每一個樣本x(i)歸類至距離最近的聚類中心,記為xj(i),每一個樣本x(i)到距離最近的聚類中心的類別標簽記為cj(i)。
3)構(gòu)建特征映射函數(shù),提取無標簽圖像集的圖像特征。
定義每一個樣本x(i)的特征映射函數(shù),提取特征向量y(i),其中h(z)表示每一類中所有樣本到聚類中心的距離的平均值,Zj(i)表示每一類中的所有樣本到對應的聚類中心的距離;
y(i)=fk(x)=max{0,h(z)-Zj(i)}
Zj(i)=||x(i)-μj||2
當特征映射函數(shù)輸出值為0時,表示該特征到聚類中心的距離大于“平均值”。對每一幅輸入64*64大小的圖像,設定的步長s=1,選取感受野大小(即在64*64大小的圖像塊中選取的區(qū)域大小)為12*12的樣本塊作為特征映射函數(shù)的輸入,將樣本塊映射為k維的特征表達,對于每一幅圖像能夠得到一個大小為(64-12+1)*(64-12+1)個k維的特征。這樣保證輸出大多數(shù)特征值為0,使其具有稀疏性,這種稀疏表示被廣泛的運用于計算機視覺中。
4)進行池化操作與歸一化處理。
在此之后,我們通過池化處理降低特征向量的維數(shù)。
因為通過特征映射函數(shù)得到的圖像特征向量維數(shù)過高,不利于Softmax分類器對圖像特征進行分類和容易出現(xiàn)過擬合,所以我們對提取的圖像特征采取均值池化處理降低特征向量的維數(shù)和整合圖像特征。待池化圖像特征后,為了平衡特征的各個分量的影響,以改善后續(xù)Softmax分類器對圖像特征的分類效果,我們對已池化的圖像特征進行歸一化處理。
歸一化處理的公式為:
是標準化處理后的圖像塊的特征向量,y(i)是樣本圖像塊的特征向量,var和mean表示方差和均值,σ是去噪常量。
5)采用K-means算法提取二次最佳聚類中心,并采用卷積操作,提取最終圖像特征,對最終圖像特征進行標準化處理。通過訓練得到得到a*a大小的圖像塊特征,我們將其作為卷積核與輸入圖像進行卷積操作,提取圖像特征,如圖2所示。
51)設定p個初始的聚類中心{μ1,μ2,μ3…μp},p為自然數(shù),此例中取p=2000,重復步驟21)~23),將步驟21)~23)中的k替換為p,得到二次最佳聚類中心{μ1′,μ2′,μ3′…μ′p};
52)采用卷積操作,將輸入的圖像塊的最終圖像特征與提取的聚類中心做卷積,提取最終圖像特征卷積公式為:
其中為最終圖像特征,μl為二次最佳聚類中心,l=1~p;
53)對最終圖像特征進行歸一化處理,以再次平衡特征的各個分量的影響,歸一化處理的公式同步驟4)。
6)通過Softmax分揀器對經(jīng)過歸一化處理的最終圖像特征進行分類。
實驗數(shù)據(jù):
本發(fā)明提出的一種基于K-means與深度學習的圖像分類算法(下表中表示為KDL),與經(jīng)典的SAE、Stacked SAE算法相比較。實驗結(jié)果如表1~表3所示。
從表1可看出,在對MNIST數(shù)據(jù)集分類中,本文提出的KDL模型分類準確率在迭代300次時達到最大值97.52%,較稀疏自編碼器模型(SAE)和堆棧自編碼器(Stacked SAE)分別高出4.52%和16.8%。由圖4a可知,KDL模型對MNIST數(shù)據(jù)集分類準確率隨著迭代次數(shù)增加始終遠高于SAE模型和Stacked SAE模型。因為SAE模型采用單層網(wǎng)絡結(jié)構(gòu)不能有效、準確的表示圖像特征,所以本文采用K-means多層網(wǎng)絡結(jié)構(gòu)具有更好的表達圖像特征的能力。實驗數(shù)據(jù)表明KDL模型整體分類性能優(yōu)于SAE模型,也符合我們預期分析的實驗結(jié)果。與Stacked SAE模型相比,KDL模型相比Stacked SAE模型在訓練過程和分類過程中具有簡單、高效、訓練參數(shù)少等優(yōu)點,所以其分類性能優(yōu)于Stacked SAE模型。實驗數(shù)據(jù)同樣證實,KDL模型在分類識別準確率上遠高于Stacked SAE模型。
表1.三種模型在MNIST數(shù)據(jù)集上分類準確率
從表2可看出,在對Cifar-10數(shù)據(jù)集分類中,當?shù)螖?shù)為100時,KDL模型分類準確率為61.34%,較稀疏自編碼器模型(SAE)和堆棧自編碼器(Stacked SAE)分別高出1.65%和31.02%。又從圖4b中可知,隨著迭代次數(shù)增加,三種模型分類準確率處于緩慢增長狀態(tài)。此時,KDL模型識別率低于SAE模型不到1%,而高出Stacked SAE模型22.2%。由于實驗結(jié)果不可避免存在誤差以及對不同數(shù)據(jù)集分類時采用相同實驗參數(shù),可能導致實驗結(jié)果存在一定偏差。整體實驗數(shù)據(jù)表明,KDL模型在對Cifar-10數(shù)據(jù)集的分類準確率高于另兩種模型的分類準確率。
表2.三種模型在Cifar-10數(shù)據(jù)集上分類準確率
從表3可看出,在對The four-vehicle數(shù)據(jù)集分類中,KDL模型分類識別準確率在迭代100次時達到最大值80.87%,較稀疏自編碼器模型(SAE)和堆棧自編碼器(Stacked SAE)分別高出2.32%和16.9%。從圖4c中可知,隨著迭代次數(shù)增加,KDL模型分類識別準確率始終高于SAE模型和Stacked SAE模型。SAE模型分類準確率隨著迭代次數(shù)增加處于先增長后下降狀態(tài),在迭代次數(shù)為400時達到最大值79.47%。Stacked SAE模型分類準確率隨著迭代次數(shù)增加也處于先增長后下降狀態(tài),在迭代次數(shù)為200時達到最大值67.31%。綜合上述分析可得,KDL模型分類識別性能優(yōu)于SAE模型和Stacked SAE模型。
表3.三種模型在The four-vehicle數(shù)據(jù)集上分類準確率
通過三種模型在三個數(shù)據(jù)集上分類準確率可得,本文提出的基于K-means與深度學習的KDL圖像分類模型,不僅在分類識別準確率上優(yōu)于SAE模型和Stacked SAE模型,而且還具有K-means聚類算法簡單、高效、學習參數(shù)少的優(yōu)點以及深度學習所具有的擅長處理大規(guī)模圖像的能力。
除上述實例外,本發(fā)明還可以有其它實現(xiàn)形式,凡采用等同替換或等效變換形成的方案,均落在本專利要求的保護范圍內(nèi)。
本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。