洪鼎淇
人能識別小鳥,而且能夠想象出小鳥的模樣。神經網絡能識別對應數據,它應該也能根據標簽來得出原來的數據的大致內容,這個過程就好比人類的想象力。在蒙特卡洛方式能通過在單位矩形的隨機命中來求出圓周率的啟發下,蒙特卡洛方式也應該能通過在模型中隨機命中標簽來求出對應標簽數據的大致內容。下列通過蒙特卡洛方式與神經網絡模型的結合,實現并給出一個根據標簽來得出原來模型對應數據的大致內容的實驗及思路。
想象力,一直以來都是人類特有的智能之一。它是如此神奇,在學習到新的知識之后,根據在腦海中的印象,人類能回憶起對應的知識點或者在腦海中展示出一副對應的圖畫。因為有這個能力,人類的生活變得如此豐富多彩,看一本小說,能根據自己的想象力,在腦海中重現出對應的畫面。因為每個人的經歷是不同的,想象出來的畫面也是不同的。
神經網絡,在人工智能的領域方面發揮著不可替代的作用。它在某些方面確實能發揮出類似人類的智能,然而神經網絡并不是萬能的,形如人們所特有的創造力,想象力,神經網絡就不具有。
那究竟如何才能使其獲得想象力?換句話說,就是如何根據目標標簽的值,得出對應模型的原始數據的大致內容呢?
(一)蒙特卡洛測圓周率下的啟示
在一次實驗中偶然發現了蒙特卡洛測試圓周率的方法,實驗過程中并沒有出現圓周率的任何信息,但根據隨機數的命中情況后,求出命中圓形區域的個數和未命中的個數比后,卻能夠得出圓周率近似大小,其中關系引人深思。
上述的蒙特卡洛實驗是從隨機數到求近似值的一個過程,而且隨著取的隨機數的次數越多,求取的值將會越準確。若對神經網絡來說,該蒙特卡洛 映射關系F([隨機數1,隨機數2,…]) =目標值依然成立的話,則應該有以下關系,若給定標簽值,那根據多次取隨機數后的命中目標標簽情況,即通過這些命中目標標簽的隨機值取交集,可以反推得出原來對應標簽的神經網絡模型的之前大致的數據。這個過程類比人類來說,即人類根據小鳥這個詞,想象出小鳥的模樣。
(二)蒙特卡洛方式想象力思路
若有一個訓練好數據的神經網絡模型,該模型能預測N種類型的標簽,取對應原始數據大小的M個隨機數代入模型中,得到一個(M,N)大小的存儲對應這M個數據的N個標簽的預測值概率的二維列表。若想想象出標簽K(K<=N)的大致數據,則取對應這M個數據的N個標簽預測值概率的二維列表中的這M個元素中各個元素中第K個位置的預測值作為待取命中元素列表,并取待取命中元素列表種概率值最大的前S個隨機數元素作為待交叉命中的列表,用計數規則將待交叉命中的列表中各元素的各個隨機數中的元素的出現次數計數,這樣就得到一個對應隨機元素出現次數的列表,取每個出現隨機元素的出現列表的I列的最大值作為想象結果的第I個元素的值,最終得到的想象結果即為概率命中想想象的標簽的大致數據的值,即想象力的結果。
該過程通過調整M值的大小,對應得到想象出來對應標簽的大致原始數據的精度也會跟著調整,也就是蒙特卡洛的思想。過程并不復雜,具體實現的例子通過最終的實現階段展示。
人之間的想象力是有區別的,不同的人,因為閱歷的不同,所以對于相同的事物而言,想象出來的物體也是不盡相同的。
而對于上述所說的蒙特卡洛方式的想象力想象得到的原始數據也是根據模型訓練的差別導致想象出來的原始數據有所差別,但想象出來的數據在特定的模型下有一個大致的輪廓,在這個大致的輪廓下的差別就是想象精度所導致的,即蒙特卡洛方式取隨機值的個數影響其精度,而取相同的隨機數個數最終所想象出來的原始數據的差異則是所取的隨機數的區別導致的。
(一)神經網絡的反過程原理
神經網絡最基本的功能就是對數據的分類,前期通過訓練數據和標簽而建立起一一對應的關系,這個過程本質是一個函數的過程,將這個特殊的函數保存起來就變成了模型,當要用到它的時候,將其代入想要判斷的數據就得到了對應各個標簽的預測值。
神經網絡的反過程就是給定具體神經網絡模型的一個標簽,然后反推得到原本的數據有可能是什么樣子的過程。這個過程可以參考最終的實現階段的實例。
蒙特卡洛的想象的過程就是通過隨機取點代入這個特殊的函數中看在這個特殊的函數上的各個標簽的預測值,在所指定的要想象的標簽的預測值最大的那些隨機取點之間取交集達到盡可能還原出原本數據的目的。
很明顯這個過程是一個具有隨機性的過程,因為隨機取點的不同,在代入神經網絡這個特殊的函數的時候會導致預測的值之間會有較大的差距,這個時候可以通過將蒙特卡洛增加所取的隨機數來減少這個誤差,也可以通過在最終取交集的時候增強一些無關值(例如背景)從而來使想象的原始數據更加突出。
神經網絡的反過程實現,首先要有一個模型,這個模型應該是訓練過想要想象的數據的模型的。類比于人,人首先要有知識,才能支撐他的想象。而模型的精度,能影響想象出來的數據的品質也是同樣到道理。下列通過一個Tensorflow中mnist數據集訓練的手寫數字的模型為例子,來實現想象得出原來的大致數據的過程。
(一)實例模型參數介紹
mnist手寫圖片數據集大小28*28*1,用3個卷積層的2個全連接層卷積神經網絡訓練,第一層卷積層為5*5,步長為2,激活層為relu,池化層輸出為32通道;第二層卷積層為3*3,步長2,激活層為relu,池化層輸出64通道;第三層卷積層步長為3*3,步長為1,激活層為relu,池化層輸出128通道;第一層全連接層激活層為relu,keep_ prob參數為0.5,通道數1024,第二層全連接層輸出10個參數,優化器用亞當優化器,預測用softmax,每輪200個訓練集,進行31輪訓練,每輪訓練100次。
在上述的基礎上,從mnist中取6200個訓練集進行訓練,得到一個識別手寫數字的模型,用測試集驗證正確率達90% 蒙特卡洛取隨機數值的二值化圖片數20000張。
(二)想象效果
想象過程非常依賴模型對于隨機產生黑白圖片的識別,最終的圖片的效果很大程度上依賴模型精度。得到這個模型后,即可根據模型識別多次在空白圖上產生50%左右的黑點的圖來得出圖是對應數字的置信度的值,取前N張置信度較高的隨機圖片間黑點的交集,最終得到的想象圖片再用簡單的圖片處理算法去除背景干擾點,即可得到效果相對而言相對較為清晰的圖片。
用蒙特卡洛是屬于無監督的過程,相較而言,實際上效果不如對抗神經網絡有監督地仿照圖片而產生的新圖片。其想象圖片僅擁有多次訓練時中對應類別圖片中的特征,除了數字2、3、7、8、9、0有較好的效果,此次訓練的模型想象出來的其他數字均只有模糊的輪廓,如數字1體現了手寫1豎著的頭尾相對較粗的特征。
上述是通過蒙特卡洛方式的簡單實現想象神經網絡原始數據功能,通過在黑盒中用蒙特卡洛的方式來推導出原來數據的簡單實現。但也可以看到過程具有明顯缺點:計算量偏大,精度偏低,對于模型的原始數據的想象能力還較差。不過可以通過降噪,取多次想象交集等多種方式來優化效果。
通過蒙特卡洛方式能實現神經網絡的反過程,與其說是反過程,不如說是多次隨機擬合取交集的過程的“想象”。其與人的區別是,模型是死的,人是活的。模型只能通過原先的訓練數據來獲得知識,而人的想象確能實時根據自身的經歷而改變。說到想象,就不得不提及人工智能,面對如今貌似到處都用到的所謂人工智能,它具有創造力和想象力嗎?它是真的“智能”嗎?
作者單位:石家莊鐵道大學