基於卷積神經網絡與超限學習機的高光譜圖像分類算法的製作方法
2023-06-07 15:34:26
本發明涉及一種算法機器學習算法用於解決高光譜圖像分類問題,特別涉及一種通過組合卷積神經網絡和超限學習機來提升高光譜分類精度。
背景技術:
對於高光譜圖像分類問題,作為高光譜圖像的基礎研究,它一直是高光譜圖像重要的信息獲取手段,高光譜圖像分類的主要目標是根據待測地物的空間幾何信息與光譜信息將圖像中的每個像素劃分為不同的類別。高光譜圖像分類和計算機視覺領域中講樣本分類成不同的類別非常相似,但是它們之間主要的兩個不同的之處在於高光譜圖像的每個像素點有許許多多的光帶,並且高光譜圖像的標籤的樣本有限。因此在有限的樣本和每個像素點有著很高維度的光譜解析度的情況下這給高光譜圖像分類算法提出了嚴峻的挑戰。目前有許許多多的算法用於解決高光譜圖像分類問題,比如奇異譜分析,支持向量機,主成分分析法等等,然而在高光譜圖像分類問題上還是存在許許多多的挑戰,比如高光譜的每個像素點的數據結構非常複雜,數據維度非常大,因此在有限的樣本情況下實現高精度的分類和在時間耗費比較少的時間要尋找最優的參數顯的非常困難,所以既要實現高精度的分類又要減少時間的消耗是一個很大的挑戰。
技術實現要素:
本發明的目的在於克服現有技術的缺點與不足,提供一種既能提高高光譜圖像的分類精度,又能保持比較少的時間的耗費尋找最優的參數的算法。
作為一個單隱層的前饋型神經網絡,超限學習機由於以下優點獲得了廣泛的關注:(1)它相對於支持向量機和其他目前的算法而言有著非常簡單的結構和良好的推廣性能。(2)它有著非常高的計算效率可以大大的減少計算代價。(3)一旦網絡結構被確定以後並不需要調節額外的參數。(4)許許多多的分段連續函數可以作為其隱藏節點的激活函數,比如徑向基函數,正弦函數,sigmoid函數等等。雖然超限學習機有著這麼多的優點,但是它還是有一些缺點,比如分類精度並不太高,因此,既要維持比較高的分類精度又要維持快速的分類速度對於高光譜圖像分類而言仍然是一個非常大的挑戰。
最近,深度學習中的卷積神經網絡被認為是機器學習算法裡面相對而言比較成功的算法,它可以提取高光譜圖像像素點的深度特徵實現高精度的分類,並且在相鄰的兩層,卷積神經網絡通過局部連接模式來探索局部的空間關聯性,基於卷積神經網絡這些優點,它可以實現非常好的分類精度,但是它需要反覆的進行迭代,耗費的時間非常長。因此我們提出讓卷積神經網絡只進行一次迭代來進行高光譜像素的深度特徵的提取,然後把這些卷積神經網絡提取出來的深度特徵作為超限學習機的輸入,由超限學習機進行分類,這樣既可以提高高光譜圖像的分類精度又可以維持比較高的分類速度。
本發明的目的通過下述技術方案實現的:
步驟一:首先對於高光譜數據,為了數據分析的方便性,對其進行歸一化,讓高光譜數據集的取值範圍在0到1之間:
其中xij表示高光譜數據集中的一個數據,max表示高光譜數據集中最大的那個數據。歸一化以後,我們就可以進行第二個步驟。
步驟二:對於高光譜數據,因為它的每個像素點有許許多多的光譜特徵,因此可以把高光譜數據中的像素點看成是一個二維的曲線,因為卷積神經網絡具有提取深度特徵的能力,因此在數據進行歸一化以後,抽取訓練樣本,然後將訓練樣本用來訓練卷積神經網絡,訓練完以後保存卷積神經網絡的參數。
步驟三:在卷積神經網絡訓練完之後,將卷積神經網絡提出出來的光譜特徵作為超限學習機的輸入,對超限學習機進行訓練,訓練完以後保存超限學習機的參數。
步驟四:當卷積神經網絡和超限學習機訓練完以後訓練完以後,將歸一化以後的所有高光譜數據的像素點作為卷積神經網絡的輸入進行光譜特徵重構。
步驟五:卷積神經網絡提取高光譜數據集的像素點的深度特徵後,把這些提取像素點深度的特徵作為超限學習機的輸入,用超限學習機把它進行分類,從而既能實現高精度的分類又能保證時間的耗費的不是很大。
本發明相對於現有技術具有如下的優點及效果:
本發明對於現有技術而言,這是首次利用卷積神經網絡把高光譜的數據集的像素點的光譜特徵進行光譜特徵重構,然後把這些重構後的光譜特徵作為超限學習機進行分類。
本發明不僅維持了算法的高速性,而且提升了高光譜數據集的分類精度。
本發明相對現有技術而言,在進行光譜特徵重構後,還保持了高光譜數據集的空間信息。
附圖說明
圖1所採用的卷積神經網絡的結構;
圖2超限學習機原理圖;
圖3是本發明的完整框架。
具體實施方式
下面結合實施例及附圖對本發明作進一步詳細的描述,但本發明的實施方式不限於此。
具體實施方式:
步驟一:假定x≡(x1,x2,...,xn)∈rn×l為高光譜數據集中的像素點,高光譜數據集有n個像素點,每個像素點有l個光譜特徵,歸一化是將高光譜數據集中的所有數據的數值範圍保持在[0,1]之間,既以下公式:
其中xij表示高光譜數據集中的一個數據,max表示高光譜數據集中最大的那個數據。
步驟二:在高光譜數據集進行歸一化以後那麼接下來就可以利用卷積神經網絡對歸一化後的高光譜數據集的像素點進行光譜特徵重構。如圖1所示,我們所採用的卷積神經網絡有八層,第一層為輸入層,第二層為卷積層,第三層為池化層,第四層為卷積層,第五層為池化層,第六層的作用是光柵化,第七層為全連接層,第八層為光柵化層。
訓練樣本的抽取:
首先將歸一化的高光譜數據集中的每一類樣本隨機抽取一部分(每一類可以抽取百分之五,或者百分之十,百分之十五等等都可以),抽取好之後將這些樣本放進卷積神經網絡進行光譜特徵重構。
卷積神經網絡的訓練過程:
將所抽取的樣本(也就是像素點)放進卷積神經網絡進行訓練,首先卷積神經網絡進行前向傳播,傳播到輸出層通過計算代價函數:
其中p為總共的樣本數量,y和分別是第j個樣本期望的輸出和實際的輸出,第j個樣本期望的輸出的概率值為1,其他的值為0,表達式1{j=y(i)}表示如果第i個訓練樣本的期望值等於j,那麼取值為1,如果不是,則為0。
然後進行反向傳播迭代,反向傳播過程中保存每一層的參數。為了維持所提出的算法的高速性,我們只將卷積神經網絡進行一次迭代,一次迭代完以後保存卷積神經網絡每一個層的參數。
步驟三:在卷積神經網絡訓練完以後,如圖1所示,將卷積神經網絡的第七層的輸出(也就是倒數第二層)的重構後的光譜特徵作為超限學習機的輸入。如圖2所示,對於超限學習機它有三層,首先隨機產生隱層節點的權重ai和偏置bi,用這些重構後的光譜特徵作為輸入,那麼隱層矩陣可以由下式所得:
其中g為激活函數。
隱層矩陣形成後接下裡就可以計算輸出矩陣:
其中表示偽逆。
超限學習機訓練完以後,保存超限學習機的參數。
步驟四:在卷積神經網絡和超限學習機訓練完以後,將歸一化高光譜數據集的所有像素點作為卷積神經網絡的輸入進行光譜特徵重構,在測試過程中,卷積神經網絡的最後一層也就是輸出層不用,直接將第七層所重構後的光譜特徵進行輸出。
步驟五:將卷積神經網絡輸出的光譜特徵作為超限學習機的輸入,從而進行分類。本發明既可以利用超限學習機的高速性,又可以利用卷積神經網絡提取深度特徵的能力,從而既保證了算法的高速性,又提升了高光譜圖像分類的精度。
如圖3所示,此框架為本發明的完整框架。上述實施例為本發明較佳的實施方式,但本發明的實施方式並不受上述實施例的限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護範圍之內。