文/邢萌
采用TensorFlow,能夠使神經網絡編寫難度得到降低,并使網絡識別率得到提高。因此在手寫數字識別模型設計與實現上,還要加強TensorFlow的應用,提出更加有效的識別方法。
TensorFlow為開源軟件平臺,可以采用數據流圖實現數值計算,為神經網絡構建提供接口,實現BP神經網絡的快速構建。平臺上每個計算都能利用計算圖表示,其中每個節點都是一個運算操作,節點與節點利用邊連接,每個節點擁有任意多輸入和輸出,可看成是運算操作的實例化。而在計算機中流動的數據,即張量。在利用TensorFlow進行開發時,需要利用圖進行計算任務表示,然后進行會話建立,將圖傳至TensorFlow引擎中,使圖得到啟動。通過變量初始化操作,并實現節點運行,則能使變量值得到更新。采用TensorFlow,能夠對機器學習算法進行執行,為多種開發語言提供支持,能夠在異構系統上實現算法移植,為系統部署提供支持。作為開源機器學習軟件資源庫,目前TensorFlow能夠為線性回歸、深度學習、邏輯回歸等各種算法提供支持。
設計手寫數字識別模型,還要使模型能夠對圖像進行識別,通過計算機處理圖像信息,對圖像內容進行理解,從而實現精確識別。而在圖像識別方面,主要需要采用機器學習方法,使模型通過先驗學習進行經驗獲取,然后對數據獲取規律進行自動分析,完成知識結構的組織,能夠正確進行響應。為此,還要使計算機對人類學習活動進行模擬,在掌握經驗和規律的基礎上,對未知和潛在概率分布等信息進行推理,確定數據樣本中變量間的關系。手寫數字識別屬于分類問題,需將實例數據進行合理分類,能夠采用支持向量機算法、k-近鄰算法等多種算法。而同類的算法有較多,還要加強數據集的分析,以便進一步了解實際數據,縮小算法的選擇范圍。在應用程序開發階段,需要完成數據收集,然后對數據源進行格式化處理,確保數據能夠滿足格式要求。將得到的數據輸入到算法中,則能實現算法訓練,完成知識或信息的抽取。確定訓練得到的算法能夠達到成功率的要求,則能轉換為應用程序進行任務執行。
實際進行模型設計時,采用MNIST數據集,由訓練集、驗證集和測試集構成,分別有55000、5000和10000個樣本,從TensorFlow官網下載獲得。對樣本數據進行分析發現,每個樣本包含對應標簽信息,能夠對表示的數字進行描述。而樣本實際描述的為28×28像素的灰度圖片,每張圖片為長度784的數組,不包含二維結構信息,數據得到了簡化,分類相對簡單。從特征上來看,樣本數據為55000×784張量,圖片編號為一維,圖片像素點為二維,數值為像素點灰度值,標簽為55000×10的張量,能夠對圖片代表的數字進行描述,標簽為19維向量。樣本圖標簽向量對應位置為1,其余均為0。數據集中樣本描述數字在0-9之間,共10類,所以手寫數字識別要對第i樣本為0-9中哪個數字的概率進行計算。結合數據特點,可以采用相對簡單的softmax回歸算法,設計的模型樣本包含m個,類別為k個,得到的訓練集為 {(x(1), y(1)),(x(2), y(2)),……,(x(m),y(m))},x(i)∈R(n+1),標簽 y(i)∈{1,2,……,k}。針對輸入x,應假設針對各類別j的概率值為p(y=j|x)。在函數輸出k維向量的情況下,向量元素和為1,函數hθ(x)如下:

式 中,θ1, θ2, θk∈Rn+1為 模 型 參 數,P(y(i)=j|x(i); θj)則是樣本 x(i)屬于 j類概率。在模型參數計算的過程中,還要采用梯度下降法。針對得到的回歸模型,需要輸入樣本數據,對測試樣本數據所屬類別概率進行計算,預測結果則是概率最大的類別。
在模型實現階段,需要載入TensorFlow庫完成InteractiveSession創建,然后進行Placeholder創建,確定數據輸入位置。在Placeholder中,首個參數代表的是數據類型,其次則為[None,784],指的是數據尺寸,None意味不對輸入的條數進行限制,但是784則是對各條維向量進行限制。在此基礎上需要對回歸模型的biases和weight進行創建,然后進行回歸算法的實現。在模型訓練階段,需要對損失的函數進行計算,利用函數對模型分類精度進行描述。在損失較少的情況下,說明采用模型獲得的分類結果較為接近真實值,得到的結果較為精確。在實際操作時,需要先對模型進行初始化操作,將各參數設為零。而訓練loss將不斷減小,直至局部最優或全局最優。損失函數可以采用cross-entropy,需要利用TensorFlow進行計算。在算法優化階段,需要采用隨機梯度下降,然后進行訓練操作迭代執行。具體來講,就是進行100條樣本隨機抽取,完成mini-batch的構建,提供給placeholder。對train_step進行調用,可以完成樣本訓練。采用tf.argmax從張量中進行最大值序號的獲取,可以實現模型準確率的測試。而tf.argmax(y,1)的概率最大,為數字類別。確定得到的結果是否正確,可以確定是否實現了正確分類。
根據手寫數字特點,基于TensorFlow實現了相應的識別模型設計。采用該模型,可以利用softmax回歸算法實現數字分類問題的簡化,得到結構相對簡單的神經網絡模型,并且獲得較高的數字識別概率。