W!o+ 的《小伶鼬工坊演義》︰神經網絡【轉折點】四下

《呂氏春秋‧慎行論》
疑似

使人大迷惑者,必物之相似也。玉人之所患,患石之似玉者;相劍者之所患,患劍之似吳干者;賢主之所患,患人之博聞辯言而似通者。亡國之主似智,亡國之臣似忠。相似之物,此愚者之所大惑,而聖人之所加慮也。故墨子見歧道而哭之。

周宅酆鎬近戎人,與諸侯約,為高葆禱於王路,置鼓其上,遠近相聞。即戎寇至,傳鼓相告,諸侯之兵皆至救天子。戎寇當至,幽王擊鼓,諸侯之兵皆至,褒姒大說,喜之。幽王欲褒姒之笑也,因數擊鼓,諸侯之兵數至而無寇。至於後戎寇真至,幽王擊鼓,諸侯兵不至。幽王之身,乃死於麗山之下,為天下笑。此夫以無寇失真寇者也。賢者有小惡以致大惡。褒姒之敗,乃令幽王好小說以致大滅 。故形骸相離,三公九卿出走,此褒姒之所用死,而平王所以東徙也,秦襄、晉文之所以勞王勞而賜地也。

梁北有黎丘部,有奇鬼焉,喜效人之子姪昆弟之狀。邑丈人有之市而醉歸者,黎丘之鬼效其子之狀,扶而道苦之。丈人歸,酒醒而誚其子,曰:「吾為汝父也,豈謂不慈哉?我醉,汝道苦我,何故? 」其子泣而觸地曰:「孽矣!無此事也。昔也往責於東邑人可問也 。」其父信之,曰:「譆!是必夫奇鬼也,我固嘗聞之矣。」明日端復飲於市,欲遇而刺殺之。明旦之市而醉,其真子恐其父之不能反也,遂逝迎之。丈人望其真子,拔劍而刺之。丈人智惑於似其子者,而殺於真子。夫惑於似士者而失於真士,此黎丘丈人之智也。疑似之跡,不可不察。察之必於其人也。舜為御,堯為左,禹為右 ,入於澤而問牧童,入於水而問漁師,奚故也?其知之審也。夫人子之相似者,其母常識之,知之審也。

 

Michael Nielsen 先生之讚嘆與期許

This is particularly galling because in everyday life, we humans generalize phenomenally well. Shown just a few images of an elephant a child will quickly learn to recognize other elephants. Of course, they may occasionally make mistakes, perhaps confusing a rhinoceros for an elephant, but in general this process works remarkably accurately. So we have a system – the human brain – with a huge number of free parameters. And after being shown just one or a few training images that system learns to generalize to other images. Our brains are, in some sense, regularizing amazingly well! How do we do it? At this point we don’t know. I expect that in years to come we will develop more powerful techniques for regularization in artificial neural networks, techniques that will ultimately enable neural nets to generalize well even from small data sets.

 

雖文猶在目,苦於難以親見也!遂生『疑惑』焉?那『神經網絡』當真可擬似『人腦』乎??『正則化』 regularization 果然能比類『一般化』耶!!故特用『雜訊』欲一管窺豹,不過『疑似』迷惑更大的哩!!??

pi@raspberrypi:~/test/neural-networks-and-deep-learning/src $ python
Python 2.7.9 (default, Mar  8 2015, 00:52:26) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mnist_loader
>>> training_data, validation_data, test_data = \
... mnist_loader.load_data_wrapper()
>>> import network
>>> net = network.Network([784, 30, 10])
>>> npzfile = network.np.load("swb.npz")
>>> npzfile.files
['s', 'b2', 'w2', 'w1', 'b1']
>>> net.weights[0] = npzfile["w1"]
>>> net.weights[1] = npzfile["w2"]
>>> net.biases[0] = npzfile["b1"]
>>> net.biases[1] = npzfile["b2"]
>>> net.evaluate(test_data=test_data)
9474
>>> import matplotlib.pyplot as plt
# 【五原圖】
>>> img = training_data[0][0].reshape(28,28)
>>> plt.imshow(img,cmap='Greys', interpolation='nearest')
<matplotlib.image.AxesImage object at 0x74018290>
>>> plt.show()
>>> imgc = img.reshape(784,1)
>>> network.np.argmax(net.feedforward(imgc))
5

# 【加 0.2 雜訊】
>>> imgn02 = img + 0.2 * network.np.random.random(img.shape)
>>> plt.imshow(imgn02,cmap='Greys', interpolation='nearest')
<matplotlib.image.AxesImage object at 0x741cd370>
>>> plt.show()
>>> imgn02c = imgn02.reshape(784,1)
>>> network.np.argmax(net.feedforward(imgn02c))
5

# 【加 0.8 雜訊】
>>> imgn08 = img + 0.8 * network.np.random.random(img.shape)
>>> plt.imshow(imgn08,cmap='Greys', interpolation='nearest')
<matplotlib.image.AxesImage object at 0x73ff5470>
>>> plt.show()
>>> imgn08c = imgn08.reshape(784,1)
>>> network.np.argmax(net.feedforward(imgn08c))
5

