孫林 ,蔡怡文
(1.河南師范大學計算機與信息工程學院,新鄉(xiāng),453007;2.天津科技大學人工智能學院,天津,300457)
隨著大數(shù)據(jù)技術(shù)的迅猛發(fā)展,眾多領域中的超高維數(shù)據(jù)往往包含大量的冗余信息和噪聲,大大降低了學習算法的分類性能[1].特征選擇旨在使用一些標準來選取最優(yōu)特征子集,去除冗余特征[2],許多研究者也將仿生優(yōu)化與特征選擇相結(jié)合.例如,Jia et al[3]提出一種新的混合海鷗優(yōu)化的特征選擇算法,但在實際數(shù)據(jù)集上進行特征選擇的效果不好,結(jié)果較差.Peng et al[4]提出一種基于蟻群優(yōu)化的改進特征選擇算法,雖然大幅提升了貝葉斯過濾器的性能,但整體提升效果較差.Xue et al[5]通過生成非主導解(特征子集)的帕累托前沿解將非支配排序的思想引入粒子群算法來解決特征選擇問題,但其收斂效果還有待提升.人工水母搜索(Artificial Jellyfish Search,AJS)算法是2020 年Ezzeldin et al[6]提出的一種新型優(yōu)化算法,其模擬水母的搜尋行為,與蚱蜢算法、蝗蟲算法相比,其尋優(yōu)能力更強,收斂速度更快.水母跟隨洋流運動,水母群的運動分主動和被動兩種,它們之間的運動切換以及它們匯聚成水母簇的過程由時間控制機制來控制.目前尚未見結(jié)合人工水母搜索的特征選擇方法.
圖嵌入是一種將高維數(shù)據(jù)轉(zhuǎn)化為低維向量的表示方法[7],可以運用在人臉識別、無人機自組網(wǎng)鏈路預測、知識圖譜等方面[8],目前已有的圖嵌入算法[9]主要包括基于神經(jīng)網(wǎng)絡的圖嵌入、基于網(wǎng)絡拓撲結(jié)構(gòu)的圖嵌入等.圖像分類中圖片的特征通常是高維的、復雜的,可能會出現(xiàn)由于特征維度過高而導致提取的特征在進行分類時準確率不高的問題,現(xiàn)有很多圖嵌入降維方法.例如,顏偉泰[10]提出一種基于局部保持的圖嵌入監(jiān)督降維方法,但其依賴于完整的類別以及平衡因子.張曉語[11]提出一種基于矩陣分解的多視圖降維算法,但不能有效處理大規(guī)模數(shù)據(jù).在圖像分類過程中特征選擇是一個挑戰(zhàn)[12],大多數(shù)研究者使用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)來進行圖像分類,既可以減少特征數(shù)量,又能增加圖像分類的精度.現(xiàn)在已有大量CNN 以及改進的神經(jīng)網(wǎng)絡用于圖像分類.例如,周衍挺[13]提出一種改進的卷積神經(jīng)網(wǎng)絡,孫克雷等[14]提出一種基于改進Softplus 激活函數(shù)的卷積神經(jīng)網(wǎng)絡模型,劉夢雅和毛劍琳[15]提出一種基于最大池化和平均池化的改進池化模型.這些CNN 雖然能對高維數(shù)據(jù)進行特征提取,但分類精度仍然不高.
當前,數(shù)據(jù)大多以圖像的形式展現(xiàn)出來,選擇特征時就會忽略圖數(shù)據(jù)之間的信息.為了解決這個問題,基于進化計算的圖特征選擇將特征選擇問題轉(zhuǎn)化為特征圖的遍歷問題[16],目前,這一新穎的研究思路仍有待改進和提高.CNN 能夠有效地從大量樣本中學習到相應的特征,避免復雜的特征提取過程,圖嵌入算法能夠很好地捕捉圖的拓撲結(jié)構(gòu),AJS 算法尋優(yōu)能力強,收斂速度快,因此,本文將圖嵌入算法和AJS 算法引入CNN 模型,構(gòu)建了一種基于CNN 與AJS 的圖特征選擇方法.
本文的主要貢獻:(1)根據(jù)特征圖中節(jié)點權(quán)重改進圖嵌入算法中的隨機游走節(jié)點概率,增大權(quán)重大的節(jié)點的游走概率,進而去除冗余特征,使模型的分類準確率得到提升;(2)在AJS 算法的位置更新公式中引入余弦相似度,通過調(diào)整權(quán)重來控制搜索空間,提高算法的收斂速度;(3)將改進后的圖嵌入算法和AJS 算法與CNN 進行結(jié)合,通過基準函數(shù)和數(shù)據(jù)集上的實驗,證明其分類準確率、收斂速度和尋優(yōu)精度均得到有效提升.
1.1 卷積神經(jīng)網(wǎng)絡CNN[17]主要用來探索圖像數(shù)據(jù),其結(jié)構(gòu)包括輸入層、隱藏層和輸出層,隱藏層又包括卷積層、池化層和全連接層.CNN 是深度學習的主要算法之一[18].卷積層的計算如下:
其中,X={xi,j|i=0,…,n;j=0,…,m}為輸入圖像,n和m分別為圖像的行和列,W為卷積核權(quán)重,b為偏置.
輸入圖像X,卷積核為k,填充p行和p列,則經(jīng)過卷積層后輸出的形狀為Xn×m,其中n和m分別為:
其中,h為行,w為列,n為輸入數(shù)據(jù)的行數(shù),m為輸入數(shù)據(jù)的列數(shù),kh為卷積核的行數(shù),kw為卷積核的列數(shù),ph為填充的行數(shù),pw為填充的列數(shù).
池化層[19]只對池化窗口中的元素進行運算,假設{X1,X2,…,Xd}為池化窗口中的元素池化,則最大池化的運算如下:
其中,Xi為池化窗口中的第i個元素,i=1,2,…,d,Y為輸出,Max()為求最大值的函數(shù).
ReLU 函數(shù)[20]是一種線性不飽和的激活函數(shù),其計算如下:
1.2 人工水母搜索在群體內(nèi)部移動的水母被稱為A 類水母,跟隨洋流運動的水母被稱為B 類水母.A 類水母的位置更新為:
其中,Xi為第i個水母的位置,t為迭代時間,Ub和Lb為搜索空間的上限和下限,γ為運動系數(shù).
B 類水母是被動運動,會朝著食物多的方向移動.B 類水母的運動方向為:
時間控制如下式所示:
其中,t為迭代次數(shù),Maxiter為最大迭代次數(shù).
Node2Vec[21]的組合方式是通過兩個參數(shù)p和q進行正則化,q定義了隨機游走通過圖中之前未見節(jié)點的概率,p和q參數(shù)需要根據(jù)情況自行設置.q的計算如下:
其中,d為節(jié)點總數(shù),walk為已經(jīng)遍歷過節(jié)點的總數(shù),WVi為節(jié)點Vi的權(quán)重.
Node2Vec 學習嵌入的轉(zhuǎn)移概率為:
其中,g代表上一個節(jié)點,Vi表示當前節(jié)點,Vj代表下一個準備訪問的節(jié)點,dg,Vj表示上一個節(jié)點與待訪問節(jié)點的距離,dg,Vj=0 代表當前節(jié)點返回上一個節(jié)點,即g→Vi→g.
2.2 基于余弦相似度的人工水母搜索在水母的位置更新中引入一個余弦相似度,人工水母群A 類型運動的人工水母圍繞它們自己的位置運動.余弦相似度的計算為:
其中,Maxiter為最大迭代次數(shù),t為當前迭代次數(shù).在人工水母更新位置增加余弦值,于是,A 類人工水母的位置更新為:
其中,Ub和Lb為搜索空間的上限和下限,γ為運動系數(shù).
2.3 圖特征選擇算法描述將CNN 與圖嵌入算法和AJS 算法相結(jié)合,設計圖特征選擇算法.首先,將數(shù)據(jù)集輸入卷積層,從卷積層輸出后進入池化層,進行三次卷積和三次池化,將輸出的圖像構(gòu)建成圖數(shù)據(jù),再將構(gòu)建好的特征圖根據(jù)圖嵌入進行降維得到一個二維向量;然后,利用水母優(yōu)化算法初始化種群,進行特征選擇,在進行特征選擇時,選擇固定個數(shù)的特征;最后,將特征輸入分類器進行模型訓練以及評估.其算法偽代碼的具體步驟如算法1 所示.
依據(jù)上述圖特征選擇模型,將余弦值加入A 類水母的位置更新,設計基于余弦相似度的AJS 算法(Artificial Jellyfish Search Algorithm Based on Cosine Similarity,CSAJS),如算法2 所示,其偽代碼如下.
在GEARW 和CSAJS 的基礎上,設計基于CNN 與AJS 算法的圖特征選擇算法(Convolutional Neural Network and Artificial Jellyfish Search-Based Graph Feature Selection Algorithm,CAGFS),具體過程如算法3 所示.
3.1 數(shù)據(jù)集與實驗準備為了評估改進算法的效果,實驗分兩部分:(1)從文獻[22]中選擇10 個基準函數(shù)進行算法的優(yōu)化性能測試,測試函數(shù)的詳細信息如表1 所示;(2)從Python 的torchvision.datasets 中選擇四個公共數(shù)據(jù)集MNIST,EMNIST,KMNIST 和FashionMNIST 進行特征選擇測試與分析,具體內(nèi)容如表2 所示.
表1 10 個基準測試函數(shù)的描述Table 1 Description of ten benchmark test functions
表2 實驗使用的四種數(shù)據(jù)集Table 2 Four datasets used in experiments
為了測試算法在四個數(shù)據(jù)集上的分類性能,采用交叉熵損失、整體交叉熵損失[23]、平均分類準確率(Average Classification Accuracy,AccAvg)、精確率、召回率和F1-score 進行測試.整體交叉熵損失由交叉熵損失與樣本數(shù)量相乘得到,與數(shù)據(jù)集的大小有關,數(shù)據(jù)集大,則整體交叉熵損失較大,數(shù)據(jù)集小,則整體交叉熵損失較小.
操作系統(tǒng)及環(huán)境:Windows 7,Python 3.7.4;框架Pytorch 1.9.1;CPU Intel(R)Corr(TM)i5-6500.為了避免實驗結(jié)果的隨機性,確保實驗結(jié)果的公平性,所有對比算法均運行20 次,取其結(jié)果的平均值.將本文的CAGFS 算法與三種算法進行對比實驗,分別是傳統(tǒng)的CNN 模型[24]、LeNet模型[25]和基于平均池化的LeNet 模型(LeNet Model Based on Average Pooling,AVGLeNet)[26].改進后的CAGFS 模型的網(wǎng)絡參數(shù)如表3 所示,四種模型均采用SGD 優(yōu)化器,學習率設置為3e-2,批量大小設置為128.
表3 改進后的網(wǎng)絡參數(shù)Table 3 Improved network parameters
3.2 優(yōu)化性能分析為了檢驗本文CSAJS 算法的優(yōu)化性能,分別將CSAJS 算法、原始的AJS 算法[6]、原始的鯨魚優(yōu)化算法(Whale Optimization Algorithm,WOA)[22]、海洋捕食者算法(Marine Predators Algorithm,MPA)[27]、閃電搜索算法(Lightning Search Algorithm,LSA)[28]和水循環(huán)算法(Water Cycle Algorithm,WCA)[29]在10 個基準測試函數(shù)上進行尋優(yōu).種群規(guī)模設置為30,種群維度設置為30,迭代次數(shù)Niter=500,其余參數(shù)均采用對應文獻中的最佳實驗參數(shù),獨立運行20次.為了測試上述六種算法的優(yōu)化性能,采用最優(yōu)值(Best)、最差值(Worst)、平均值(Mean)和標準方差(Standard Deviation,STD),來評判算法的尋優(yōu)精度.最優(yōu)值反映算法最好的尋優(yōu)精度,最差值反映算法最差的尋優(yōu)精度,平均值反映算法的平均尋優(yōu)精度,標準方差反映算法的尋優(yōu)穩(wěn)定性,實驗結(jié)果如表4 所示.實驗數(shù)值越小,效果越好.由表可見,與其他五種算法相比,CSAJS 算法的優(yōu)化性能較好,在f1~f4和f6這五個函數(shù)上均優(yōu)于其他五種算法,尋優(yōu)精度提高了1~10 個數(shù)量級;在f5函數(shù)上,CSAJS 算法的STD略低于MPA算法;在f7函數(shù)上,CSAJS 算法的Mean和STD略低于AJS 算法;在f8函數(shù)上,CSAJS 算法的四種指標均略低于AJS 算法;在f9和f10函數(shù)上,CSAJS 算法的Best,Worst和Mean均略低于其他算法,但是其STD優(yōu)于其他四種算法,說明其尋優(yōu)效果更穩(wěn)定,可能是增加權(quán)重導致搜索范圍擴大造成的.整體來看,CSAJS 算法的尋優(yōu)精度和穩(wěn)定性均高于其他算法.
表4 六種算法在10 個基準測試函數(shù)上的四種評價指標的對比Table 4 Four metrics of six algorithms on ten benchmark test functions
圖1 展示了六種算法在10 個基準函數(shù)上的尋優(yōu)收斂曲線.由圖可見,在f1~f6上CSAJS 算法的收斂速度較快,尋優(yōu)效果也比其他五種算法好,有效減少了迭代次數(shù).但是,在f2,f6和f8上,CSAJS算法陷入了局部最優(yōu),分別在迭代150,150 和250次時達到最優(yōu).在f1,f4和f5函數(shù)上,CSAJS 算法的收斂速度更快,分別在迭代50,50 和100 次時達到最優(yōu).在f7和f8函數(shù)上,CSAJS 算法的收斂速度略低于AJS 算法.在f9和f10函數(shù)上,CSAJS 算法的收斂速度與AJS 算法基本一致,收斂效果也基本一致.由于在f10函數(shù)上的算法尋優(yōu)圖像差距較大,無法完全顯示,所以截取迭代前30 次的部分圖像,這可能是搜索范圍擴大造成的.
圖1 六種優(yōu)化算法在10 個基準測試函數(shù)上的收斂曲線Fig.1 Convergence curves of six optimization algorithms on ten benchmark test functions
整體來看,CSAJS 算法的收斂速度優(yōu)于其他算法,而且能有效減少迭代次數(shù).
3.3 數(shù)據(jù)集實驗結(jié)果為了驗證改進算法的有效性和分類效果,將CAGFS 算法與其他三種算法在四個數(shù)據(jù)集上進行對比實驗.訓練集中單個樣本的交叉熵損失如表5 所示,表中黑體字表示結(jié)果最優(yōu).測試集上的整體交叉熵損失如圖2 所示.
圖2 提出的CAGFS 模型在四個數(shù)據(jù)集上的整體交叉熵損失Fig.2 Overall cross entropy loss of the proposed CAGFS model on four datasets
表5 四種算法在四個數(shù)據(jù)集上的交叉熵損失Table 5 Cross entropy loss of four algorithms on four datasets
由表5 可見,在MNIST 數(shù)據(jù)集上,CAGFS 模型的交叉熵損失最小,說明其訓練效果較好.在EMNIST 數(shù)據(jù)集上,LeNet 模型的交叉熵損失最小,CAGFS 模型的交叉熵損失排第三位,因為EMNIST 數(shù)據(jù)集的數(shù)據(jù)類別比較高,進行特征選擇時選出的特征較少,分類效果較差.在KMNIST數(shù)據(jù)集上,CAGFS 模型的交叉熵損失最小,CNN模型的交叉熵損失最大,說明CNN 模型在增加特征選擇后可以提升分類效果.在FashionMNIST數(shù)據(jù)集上,CAGFS 模型的交叉熵損失最小,說明改進的CAGFS 模型的分類效果較好.
由圖2 可以看出,在MNIST 數(shù)據(jù)集上,CAGFS 模型的整體交叉熵損失的收斂速度較快而且整體交叉熵損失較小,在12 輪之后逐漸平穩(wěn).在EMNIST 數(shù)據(jù)集上,CAGFS 模型雖然收斂較快,但是整體交叉熵損失較大,20 輪之后的整體交叉熵損失達到70 左右.在KMNIST 數(shù)據(jù)集上,CAGFS 模型的收斂速度相對較慢,20 輪之后整體交叉熵損失在50 左右.在FashionMNIST數(shù)據(jù)集上,CAGFS 模型的整體交叉熵損失收斂最慢,收斂曲線較平滑,20 輪之后的整體交叉熵損失在55 左右.總體來看,CAGFS 模型在四個數(shù)據(jù)集上的整體交叉熵損失逐漸減小,說明模型效果較好.CAGFS 模型的整體交叉熵損失在MNIST 數(shù)據(jù)集上最小,在EMNIST 數(shù)據(jù)集上最大,可能是EMNIST 數(shù)據(jù)集的類別較多的緣故,說明該模型更適用于類別較少的數(shù)據(jù)集.
圖3 展示了四種算法在四個測試集上的AccAvg隨著訓練輪數(shù)增加的變化情況.圖3a 為MNIST 數(shù)據(jù)集上的實驗結(jié)果,可以看出,CNN 和CAGFS 的AccAvg在經(jīng)過20 輪訓練之后在97%左右;LeNet 的AccAvg變化不大,一直穩(wěn)定在80%左右;AVGLeNet 的效果最差,AccAvg最高為45%;CAGFS 的AccAvg更高一些.圖3b 為EMNIST 數(shù)據(jù)集上的實驗結(jié)果,四種模型經(jīng)過20 輪的訓練,AccAvg都達到90%.在前四輪訓練中,CNN 的效果較好,CAGFS 次之,說明對于類別較多的數(shù)據(jù)集,CAGFS 的特征選擇的效果不是最佳.圖3c為KMNIST 數(shù)據(jù)集上的實驗結(jié)果,可以看出,在前三輪訓練中,CAGFS 的AccAvg最高,但訓練三輪后CNN 的AccAvg高于CAGFS,訓練10 輪后四個模型的AccAvg逐漸趨于平穩(wěn),達到基本一致.說明經(jīng)過對優(yōu)化算法的改進,CAGFS 明顯在訓練前期提高了算法的分類精度.圖3d 為Fashion-MNIST 數(shù)據(jù)集上的實驗結(jié)果,可以看出,在前兩輪訓練中CNN 的AccAvg上升較快,CAGFS 的AccAvg在前兩輪訓練中比CNN 高,之后則略低于CNN 模型;第17 輪訓練時,CAGFS 的AccAvg上升到90%,而后上下浮動并趨于穩(wěn)定;AVGLeNet和LeNet 的AccAvg穩(wěn)定在75%.
圖3 四種算法在四個數(shù)據(jù)集上的AccAvgFig.3 AccAvg of four algorithms on four datasets
綜上,CAGFS 模型有效地提高了其在數(shù)據(jù)集上的分類精度,尤其在類別較少的數(shù)據(jù)集上,效果比在類別多而特征數(shù)量少的數(shù)據(jù)集上要好.
四種算法在四個訓練集上的AccAvg如表6 所示,表中黑體字表示結(jié)果最優(yōu).由表可見,在MNIST 數(shù)據(jù)集上,CAGFS 的AccAvg比其他三種模型分別高3.1%,21% 和79.7%.在EMNIST數(shù)據(jù)集上,CAGFS 的AccAvg比CNN 低2.2%,這是由于CAGFS 在圖嵌入過程中去掉了一些權(quán)重較大的特征,導致分類結(jié)果不準確,但其AccAvg比其他兩種模型分別高2%和5%.在KMNIST 數(shù)據(jù)集上,CAGFS 的AccAvg比其他三種模型分別高0.2%,9.8% 和27.5%.在FashionMNIST 數(shù)據(jù)集上,CAGFS 的AccAvg比其他三種模型分別高1.3%,8.4%和16.7%.
表6 四種算法在四個數(shù)據(jù)集上的AccAvgTable 6 AccAvg of four algorithms on four datasets
表7 是四種模型在四個數(shù)據(jù)集上訓練20 輪的精確率,表中黑體字表示結(jié)果最優(yōu).由表可見,在MNIST 數(shù)據(jù)集上,CAGFS 的精確率比其他三種模型分別高2.0%,1.1%和1.7%.在EMNIST數(shù)據(jù)集上,CAGFS 的精確率比CNN 和LeNet 分別低2.0% 和7.4%.在KMNIST 數(shù)據(jù)集上,CAGFS 的精確率比其他三種模型分別高5.8%,1.3% 和2.4%.在FashionMNIST 數(shù)據(jù)集上,CAGFS 的精確率比其他三種模型分別高14.3%,1.5%和5.6%.
表7 四種算法在四個數(shù)據(jù)集上的精確率Table 7 Accuracy rates of four algorithms on four datasets
表8 是四種模型在四個數(shù)據(jù)集上訓練20 輪的召回率,表中黑體字表示結(jié)果最優(yōu).由表可見,在MNIST 數(shù)據(jù)集上,CAGFS 的召回率比其他三種模型分別高1.5%,1.5%和1.5%.在EMNIST數(shù)據(jù)集上,CAGFS 的召回率比其他三種模型分別低3.1%,10.1%和7.8%.在KMNIST 數(shù)據(jù)集上,CAGFS 的召回率比AVGLeNet 低7.9%.在FashionMNIST 數(shù)據(jù)集上,CAGFS 的召回率比其他三種模型分別高6.2%,1.0%和2.1%.
表8 四種算法在四個數(shù)據(jù)集上的召回率Table 8 Recall rates of four algorithms on four datasets
表9 是四種模型在四個數(shù)據(jù)集上訓練20 輪的F1-score,表中黑體字表示結(jié)果最優(yōu).由于處理的是多分類問題,而且召回率和F1-score 用的是同一種方法,所以它們的計算結(jié)果一樣.在MNIST 數(shù)據(jù)集上,CAGFS 的F1-score 比其他三種模型分別高1.5%,1.5%和1.5%.在EMNIST數(shù)據(jù)集上,CAGFS 的F1-score 比其他三種模型分別低3.1%,10.1%和7.8%.在KMNIST 數(shù)據(jù)集上,CAGFS 的F1-score 比AVGLeNet 低7.9%.在FashionMNIST 數(shù)據(jù)集上,CAGFS 的F1-score比其他三種模型分別高6.2%,1.0%和2.1%.
表9 四種算法在四個數(shù)據(jù)集上的F1-scoreTable 9 F1-score of four algorithms on four datasets
綜上所述,CAGFS 模型的準確率、精確率、召回率和F1-score 均有一定提升,尤其對那些特征維數(shù)高、類別少的灰度圖像數(shù)據(jù)集,CAGFS 模型經(jīng)過降維和特征選擇后,能很好地去除冗余特征,因而提升了分類準確率.
3.4 模型時間分析為了評估CAGFS 算法的模型復雜度,分別從模型大小、運算時間和模型參數(shù)量進行對比分析,如表10 所示,表中黑體字表示結(jié)果最優(yōu).模型大小指模型在運算過程中占用的計算機內(nèi)存資源,包括模型參數(shù)、特征圖和激活函數(shù),根據(jù)模型的運行存儲形式,可以得到具體的模型體積.運算時間指模型從訓練開始到結(jié)束的時間差,這里計算的是四個數(shù)據(jù)集在同一種模型上的平均運行時間.模型參數(shù)量指模型結(jié)構(gòu)保存和使用所涉及的模型權(quán)重的參數(shù)量.由表可見,CAGFS 的模型較大,因為該算法是三種模型的結(jié)合.CAGFS 的參數(shù)量大于LeNet 和AVGLeNet,但小于CNN,因為CAGFS 采了三層卷積,而LeNet 和AVGLeNet 是兩層卷積,所以CAGFS 的參數(shù)量大于LeNet 和AVGLeNet,小于CNN.CAGFS 的平均運行時間最長,而其他三種算法的運行時間都較短,因為該模型是三種算法的結(jié)合,其復雜度有一定的增加.
表10 四種算法的模型大小、模型參數(shù)量和運行時間Table 10 Model size,number of model parameters and running time of four algorithms
針對特征選擇收斂速度慢且分類精度不高等問題,本文提出一種由CNN、隨機游走圖嵌入和AJS 算法相結(jié)合的圖特征選擇算法.通過特征圖的節(jié)點權(quán)重和邊權(quán)重對圖嵌入的游走概率進行改進,增加權(quán)重較大的節(jié)點特征的游走概率;利用余弦相似度改進AJS 算法的人工水母的位置,提高算法的收斂速度;設計基于CNN 與AJS 的圖特征選擇方法.實驗結(jié)果表明,該算法在前幾輪訓練過程中優(yōu)于其他算法,但作為三種算法的融合,該模型的復雜度較高,特別是在訓練較大的數(shù)據(jù)集上的運行時間較長.由于該算法忽略了特征節(jié)點之間的相似性,所以在特征選擇階段仍然有冗余特征,因此,降低模型復雜度以及解決特征節(jié)點之間的相似性是下一步的工作.