但在開始訓練之前,還有一點工作要做。
這個深度,所擁有的參數實在太多了,哪怕原始數據有足足12萬多條,也很很容易發生過擬合。
所以,為了提升泛化能力,有必要做一下數據增廣。
數據增廣的方案有許多。
江寒思考了一下,選擇了一種新方案。
原始圖像是256×256的分辨率。
江寒設計了一個程序,從中隨機扣出來224×224大小的區域。
每張原始圖像,都有(256-224)^2=1024種不同的扣法,這樣一來,就相當于將原始數據增廣了1024倍!
接下來,他又將得到的圖像,全都水平鏡像一次,就得到了等于原始數據2048倍的超大數據集合。
增廣完數據,江寒還覺得不夠保險,為了進一步提高算法的效能,他決定對網絡中用到的超參數,進行一些優化。
以前他也做過人工神經網絡超參數的優化,但那時采用的手段,主要是手動修改超參數,然后人工分析、比對。
看修改了某個超參數后,網絡的表現是上升了還是下降了,從而找出較為優秀的模型。
不用說,這種做法最大的缺陷,就是效率實在太低。
江寒在這次的比賽中,決定使用一種新技術。
這是他前一陣子,煞費苦心設計出來的方案,代碼復雜度令人發指。
好在他的腦子夠好用,在消耗了大量心血,吃掉了無數冰島紅極參之后,終于是開發成功了。
功能很簡單,就是自動對超參數進行搜索、優化,以找到結構更合理、性能更好的人工神經網絡。
江寒為這門技術取名ASSP(Autosearchforsuperparameters)。
當然,其實就是“搜索超參數”的英文直譯……
ASSP的原理很簡單,就是包裝在人工神經網絡模板外層的一個“殼”。
通過一個調度函數,在訓練神經網絡之前,先按照事先確定的規則,微調某些超參數。
每當完成一輪訓練,還會按照既定的規則,從各個方面進行評分。
比如,在梯度下降的過程中,模型是否收斂、收斂速度如何?
不能收斂的網絡,根本無法訓練,也就毫無價值,如果收斂速度過慢,訓練起來也會缺少效率。
此外,網絡模型在驗證集中的表現,泛化能力、識別準確度、網絡的穩健性……
最后,將每次訓練完成后,人工神經網絡的綜合得分,從高到低排一下序。
江寒通過最后生成的表格,就可以選取合適的超參數組合了。
為了讓這個超參數搜索程序,獲得更高的工作效率,需要先指定超參數的搜索范圍。
范圍太大的話,會導致搜索時間過長,可能會等不及出結果;如果范圍太小,又很可能找不到合格的超參數取值。
這個搜索范圍,可以看做SFSP的超參數,只能憑經驗設定。
好在江寒已經訓練過許多次人工神經網絡,有著十分充足的經驗。
他將ASSP和深度的代碼融合之后,連同訓練數據、驗證數據,全都上傳到了地下數據處理中心的服務器里。
差不多兩天之后,ASSP就能得到初步的成果。
至于整個網絡的訓練,那可就有得等了。
原始數據是12萬多條,增廣到2048倍之后,就是2億4千5百萬余條數據!
數據量實在太龐大了,即使使用了GPU來提速,至少也需要5~7天,才能完成初步的訓練。
江寒讓程序跑起來之后,就走出了實驗室。
打算回到游戲工作室里,休息一下,然后去主持面試。
剛喝了兩口水,手機忽然響了起來。
來電是夏如虹的,江寒連忙接了起來,叫了聲:“阿姨。”
“你在哪了?”夏如虹聲音溫婉。
“17樓辦公室。”江寒回答。
夏如虹打這個電話,主要是討論寫字機器人的銷量和分成。
寫字機器人上市的時候,已經接近年底,所以截止2012年12月31日,只賣出了30多萬臺。
按照當初的約定,江寒將獲得3.5%銷售額的分成。
機器人的出廠價是每臺558元,3.5%就是每臺19.53元,30萬臺……
江寒隨便心算了一下,就得出了答案:580多萬。
這就比較讓人愉快了。
有了這筆錢,星空那邊的錢,暫時就不急著動用了。
這樣也能避免不少匯兌、稅費之類的損失……