(1.浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310023;2.浙江大學(xué)醫(yī)學(xué)院附屬浙江醫(yī)院,浙江 杭州 310023)
近年來(lái),兒童青少年生長(zhǎng)發(fā)育問(wèn)題受到廣泛關(guān)注。國(guó)務(wù)院在2017年發(fā)布的《國(guó)民營(yíng)養(yǎng)計(jì)劃》中明確指出:到2020年,中國(guó)兒童青少年的生長(zhǎng)遲緩率要保持在5%以下[1]。在我國(guó),針對(duì)兒童成年身高預(yù)測(cè)的研究主要應(yīng)用在運(yùn)動(dòng)員的選材方面[2]。在運(yùn)動(dòng)員選材時(shí),身高是一項(xiàng)十分重要的形態(tài)指標(biāo)。有些項(xiàng)目需要運(yùn)動(dòng)員個(gè)子高一些,如籃球、排球等;有些項(xiàng)目需要運(yùn)動(dòng)員個(gè)子矮一些,如舉重、跳水等。這就需要教練員在選拔運(yùn)動(dòng)員之前能夠準(zhǔn)確預(yù)測(cè)他們成年后的身高[3]。兒童青少年在生長(zhǎng)發(fā)育過(guò)程中可能會(huì)因?yàn)槟承┘に氐娜笔в绊懮砀叩脑鲩L(zhǎng),如生長(zhǎng)激素的缺失會(huì)導(dǎo)致兒童身材矮小,無(wú)法達(dá)到同齡人的標(biāo)準(zhǔn)身高[4]。對(duì)兒童青少年成年后身高的預(yù)測(cè),不但能夠及時(shí)發(fā)現(xiàn)兒童青少年在生長(zhǎng)發(fā)育過(guò)程中的異常情況,而且還能及時(shí)進(jìn)行干預(yù)治療,幫助其減少發(fā)育異常帶來(lái)的不良影響。兒童青少年的成年身高作為評(píng)估其生長(zhǎng)發(fā)育情況的一項(xiàng)重要指標(biāo),一直是大家關(guān)心的重點(diǎn)[5]。因此,提出一種較為精確的身高預(yù)測(cè)方法具有重要的社會(huì)意義。目前,國(guó)內(nèi)外的專家學(xué)者提出了很多兒童成年身高預(yù)測(cè)方法:賀矗[6]提出了一種利用赤足跡來(lái)預(yù)測(cè)身高的方法,根據(jù)主成分分析法從赤足跡中得到主成分,利用這些主成分構(gòu)建的多元回歸模型雖然比當(dāng)前已有的多元回歸方程準(zhǔn)確度更高,但是該方法實(shí)驗(yàn)時(shí)所使用的樣本量較少,實(shí)驗(yàn)結(jié)果的適用性還有待進(jìn)一步驗(yàn)證;潘嘉嚴(yán)等[7]對(duì)TW2法中的身高預(yù)測(cè)公式進(jìn)行了改進(jìn),得到了TW3成年身高預(yù)測(cè)改良法,與傳統(tǒng)的身高預(yù)測(cè)方法相比,準(zhǔn)確度得到了提高;Karlberg等[8]利用父母身高、兒童的妊娠長(zhǎng)度、出生時(shí)的大小、最高峰速度的估計(jì)年齡(PHV)和8歲之前的身高測(cè)量值,結(jié)合多元回歸分析,預(yù)測(cè)兒童青少年的成年身高;Beunen等[9]使用Beunen-Malina-Freitas方法來(lái)預(yù)測(cè)女孩的成年身高,該方法雖然在預(yù)測(cè)12~15 歲女孩的成年身高時(shí)是有效的,但是在預(yù)測(cè)較低年齡段女孩成年身高時(shí)準(zhǔn)確度較低。后面兩個(gè)方法所使用的實(shí)驗(yàn)數(shù)據(jù)并非來(lái)自中國(guó),并且年代久遠(yuǎn),因此不太適用于中國(guó)人口或具有中國(guó)血統(tǒng)的人口。隨著人工智能領(lǐng)域的興起,機(jī)器學(xué)習(xí)的方法在兒童青少年身高預(yù)測(cè)上被廣泛應(yīng)用:Shmoish等[10]根據(jù)兒童青少年的身高和體重?cái)?shù)據(jù),分析了線性、多層感知機(jī)(MLP)、決策樹和隨機(jī)森林等回歸模型預(yù)測(cè)兒童成年身高的可行性,發(fā)現(xiàn)隨機(jī)森林回歸模型預(yù)測(cè)精度較好;Thodberg等[11]提出了一種基于骨齡自動(dòng)評(píng)判的成人身高預(yù)測(cè)新方法,并取得了不錯(cuò)的結(jié)果。
雖然目前已有大量的身高預(yù)測(cè)方法,但是大多數(shù)方法都已經(jīng)隨著兒童青少年身體素質(zhì)的提升而被逐漸淘汰,并且預(yù)測(cè)的準(zhǔn)確率也不夠高。為了準(zhǔn)確預(yù)測(cè)兒童青少年的成年身高,筆者基于BP神經(jīng)網(wǎng)絡(luò)提出一種高精度的兒童成年身高預(yù)測(cè)方法。針對(duì)BP神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu)解的不足,提出一種基于位置策略的蟻獅算法(Location strategy ant lion optimization,LSALO)并對(duì)其進(jìn)行優(yōu)化。該算法的主要改進(jìn)之處在于改變了螞蟻隨機(jī)游走的方式,加強(qiáng)了算法的全局搜索能力。
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差反向傳播算法進(jìn)行學(xué)習(xí)的多層前饋網(wǎng)絡(luò),由輸入層、隱藏層和輸出層構(gòu)成,是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一[12]。典型的BP神經(jīng)網(wǎng)絡(luò)如圖1所示,圖1中(X1,X2,…,Xn)為一組輸入值,其期望值為Y;Wij為輸入層與隱藏層之間的權(quán)值;i為輸入值的個(gè)數(shù);j為隱藏層神經(jīng)元的個(gè)數(shù);Vj1為隱藏層與輸出層之間的權(quán)值。BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型主要由兩個(gè)過(guò)程構(gòu)成:輸入信號(hào)的正向傳播和誤差信號(hào)的反向傳播。正向傳播時(shí),傳播方向由輸入層經(jīng)過(guò)隱藏層最后從輸出層輸出,若在輸出層得到的值與期望值相差較大,則開始誤差信號(hào)的反向傳播,按誤差梯度下降的方式修正各層權(quán)值[13]。通過(guò)這兩個(gè)過(guò)程對(duì)網(wǎng)絡(luò)進(jìn)行反復(fù)訓(xùn)練,最終使輸出結(jié)果的誤差在要求的范圍內(nèi)。
圖1 BP神經(jīng)網(wǎng)絡(luò)示意圖Fig.1 Schematic diagram of BP neural network
蟻獅優(yōu)化算法ALO (Ant lion optimizer)是澳大利亞學(xué)者M(jìn)irjalili[14]在2015年提出的一種新的群體智能優(yōu)化算法。研究證明:蟻獅算法的尋優(yōu)能力要優(yōu)于粒子群算法、遺傳算法和螢火蟲算法等7 種智能算法,該算法通過(guò)模擬自然界中蟻獅捕捉螞蟻的行為進(jìn)行全局最優(yōu)解的搜索[14]。蟻獅算法包括以下幾個(gè)角色:螞蟻、蟻獅以及精英蟻獅。螞蟻代表嘗試解,它可以圍繞蟻獅隨機(jī)游走,嘗試尋找解空間上的最優(yōu)解;蟻獅代表局部最優(yōu)解,當(dāng)圍繞蟻獅游走的螞蟻搜索到比該蟻獅更優(yōu)的位置時(shí),蟻獅會(huì)將螞蟻“吃掉”(將螞蟻當(dāng)前位置賦值給蟻獅),取代螞蟻當(dāng)前的位置;精英蟻獅代表全局最優(yōu)解,每次更新后,都會(huì)從全部蟻獅中選取位置最好的蟻獅作為精英蟻獅。通過(guò)這樣不斷迭代,最后得到一個(gè)較精確的全局最優(yōu)解。
螞蟻的隨機(jī)游走可以通過(guò)數(shù)學(xué)的方式表示為
X(t)=[0,cumsum(2r(1)-1),cumsum(2r(t)-
1),…,cumsum(2r(T)-1)]
(1)
式中:cumsum為位置的累加和;t為當(dāng)前的迭代次數(shù);T為最大迭代次數(shù);r(t)為一個(gè)隨機(jī)函數(shù),表示為
(2)
式中rand為在[0,1]的范圍內(nèi)生成的隨機(jī)數(shù)。螞蟻的游走范圍并不是無(wú)限制的,螞蟻只能在搜索空間內(nèi)發(fā)生隨機(jī)游走的動(dòng)作,具體公式為
(3)
(4)
(5)
式中:ct為所有變量在第t次迭代時(shí)的最小值;dt為所有變量在第t次迭代時(shí)的最大值。
通過(guò)適應(yīng)度函數(shù)可以判斷螞蟻位置的優(yōu)劣,并記錄每個(gè)螞蟻的適應(yīng)度值,即
(6)
式中:FOA用來(lái)記錄每組螞蟻的適應(yīng)度;Ki,j為第i個(gè)螞蟻第j維的值;n為螞蟻的數(shù)量;f為適應(yīng)度函數(shù)。
適應(yīng)度越高,說(shuō)明螞蟻的位置越好。在每一次迭代時(shí),如果在蟻獅的狩獵范圍內(nèi)出現(xiàn)適應(yīng)度更高的螞蟻,蟻獅就會(huì)將其捕捉并吃掉,代替螞蟻原來(lái)的位置,即將螞蟻的位置值賦值給蟻獅,表達(dá)式為
(7)
每次迭代之后,從所有蟻獅中選出一只適應(yīng)度最高的蟻獅作為精英蟻獅。當(dāng)?shù)螖?shù)達(dá)到最大迭代次數(shù)或者誤差范圍時(shí)停止搜索,這時(shí)的精英蟻獅即代表解空間范圍內(nèi)的全局最優(yōu)解。
蟻獅算法具有調(diào)節(jié)參數(shù)少、收斂精度高和魯棒性好等優(yōu)點(diǎn),已被應(yīng)用到多種參數(shù)尋優(yōu)場(chǎng)合。在傳統(tǒng)的蟻獅算法中,蟻獅位置的優(yōu)劣是根據(jù)適應(yīng)度來(lái)評(píng)判的,適應(yīng)度高的蟻獅周圍有更多的螞蟻圍繞其游走,找到解空間上全局最優(yōu)解的概率增大。適應(yīng)度低的蟻獅很少會(huì)有螞蟻在其身邊游走,蟻獅作用減小,同時(shí)可能會(huì)因?yàn)橄仾{的位置不佳,算法在一定程度上存在陷入局部最優(yōu)的問(wèn)題。因此,為進(jìn)一步提高蟻獅算法的尋優(yōu)能力,對(duì)算法進(jìn)行改進(jìn)。
在原始的蟻獅算法中,螞蟻圍繞蟻獅進(jìn)行隨機(jī)游走,蟻獅的選擇使用輪盤賭的方式,對(duì)于適應(yīng)度高的蟻獅來(lái)說(shuō)被選中的概率更大。當(dāng)蟻獅所處的位置不夠好時(shí),螞蟻的尋優(yōu)過(guò)程就相當(dāng)于在局部范圍內(nèi)尋找局部最優(yōu)解。為了降低這種情況發(fā)生的概率,在每次迭代時(shí)對(duì)蟻獅進(jìn)行以下替換操作:
Step1假設(shè)原始的蟻獅數(shù)量為n,在一次迭代完成之后,隨機(jī)初始化相同數(shù)量的蟻獅。
Step2計(jì)算新蟻獅群的適應(yīng)度值,對(duì)原蟻獅群和新蟻獅群進(jìn)行排序,適應(yīng)度值較高的蟻獅排在前面。
Step3運(yùn)用貪心選擇機(jī)制選擇適應(yīng)度更高的n個(gè)蟻獅作為下一次迭代的原始蟻獅群。
(8)
(9)
經(jīng)過(guò)替換,原來(lái)位置不好的蟻獅被位置更好的蟻獅所替換。不僅螞蟻在尋找最優(yōu)解,蟻獅也同樣在尋找最優(yōu)解出現(xiàn)的范圍。因此,算法的搜索能力得到了提高。
每個(gè)新替換蟻獅適應(yīng)度較高,但是會(huì)出現(xiàn)未被輪盤賭選中的情況,導(dǎo)致蟻獅替換成為無(wú)意義動(dòng)作,無(wú)法發(fā)揮其作用。因此,只要判斷出有新蟻獅的更替,就使螞蟻圍繞其隨機(jī)游走,保證每個(gè)新蟻獅都有其存在的意義。而精英蟻獅是每次迭代后選出的全局最優(yōu)解,它在很大程度上影響了螞蟻的隨機(jī)游走,所以在每次迭代時(shí),讓螞蟻圍繞精英蟻獅、新替換蟻獅以及通過(guò)輪盤賭選中的蟻獅進(jìn)行隨機(jī)游走。在蟻獅優(yōu)化算法中,前期螞蟻游走的步長(zhǎng)要大,越到后期步長(zhǎng)越小,直到收斂到某一位置附近,所以引入了步長(zhǎng)調(diào)節(jié)函數(shù)y(t),其數(shù)學(xué)表達(dá)式為
(10)
對(duì)螞蟻隨機(jī)游走的過(guò)程進(jìn)行調(diào)整,數(shù)學(xué)表達(dá)式為
(11)
(12)
(13)
圖2 y(t)函數(shù)圖像Fig.2 Function image of y(t)
每次迭代螞蟻隨機(jī)游走的最終位置為
(14)
假設(shè)有m個(gè)蟻獅被替換,螞蟻尋優(yōu)過(guò)程結(jié)束后就會(huì)出現(xiàn)m個(gè)新的螞蟻。這些螞蟻根據(jù)式(14)得到最終位置。螞蟻的位置越好,適應(yīng)度值越高,則越容易被蟻獅“吃掉”。因此,螞蟻的位置在一定程度上決定了最優(yōu)解出現(xiàn)的位置。為了提高LSALO算法的尋優(yōu)效率,對(duì)適應(yīng)度值低的螞蟻進(jìn)行替換。
(15)
(16)
螞蟻替換過(guò)程和蟻獅替換過(guò)程是相輔相成的。蟻獅確定螞蟻的搜索范圍,螞蟻在該范圍內(nèi)尋找最優(yōu)解。在原始的蟻獅算法中,蟻獅的更替只能通過(guò)“吃掉”位置更好的螞蟻來(lái)實(shí)現(xiàn)。算法改進(jìn)后,位置較差螞蟻和蟻獅能夠被位置更好的螞蟻和蟻獅替換,使得算法更容易找到最優(yōu)解,提高了算法的搜索效率。
為了得到BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)權(quán)值,選擇樣本集實(shí)際值與BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值的均方誤差作為預(yù)測(cè)準(zhǔn)確度的判斷標(biāo)準(zhǔn)。均方誤差越小,說(shuō)明當(dāng)前的權(quán)值越好。因此,選擇均方誤差的倒數(shù)作為L(zhǎng)SALO的適應(yīng)度函數(shù),其表達(dá)式為
(17)
式中:FMSE為均方誤差;n為樣本總數(shù);Yi為第i個(gè)樣本實(shí)際值;_Yi為第i個(gè)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值。
LSALO-BP算法由兩個(gè)部分組成,LSALO部分和BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練部分,具體步驟如下:
Step1初始化算法的各項(xiàng)參數(shù)。
Step2計(jì)算每個(gè)蟻獅所在位置的適應(yīng)度值,記錄每個(gè)蟻獅當(dāng)前適應(yīng)度值和全局最優(yōu)值。
Step3記錄每個(gè)蟻獅當(dāng)前適應(yīng)度值和全局最優(yōu)值,將全局最優(yōu)值作為權(quán)值賦值給BP神經(jīng)網(wǎng)絡(luò),運(yùn)行BP神經(jīng)網(wǎng)絡(luò)進(jìn)行一次訓(xùn)練。
Step4根據(jù)BP神經(jīng)網(wǎng)絡(luò)的返回值,判斷是否滿足停止迭代條件,若滿足,結(jié)束循環(huán),否則跳至下一步。
Step5利用式(8,9)替換適應(yīng)度值較低的蟻獅,并利用貪婪選擇機(jī)制選擇蟻獅。
Step6螞蟻根據(jù)式(14)進(jìn)行隨機(jī)游走并更新其位置和適應(yīng)度值。
Step7利用式(15,16)替換適應(yīng)度值低的螞蟻。跳轉(zhuǎn)至Step 3。
LSALO-BP算法流程圖如圖3所示,其中左側(cè)為L(zhǎng)SALO部分,右側(cè)為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練部分。
圖3 LSALO-BP算法流程圖Fig.3 LSALO-BP algorithm flow chart
本研究使用的數(shù)據(jù)集來(lái)自浙江省的中小學(xué)。筆者獲取到兒童的基本信息,并通過(guò)回訪的形式確認(rèn)檢測(cè)者成年后的身高,總計(jì)1 096 人,其中男生647 人,女生449 人。訓(xùn)練集和測(cè)試集的劃分見表1。最終的數(shù)據(jù)信息包括:性別、年齡、骨齡和當(dāng)前身高。這些數(shù)據(jù)來(lái)自浙江省的城市學(xué)校以及鄉(xiāng)村學(xué)校,保證了數(shù)據(jù)的多樣性,并且數(shù)據(jù)的可用性要優(yōu)于來(lái)自醫(yī)院的數(shù)據(jù)。
表1 訓(xùn)練集和測(cè)試集的劃分Table 1 The division of training set and test set 單位:人
通過(guò)對(duì)回訪樣本數(shù)據(jù)的整理分析,樣本中年齡人數(shù)的基本分布情況如圖4,5所示。以6歲為例,表示的是6歲0~12月的人數(shù)。采集的數(shù)據(jù)樣本中,男女生樣本分布較均勻。處于青春期的人數(shù)較多,說(shuō)明兒童在到達(dá)青春期后開始重視自身的身高情況。通過(guò)對(duì)比圖4,5可知女生開始發(fā)育的時(shí)間要早于男生。
圖4 男生年齡人數(shù)分布情況Fig.4 Distribution of boys by age
圖5 女生年齡人數(shù)分布情況Fig.5 Distribution of girls by age
樣本中骨齡的分布情況如圖6,7所示。根據(jù)骨齡和年齡之間的關(guān)系,可將兒童的發(fā)育情況分為3 種,即發(fā)育遲緩、發(fā)育正常和發(fā)育提前。發(fā)育遲緩表示骨齡小于年齡1 歲或1 歲以上,發(fā)育正常表示骨齡和年齡相差在1 歲以內(nèi),發(fā)育提前表示骨齡大于年齡1 歲或1 歲以上。樣本中包括了以上3 種發(fā)育情況的兒童,具有可靠性。
圖6 男生骨齡人數(shù)分布情況Fig.6 Distribution of boys’ bone age
圖7 女生骨齡人數(shù)分布情況Fig.7 Distribution of girls’ bone age
為了驗(yàn)證位置策略的有效性,選取10 個(gè)基準(zhǔn)函數(shù)進(jìn)行算法的對(duì)比實(shí)驗(yàn),結(jié)果如表2所示。表2中:f1~f4為單峰函數(shù);f5~f7為多峰函數(shù);f8~f10為固定低緯度下的多峰函數(shù)。對(duì)比的對(duì)象為原始ALO算法以及文獻(xiàn)[15]提出的OB-L-ALO算法[15]。
表2 基準(zhǔn)函數(shù)Table 2 Benchmark function
為了體現(xiàn)本次對(duì)比實(shí)驗(yàn)的公平性,3 種算法采用相同的參數(shù)設(shè)置,即種群規(guī)模N=30,最大的迭代次數(shù)T=1 000,并且將不同算法對(duì)每個(gè)基準(zhǔn)函數(shù)獨(dú)立運(yùn)行30 次,取實(shí)驗(yàn)結(jié)果的平均值進(jìn)行比較,以減小隨機(jī)性帶來(lái)的影響。ALO算法、OB-L-ALO算法和LSALO算法的實(shí)驗(yàn)結(jié)果如表3所示,ALO算法和LSALO算法的迭代收斂曲線對(duì)比情況如圖8所示。
表3 基準(zhǔn)函數(shù)對(duì)比情況Table 3 Benchmark function comparison
表3 (續(xù))
圖8 基準(zhǔn)函數(shù)的迭代曲線Fig.8 Iteration curve of benchmark function
由表3和圖8可知:與其他算法相比,LSALO算法取得了更好的實(shí)驗(yàn)結(jié)果。對(duì)于單峰函數(shù)f3和f4,LSALO算法的實(shí)驗(yàn)平均結(jié)果相比ALO算法和OB-L-ALO算法提高了1~5 個(gè)數(shù)量級(jí),且標(biāo)準(zhǔn)方差更小,說(shuō)明該算法的尋優(yōu)能力強(qiáng),穩(wěn)定性好。對(duì)比函數(shù)f3和f4的收斂曲線發(fā)現(xiàn),LSALO算法的收斂精度更高。對(duì)于多峰函數(shù)f5,ALO算法在迭代次數(shù)不到100 次時(shí)就陷入了局部最優(yōu),導(dǎo)致算法尋優(yōu)過(guò)程早早結(jié)束。而LSALO算法的位置策略使得該算法不易陷入局部最優(yōu),全局搜索能力更強(qiáng)。對(duì)于固定低緯度下的多峰函數(shù)f8和f9,LSALO算法的結(jié)果平均值已經(jīng)達(dá)到了理論上的最優(yōu)值,尋優(yōu)率達(dá)到了100%。
綜上所述,根據(jù)基準(zhǔn)函數(shù)的優(yōu)化結(jié)果可知:LSALO在全局尋優(yōu)能力和收斂精度方面均優(yōu)于ALO算法和OB-L-ALO算法,說(shuō)明該算法是有效可行的,可以進(jìn)一步應(yīng)用于BP神經(jīng)網(wǎng)絡(luò)的權(quán)值尋優(yōu)問(wèn)題,改進(jìn)后的BP網(wǎng)絡(luò)可用來(lái)預(yù)測(cè)兒童成年身高。
4.3.1 BP網(wǎng)絡(luò)結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)輸入變量選取準(zhǔn)則有兩點(diǎn)[16]:1) 輸入變量應(yīng)與預(yù)測(cè)對(duì)象密切相關(guān);2) 輸入變量之間不能有較強(qiáng)的線性關(guān)系。基于這兩個(gè)準(zhǔn)則,選取兒童檢測(cè)時(shí)的身高、骨齡以及年齡作為輸入量,表達(dá)式為
Xi=(X(age)i,X(boneage)i,X(height)i)
(18)
式中:Xi為第i組輸入值;X(age)i為第i個(gè)兒童的檢測(cè)年齡;X(boneage)i為第i個(gè)兒童當(dāng)前的評(píng)估骨齡;X(height)i為第i個(gè)兒童的當(dāng)前身高。輸出層以兒童成年預(yù)測(cè)身高作為輸出值。
骨齡、年齡等身體基本信息和成年身高之間并不是簡(jiǎn)單的線性關(guān)系,且每個(gè)兒童的生長(zhǎng)發(fā)育情況不同,導(dǎo)致輸入量呈現(xiàn)多樣性的特征。BP神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性映射能力和自學(xué)習(xí)能力,能夠更高效地建立多因子模型[17],本次實(shí)驗(yàn)的BP神經(jīng)網(wǎng)絡(luò)采用雙隱藏層的設(shè)計(jì)。
在BP神經(jīng)網(wǎng)絡(luò)模型中,隱藏層節(jié)點(diǎn)數(shù)太少將導(dǎo)致欠擬合,節(jié)點(diǎn)數(shù)過(guò)多將導(dǎo)致過(guò)擬合,降低神經(jīng)網(wǎng)絡(luò)的泛化能力。常用的隱藏層節(jié)點(diǎn)數(shù)選擇公式為
(19)
式中:NH為隱藏層節(jié)點(diǎn)數(shù);ni為輸入層節(jié)點(diǎn)數(shù);l為輸出層節(jié)點(diǎn)數(shù);?為1~10的常數(shù)。根據(jù)式(19)計(jì)算,隱藏層節(jié)點(diǎn)數(shù)NH的取值范圍可以確定為[2,12]。大量實(shí)驗(yàn)表明:當(dāng)?shù)?層隱藏層節(jié)點(diǎn)數(shù)為輸入層節(jié)點(diǎn)數(shù)的2倍,第2層隱藏層節(jié)點(diǎn)數(shù)和輸入層節(jié)點(diǎn)數(shù)一致時(shí),BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果最好。因此,可以確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為3-6-3-1。
4.3.2 預(yù)測(cè)結(jié)果比較
將LSALO-BP模型與GA-BP模型[18]、PSO-BP模型[19]、BP神經(jīng)網(wǎng)絡(luò)和Bayley-Pinneau法[20]進(jìn)行對(duì)比,對(duì)樣本進(jìn)行預(yù)測(cè)分析。以真實(shí)值和預(yù)測(cè)值的差值是否在±2 cm以內(nèi)作為準(zhǔn)確性的判斷依據(jù)。男生、女生成年身高預(yù)測(cè)的分析結(jié)果分別如表4,5所示。由表4可知:LSALO-BP模型針對(duì)男生的預(yù)測(cè)結(jié)果在準(zhǔn)確性和標(biāo)準(zhǔn)差方面要優(yōu)于其他預(yù)測(cè)模型,準(zhǔn)確率達(dá)到了86.67%,標(biāo)準(zhǔn)差為1.176,相較于BP神經(jīng)網(wǎng)絡(luò),準(zhǔn)確率提高了16.08%;由表5可知:LSALO-BP模型針對(duì)女生的預(yù)測(cè)結(jié)果在準(zhǔn)確性和標(biāo)準(zhǔn)差方面仍然優(yōu)于其他預(yù)測(cè)模型,準(zhǔn)確率達(dá)到了85.32%,標(biāo)準(zhǔn)差為1.615。
表4 男生成年身高預(yù)測(cè)分析Table 4 Predictive analysis of adult height of boys
表5 女生成年身高預(yù)測(cè)分析Table 5 Predictive analysis of adult height of girls
誤差分析結(jié)果采用箱線圖展示,結(jié)果如圖9所示。箱線圖能夠直觀地判斷誤差的離散分布情況,了解誤差的分布狀態(tài),并能識(shí)別出誤差中異常值。誤差的范圍用垂直距離表示,誤差的四分位間距由箱子的高度表示。圖9(a,b)分別表示男生、女生的誤差分析結(jié)果。由圖9(a)可知:LSALO-BP模型預(yù)測(cè)誤差的四分位間距和中位數(shù)都要優(yōu)于其他預(yù)測(cè)模型;由圖9(b)可知:LSALO-BP模型預(yù)測(cè)誤差的四分位間距和中位數(shù)與Bayley-Pinneau法相似,但是異常值的數(shù)量要少于Bayley-Pinneau法。綜合以上分析可知LSALO-BP預(yù)測(cè)模型的性能要優(yōu)于其他預(yù)測(cè)模型。
圖9 誤差分布圖Fig.9 Error distribution map
筆者利用回訪的兒童青少年成年身高樣本,對(duì)基于LSALO-BP模型的兒童青少年成年身高預(yù)測(cè)模型進(jìn)行實(shí)例驗(yàn)證,每個(gè)性別隨機(jī)抽取20 個(gè)實(shí)例,預(yù)測(cè)結(jié)果如表6,7所示,其中年齡、骨齡以及身高指的是當(dāng)時(shí)檢測(cè)時(shí)所采集的數(shù)據(jù),成年身高是回訪采集到的數(shù)據(jù),絕對(duì)差值表示成年身高和成年預(yù)測(cè)身高之間差值的絕對(duì)值。由表6可知:男生的成年身高與成年預(yù)測(cè)身高的絕對(duì)差值總體保持在±2.0 cm范圍內(nèi),最大差值為2.68 cm,最小差值為0.02 cm;由表7可知:女生的成年身高與成年預(yù)測(cè)身高的絕對(duì)差值總體也都保持在±2.0 cm 范圍內(nèi),最大差值為2.42 cm,最小差值為0.02 cm。實(shí)例驗(yàn)證表明:基于LSALO-BP模型的兒童青少年成年身高預(yù)測(cè)模型預(yù)測(cè)結(jié)果精確度較高,誤差波動(dòng)較小,可以用來(lái)預(yù)測(cè)兒童青少年成年身高。
表6 男生成年身高預(yù)測(cè)具體結(jié)果Table 6 Prediction results of adult height of boys
表7 女生成年身高預(yù)測(cè)具體結(jié)果Table 7 Prediction results of adult height of girls
針對(duì)傳統(tǒng)成年身高預(yù)測(cè)存在預(yù)測(cè)方法過(guò)時(shí)、預(yù)測(cè)精度不高等問(wèn)題,基于BP神經(jīng)網(wǎng)絡(luò)提出了一種高精度的兒童成年身高預(yù)測(cè)方法。為了彌補(bǔ)BP神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu)解的不足,提出基于位置策略的蟻獅優(yōu)化算法。該算法通過(guò)改變螞蟻的游走方式和替換方式,增強(qiáng)了全局搜索能力和局部?jī)?yōu)化能力。通過(guò)對(duì)不同基準(zhǔn)函數(shù)的優(yōu)化求解,將LSALO與原始蟻獅算法和其改進(jìn)算法進(jìn)行對(duì)比,驗(yàn)證了位置策略的有效性。將LSALO算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于兒童成年身高預(yù)測(cè),選取4 種不同的模型與其進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果表明:LSALO-BP模型的預(yù)測(cè)精確度更高,誤差波動(dòng)更小,可以準(zhǔn)確地預(yù)測(cè)兒童成年身高。