⑴ 請問MATLAB中神經網路預測結果應該怎麼看求大神解答
從圖中Neural Network可以看出,你的網路結構是兩個隱含層,2-3-1-1結構的網路,演算法是traindm,顯示出來的誤差變化為均方誤差值mse。經過482次迭代循環完成訓練,耗時5秒。相同計算精度的話,訓練次數越少,耗時越短,網路結構越優秀。達到設定的網路精度0.001的時候,誤差下降梯度為0.0046,遠大於默認的1e-5,說明此時的網路誤差仍在快速下降,所以可以把訓練精度目標再提高一些,比如設為0.0001或者1e-5。
⑵ 這個神經網路訓練有沒有梯度消失,或者梯度爆炸,具體怎麼看阿
增加網路的非線性能力,從而擬合更多的非線性過程。ReLU在一定程度上能夠防止梯度消失,但防止梯度消失不是用它的主要原因,主要原因是求導數簡單。一定程度是指,右端的不會趨近於飽和,求導數時,導數不為零,從而梯度不消失,但左端問題依然存在,一樣掉進去梯度也會消失。所以出現很多改進的ReLU。
⑶ 通過哪些參數看神經網路擬合出來的函數效果神經網路擬合時如何確定隱藏的節點數
主要看均方誤差和其百分比(准確率)。假如你擬合出來是ui,計算(yi-ui)^2的平均值,然後計算這個平均值與yi平均值的比(也就是均方誤差百分比),當然用1減去這個百分比就是准確率了。一般也會畫一幅圖,把yi和ui分別用不同的顏色或者符號表示出來,直觀對比。
擬合時的隱含層節點數目前沒有一個通行的公式進行確定,只能憑借經驗和試湊。一般情況下,問題的復雜程度(非線性程度和維度)越高,隱含層節點數越多。這里介紹一個小經驗:先用不太大的節點數進行預測,如果增加節點數測試集准確率和訓練集准確率都有所提升,則應該繼續增加。如果增加節點數測試集准確率增加很不明顯,而訓練集准確率還是有所提升,則不應該繼續增加,當前的就是很理想的,繼續增加節點數只會起到反效果。
⑷ ip地址在哪裡看
早在2022年3月17日,微博已經顯示賬號IP屬地。而不出意外,其他平台賬號及有關內容或將陸續顯示IP屬地。
其中,值得一提的是,這一功能不支持手動打開或者關閉,是官方的默認選項。
對於各大軟體將顯示IP屬地一事,有網友比較贊同。「堅決支持網路實名制,讓試圖躲在面具後面的違法違規行為無處遁形!」
但同時,有網友表示不理解不接受,認為一旦顯示IP屬地,將有可能會涉及到隱私問題。同時表示,軟體強制對外顯示IP屬地,未經用戶同意向所有人展示用戶個人隱私數據極其不禮貌,甚至有可能會涉及到人身安全問題。
「IP屬地」和「IP地址」不能混為一談。
據相關資料顯示,IP歸屬地屬於網路空間測繪的一部分,IP歸屬地主要是將網路測繪技術與人工智慧演算法相結合,利用動態密度聚類演算法和基於多層神經網路的IP定位演算法,完成IP地址地理位置定位,定位分為城市、街道等多種精度。
而就其核心而言,IP地址是互聯網與連接者的唯一標識符。每台聯網的計算機都有自己的IP地址,通過命名系統,計算機可以互聯共享數據。
IP地址雖然對應著用戶設備終端,但首先,我們需要明確的是單獨的IP地址不能暴露你的地理區域之外的更多信息。
有網友科普道,具體而言,一般情況下,境內互聯網賬號IP地址屬地信息將標注到省一級,境外互聯網賬號IP地址屬地信息將標注到國家一級。
因此,對於絕大多數用戶而言,顯示IP屬地信息並不會帶來麻煩。
以微博為例,微博IP屬地該怎麼查看呢?首先打開微博軟體,選擇一個用戶並點擊頭像,之後點擊下拉符號,選擇更多資料,即可以看到對方的IP歸屬地信息,但也僅僅只顯示到具體省份。
而究其為什麼各大APP要在「個人主頁展示賬號IP屬地」一事,是為了避免惡意造謠、蹭流量的不文明行為,網路不是法外之地。
2022年4月16日消息,據網信辦官網消息,按照2022年「清朗」系列專項行動安排,中央網信辦、國家稅務總局、國家市場監督管理總局三部門自即日起,開展為期兩個月的「清朗·整治網路直播、短視頻領域亂象」專項行動。
其中,「清朗專項行動」主要任務中第五條指出,從嚴治理惡意營銷問題,嚴厲打擊逢熱必蹭行為,嚴厲打擊在災難或事故現場以救援者或受難者姿態進行拍攝等,以幫扶救援為名,行借機蹭熱度、消費災情之實的行為;打擊對走紅的熱點人物,進行實地圍追堵截,以其為主角或背景進行拍攝,借勢引流量,嚴重干擾當事人正常生活等行為;打擊對熱點事件、人物、話題進行「反蹭」,罔顧事實對熱點事件、人物進行惡意調侃、抨擊,甚至無中生有、編造謠言等行為。
⑸ 一文看懂卷積神經網路-CNN(基本原理+獨特價值+實際應用)
在 CNN 出現之前,圖像對於人工智慧來說是一個難題,有2個原因:
圖像需要處理的數據量太大,導致成本很高,效率很低
圖像在數字化的過程中很難保留原有的特徵,導致圖像處理的准確率不高
下面就詳細說明一下這2個問題:
圖像是由像素構成的,每個像素又是由顏色構成的。
現在隨隨便便一張圖片都是 1000×1000 像素以上的, 每個像素都有RGB 3個參數來表示顏色信息。
假如我們處理一張 1000×1000 像素的圖片,我們就需要處理3百萬個參數!
1000×1000×3=3,000,000
這么大量的數據處理起來是非常消耗資源的,而且這只是一張不算太大的圖片!
卷積神經網路 – CNN 解決的第一個問題就是「將復雜問題簡化」,把大量參數降維成少量參數,再做處理。
更重要的是:我們在大部分場景下,降維並不會影響結果。比如1000像素的圖片縮小成200像素,並不影響肉眼認出來圖片中是一隻貓還是一隻狗,機器也是如此。
圖片數字化的傳統方式我們簡化一下,就類似下圖的過程:
假如有圓形是1,沒有圓形是0,那麼圓形的位置不同就會產生完全不同的數據表達。但是從視覺的角度來看, 圖像的內容(本質)並沒有發生變化,只是位置發生了變化 。
所以當我們移動圖像中的物體,用傳統的方式的得出來的參數會差異很大!這是不符合圖像處理的要求的。
而 CNN 解決了這個問題,他用類似視覺的方式保留了圖像的特徵,當圖像做翻轉,旋轉或者變換位置時,它也能有效的識別出來是類似的圖像。
那麼卷積神經網路是如何實現的呢?在我們了解 CNN 原理之前,先來看看人類的視覺原理是什麼?
深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。
1981 年的諾貝爾醫學獎,頒發給了 David Hubel(出生於加拿大的美國神經生物學家) 和TorstenWiesel,以及 Roger Sperry。前兩位的主要貢獻,是「 發現了視覺系統的信息處理 」,可視皮層是分級的。
人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素 Pixels),接著做初步處理(大腦皮層某些細胞發現邊緣和方向),然後抽象(大腦判定,眼前的物體的形狀,是圓形的),然後進一步抽象(大腦進一步判定該物體是只氣球)。下面是人腦進行人臉識別的一個示例:
對於不同的物體,人類視覺也是通過這樣逐層分級,來進行認知的:
我們可以看到,在最底層特徵基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特徵(輪子、眼睛、軀乾等),到最上層,不同的高級特徵最終組合成相應的圖像,從而能夠讓人類准確的區分不同的物體。
那麼我們可以很自然的想到:可以不可以模仿人類大腦的這個特點,構造多層的神經網路,較低層的識別初級的圖像特徵,若干底層特徵組成更上一層特徵,最終通過多個層級的組合,最終在頂層做出分類呢?
答案是肯定的,這也是許多深度學習演算法(包括CNN)的靈感來源。
典型的 CNN 由3個部分構成:
卷積層
池化層
全連接層
如果簡單來描述的話:
卷積層負責提取圖像中的局部特徵;池化層用來大幅降低參數量級(降維);全連接層類似傳統神經網路的部分,用來輸出想要的結果。
下面的原理解釋為了通俗易懂,忽略了很多技術細節,如果大家對詳細的原理感興趣,可以看這個視頻《 卷積神經網路基礎 》。
卷積層的運算過程如下圖,用一個卷積核掃完整張圖片:
這個過程我們可以理解為我們使用一個過濾器(卷積核)來過濾圖像的各個小區域,從而得到這些小區域的特徵值。
在具體應用中,往往有多個卷積核,可以認為,每個卷積核代表了一種圖像模式,如果某個圖像塊與此卷積核卷積出的值大,則認為此圖像塊十分接近於此卷積核。如果我們設計了6個卷積核,可以理解:我們認為這個圖像上有6種底層紋理模式,也就是我們用6中基礎模式就能描繪出一副圖像。以下就是25種不同的卷積核的示例:
總結:卷積層的通過卷積核的過濾提取出圖片中局部的特徵,跟上面提到的人類視覺的特徵提取類似。
池化層簡單說就是下采樣,他可以大大降低數據的維度。其過程如下:
上圖中,我們可以看到,原始圖片是20×20的,我們對其進行下采樣,采樣窗口為10×10,最終將其下采樣成為一個2×2大小的特徵圖。
之所以這么做的原因,是因為即使做完了卷積,圖像仍然很大(因為卷積核比較小),所以為了降低數據維度,就進行下采樣。
總結:池化層相比卷積層可以更有效的降低數據維度,這么做不但可以大大減少運算量,還可以有效的避免過擬合。
這個部分就是最後一步了,經過卷積層和池化層處理過的數據輸入到全連接層,得到最終想要的結果。
經過卷積層和池化層降維過的數據,全連接層才能」跑得動」,不然數據量太大,計算成本高,效率低下。
典型的 CNN 並非只是上面提到的3層結構,而是多層結構,例如 LeNet-5 的結構就如下圖所示:
卷積層 – 池化層- 卷積層 – 池化層 – 卷積層 – 全連接層
在了解了 CNN 的基本原理後,我們重點說一下 CNN 的實際應用有哪些。
卷積神經網路 – CNN 很擅長處理圖像。而視頻是圖像的疊加,所以同樣擅長處理視頻內容。下面給大家列一些比較成熟的應用�:
圖像分類、檢索
圖像分類是比較基礎的應用,他可以節省大量的人工成本,將圖像進行有效的分類。對於一些特定領域的圖片,分類的准確率可以達到 95%+,已經算是一個可用性很高的應用了。
典型場景:圖像搜索…
目標定位檢測
可以在圖像中定位目標,並確定目標的位置及大小。
典型場景:自動駕駛、安防、醫療…
目標分割
簡單理解就是一個像素級的分類。
他可以對前景和背景進行像素級的區分、再高級一點還可以識別出目標並且對目標進行分類。
典型場景:美圖秀秀、視頻後期加工、圖像生成…
人臉識別
人臉識別已經是一個非常普及的應用了,在很多領域都有廣泛的應用。
典型場景:安防、金融、生活…
骨骼識別
骨骼識別是可以識別身體的關鍵骨骼,以及追蹤骨骼的動作。
典型場景:安防、電影、圖像視頻生成、游戲…
今天我們介紹了 CNN 的價值、基本原理和應用場景,簡單總結如下:
CNN 的價值:
能夠將大數據量的圖片有效的降維成小數據量(並不影響結果)
能夠保留圖片的特徵,類似人類的視覺原理
CNN 的基本原理:
卷積層 – 主要作用是保留圖片的特徵
池化層 – 主要作用是把數據降維,可以有效的避免過擬合
全連接層 – 根據不同任務輸出我們想要的結果
CNN 的實際應用:
圖片分類、檢索
目標定位檢測
目標分割
人臉識別
骨骼識別
本文首發在 easyAI - 人工智慧知識庫
《 一文看懂卷積神經網路-CNN(基本原理+獨特價值+實際應用) 》
⑹ 一文看懂四種基本的神經網路架構
原文鏈接:
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)進行講解。