趙宇
(國家廣播電視總局2021臺,黑龍江 齊齊哈爾161000)
在無線廣播發射臺站中,ups是供電系統中重要的基礎設備,是保證播音任務的重要一環,因此,對ups設備的監測維護就十分必要。而限于算法局限性,傳統計算機的觀測過程缺乏人類行為特征,此外,設備故障的預測也是傳統算法無法實現的功能,而神經網絡技術在近年已被廣泛應用于各領域的預測研究(如天氣、地震等領域的預測)[1]。
本文基于分布式節點結構實現了與不同ups設備的通信,借助神經網絡技術,組成一個能進行供電性能估算、預測故障風險的統一設備觀測平臺[2]。
硬件部分:兩臺服務器分別運行神經網絡節點、數據庫,多臺計算機運行不同的程序節點、主界面節點。計算機之間通過網絡連接,此外還需要串口服務器將ups設備由串口通訊轉換為網絡通訊。
軟件部分:python3、pyqt5、vb.net、sql。
主界面承擔數據顯示與節點管理兩大功能,按如下方式開發:ups數據、神經網絡觀測結果都由其它節點寫入到數據庫表中,主界面不斷讀取;同時,其它節點程序每秒上傳自身cpu占用、ip地址、一個隨機數,神經網絡節點還將向表中匯報線程池排隊情況、計算請求數,主界面使用隨機數是否持續變化監視節點是否在線,當表中有報警消息時使用微軟語音引擎發起語音合成報警。
獲取ups設備數據使用serialport控件,一般各廠商ups設備都是ascii通信,每一個型號的ups開發為一個單獨程序,每秒將數據、自身狀態寫入數據庫,同時,節點可發起神經網絡請求,請求的sql記錄格式為:“目的+網絡模型文件名+時間id+數據”,目的分為“訓練”、“使用”,神經網絡節點計算完畢后將標注記錄為“完成”。
導入numpy庫為np,導入Pyqt5庫,構建初步可視化窗體,然后進行神經網絡的開發。


圖1 系統主界面
initnet()是對于權重和偏置的初始化,偏置為高斯分布,均值0,標準差1,權重均值0,標準差1/√n,net是列表類型,填寫網絡各層神經元數,co用于交叉熵的使用。
隨機梯度下降算法公式:

等號左邊表示重力滑落模擬過程中權重和偏置的最小值,C為二次代價函數,η為學習速率[3]。Python隨機梯度下降應用上述公式的核心代碼為:

反向傳播是網絡的學習過程,在進行前向傳播后,反饋權重的核心代碼為:

神經網絡中,通常會因較大誤差的權重和偏置導致學習速度的下降,而將交叉熵作為神經網絡的代價函數,能有效解決這個問題[4]。公式為:

其中a是網絡總輸出,y是對應訓練輸入x的輸出,n為訓練數,相應python中應用上述公式的核心代碼為:
np.sum(np.nan_to_num(-y*np.log(a)-(1-y)*np.log(1-a)))
規范化主要是在代價函數后添加規范化因子:

在程序中,梯度下降的核心處在接收到用戶請求后,變為:


程序的其它傳參處也會被加入規范化參數。
神經網絡的訓練:ups節點發出請求后,數據庫就新填入請求數據,第一項數據注明為“訓練”,第二項注明使用的模型文件,第三項寫明的是請求的唯一性時間,后面跟隨訓練數據。神經網絡節點主線程掃描數據表發現請求后,根據模型文件名加載相應的文件,讀取數據進行訓練,完畢返回根據唯一時間插入的標注為“完成”的數據記錄到相應的節點的表中,相應ups節點在讀取到“完成”、唯一時間的記錄后,獲知該次請求已被計算完成。
神經網絡的使用:ups節點寫入請求數據庫記錄,并把第一項“訓練”改為“計算”,神經網絡節點讀取數據庫后加載對應網絡模型進行計算,計算完畢將結果返回數據庫。第一種模型是根據ups供電期間的數據樣本訓練的網絡模型,用來進行即時的供電性能估算,第二種模型由正常運行期間的樣本和故障期間的樣本訓練而來,用于及時發現設備可能出現的問題風險。
通過使用神經網絡的學習型觀測技術,能極大的提高計算機監測系統對數據的識別、分析能力,目前使用神經網絡技術進行具體設備觀測的系統并不多見,該系統的開發至應用都有較多的創新點。