udacity上deeplearning這門課是google開的,介紹了常見的幾種深度神經網路模型,同時還附帶了幾個練習,並且練習用的工具都是tensorflow,所以既可以學習一下神經網路的知識,又可以學習tensorflow。我寫的課後練習的**都放到了我的githuh上(同時也是第一次用git,所以也學習了git的用法)為什麼最近幾年深度學習/神經網路開始火了:
更便宜的gpu
更大規模的資料
分類問題是很多問題的基礎:
回歸強化學習
歸一化因為計算機的精度問題,所以必須要進行歸一化
既然mlp(三層神經網路)已經可以擬合任何函式了, 為什麼要用多層神經網路?
為什麼最近幾年深度學習才火起來呢?
乙個原因在於只有資料量足夠大的情況下的深度神經網路才能發揮出比較好的效果,而只有在最近幾年,學術界才接觸到了大規模資料。
另外一方面,最近幾年學術界才知道如何更好的用正則化方法訓練很大的模型
防止過擬合的方法卷積網路提出的思路是基於權重共享的思想,有些東西不需要跟其位置有關,比如中人臉的位置,文字中某個特定名詞出現的位置(在某些特定任務下)等等。不同位置的輸入能夠得到相同的資訊。
提公升卷積網路效能的方式:
還有平均池化,相當於模糊了影象。
1*1卷積。只關注乙個單個畫素。
inception結構。inception非常有效的,就是每一層可以用許多不同型別的卷積,或者池化,最後把他們統一連線起來。
tsne是比較適合用來視覺化embedding結果的方式,因為如果用pca這種傳統方法的話,做出來的結果並不好,而tsne這種方法能夠最大限度的保留原空間中的相對距離資訊。
如果說cnn是通過權值共享,來在不同空間來提取影象的模式。而rnn則是在時間序列上的權值共享。
因為在時間上權值共享的關係,所以梯度下降演算法其實對於rnn來說並不好,因為梯度下降更加偏向於相互之間無關聯的引數更新,以保證訓練時的穩定性。相關聯的更新會使訓練中的數學過程變得不穩定——梯度**或者梯度消失,會使網路丟失訓練物件。
對於梯度**(exploding gradient):
對與梯度消失(vanishing gradient):
簡單來說lstm能夠幫助模型在需要記憶的情況下記憶很久,在需要忘記的情況下,立刻忘記。最終導致消失的問題也被解決了。
l2正則話和dropout也能用在lstm中,不過需要用在輸入層和輸出層,而不是遞迴連線層
Ubuntu啟用IPv6上google的方法
pv6就是我們通常所說的網際網路協議,是tcp ip的核心協議,那麼在linux下如何開啟ipv6呢?下面以ubuntu為例,給大家介紹下ubuntu啟用ipv6的方法。方法 sudo apt get install miredo ifconfig 在結果中應該能看見乙個叫 teredo 的虛擬網絡...
Ubuntu啟用IPv6上google的方法
ipv6就是我們通常所說的網際網路協議,是tcp ip的核心協議,那麼在linux下如何開啟ipv6呢?下面以ubuntu為例,給大家介紹下ubuntu啟用ipv6的方法。方法 sudo apt get install miredo ifconfig 在結果中應該能看見乙個叫 teredo 的虛擬網...
為什麼在 Google 上搜不到我的網頁?
經常有問 我的 提交 google 有 1 個月了,但就是找不到我的網頁,這是怎麼回事?其實 google 在收錄 方面還是相當寬容的,有時新 在 google 上找不到,並不等於沒被收錄 而是你太心急了。如果你的 沒有違反 google 的 spam 規則,並且 也已加到了其他各大搜尋引擎,或至少...