王延年 翟偉勛 宋功慶
(西安工程大學(xué),陜西西安,710048)
花式捻線機(jī)是紡織廠花式紗線生產(chǎn)中用到的主要設(shè)備,而在傳統(tǒng)花式捻線機(jī)生產(chǎn)中的前后羅拉、芯紗羅拉、空心錠子和環(huán)錠錠子等部件的轉(zhuǎn)速值設(shè)定往往是根據(jù)技術(shù)人員的經(jīng)驗(yàn)[1],同時(shí)結(jié)合已知紗線產(chǎn)品的數(shù)據(jù)對(duì)上述部件的轉(zhuǎn)速值進(jìn)行設(shè)定,根據(jù)生產(chǎn)小樣的情況再進(jìn)行調(diào)試設(shè)定,直到往復(fù)循環(huán)至符合要求為止。傳統(tǒng)的生產(chǎn)模式轉(zhuǎn)速設(shè)定效率低下,不僅過程復(fù)雜而且進(jìn)行多次的試驗(yàn)后也不一定能達(dá)到理想的效果,不利于花式紡紗企業(yè)的發(fā)展。
針對(duì)轉(zhuǎn)速設(shè)定的復(fù)雜度難以建立準(zhǔn)確的數(shù)學(xué)模型,采用實(shí)測(cè)方法效率較低且影響生產(chǎn),因此預(yù)測(cè)算法在轉(zhuǎn)速的估算中被廣泛應(yīng)用。近些年來(lái)許多相關(guān)研究利用了BP神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)實(shí)際的轉(zhuǎn)速值進(jìn)行預(yù)測(cè)[2],但BP神經(jīng)網(wǎng)絡(luò)算法是一種局部搜索的方法,而在捻線機(jī)轉(zhuǎn)速預(yù)測(cè)上要解決的問題則是求解復(fù)雜非線性函數(shù)的全局極值,因此算法很有可能陷入局部極值從而導(dǎo)致訓(xùn)練輸出結(jié)果偏差較大。同時(shí)BP神經(jīng)網(wǎng)絡(luò)算法中權(quán)值和偏置的優(yōu)化收斂速度將會(huì)在網(wǎng)絡(luò)訓(xùn)練的進(jìn)行中逐漸變得緩慢[3-4],這將不斷延長(zhǎng)預(yù)測(cè)模型訓(xùn)練的時(shí)間。所以本文將重點(diǎn)改善傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法的弊端,利用遺傳算法對(duì)上述問題進(jìn)行優(yōu)化和改善[5]。
花式紗線由芯紗、固紗、飾紗等組成,而捻度、超喂比、牽引倍數(shù)和張力系數(shù)等工藝參數(shù)是影響花式捻線機(jī)羅拉和錠子等部件轉(zhuǎn)速的主要因素。其中捻度是指利用棉紗橫截面間產(chǎn)生的相對(duì)角位移,使原來(lái)伸直平行的纖維與紗軸發(fā)生傾斜來(lái)改變紗線結(jié)構(gòu)的度量;超喂比是在生產(chǎn)過程中飾紗線速度和芯紗線速度的比值,若以恒定值生產(chǎn)出則是超喂型紗線,若使花形不斷變化以變超喂的方式生產(chǎn)則是控制型紗線;牽引倍數(shù)是飾紗的喂入量和超喂比乘積與輸出紗線中飾紗所占重量的比值;張力系數(shù)是由張力器或羅拉進(jìn)行調(diào)整,張力系數(shù)也是直接影響成紗質(zhì)量和花形的因素。
本文采用以上4個(gè)工藝參數(shù),經(jīng)過多次訓(xùn)練不斷更新權(quán)值和偏置,從而建立一個(gè)神經(jīng)網(wǎng)絡(luò)的花式捻線機(jī)轉(zhuǎn)速預(yù)測(cè)模型。采用100組數(shù)據(jù)作為原始數(shù)據(jù)集,10種不同種類的花式紗線,每種采樣10組數(shù)據(jù)。原始數(shù)據(jù)集部分?jǐn)?shù)據(jù)見表1。表中數(shù)據(jù)將作為試驗(yàn)數(shù)據(jù)以測(cè)試預(yù)測(cè)模型的性能。
表1 原始數(shù)據(jù)集部分?jǐn)?shù)據(jù)表
BP神經(jīng)網(wǎng)絡(luò)是一種強(qiáng)調(diào)網(wǎng)絡(luò)采用誤差反向傳播的學(xué)習(xí)算法,具有很強(qiáng)的自適應(yīng)和推廣概括能力,特別適用于求解內(nèi)部機(jī)制復(fù)雜的問題,對(duì)于花式捻紗機(jī)的轉(zhuǎn)速值預(yù)測(cè)模型的問題十分適用。然而在BP神經(jīng)網(wǎng)絡(luò)實(shí)際應(yīng)用中,每一層誤差函數(shù)是由負(fù)梯度方向?qū)?quán)值與偏置進(jìn)行更新,其優(yōu)化過程中常常容易陷入局部極小值中;同時(shí)因?yàn)锽P神經(jīng)網(wǎng)絡(luò)需要初始權(quán)值和偏置采用迭代更新的方式進(jìn)行確定,初始值過大或過小都會(huì)對(duì)算法性能產(chǎn)生很大影響,所以這就需要與其他人工智能算法結(jié)合才能有效改善算法性能。
遺傳算法是一種通過模擬自然界生物進(jìn)化過程來(lái)搜索全局最優(yōu)解的方法。通過選擇確定的適應(yīng)度函數(shù),采用 selection、crossover、mutation等3個(gè)主要的遺傳算子對(duì)種群中的個(gè)體進(jìn)行優(yōu)勝劣汰的操作[6]。因此,首先需要實(shí)現(xiàn)從表現(xiàn)型到基因型的映射(即編碼工作)并建立初代種群;然后通過在種群間不斷交換染色體信息和變異使種群得以進(jìn)化,最終保留適應(yīng)度最好的種群,而適應(yīng)值差的種群則在進(jìn)化過程中被逐漸淘汰;最后像自然進(jìn)化一樣,后代種群比前代更加適應(yīng)于環(huán)境,末代種群中的最優(yōu)個(gè)體經(jīng)過解碼(decoding),則可以作為問題近似最優(yōu)解。并且由于遺傳算法既不關(guān)注設(shè)計(jì)變量與目標(biāo)函數(shù)之間的數(shù)學(xué)關(guān)系,也不需要目標(biāo)函數(shù)梯度等信息來(lái)確定搜索方向,故很適合用來(lái)對(duì)參數(shù)進(jìn)行優(yōu)化。
本文充分利用遺傳算法全局搜索的特性對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),以個(gè)體對(duì)應(yīng)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置,將適應(yīng)度函數(shù)最高的個(gè)體保留,從而達(dá)到優(yōu)化網(wǎng)絡(luò)模型的目的。將這兩種算法融合在一起便克服了BP神經(jīng)網(wǎng)絡(luò)對(duì)初始值的依賴,有效提高了網(wǎng)絡(luò)性能和收斂速度。本文的算法流程如圖1所示。
圖1 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法流程圖
(1)建立花式捻線機(jī)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,分為輸入層、隱含層、輸出層。其中對(duì)于隱藏層如要進(jìn)一步提高網(wǎng)絡(luò)性能并降低誤差,可以選擇適當(dāng)增加隱含層數(shù),但這也會(huì)使得網(wǎng)絡(luò)結(jié)構(gòu)趨于復(fù)雜化,出現(xiàn)運(yùn)行速度減慢等缺點(diǎn)。因此遵循一般網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)準(zhǔn)則優(yōu)先考慮增加隱含層中的神經(jīng)元數(shù),以起到與采用多層隱含層相同的目的,還可更容易地觀察訓(xùn)練結(jié)果。
(2)以不同的花式捻線機(jī)工藝參數(shù)作為BP神經(jīng)網(wǎng)絡(luò)的輸入層并組成數(shù)據(jù)集,即捻度、超喂比、張力系數(shù)和牽引倍數(shù),輸入層為x1、x2、x3、x4。捻線機(jī)的前羅拉、芯紗羅拉、后羅拉、空心錠子、環(huán)錠錠子等轉(zhuǎn)速值作為網(wǎng)絡(luò)輸出層,對(duì)應(yīng)期望輸出值為y1、y2、y3、y4、y5。根據(jù)隱含層節(jié)點(diǎn)數(shù)選擇的一般規(guī)律見式(1)。其中:m和n為輸出層和輸入層的神經(jīng)元個(gè)數(shù);a為0~10之間的常數(shù)。經(jīng)過反復(fù)試驗(yàn),隱含層節(jié)點(diǎn)數(shù)為9時(shí)可達(dá)到預(yù)期收斂效果。
(3)設(shè)定花式捻線機(jī)預(yù)測(cè)模型3層網(wǎng)絡(luò)的輸入層至隱含層和隱含層至輸出層的連接權(quán)值為Wab和Wbc,隱含層的偏置設(shè)定為θb,輸出層的偏置設(shè)定為Φc。初始化權(quán)值和偏置,將權(quán)值Wab、Wbc設(shè)定至范圍[-1,+1]的隨機(jī)值,將偏置θb、Φc設(shè)定至范圍[-0.5,+0.5]的隨機(jī)值。其中:a為輸入層;b為隱含層;c為輸出層。
利用遺傳算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置進(jìn)行優(yōu)化,初始化種群及其種群規(guī)模、交叉概率和變異概率。種群個(gè)體為二進(jìn)制串編碼方式,個(gè)體由輸入層至隱含層的連接權(quán)值、隱含層至輸出層的連接權(quán)值、隱含層偏置、輸出層偏置4部分組成,即為Wab、Wbc、θb和Φc等組成。其優(yōu)化步驟如下。
第一步:對(duì)染色體進(jìn)行編碼,其編碼長(zhǎng)度L計(jì)算見式(2)。
其中:α、β、γ分別為輸入層、隱含層、輸出層神經(jīng)元的個(gè)數(shù)。
第二步:確定適應(yīng)度函數(shù)。其中遺傳算法將篩選出進(jìn)化中每一代誤差平方和較小的網(wǎng)絡(luò)權(quán)重,誤差平方和S見式(3)。
其中:N為遺傳算法訓(xùn)練中的樣本數(shù)目為期望輸出值,y(t)為網(wǎng)絡(luò)訓(xùn)練輸出值。
平方和S越小,說(shuō)明網(wǎng)絡(luò)的預(yù)測(cè)能力越好,但因?yàn)檫z傳算法中適應(yīng)度值為越大越好,所以將目標(biāo)函數(shù)的倒數(shù)作為適應(yīng)度函數(shù),并在其中引入足夠小的正值α以免分母為零,則適應(yīng)度函數(shù)Fi見式(4)。
第三步:進(jìn)行選擇和交叉及變異操作后,按照適應(yīng)度比例方法選擇當(dāng)前種群中生命力強(qiáng)的個(gè)體。設(shè)群體大小為N,其中個(gè)體i的適應(yīng)度為Fi,則i被選擇的概率P見式(5)。可以看出,個(gè)體的適應(yīng)度越大,被選擇的概率越高。
第四步:獲得適應(yīng)度最大的種群后選擇其中最優(yōu)個(gè)體,通過MATLAB對(duì)個(gè)體進(jìn)行解碼操作,即可得到BP神經(jīng)網(wǎng)絡(luò)所需的權(quán)值和偏置,從而達(dá)到優(yōu)化PB神經(jīng)網(wǎng)絡(luò)的目的。
根據(jù)多層神經(jīng)網(wǎng)絡(luò)的設(shè)定和遺傳算法的尋優(yōu)得到最佳的權(quán)值和偏置,則可以進(jìn)行網(wǎng)絡(luò)訓(xùn)練和轉(zhuǎn)速值預(yù)測(cè)。根據(jù)上述設(shè)定可計(jì)算出預(yù)測(cè)模型隱含層輸出值Hb,見式(6)。
式(6)中,函數(shù)f為激活方程sigmoid函數(shù),函數(shù)f見式(7)。
計(jì)算預(yù)測(cè)轉(zhuǎn)速值與實(shí)際輸出轉(zhuǎn)速值誤差e是否滿足需求。η為學(xué)習(xí)率,學(xué)習(xí)率為[0,1]隨機(jī)值。若不滿足,則更新權(quán)值和偏置公式再次返回訓(xùn)練,更新公式見式(8)和式(9)。
若滿足誤差則進(jìn)行預(yù)測(cè)輸出,其輸出層轉(zhuǎn)速預(yù)測(cè)值C,即是根據(jù)Hb、隱含層至輸出層權(quán)值Wbc和輸出層偏置Φc再次進(jìn)行非線性激活得出轉(zhuǎn)速預(yù)測(cè)值,其中C為輸出層y1、y2、y3、y4、y5的集合,則其公式見式(10)。
最終由x1、x2、x3、x4在 BP 神經(jīng)網(wǎng)絡(luò)中結(jié)合最優(yōu)的權(quán)值和偏置(Wab、Wbc、θb、Φc),通過式(10)計(jì)算,即可得出預(yù)測(cè)值y1、y2、y3、y4、y5,即捻線機(jī)的前羅拉、芯紗羅拉、后羅拉、空心錠子、環(huán)錠錠子的轉(zhuǎn)速值。
本文算法通過以上步驟可以對(duì)試驗(yàn)數(shù)據(jù)集計(jì)算,進(jìn)行多次尋求最優(yōu)解來(lái)達(dá)到網(wǎng)絡(luò)訓(xùn)練的目的,不斷地進(jìn)行權(quán)值和偏置的更新就可以逐漸訓(xùn)練出性能更好的預(yù)測(cè)模型。在滿足條件需求的預(yù)測(cè)模型中輸入捻度、超喂比、張力系數(shù)和牽引倍數(shù)等參數(shù),經(jīng)過上述算法計(jì)算后即可得出前羅拉、后羅拉、芯紗羅拉、空心錠子和環(huán)錠錠子等部件的轉(zhuǎn)速值。
為證明本文所提出的基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法在花式捻線機(jī)預(yù)測(cè)模型上的可行性與優(yōu)劣性,本文以空心錠花式捻線機(jī)為研究對(duì)象進(jìn)行試驗(yàn)。
本文所使用的算法結(jié)構(gòu)采用3層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),輸入節(jié)點(diǎn)數(shù)為4,輸出節(jié)點(diǎn)數(shù)為5,隱含層節(jié)點(diǎn)數(shù)為9,激活函數(shù)選sigmoid,最大訓(xùn)練次數(shù)為1 000,訓(xùn)練目標(biāo)誤差為0.001,學(xué)習(xí)速率為0.1,附加動(dòng)量因子為0.8。遺傳算法中種群大小設(shè)為40,最大遺傳代數(shù)100,變量的二進(jìn)制位數(shù)10,交叉率0.7,變異率0.05,權(quán)值變化范圍[-1,1],偏置變化范圍[-0.5,0.5]。
表1的數(shù)據(jù)作為試驗(yàn)原始數(shù)據(jù),對(duì)應(yīng)表1的輸入值和預(yù)測(cè)輸出值的歸一化處理數(shù)據(jù)見表2。對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行歸一化處理將試驗(yàn)數(shù)據(jù)都轉(zhuǎn)化為[0,1]之間的數(shù)以此來(lái)增加羅拉和錠子轉(zhuǎn)速值的預(yù)測(cè)精度、減少誤差,在遺傳算法優(yōu)化和BP神經(jīng)網(wǎng)絡(luò)建模訓(xùn)練前可以方便數(shù)據(jù)的操作,更適合于BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并可使程序在運(yùn)行時(shí)的收斂速度變快。其公式見式(11)。
式中:x′為歸一化后的轉(zhuǎn)換值,x為歸一化前的數(shù)值,xmax與xmin為數(shù)據(jù)集的最大值和最小值。
表2 工藝參數(shù)及預(yù)測(cè)值歸一化數(shù)據(jù)表
試驗(yàn)結(jié)果分別以表2中歸一化后的前羅拉轉(zhuǎn)速與環(huán)錠錠子轉(zhuǎn)速數(shù)據(jù)為例。在BP神經(jīng)網(wǎng)絡(luò)算法(傳統(tǒng)算法)和基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法(優(yōu)化算法)下,前羅拉轉(zhuǎn)速預(yù)測(cè)情況如圖2所示,環(huán)錠錠子轉(zhuǎn)速的預(yù)測(cè)情況如圖3所示。
由圖2和圖3可得:BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)值和實(shí)際值的偏差相對(duì)較大,而本文所提出的遺傳算法通過優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置后,所得出的預(yù)測(cè)值誤差更小且更為精確,與實(shí)際的轉(zhuǎn)速值擬合程度高。
圖2 前羅拉轉(zhuǎn)速預(yù)測(cè)值對(duì)比圖
圖3 環(huán)錠錠子轉(zhuǎn)速預(yù)測(cè)值對(duì)比圖
本文梳理了花式捻線機(jī)工藝并提出轉(zhuǎn)速值預(yù)測(cè)模型,同時(shí)對(duì)傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)速值預(yù)測(cè)模型進(jìn)行了分析。提出利用遺傳算法來(lái)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置,并進(jìn)行全局尋優(yōu),提高了整個(gè)預(yù)測(cè)系統(tǒng)的收斂速度,并避免了BP神經(jīng)網(wǎng)絡(luò)陷入局部最小值的問題。通過試驗(yàn)數(shù)據(jù)的分析對(duì)比,可以體現(xiàn)出基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法的優(yōu)勢(shì)。試驗(yàn)結(jié)果表明:本文算法具有準(zhǔn)確性高和收斂速度快的特點(diǎn),對(duì)于花式捻線機(jī)的前羅拉、芯紗羅拉、后羅拉、空心錠子、環(huán)錠錠子等轉(zhuǎn)速預(yù)測(cè)值的精確度高、誤差小。