基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类——附代码
目錄
摘要:
1.蜜蜂優化算法:
2. 卷積神經網絡(CNN)
輸入層
隱含層
輸出層
?3. 本文Matlab代碼:?
摘要:
本文通過蜜蜂優化算法,優化了卷積神經網絡(CNN)中的超參數,主要是網絡的權重和偏差等關鍵參數,使CNN可以達到更加優秀的性能表現,通過使用優化后的CNN進行圖像分類任務,從所得結果可以看出,蜜蜂優化算法對CNN的分類準確度的提升很大,在訓練過程中CNN的分類準確度甚至可以達到100%,充分展示了本文所提方法的有效性。
程序已做標準化處理,使用者可以通過替換原始數據為自己的數據,從而實現需要的功能。
1.蜜蜂優化算法:
蜜蜂算法是受自然界中蜜蜂的覓食行為啟發而提出的一種優化算法。算法中食物源位置代表優化 問題的一組解,由食物源位置及其近鄰域形成一個 小的搜索區域,稱為花叢。
?
在搜索食物的過程中,蜜蜂群首先派出偵察蜂 進行搜索,偵察蜂不斷地從一個食物源飛往另一個 食物源,搜索所有可能的食物源。當搜索到食物源 的收益度( 比如糖的含量) 超過一定量時,偵察蜂返 回蜂巢,卸下蜂蜜并在“跳舞板”上跳一種神奇的“搖 擺舞”。這種“搖擺舞”是蜜蜂群進行信息交流的必 要工具,能使整個蜂群了解到所發現食物源的方位、 到蜂巢的距離和收益度。跳完舞后的偵察蜂帶領守 候在蜂巢外面的跟隨蜂飛回到相應的食物源采蜜, 并且收益度高的食物源將會招募到更多的跟隨蜂前 往采蜜。在采蜜過程中,采蜜蜂計算其正在采蜜的 食物源的收益度,并返回蜂巢跳“搖擺舞”,給蜂群傳 遞當前食物源收益度的信息。如果食物源收益度仍 然較高,將會招募更多的跟隨蜂前往采蜜;
該算法需要設置一些參數,即偵察蜂的數量 n,n 個被搜索的食物源中被選中食物源的數量 m,m 個 食物源中最好食物源的數量 e,為最好 e 個食物源招 募的蜜蜂數量 nep,為其它 m - e 個食物源招募的蜜 蜂數量 nsp,食物源近鄰搜索半徑 ngh 和算法的終止 條件。蜜蜂算法的偽代碼如下:
( 1) 初始化種群的隨機解; ( 2) 評價種群的適應度; ( 3) 當停止準則不滿足時,產生新的種群; ( 4) 為近鄰搜索選擇食物源; ( 5) 招募蜜蜂到選擇的食物源( 為最好的 e 個食 物源招募更多的蜜蜂) 并評價其適應度; ( 6) 從每個花叢中選擇適應度最高的蜜蜂; ( 7) 派遣其余的搜索蜂進行隨機搜索并評價其 適應度; ( 8) 結束循環
2. 卷積神經網絡(CNN)
卷積神經網絡是一種多層非線性前饋神經網 絡,最初被用于復雜圖像的特征識別和提取,以解決 傳統圖像識別技術僅能提取圖像淺層特征的問題, 實現對復雜圖像的自動化處理。典型的卷積神經網 絡包括輸入層、卷積層、激活層、池化層、全連接層和 輸出層,如圖所示:
?
求解網絡模型參數時,給出損失函數沿網絡模 型反向在各層關于模型參數的梯度,并使參數沿梯 度方向更新直至誤差收斂,此方法被稱為隨機梯度下降法等。
輸入層
卷積神經網絡的輸入層可以處理多維數據,常見地,一維卷積神經網絡的輸入層接收一維或二維數組,其中一維數組通常為時間或頻譜采樣;二維數組可能包含多個通道;二維卷積神經網絡的輸入層接收二維或三維數組;三維卷積神經網絡的輸入層接收四維數組。由于卷積神經網絡在域應用較廣,因此許多研究在介紹其結構時預先假設了三維輸入數據,即平面上的二維像素點和RGB通道。
隱含層
卷積神經網絡的隱含層包含卷積層、池化層和全連接層3類常見構筑,在一些更為現代的算法中可能有Inception模塊、殘差塊(residual block)等復雜構筑。在常見構筑中,卷積層和池化層為卷積神經網絡特有。卷積層中的卷積核包含權重系數,而池化層不包含權重系數,因此在文獻中,池化層可能不被認為是獨立的層。以LeNet-5為例,3類常見構筑在隱含層中的順序通常為:輸入-卷積層-池化層-全連接層-輸出。
輸出層
卷積神經網絡中輸出層的上游通常是全連接層,因此其結構和工作原理與傳統前饋神經網絡中的輸出層相同。對于圖像分類問題,輸出層使用邏輯函數或歸一化指數函數(softmax function)輸出分類標簽。在物體識別(object detection)問題中,輸出層可設計為輸出物體的中心坐標、大小和分類。在圖像語義分割中,輸出層直接輸出每個像素的分類結果。
3. 求解結果:
??
??
?3. 本文Matlab代碼:?
總結
以上是生活随笔為你收集整理的基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类——附代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BMI指数
- 下一篇: 实战之从阿里云dataworks的max