# 【加 1.0 雜訊】
>>> imgn10 = img + 1.0 * network.np.random.random(img.shape)
>>> plt.imshow(imgn10,cmap='Greys', interpolation='nearest')
<matplotlib.image.AxesImage object at 0x6e53b810>
>>> plt.show()
>>> imgn10c = imgn10.reshape(784,1)
>>> network.np.argmax(net.feedforward(imgn10c))
3

# 【加 1.2 雜訊】
>>> imgn12 = img + 1.2 * network.np.random.random(img.shape)
>>> plt.imshow(imgn12,cmap='Greys', interpolation='nearest')
<matplotlib.image.AxesImage object at 0x6e57abb0>
>>> plt.show()
>>> imgn12c = imgn12.reshape(784,1)
>>> network.np.argmax(net.feedforward(imgn12c))
5
>>> 

 

【五原圖】辨識為 5

HW5-origin

 

【加 0.2 雜訊】辨識為 5

HW5-02

 

【加 0.8 雜訊】辨識為 5

HW5-08

 

【加 1.0 雜訊】辨識為 3

HW5-10

 

【加 1.2 雜訊】辨識為 5

HW5-12

 

能相信『雜訊』也有『顏色』的嗎?之所以會得到這個結果是因為『numpy.random.random』有顏色?是一種『連續型均勻分布』的乎??如果用『numpy.random.normal』製造『白雜訊』就能真相大白的耶??!!

白雜訊

白雜訊,是一種功率譜密度為常數的隨機訊號隨機過程。即,此訊號在各個頻段上的功率是一樣的。由於白光是由各種頻率(顏色 )的單色光混合而成,因而此訊號的這種具有平坦功率譜的性質被稱作是「白色的」,此訊號也因此被稱作白雜訊。相對的,其他不具有這一性質的雜訊訊號被稱為有色雜訊

理想的白雜訊具有無限頻寬,因而其能量是無限大,這在現實世界是不可能存在的。實際上,我們常常將有限頻寬的平整訊號視為白雜訊,以方便進行數學分析。

White_noise_spectrum

白雜訊功率譜

統計特性

術語白雜訊也常用於表示在相關空間的自相關為0的空域雜訊訊號,於是訊號在空間頻率域內就是「白色」的,對於角頻率域內的訊號也是這樣,例如夜空中向各個角度發散的訊號。右面的圖片顯示了計算機產生的一個有限長度的離散時間白雜訊過程。

需要指出,相關性和機率分布是兩個不相關的概念。「白色」僅意味著訊號是不相關的,白雜訊的定義除了要求均值為零外並沒有對訊號應當服從哪種機率分布作出任何假設。因此,如果某白雜訊過程服從高斯分布,則它是「高斯白雜訊」。類似的,還有泊松白雜訊、柯西白雜訊等。人們經常將高斯白雜訊與白雜訊相混同,這是不正確的認識。根據中心極限定理,高斯白雜訊是許多現實世界過程的一個很好的近似,並且能夠生成數學上可以跟蹤的模型,這些模型用得如此頻繁以至於加性高斯白雜訊成了一個標準的縮寫詞: AWGN。此外,高斯白雜訊有著非常有用的統計學特性,因為高斯變量的獨立性與不相關性等價

白雜訊是維納過程或者布朗運動的廣義均方導數(generalized mean-square derivative)。

白雜訊的數學期望為0:

μ n = E { n ( t ) } = 0

自相關函數狄拉克δ函數

r n n = E { n ( t ) n ( t − τ ) } = δ ( τ )

上式正是對白雜訊的「白色」性質在時域的描述。由於隨機過程的功率譜密度是其自相關函數的傅立葉變換,而δ函數的傅立葉變換為常數,因此白雜訊的功率譜密度是平坦的。

Noise

頻譜圖上顯示的左邊的粉紅雜訊和右邊的白雜訊

……

數學定義

白色隨機向量

一個隨機向量 w 為一個白色隨機向量若且唯若它的平均值函數與自相關函數滿足以下條件:

μ w = E { w } = 0
R w w = E { w w T } = σ 2 I

意即它是一個平均值為零的隨機向量,並且它的自相關函數單位矩陣的倍數。

白色隨機過程(白雜訊)

一個時間連續隨機過程 w ( t ) where t ∈ R 為一個白雜訊若且唯若它的平均值函數與自相關函數滿足以下條件:

μ w ( t ) = E { w ( t ) } = 0
R w w ( t 1 , t 2 ) = E { w ( t 1 ) w ( t 2 ) } = ( N 0 / 2 ) δ ( t 1 − t 2 )

意即它是一個對所有時間其平均值為零的隨機過程,並且它的自相關函數是狄拉克δ函數,有無限大的功率。

由上述自相關函數可推出以下的功率譜密度。

