為什麼深度神經網路要使用權值來連接神經元?
為什麼深度神經網路的神經元之間的連接是用一個權值w表示?為什麼激活函數可以是Sigmoid和ReLU等等複雜的非線性函數,而神經元之間的連接只能是線性的權值?是不是有什麼理論規定了神經網路必須使用權值來連接神經元?
不一定。神經節點之間並不一定非得使用權值連接。從某種意義上來說,使用權值是一種極度省麻煩的方法。實際上有各種其它的函數可以使用。題主可以看2017年10月發出的這篇論文:
Trainable back-propagated functional transfer matrices
地址是:
https://arxiv.org/abs/1710.10403
這篇論文是說,在BP演算法的框架下,節點之間的連接可以是各種複雜的函數。這些函數其實可以替代權值,而這些函數(文中舉例了20種函數)的參數也可以是可以通過BP演算法去訓練的,也可以堆疊在一起形成多隱含層的結構。在MNIST上,這些函數是可以收斂的。甚至於,它們還可以是帶有記憶的函數,用來做序列建模(原理類似於RNN,但是上一個時刻的信息不是儲存在節點中,而是儲存在節點之間的連接中)。在有先驗知識的情況下(比如說我們知道哪種函數特別適合於圖像識別,哪種可以用來抗噪等等),我們就可以根據場景和需求去設計不同的函數(這可能也是未來的一個潛在的研究方向)。
此外,從嚴格意義上來說,在卷積神經網路中常用的Max Pooling層,也不是用線性的權值去連接節點。它用的是一個Pooling函數,用於在幾個輸入中取最大值。
所以說,神經節點之間並不一定非得使用權值連接。人們使用權值只是因為它最容易實現,也最容易從數學上分析。
【參考文獻】
[1]. C.-H. Cai, Y. Xu, D. Ke, K. Su, J. Sun.
Trainable back-propagated functional transfer matrices. CoRR abs/1710.10403(2017)
[2]. I. Goodfellow, Y. Bengio, A. Courville.
Deep learning. MIT press, 2016.權值表示的是一個一次的線性函數,參數就一個bias和一個斜率,比較好訓練,而且目前看來似乎也夠用,所以都這麼用。
其實只要你能訓練出來,你用什麼函數都行
神經元之間傳遞用線性的應該是便於計算參數,激活函數用非線性的是為了能處理線性不可分(分類問題)。
至於具體為什麼這麼做,大概是因為以前也有許多像題主一樣不信邪的人,做了很多其他的嘗試,並沒有發現一個更好的選擇(計算方便效果又好),最後也就都這麼做了。
後面是我猜的。
謝邀
只不過是權值是一個二維數據,方便統計
實際上是可以進行映射到均勻空間我是這樣看的,神經網路的目的是找到所有關係的表達方式,所以最好的應該類似最大公約數一樣的東西,線性加非線性的方法是目前找到的最好的最大公約數。
推薦閱讀:
※大數據與深度學習區別?
※hadoop與機器學習,這兩個是相輔相成的必須學習完hadoop才能學習機器學習,還是可以單獨去學習?
※機器學習中如何用交叉驗證來驗證是否過擬合?
※機器學習方面高質量的論文怎麼找?
※有沒有講sklearn的書?
TAG:人工智慧 | 機器學習 | 神經網路 | 深度學習DeepLearning |