本發(fā)明屬于計(jì)算機(jī)機(jī)器學(xué)習(xí)領(lǐng)域,特別涉及一種新的卷積神經(jīng)網(wǎng)絡(luò)的加權(quán)算法。
背景技術(shù):
卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetworks)屬于神經(jīng)網(wǎng)絡(luò)的范疇,已經(jīng)在諸如圖像識別和分類的領(lǐng)域證明了其高效的能力。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相比,卷積神經(jīng)網(wǎng)絡(luò)最顯著的兩個(gè)特點(diǎn)是局部連接和權(quán)值共享。局部連接是指每一層的神經(jīng)元并不與上一層的全部神經(jīng)元連接,而是只與其最近的上一層神經(jīng)元相連;權(quán)值共享是指每一層所有神經(jīng)元與前一層神經(jīng)元的連接權(quán)值相等,即某一層某一個(gè)神經(jīng)元與前一層局部連接神經(jīng)元的權(quán)值也適用于該層其他神經(jīng)元。一個(gè)傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)一般分為五層:輸入層、卷積層、池化層、全連接層、輸出層,蘊(yùn)含卷積、非線性處理、池化或者亞采樣、分類四個(gè)主要的操作。其中卷積層是體現(xiàn)局部連接和權(quán)值共享的層次。而全連接層部分與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)基本一致,經(jīng)過多次卷積和池化操作后的數(shù)據(jù)進(jìn)入全連接層進(jìn)行連接并輸出結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)是受人類視覺原理的啟發(fā),對大型圖像數(shù)據(jù)出處理有出色的表現(xiàn),alexkrizhevsky憑借它們贏得2012的imagenet挑戰(zhàn)賽,將分類誤差記錄從26%降到了15%,在當(dāng)時(shí)震驚了世界。但由于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)算法是將二維圖像的像素這種類別統(tǒng)一,結(jié)構(gòu)單一的數(shù)據(jù)以列向量的形式作為輸入數(shù)據(jù),因而如果遇到較為復(fù)雜的多元輸入而無法類比像素之間等同地位的情況時(shí),就會遇到一些難以避免的問題。
大數(shù)據(jù)環(huán)境中,獲取的數(shù)據(jù)來源眾多,其本身對應(yīng)的特征、狀態(tài)、影響因子都有所不同。不同類型的數(shù)據(jù)之間的關(guān)系與圖像數(shù)據(jù)中各像素之間的關(guān)系有著本質(zhì)不同。因此,傳統(tǒng)的適用于圖像數(shù)據(jù)處理的卷積神經(jīng)網(wǎng)絡(luò)算法并不適用于多元多類的數(shù)據(jù)處理。除此之外,對于獲取的數(shù)據(jù),往往并不清楚其對應(yīng)的空間分布(無論是幾何空間還是特征空間),而傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)算法依賴于輸入的訓(xùn)練樣本數(shù)據(jù)來進(jìn)行預(yù)測,這使得預(yù)測的結(jié)果很大程度在樣本數(shù)據(jù)附近有較好的擬合效果,但若樣本數(shù)據(jù)集中在空間的某一側(cè)而待預(yù)測的數(shù)據(jù)位于另一側(cè),則其計(jì)算的準(zhǔn)確性將難以保證。最后,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)無論用于圖像識別還是分類,其結(jié)果的可能情況相對較少,可以事先列舉可行解的集合,但更復(fù)雜的情況在于如果可行解是一個(gè)較大的區(qū)間而難以逐一存儲時(shí),就需要更有效合理的編碼方式。隨著互聯(lián)網(wǎng)大數(shù)據(jù)的發(fā)展,面臨的數(shù)據(jù)情況越發(fā)復(fù)雜,因此這對傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)算法提出了更高的要求。
技術(shù)實(shí)現(xiàn)要素:
為了適應(yīng)大數(shù)據(jù)背景下復(fù)雜多變的數(shù)據(jù)環(huán)境,避免因數(shù)據(jù)類型不一,分布不均等帶來的結(jié)果不可靠問題,同時(shí)優(yōu)化輸出解的狀態(tài),降低時(shí)間上的開銷。本發(fā)明針對現(xiàn)有技術(shù)的不足,提出了一種新的卷積神經(jīng)網(wǎng)絡(luò)的加權(quán)算法。
本發(fā)明所采用的技術(shù)方案是:一種卷積神經(jīng)網(wǎng)絡(luò)的加權(quán)算法,其特征在于,包括以下步驟:
步驟1:獲取m×n的樣本數(shù)據(jù),其中m為樣本數(shù)目,n-1為輸入向量數(shù),第n列為輸出向量;
步驟2:結(jié)合k均值聚類算法剔除粗差;
步驟3:輸入列之間依據(jù)相關(guān)距離,進(jìn)行聚類劃分;
步驟4:構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu);
步驟5:訓(xùn)練神經(jīng)網(wǎng)絡(luò)并采用交叉驗(yàn)證法對訓(xùn)練結(jié)果;
步驟6:輸入規(guī)范化后的待評估數(shù)據(jù),由已訓(xùn)練好的網(wǎng)絡(luò)計(jì)算其輸出,并將輸出結(jié)果由二進(jìn)制轉(zhuǎn)為十進(jìn)制,即為最終所需要的評估結(jié)果。
本發(fā)明相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)算法,在層間神經(jīng)元的局部連接方式中引入了聚類分析以作為其是否連接的判定準(zhǔn)則,這使得本發(fā)明中網(wǎng)絡(luò)模型的局部連接方式相比于傳統(tǒng)算法中固定大小的均勻連接方式更加符合真實(shí)數(shù)據(jù)的自組織關(guān)系。本發(fā)明相比于其他神經(jīng)網(wǎng)絡(luò)算法,所使用的激活函數(shù)結(jié)合了周期性激活函數(shù)和非周期性激活兩種特征,可以更好地在不同神經(jīng)層中實(shí)現(xiàn)所需的局部逼近或全局逼近。本發(fā)明相比于其他機(jī)器學(xué)習(xí)領(lǐng)域的數(shù)學(xué)模型,不需要任何前提假設(shè),只需要獲取已知的輸入輸出數(shù)據(jù)即可建立映射關(guān)系,同時(shí)輸出結(jié)果的二進(jìn)制編碼使得本發(fā)明可以用更少的空間表示更大的解算范圍。
附圖說明
圖1是本發(fā)明實(shí)施例的新型卷積神經(jīng)網(wǎng)絡(luò)算法流程圖。
圖2是本發(fā)明實(shí)施例的k均值粗差剔除算法流程圖。
圖3是本發(fā)明實(shí)施例的基于相關(guān)距離的聚類分析算法流程圖。
圖4是本發(fā)明實(shí)施例的網(wǎng)絡(luò)構(gòu)建流程圖。
圖5是本發(fā)明實(shí)施例的交叉驗(yàn)證法評估訓(xùn)練質(zhì)量流程圖。
具體實(shí)施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明的技術(shù)方案在數(shù)據(jù)多源異構(gòu),分布特征不定,輸出解狀態(tài)未知的大數(shù)據(jù)環(huán)境中理論上具有較好的適應(yīng)性,從而使得卷積神經(jīng)網(wǎng)絡(luò)的相關(guān)算法能應(yīng)用于更多更復(fù)雜的領(lǐng)域。以下結(jié)合boston房價(jià)評估示例,描述本發(fā)明的具體實(shí)施例。
請見圖1,本發(fā)明提供的一種卷積神經(jīng)網(wǎng)絡(luò)的加權(quán)算法,包括以下步驟:
步驟1:獲取m×n的樣本數(shù)據(jù),其中m為樣本數(shù)目,n-1為輸入向量數(shù),第n列為輸出向量;
獲取.csv格式的boston房價(jià)數(shù)據(jù)。此項(xiàng)數(shù)據(jù)是keras深度學(xué)習(xí)相關(guān)說明文檔提供的示例數(shù)據(jù),共有14列506行,前13列為影響房價(jià)的各項(xiàng)指標(biāo)的數(shù)值化評估結(jié)果,第14列為boston地區(qū)的房價(jià),單位為千美元。具體數(shù)據(jù)可訪問https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data。
步驟2:結(jié)合k均值聚類算法剔除粗差;
實(shí)際獲取的原始數(shù)據(jù)需要對其進(jìn)行清洗,經(jīng)過粗差剔除后才能作為樣本數(shù)據(jù),以避免異常值對網(wǎng)絡(luò)訓(xùn)練過程的干擾。以本實(shí)施例所給數(shù)據(jù)為例,結(jié)合k均值聚類算法剔除粗差,請見圖2,其具體流程如下:
步驟2.1:將第i行的1~13列數(shù)據(jù)記為點(diǎn)pi=(x1,x2,…,x13),其維度大小等于13。第14列數(shù)據(jù)記為yi。對所有行執(zhí)行step1操作;
步驟2.2:在m=506點(diǎn)pi中隨機(jī)選取k=10個(gè),作為初始聚類中心,剩余各點(diǎn)依次計(jì)算與k個(gè)點(diǎn)的歐式距離
步驟2.3:劃分結(jié)束后,將該類別中所有點(diǎn)的均值作為新的聚類中心,比較新舊聚類中心是否有變化。若無,執(zhí)行step4。若有,轉(zhuǎn)入step2,以新的的聚類中心重新進(jìn)行劃分。
步驟2.4:完成聚類后,位于同一類別中的各點(diǎn)pi可視為具有相似的房產(chǎn)指標(biāo)評估信息,因此其對應(yīng)房價(jià)yi也應(yīng)基本處在同一水平。計(jì)算同一類別中各點(diǎn)對應(yīng)的yi均值
步驟3:輸入列之間依據(jù)相關(guān)距離,進(jìn)行聚類劃分;
對所給的13項(xiàng)評估指標(biāo),以相關(guān)距離作為劃分依據(jù),進(jìn)行聚類分析。請見圖3,其具體流程如下:
步驟3.1:將每列數(shù)據(jù)記為向量vi(506×1),納入初始集合p=(v1,v2,…,v13)
步驟3.2:計(jì)算集合p中各向量的相關(guān)系數(shù)ρij,并在此基礎(chǔ)上計(jì)算各向量的相關(guān)距離dij=1-|ρij|。選擇相關(guān)距離最小的兩組向量va,vb納入第一個(gè)新生成類別q1,并更新初始集合p,將va,vb從中剔除。
步驟3.3:計(jì)算更新后集合p中各向量的相關(guān)系數(shù)ρ′ij和相關(guān)距離d′ij,選擇相關(guān)距離最小的兩組向量v′a,v′b。并計(jì)算p中各向量與已有的集合類別qj的復(fù)相關(guān)系數(shù)
步驟3.4:判斷集合狀態(tài)是否保持不變或者是否達(dá)到設(shè)定的最大劃分類別數(shù),若上述兩個(gè)條件滿足其中之一,則停止;反之則重復(fù)步驟3.2~步驟3.3。
步驟4:構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu);
網(wǎng)絡(luò)在卷積層部分(局部連接部分)的連接以“最鄰近”和“類別相同”為依據(jù),參考步驟3中的聚類結(jié)果,若連接中出現(xiàn)異于當(dāng)前已有連接中的類別,則放棄該條連接,最終形成非均勻的局部連接形式;在卷積層部分仍采用傳統(tǒng)的sigmoid函數(shù)作為激活函數(shù),而在全連接層部分則采用sin型三角周期函數(shù)作為激活函數(shù);輸入數(shù)據(jù)經(jīng)過規(guī)范化作為輸入層,輸出結(jié)果經(jīng)過二進(jìn)制編碼作為輸出層。
構(gòu)建本發(fā)明技術(shù)方案所涉及的卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu),設(shè)計(jì)連接方式、神經(jīng)層數(shù)、每層神經(jīng)元數(shù)、激活函數(shù)、輸入輸出狀態(tài)、初始化模式、閾值等基本設(shè)置。請見圖4,其具體流程如下:
步驟4.1:房子各項(xiàng)指標(biāo)的評估結(jié)果經(jīng)過歸一化后作為輸入層,房價(jià)經(jīng)過二進(jìn)制編碼后作為輸出層。
步驟4.2:層間神經(jīng)元采用局部連接,但只能連接步驟3中計(jì)算得到的同一類數(shù)據(jù),若連接中出現(xiàn)不同類數(shù)據(jù),則放棄該項(xiàng)連接,最終形成非均勻局部連接。局部連接部分由于形態(tài)非均勻,因此各連接不共享權(quán)值;
步驟4.3:局部連接層采用sigmoid激活函數(shù),全連接層采用sin型三角周期函數(shù)作為激活函數(shù)。
步驟5:訓(xùn)練神經(jīng)網(wǎng)絡(luò)并采用交叉驗(yàn)證法對訓(xùn)練結(jié)果;
這里結(jié)合了交叉驗(yàn)證法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練和評估,請見圖5,其具體流程如下:
步驟5.1:將所給的506個(gè)boston地區(qū)房價(jià)數(shù)據(jù)等分k=10份(大致相等)。
步驟5.2:選擇第i份數(shù)據(jù)作為測試集,其余k-1份數(shù)據(jù)作為訓(xùn)練集,輸入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。訓(xùn)練完成后輸入測試集,計(jì)算網(wǎng)絡(luò)訓(xùn)練的準(zhǔn)確率λi。
步驟5.3:重復(fù)step3,直到每一份數(shù)據(jù)都做過測試集,并得到對應(yīng)的網(wǎng)絡(luò)訓(xùn)練準(zhǔn)確率。
步驟5.4:計(jì)算k=10個(gè)網(wǎng)絡(luò)模型準(zhǔn)確率的均值
步驟5.5:判斷
步驟6:輸入規(guī)范化后的待評估數(shù)據(jù),由已訓(xùn)練好的網(wǎng)絡(luò)計(jì)算其輸出,并將輸出結(jié)果由二進(jìn)制轉(zhuǎn)為十進(jìn)制,即為最終所需要的評估結(jié)果。
若此時(shí)有其他模型(如多元線性回歸模型等)計(jì)算出的結(jié)果或者權(quán)威數(shù)據(jù),可對步驟6計(jì)算的結(jié)果作質(zhì)量分析,其具體流程如下:
步驟6.1:設(shè)n項(xiàng)待評估的數(shù)據(jù)的評估值和參考值分別為xi,
步驟6.2:計(jì)算評估值與參考值的相關(guān)系數(shù)
步驟6.3:計(jì)算評估值與參考值的平均相對偏差
本發(fā)明的技術(shù)方案,與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)相比,具有以下三個(gè)主要技術(shù)特征:
第一,基于相關(guān)距離的聚類分析來確定層間神經(jīng)元的局部連接方式;
步驟一:對于輸入層的各類數(shù)據(jù)x=(x1,x2···xn),首先兩兩計(jì)算他們的相關(guān)系數(shù),
步驟二:計(jì)算x集合元素與y集合元素(實(shí)際上是步驟一中聚類好的一組數(shù)據(jù)集合)的復(fù)相關(guān)系數(shù),比較剩余x集合中的最小相關(guān)距離以及所得的復(fù)相關(guān)距離,前者大則成為y集合中新的元素,反之則納入與之比較的元素類別。循環(huán)迭代上述步驟,直到全部x集合中各類數(shù)據(jù)歸入y集合中新的類別,完成聚類分析,集合y中的每一個(gè)元素代表的是一組相關(guān)性較強(qiáng)的多元數(shù)據(jù)集合。
步驟三:根據(jù)前面聚類分析的結(jié)果確定神經(jīng)元的連接關(guān)系,后一層的神經(jīng)元只能在被判定為同一組的數(shù)據(jù)中進(jìn)行局部連接。如果其鄰近區(qū)域存在不屬于同一組的其他數(shù)據(jù),則選擇不進(jìn)行連接;如果其非鄰近區(qū)域存在屬于同一組的數(shù)據(jù),則仍可選擇連接??梢姡c傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)的局部連接方式相比,本發(fā)明所采用的技術(shù)方案不僅僅是以“最鄰近”作為連接指標(biāo),而是添加了基于相關(guān)距離的聚類分析,每個(gè)神經(jīng)元連接的數(shù)據(jù)不再是固定的,但卻保證了連接的合理性和求解的可靠性。換言之,這是一種非均勻的局部連接方案。
第二,基于周期性的激活函數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)預(yù)測結(jié)果的整體最優(yōu);
本發(fā)明的技術(shù)方案采用兩種類型的激活函數(shù),分別設(shè)置在神經(jīng)網(wǎng)絡(luò)的不同層。在網(wǎng)絡(luò)的局部連接層(即傳統(tǒng)cnn稱之為的卷積層)采用sigmoid函數(shù)
第三,基于二進(jìn)制對輸出層的可行解區(qū)間進(jìn)行編碼;
本發(fā)明的技術(shù)方案針對輸出層的可行解區(qū)間進(jìn)行二進(jìn)制編碼,分為編碼、運(yùn)算、解碼三個(gè)階段。
編碼階段,當(dāng)輸出層可行解為整數(shù)時(shí),則直接將其轉(zhuǎn)化為二進(jìn)制數(shù)。若可行解區(qū)間的最大值max可以確定,則規(guī)定此網(wǎng)絡(luò)的二進(jìn)制編碼總位數(shù)為
運(yùn)算階段,輸出層的神經(jīng)元個(gè)數(shù)取決于二進(jìn)制編碼位數(shù)n,每一個(gè)神經(jīng)元對應(yīng)一個(gè)二進(jìn)制位,其計(jì)算的結(jié)果表示該二進(jìn)制為上出現(xiàn)1的概率,當(dāng)此概率值超過50%時(shí),將該位置為1,否則置為0。對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),將樣本輸出數(shù)據(jù)編碼后,二進(jìn)制每一位對應(yīng)的1,0理解為概率進(jìn)行計(jì)算。
解碼階段,運(yùn)算結(jié)束后,根據(jù)輸出層每一個(gè)神經(jīng)元輸出的二進(jìn)制位,將其轉(zhuǎn)換為十進(jìn)制數(shù)。若可行解區(qū)間為整數(shù),則該十進(jìn)制數(shù)即為最終解;若可行解區(qū)間為實(shí)數(shù),可根據(jù)指定精度的最大小數(shù)位數(shù)m(實(shí)際編碼為m+1以保證精度),將該十進(jìn)制數(shù)÷10m+1,得到精度要求范圍內(nèi)的最終解。
應(yīng)當(dāng)理解的是,本說明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
應(yīng)當(dāng)理解的是,上述針對較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。