㈠ 怎樣理解分布式網路包含的這兩種架構
分布式網路通常可以分成兩種結構:非結構化的網路和結構化的網路。
非結構化的,就相當於是一個集市,只給了一塊空地,攤主可以隨意一塊地兒擺攤。在非結構化的分布式網路中,各個節點用戶是隨機地互相連接在一起的,所以非結構化的分布式網路搭建網路比較容易,給一塊空地就成。不過,非結構化的分布式網路有個缺點,就是大家都是隨機找地兒,一個節點想要在這裡面找到自己要的東西時比較麻煩,它需要向很多節點發送請求,直到得到合適的節點的回復。就好像在集市,沒有分區,你要買個雞蛋,就得到處溜達或是問人,直到得到回應「我這有雞蛋賣」為止。
結構化的分布式網路就好像一個分區的集市,蔬菜區、水果區、肉食區、海產區是分好的,是有結構的。所以結構化的分布式網路是通過特定的網路結構連在一起的。它可以解決非結構化分布式網路的缺陷,就像我們去集市,要買雞蛋就直奔雞蛋區一樣,節點可以比較高效的找到自己要的東西。
㈡ 網路架構是什麼
就是模型,也不能這樣說了,比如說你要製作一個屋子,你想怎麼搭建屋子啊,你要把想法實施吧,你搭建出來的屋子的框架就是構架,構架和架構其實就是一回事,總體就是一個框架,不如說你想做網路,你需要虛擬出來一個圖片吧,把這些東西在圖紙上構架起來然後再在現實中構架
㈢ 什麼是網路架構
網路架構是進行通信連接的一種網路結構。
網路架構是為設計、構建和管理一個通信網路提供一個構架和技術基礎的藍圖。網路構架定義了數據網路通信系統的每個方面,包括但不限於用戶使用的介面類型、使用的網路協議和可能使用的網路布線的類型。
網路架構典型的有一個分層結構。分層是一種現代的網路設計原理,它將通信任務劃分成很多更小的部分,每個部分完成一個特定的子任務和用小數量良好定義的方式與其它部分相結合。
(3)如何快速看懂網路架構擴展閱讀:
使用網路架構注意事項:
1、動態多路徑
能夠通過多個WAN鏈路對流量進行負載均衡並不是一項新功能。但是,在傳統的WAN中,此功能很難配置,並且通常以靜態方式將流量分配給給定的WAN鏈路。即使面對諸如擁塞鏈路之類的負面擁塞,也不能改變給定WAN鏈路的流量分配。
2、應用程序級別
如果應用程序的性能開始下降,因為該應用程序使用的託管虛擬化網路功能(VNF)的物理伺服器的CPU利用率過高,則VNF可能會移動到利用率較低的伺服器中。
3、能見度
有許多工具聲稱可以為網路組織提供對傳統WAN的完全可見性,以便解決與網路和/或應用程序性能相關的問題。但是,無論是這些工具的缺陷還是網路組織使用的故障排除流程,採用新的WAN架構將使故障排除任務變得更加復雜。
參考資料來源:網路:LTE網路架構
㈣ 如何深入了解網路架構
組建網路體系首先是拓撲圖,也要根據你所在個工作環境有關系比如說一個小公司不是涉及到網路盈利的 業務能力就根本不會重視網路體系的建設說白了一個貓加路由就滿足。如果公司迫切需要換句話說沒有業務系統軟體就不能開展工作,公司重心偏向信息話發展,可以深入開發。
1對公司網路點的評估(有多少台電腦,分別工作的重心在那個業務系統)
2等級劃分 高管 核心數據開發人員 財務 銷售 業務系統的優先行
3生產線信息交接高效性 怎麼完成。
4網路安全性,容災,備份
5經濟行
公司網路一般分2個網一個公司內網和Internet網 如果公司網路安全等級沒達到一個等級基本上是物理隔絕,在網路架構上我們首先考慮安全 防火牆配置 核心交換機VLAN劃分 建立DMZ區 入侵檢測 准入管理 USB控制 文件加密
在安全性能保證的情況下考慮並網業務。資源整合負載均衡 最近華為新出的 私有雲服務 也可以深入了解。
這些一切的一切都根據公司需求來定,說多了也是廢話,一切從實際出發,空想是沒有結果的。
㈤ 什麼是網站架構
網站架構,一般認為是根據客戶需求分析的結果,准確定位網站目標群體,設定網站整體架構,規劃、設計網站欄目及其內容,制定網站開發流程及順序,以最大限度地進行高效資源分配與管理的設計。其內容有程序架構,呈現架構,和信息架構三種表現。而步驟主要分為硬架構和軟架構兩步程序。網路架構是現代網路學習和發展的一個必須的基礎技術。
中文名
網站架構
一般認為
根據客戶需求分析的結果
制定
網站開發流程及順序
內容
程序架構,呈現架構
快速
導航
軟架構八個方案
硬架構
機房的選擇
在選擇機房的時候,根據網站用戶的地域分布,可以選擇網通或電信機房,但更多時候,可能雙線機房才是合適的。越大的城市,機房價格越貴,從成本的角度看可以在一些中小城市託管伺服器,比如說北京的公司可以考慮把伺服器託管在天津,廊坊等地,不是特別遠,但是價格會便宜很多。
帶寬的大小
通常老闆花錢請我們架構網站的時候,會給我們提出一些目標,諸如網站每天要能承受100萬PV的訪問量等等。這時我們要預算一下大概需要多大的帶寬,計算帶寬大小主要涉及兩個指標(峰值流量和頁面大小),我們不妨在計算前先做出必要的假設:
第一:假設峰值流量是平均流量的5倍。
第二:假設每次訪問平均的頁面大小是100K位元組左右。
如果100萬PV的訪問量在一天內平均分布的話,摺合到每秒大約12次訪問,如果按平均每次訪問頁面的大小是100K位元組左右計算的話,這12次訪問總計大約就是1200K位元組,位元組的單位是Byte,而帶寬的單位是bit,它們之間的關系是1Byte = 8bit,所以1200K Byte大致就相當於9600K bit,也就是9Mbps的樣子,實際情況中,我們的網站必須能在峰值流量時保持正常訪問,所以按照假設的峰值流量算,真實帶寬的需求應該在45Mbps 左右。
當然,這個結論是建立在前面提到的兩點假設的基礎上,如果你的實際情況和這兩點假設有出入,那麼結果也會有差別。
伺服器的劃分
先看我們都需要哪些伺服器:圖片伺服器,頁面伺服器,資料庫伺服器,應用伺服器,日誌伺服器等等。
對於訪問量大點的網站而言,分離單獨的圖片伺服器和頁面伺服器相當必要,我們可以用lighttpd來跑圖片伺服器,用apache來跑頁面伺服器,當然也可以選擇別的,甚至,我們可以擴展成很多台圖片伺服器和很多台頁面伺服器,並設置相關域名,如img.domain和 www.domain,頁面里的圖片路徑都使用絕對路徑,如<img src="http://img.domain/abc.gif" />,然後設置DNS輪循,達到最初級的負載均衡。當然,伺服器多了就不可避免的涉及一個同步的問題,這個可以使用rsync軟體來搞定。
資料庫伺服器是重中之重,因為網站的瓶頸問題十有八九是出在資料庫身上。一般的中小網站多使用MySQL資料庫,不過它的集群功能似乎還沒有達到stable的階段,所以這里不做評價。一般而言,使用MySQL資料庫的時候,我們應該搞一個主從(一主多從)結構,主資料庫伺服器使用innodb表結構,從數據伺服器使用myisam表結構,充分發揮它們各自的優勢,而且這樣的主從結構分離了讀寫操作,降低了讀操作的壓力,甚至我們還可以設定一個專門的從伺服器做備份伺服器,方便備份。不然如果你只有一台主伺服器,在大數據量的情況下,mysqlmp基本就沒戲了,直接拷貝數據文件的話,還得先停止資料庫服務再拷貝,否則備份文件會出錯。但對於很多網站而言,即使資料庫服務僅停止了一秒也是不可接受的。如果你有了一台從資料庫伺服器,在備份數據的時候,可以先停止服務(slave stop)再備份,再啟動服務(slave start)後從伺服器會自動從主伺服器同步數據,一切都沒有影響。但是主從結構也是有致命缺點的,那就是主從結構只是降低了讀操作的壓力,卻不能降低寫操作的壓力。
為了適應更大的規模,可能只剩下最後這招了:橫向/縱向分割資料庫。所謂橫向分割資料庫,就是把不同的表保存到不同的資料庫伺服器上,比如說 用戶表保存在A資料庫伺服器上,文章表保存在B資料庫伺服器上,當然這樣的分割是有代價的,最基本的就是你沒法進行LEFT JOIN之類的操作了。所謂縱向分割資料庫,一般是指按照用戶標識(user_id)等來劃分數據存儲的伺服器,比如說:我們有5台資料庫伺服器,那麼 「user_id % 5 + 1」等於1的就保存到1號伺服器,等於2的就保存到2號伺服器,以此類推,縱向分隔的原則有很多種,可以視情況選擇。不過和橫向分割資料庫一樣,縱向分割資料庫也是有代價的,最基本的就是我們在進行如COUNT, SUM等匯總操作的時候會麻煩很多。綜上所述,資料庫伺服器的解決方案一般視情況往往是一個混合的方案,以其發揮各種方案的優勢,有時候還需要藉助memcached之類的第三方軟體,以便適應更大訪問量的要求。
如果有專門的應用伺服器來跑PHP腳本是最合適不過的了,那樣我們的頁面伺服器只保存靜態頁面就可以了,可以給應用伺服器設置一些諸如app.domain之類的域名來和頁面伺服器加以區別。對於應用伺服器,我還是更傾向於使用prefork模式的apache,配上必要的xcache之類的PHP緩存軟體,載入模塊要越少越好,除了mod_rewrite等必要的模塊,不必要的東西統統舍棄,盡量減少httpd進程的內存消耗,而那些圖片伺服器,頁面伺服器等靜態內容就可以使用lighttpd或者tux來搞,充分發揮各種伺服器的特點。
如果條件允許,獨立的日誌伺服器也是必要的,一般小網站的做法都是把頁面伺服器和日誌伺服器合二為一了,在凌晨訪問量不大的時候cron運行前一天的日誌計算,不過如果你使用awstats之類的日誌分析軟體,對於百萬級訪問量而言,即使按天歸檔,也會消耗很多時間和伺服器資源去計算,所以分離單獨的日誌伺服器還是有好處的,這樣不會影響正式伺服器的工作狀態。
軟架構
框架的選擇
PHP框架有很多選擇,比如:CakePHP,Symfony,Zend Framework等等,至於應該使用哪一個並沒有唯一的答案,要根據Team里團隊成員對各個框架的了解程度而定。很多時候,即使沒有使用框架,一樣能 寫出好的程序來,比如Flickr據說就是用Pear+Smarty這樣的類庫寫出來的,所以,是否用框架,用什麼框架,一般不是最重要的,重要的是我們 的編程思想里要有框架的意識。
邏輯的分層
㈥ 常見的網路架構有哪些
常見的網路拓撲結構有以下幾種:1.匯流排型網路拓撲結構;2.星型網路拓撲結構;3.環形網路拓撲結構;4.樹型網路拓撲結構;5.網狀網路拓撲結構;6.混合網路型拓撲結構。網路拓撲結構是指用傳輸媒體對各種設備進行連接的物理布局。
1.匯流排型網路拓撲結構
匯流排型結構是將網路中的所有設備通過相應的硬體介面直接連接到公共匯流排上,結點之間按廣播方式通信,一個結點發出的信息,匯流排上的其它結點均可「收聽」到。 匯流排型結構就像一張樹葉,有一條主幹線,主幹線上面由很多分支。
2.星型網路拓撲結構
星型結構是一種以中央節點為中心,把若干外圍節點連接起來的輻射式互聯結構。這種結構適用於區域網,特別是近年來連接的區域網大都採用這種連接方式。這種連接方式以雙絞線或同軸電纜作連接線路。
3.環形網路拓撲結構
環形結構各結點通過通信線路組成閉合迴路,環中數據只能單向傳輸,信息在每台設備上的延時時間是固定的,特別適合實時控制的區域網系統。環形結構就如一串珍珠項鏈,環形結構上的每台計算機就是項鏈上的一個個珠子。
4.樹型網路拓撲結構
樹型拓撲結構是一種層次結構,結點按層次連結,信息交換主要在上下結點之間進行,相鄰結點或同層結點之間一般不進行數據交換。樹型拓撲結構是就是數據結構中的樹。
5.網狀網路拓撲結構
網路拓撲結構又稱作無規則結構,結點之間的聯結是任意的,沒有規律。
6.混合網路型拓撲結構
混合型網路拓撲結構就是指同時使用上面的5種網路拓撲結構種兩種或兩種以上的網路拓撲結構。
㈦ 網路架構
呀!這個框架太抽象了吧我試試。
先是一些抽象的概念
網路體系結構是指通信系統的整體設計,它為網路硬體、軟體、協議、存取控制和拓撲提供標准。它廣泛採用的是國際標准化組織(ISO)在1979年提出的開放系統互連(OSI-OpenSystemInterconnection)的參考模型。
依據ios模型下的層次化的職能介紹:
第一層:物理層(PhysicalLayer)
規定通信設備的機械的、電氣的、功能的和規程的特性,用以建立、維護和拆除物理鏈路連接。具體地講,機械特性規定了網路連接時所需接插件的規格尺寸、引腳數量和排列情況等;電氣特性規定了在物理連接上傳輸bit流時線路上信號電平的大小、阻抗匹配、傳輸速率距離限制等;功能特性是指對各個信號先分配確切的信號含義,即定義了DTE和DCE之間各個線路的功能;規程特性定義了利用信號線進行bit流傳輸的一組操作規程,是指在物理連接的建立、維護、交換信息時,DTE和DCE雙方在各電路上的動作系列。在這一層,數據的單位稱為比特(bit)。OSI七層模型
物理層的主要設備:中繼器、集線器。
第二層:數據鏈路層(DataLinkLayer)
在物理層提供比特流服務的基礎上,建立相鄰結點之間的數據鏈路,通過差錯控制提供數據幀(Frame)在信道上無差錯的傳輸,並進行各電路上的動作系列。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址定址、數據的成幀、流量控制、數據的檢錯、重發等。在這一層,數據的單位稱為幀(frame)。數據鏈路層主要設備:二層交換機、網橋
第三層:網路層(Networklayer)
在計算機網路中進行通信的兩個計算機之間可能會經過很多個數據鏈路,也可能還要經過很多通信子網。網路層的任務就是選擇合適的網間路由和交換結點,確保數據及時傳送。網路層將數據鏈路層提供的幀組成數據包,包中封裝有網路層包頭,其中含有邏輯地址信息--源站點和目的站點地址的網路地址。如果你在談論一個IP地址,那麼你是在處理第3層的問題,這是「數據包」問題,而不是第2層的「幀」。IP是第3層問題的一部分,此外還有一些路由協議和地址解析協議(ARP)。有關路由的一切事情都在第3層處理。地址解析和路由是3層的重要目的。網路層還可以實現擁塞控制、網際互連等功能。在這一層,數據的單位稱為數據包(packet)。網路層協議的代表包括:IP、IPX、RIP、ARP、RARP、OSPF等。網路層主要設備:路由器
第四層:數據包(packets)
第4層的數據單元也稱作處理信息的傳輸層(Transportlayer)。但是,當你談論TCP等具體的協議時又有特殊的叫法,TCP的數據單元稱為段(segments)而UDP協議的數據單元稱為「數據報(datagrams)」。這個層負責獲取全部信息,因此,它必須跟蹤數據單元碎片、亂序到達的數據包和其它在傳輸過程中可能發生的危險。第4層為上層提供端到端(最終用戶到最終用戶)的透明的、可靠的數據傳輸服務。所謂透明的傳輸是指在通信過程中傳輸層對上層屏蔽了通信傳輸系統的具體細節。傳輸層協議的代表包括:TCP、UDP、SPX等。
第五層:會話層(Sessionlayer)
一層也可以稱為會晤層或對話層,在會話層及以上的高層次中,數據傳送的單位不再另外命名,統稱為報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制。如伺服器驗證用戶登錄便是由會話層完成的。
第六層:表示層(Presentationlayer)
這一層主要解決用戶信息的語法表示問題。它將欲交換的數據從適合於某一用戶的抽象語法,轉換為適合於OSI系統內部使用的傳送語法。即提供格式化的表示和轉換數據服務。數據的壓縮和解壓縮,加密和解密等工作都由表示層負責。例如圖像格式的顯示,就是由位於表示層的協議來支持。
第七層:應用層(Applicationlayer)
應用層為操作系統或網路應用程序提供訪問網路服務的介面。應用層協議的代表包括:Telnet、FTP、HTTP、SNMP等。
㈧ 如何看網路拓撲結構圖
路由器可以充當伺服器,可以管理網路數據,一般區域網內只需要一個路由,而交換機根據機器的數量有多個。
㈨ 網路架構是什麼
網路架構(Network Architecture)
網路架構(Network Architecture)是為設計、構建和管理一個通信網路提供一個構架和技術基礎的藍圖。網路構架定義了數據網路通信系統的每個方面,包括但不限於用戶使用的介面類型、使用的網路協議和可能使用的網路布線的類型。網路架構典型地有一個分層結構。分層是一種現代的網路設計原理,它將通信任務劃分成很多更小的部分,每個部分完成一個特定的子任務和用小數量良好定義的方式與其它部分相結合。
㈩ 一文看懂四種基本的神經網路架構
原文鏈接:
http://blackblog.tech/2018/02/23/Eight-Neural-Network/
更多干貨就在我的個人博客 http://blackblog.tech 歡迎關注
剛剛入門神經網路,往往會對眾多的神經網路架構感到困惑,神經網路看起來復雜多樣,但是這么多架構無非也就是三類,前饋神經網路,循環網路,對稱連接網路,本文將介紹四種常見的神經網路,分別是CNN,RNN,DBN,GAN。通過這四種基本的神經網路架構,我們來對神經網路進行一定的了解。
神經網路是機器學習中的一種模型,是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
一般來說,神經網路的架構可以分為三類:
前饋神經網路:
這是實際應用中最常見的神經網路類型。第一層是輸入,最後一層是輸出。如果有多個隱藏層,我們稱之為「深度」神經網路。他們計算出一系列改變樣本相似性的變換。各層神經元的活動是前一層活動的非線性函數。
循環網路:
循環網路在他們的連接圖中定向了循環,這意味著你可以按照箭頭回到你開始的地方。他們可以有復雜的動態,使其很難訓練。他們更具有生物真實性。
循環網路的目的使用來處理序列數據。在傳統的神經網路模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節點是無連接的。但是這種普通的神經網路對於很多問題卻無能無力。例如,你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。
循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。
對稱連接網路:
對稱連接網路有點像循環網路,但是單元之間的連接是對稱的(它們在兩個方向上權重相同)。比起循環網路,對稱連接網路更容易分析。這個網路中有更多的限制,因為它們遵守能量函數定律。沒有隱藏單元的對稱連接網路被稱為「Hopfield 網路」。有隱藏單元的對稱連接的網路被稱為玻爾茲曼機。
其實之前的帖子講過一些關於感知機的內容,這里再復述一下。
首先還是這張圖
這是一個M-P神經元
一個神經元有n個輸入,每一個輸入對應一個權值w,神經元內會對輸入與權重做乘法後求和,求和的結果與偏置做差,最終將結果放入激活函數中,由激活函數給出最後的輸出,輸出往往是二進制的,0 狀態代表抑制,1 狀態代表激活。
可以把感知機看作是 n 維實例空間中的超平面決策面,對於超平面一側的樣本,感知器輸出 1,對於另一側的實例輸出 0,這個決策超平面方程是 w⋅x=0。 那些可以被某一個超平面分割的正反樣例集合稱為線性可分(linearly separable)樣例集合,它們就可以使用圖中的感知機表示。
與、或、非問題都是線性可分的問題,使用一個有兩輸入的感知機能容易地表示,而異或並不是一個線性可分的問題,所以使用單層感知機是不行的,這時候就要使用多層感知機來解決疑惑問題了。
如果我們要訓練一個感知機,應該怎麼辦呢?
我們會從隨機的權值開始,反復地應用這個感知機到每個訓練樣例,只要它誤分類樣例就修改感知機的權值。重復這個過程,直到感知機正確分類所有的樣例。每一步根據感知機訓練法則來修改權值,也就是修改與輸入 xi 對應的權 wi,法則如下:
這里 t 是當前訓練樣例的目標輸出,o 是感知機的輸出,η 是一個正的常數稱為學習速率。學習速率的作用是緩和每一步調整權的程度,它通常被設為一個小的數值(例如 0.1),而且有時會使其隨著權調整次數的增加而衰減。
多層感知機,或者說是多層神經網路無非就是在輸入層與輸出層之間加了多個隱藏層而已,後續的CNN,DBN等神經網路只不過是將重新設計了每一層的類型。感知機可以說是神經網路的基礎,後續更為復雜的神經網路都離不開最簡單的感知機的模型,
談到機器學習,我們往往還會跟上一個詞語,叫做模式識別,但是真實環境中的模式識別往往會出現各種問題。比如:
圖像分割:真實場景中總是摻雜著其它物體。很難判斷哪些部分屬於同一個對象。對象的某些部分可以隱藏在其他對象的後面。
物體光照:像素的強度被光照強烈影響。
圖像變形:物體可以以各種非仿射方式變形。例如,手寫也可以有一個大的圓圈或只是一個尖頭。
情景支持:物體所屬類別通常由它們的使用方式來定義。例如,椅子是為了讓人們坐在上面而設計的,因此它們具有各種各樣的物理形狀。
卷積神經網路與普通神經網路的區別在於,卷積神經網路包含了一個由卷積層和子采樣層構成的特徵抽取器。在卷積神經網路的卷積層中,一個神經元只與部分鄰層神經元連接。在CNN的一個卷積層中,通常包含若干個特徵平面(featureMap),每個特徵平面由一些矩形排列的的神經元組成,同一特徵平面的神經元共享權值,這里共享的權值就是卷積核。卷積核一般以隨機小數矩陣的形式初始化,在網路的訓練過程中卷積核將學習得到合理的權值。共享權值(卷積核)帶來的直接好處是減少網路各層之間的連接,同時又降低了過擬合的風險。子采樣也叫做池化(pooling),通常有均值子采樣(mean pooling)和最大值子采樣(max pooling)兩種形式。子采樣可以看作一種特殊的卷積過程。卷積和子采樣大大簡化了模型復雜度,減少了模型的參數。
卷積神經網路由三部分構成。第一部分是輸入層。第二部分由n個卷積層和池化層的組合組成。第三部分由一個全連結的多層感知機分類器構成。
這里舉AlexNet為例:
·輸入:224×224大小的圖片,3通道
·第一層卷積:11×11大小的卷積核96個,每個GPU上48個。
·第一層max-pooling:2×2的核。
·第二層卷積:5×5卷積核256個,每個GPU上128個。
·第二層max-pooling:2×2的核。
·第三層卷積:與上一層是全連接,3*3的卷積核384個。分到兩個GPU上個192個。
·第四層卷積:3×3的卷積核384個,兩個GPU各192個。該層與上一層連接沒有經過pooling層。
·第五層卷積:3×3的卷積核256個,兩個GPU上個128個。
·第五層max-pooling:2×2的核。
·第一層全連接:4096維,將第五層max-pooling的輸出連接成為一個一維向量,作為該層的輸入。
·第二層全連接:4096維
·Softmax層:輸出為1000,輸出的每一維都是圖片屬於該類別的概率。
卷積神經網路在模式識別領域有著重要應用,當然這里只是對卷積神經網路做了最簡單的講解,卷積神經網路中仍然有很多知識,比如局部感受野,權值共享,多卷積核等內容,後續有機會再進行講解。
傳統的神經網路對於很多問題難以處理,比如你要預測句子的下一個單詞是什麼,一般需要用到前面的單詞,因為一個句子中前後單詞並不是獨立的。RNN之所以稱為循環神經網路,即一個序列當前的輸出與前面的輸出也有關。具體的表現形式為網路會對前面的信息進行記憶並應用於當前輸出的計算中,即隱藏層之間的節點不再無連接而是有連接的,並且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,RNN能夠對任何長度的序列數據進行處理。
這是一個簡單的RNN的結構,可以看到隱藏層自己是可以跟自己進行連接的。
那麼RNN為什麼隱藏層能夠看到上一刻的隱藏層的輸出呢,其實我們把這個網路展開來開就很清晰了。
從上面的公式我們可以看出,循環層和全連接層的區別就是循環層多了一個權重矩陣 W。
如果反復把式2帶入到式1,我們將得到:
在講DBN之前,我們需要對DBN的基本組成單位有一定的了解,那就是RBM,受限玻爾茲曼機。
首先什麼是玻爾茲曼機?
[圖片上傳失敗...(image-d36b31-1519636788074)]
如圖所示為一個玻爾茲曼機,其藍色節點為隱層,白色節點為輸入層。
玻爾茲曼機和遞歸神經網路相比,區別體現在以下幾點:
1、遞歸神經網路本質是學習一個函數,因此有輸入和輸出層的概念,而玻爾茲曼機的用處在於學習一組數據的「內在表示」,因此其沒有輸出層的概念。
2、遞歸神經網路各節點鏈接為有向環,而玻爾茲曼機各節點連接成無向完全圖。
而受限玻爾茲曼機是什麼呢?
最簡單的來說就是加入了限制,這個限制就是將完全圖變成了二分圖。即由一個顯層和一個隱層構成,顯層與隱層的神經元之間為雙向全連接。
h表示隱藏層,v表示顯層
在RBM中,任意兩個相連的神經元之間有一個權值w表示其連接強度,每個神經元自身有一個偏置系數b(對顯層神經元)和c(對隱層神經元)來表示其自身權重。
具體的公式推導在這里就不展示了
DBN是一個概率生成模型,與傳統的判別模型的神經網路相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了後者,也就是P(Label|Observation)。
DBN由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的神經網路類型如圖所示。這些網路被「限制」為一個可視層和一個隱層,層間存在連接,但層內的單元間不存在連接。隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。
生成對抗網路其實在之前的帖子中做過講解,這里在說明一下。
生成對抗網路的目標在於生成,我們傳統的網路結構往往都是判別模型,即判斷一個樣本的真實性。而生成模型能夠根據所提供的樣本生成類似的新樣本,注意這些樣本是由計算機學習而來的。
GAN一般由兩個網路組成,生成模型網路,判別模型網路。
生成模型 G 捕捉樣本數據的分布,用服從某一分布(均勻分布,高斯分布等)的雜訊 z 生成一個類似真實訓練數據的樣本,追求效果是越像真實樣本越好;判別模型 D 是一個二分類器,估計一個樣本來自於訓練數據(而非生成數據)的概率,如果樣本來自於真實的訓練數據,D 輸出大概率,否則,D 輸出小概率。
舉個例子:生成網路 G 好比假幣製造團伙,專門製造假幣,判別網路 D 好比警察,專門檢測使用的貨幣是真幣還是假幣,G 的目標是想方設法生成和真幣一樣的貨幣,使得 D 判別不出來,D 的目標是想方設法檢測出來 G 生成的假幣。
傳統的判別網路:
生成對抗網路:
下面展示一個cDCGAN的例子(前面帖子中寫過的)
生成網路
判別網路
最終結果,使用MNIST作為初始樣本,通過學習後生成的數字,可以看到學習的效果還是不錯的。
本文非常簡單的介紹了四種神經網路的架構,CNN,RNN,DBN,GAN。當然也僅僅是簡單的介紹,並沒有深層次講解其內涵。這四種神經網路的架構十分常見,應用也十分廣泛。當然關於神經網路的知識,不可能幾篇帖子就講解完,這里知識講解一些基礎知識,幫助大家快速入(zhuang)門(bi)。後面的帖子將對深度自動編碼器,Hopfield 網路長短期記憶網路(LSTM)進行講解。