S x x ( ω ) = ( N 0 / 2 )

由於δ函數的傅立葉變換為1。而對於所有頻率來說,此功率譜密度是一樣的。因此這是對白雜訊之「白色」性質在頻域的表述。

───

 

此『隨機』之事作者因沒有研究故不知,所以也只能王顧左右而言它的了︰

在現今的世界裡.『搞哲學的』是個貶抑的形容詞,多年前,東方大哲唐君毅先生說︰讀哲學,以後沒飯吃!而西方大哲康德先生,則流傳著一個故事︰話說鄰家女子喜歡康德,請父親替她提婚,康德回答讓他想想,用著哲學的辦法東想西想想了一年,當最後願娶時,伊人早已別嫁。但是避的開哲學,卻躲不了哲學問題,現今的宇宙論大霹靂學說,把『時間』的難題又向前推進一步,這個學說談著 0^{+}以後的事。那 0  秒之時0^{-}  秒之前呢?0^{-} 那時根本沒有『時間』這回事,又怎麽談『』或『』呢?『有始』帶來麻煩,『無始』一樣難解,試問︰果然無窮的過去,又怎麽能到現在?所以說『』與『』是否能畫『』?或者能談此『似有若無』的『介面』?大哉問?或許帶著酒興的詩人崔護,偶過長安城南郊,……此事略能捕捉到這個『有無交接』之處,並『創造』了出如此出色的一首詩︰

题都城南庄

去年今日此門中,

人面桃花相映紅。

人面不知何處去,

桃花依舊笑春風。

難道我們應該認為『創造力』能夠『無中生有』?【易繫辭】上說,易太極』……,或許當是『從有生有』;其中第二章專講『制器尚象』,讓我們聽聽古人怎麼說︰

古者包犧氏之王天下也,仰則觀象于天,俯則觀法于地,觀鳥獸之 文地之宜。近取諸身,遠取諸物,於是始作八卦,以神明之德,以萬物之情。作結繩而為網罟,以佃以漁,蓋取諸離 ☲☲。包犧氏沒,神農氏作。斲木為耜,揉木為耒,耒耨之利,以教天下 ,蓋取諸益 ☴☳。日中為市,致天下之民,聚天下之貨,交易而退,各得其所,蓋取 諸噬嗑 ☲☲。神農氏沒,黃帝堯舜氏作。通其變使民不倦,神而化之使民宜之。 易窮則變,變則通,通則久,是以自天祐之,吉无不利。黃帝堯舜,垂衣裳而天下治,蓋取諸乾 ☰☰ 坤 ☷☷。刳木為舟,剡木為楫,舟楫之利,以濟不通,致遠,以利天下,蓋 取諸渙 ☴☵。服牛乘馬,引重致遠,以利天下,蓋取諸隨 ☱☳。重門擊柝,以待暴客,蓋取諸豫 ☳☷。斷木為杵,掘地為臼,臼杵之利,萬民以濟,蓋取諸小過 ☳☶。弦木為弧,剡木為矢,弧矢之利,以威天下,蓋取諸睽 ☲☱。上古穴居而野處,後世聖人易之以宮室,上棟下宇,以待風雨,蓋 取諸大壯 ☳☰ 。古之葬者,厚衣之以薪,葬之中野,不封不樹,喪期无數。後世聖 人,易之以棺槨,蓋取諸大過 ☱☴。 上古結繩而治,後世聖人易之以書契,百官以治,萬民以察,蓋取 諸夬 ☱☰

綜觀全文,好一部以『生活』為中心的工具發明器物應用,貫串了成千上萬年的歷史。在此我們並不打算解讀著這些『蓋取諸…』之卦,讀者可以試著自己『想象』。為什麼是『十三』個卦呢?古來『陰陽』合曆,一個太陽年 365.25 天,而以月亮為主的太陰年約為 354 天,這就是農曆『閏月』的由來,閏月的那一年有十三個月,作【易繫辭】者或想暗示著『春生夏長秋收冬藏』一個『大年』已經完成了?『觀象繫辭』是一個古老的傳統,中國的『』『』本身就承載著它;東漢許慎在『說文解字』上講的『象形、指示、會意、形聲、轉注、假借』,其實可以分成『擬象』── 象形、指示、會意 ──,『音象』──  形聲  ──,『用象』── 轉注、假借 ──,都是『事物』之象。『』的本意『』起來看,比方說︰懸象著明,莫大於『』『』;對於『沒有形狀』的事物,也用著之的方法,舉例說︰『』可見,天行健的『』是『日陽』的『德性』不可見,所以象之為 。然後有『』為天,君子終日乾乾 ── 健健 ──,的諸諸種種。不僅如此,於器物、建築、用品、…等等『實物』也常常有『』意,比方說北京的『紫禁城』就是依據風水之法,象著『九五至尊』而建造的。由此我們也許可以把『觀象』之法,看作人類心靈中『聯想法』的精煉

─── 摘自《制器尚象,恆其道。