導航:首頁 > 網路安全 > 如何學習識別網路

如何學習識別網路

發布時間:2022-08-15 23:47:06

1. 如何通過人工神經網路實現圖像識別

人工神經網路(Artificial Neural Networks)(簡稱ANN)系統從20 世紀40 年代末誕生至今僅短短半個多世紀,但由於他具有信息的分布存儲、並行處理以及自學習能力等優點,已經在信息處理、模式識別、智能控制及系統建模等領域得到越來越廣泛的應用。尤其是基於誤差反向傳播(Error Back Propagation)演算法的多層前饋網路(Multiple-Layer Feedforward Network)(簡稱BP 網路),可以以任意精度逼近任意的連續函數,所以廣泛應用於非線性建模、函數逼近、模式分類等方面。


目標識別是模式識別領域的一項傳統的課題,這是因為目標識別不是一個孤立的問題,而是模式識別領域中大多數課題都會遇到的基本問題,並且在不同的課題中,由於具體的條件不同,解決的方法也不盡相同,因而目標識別的研究仍具有理論和實踐意義。這里討論的是將要識別的目標物體用成像頭(紅外或可見光等)攝入後形成的圖像信號序列送入計算機,用神經網路識別圖像的問題。


一、BP 神經網路


BP 網路是採用Widrow-Hoff 學習演算法和非線性可微轉移函數的多層網路。一個典型的BP 網路採用的是梯度下降演算法,也就是Widrow-Hoff 演算法所規定的。backpropagation 就是指的為非線性多層網路計算梯度的方法。一個典型的BP 網路結構如圖所示。

六、總結

從上述的試驗中已經可以看出,採用神經網路識別是切實可行的,給出的例子只是簡單的數字識別實驗,要想在網路模式下識別復雜的目標圖像則需要降低網路規模,增加識別能力,原理是一樣的。

2. 如何用深度學習識別網路欺詐

3. 要學習模式識別、神經網路、遺傳演算法、蟻群演算法等等人工智慧演算法需要哪些數學知識

模式識別需要非常好的概率論,數理統計;另外會用到少量矩陣代數,隨機過程和高數中的一些運算,當然是比較基礎的;如果要深入的話恐怕需要學泛函,但是一般情況下不需要達到這種深度。神經網路,遺傳演算法等智能演算法在模式識別有非常重要的應用,但是一般不需要學習計算機學科的人工智慧,我們控制有一個交叉學科叫做智能控制是講這些的,智能控制不需要什麼基礎,有中學數學的集合和對空間有一點點的了解就足夠了,模糊數學的基礎是包含在這門學科里的。

4. 如何提高網路信息的識別能力

一,不要相信免費的午餐這種事。
二,不要相信多數人都是好心的。
三,不要相信自己不懂得看起來有理的事情。
以上,可以防備未出現的新式騙局。
四,多多學習,加強自己的技術能力。這個可以認識更多已經被人使用過的騙局。

5. 如何快速學習神經網路演算法識別驗證碼

驗證碼都是伺服器生成的圖片,如果是動態的,就是調用servlet生成的,怎麼提取我還不太清楚,不過我想網路上應該會有很多資料。

我現在看的是識別驗證碼的東西,在截取到驗證碼圖片之後,針對這個黑白背景,只有干擾線的驗證碼。

機器學習之識別簡單驗證碼
時間 2016-10-15 22:46:31 隨風'S Blog

主題 數據挖掘
關於驗證碼識別的文章網上很多圖像識別的大神教程也比較多,不過大多數專業性太強了,對非專業人士讀起來簡直是天書,不過隨著機器學習的普及,一大批機器學習的開源工具出現了,這也算對大多數像我一樣的學渣的福音,由於最近項目中牽扯到了一些機器學習相關的東西,所以自己最近也一直在學習機器相關的東西,這篇驗證碼的識別也算是練手了,本文也算是學習中的筆記,所以文章中難免有一些錯誤,歡迎各路大神指點。
由於本人不是相關專業的,對於文中相關演算法就不會具體去討論了,主要以實戰為目的。
准備工作
主要是用到了一些機器學習開源的框架以及一些輔助工具。
Scikit-Learn 比較有名的Python機器學習模塊,主要是操作簡單。
Pybrain Python機器學習模塊,主要以神經網路為核心,所有的訓練方法都以神經網路為一個實例。
pytesseract 圖像識別小工具,本文主要是用來預處理訓練樣本的。
PIL Python圖像處理庫。
問題分析
首先在進行具體工作之前,我們得看看我們需要解決的是什麼問題,那麼對於驗證碼識別來說,可以看作一個分類問題,對於數字的圖片驗證碼來說的話,其實就是0-9數字分類的問題,驗證碼識別最難的部分在於怎麼去將驗證碼進行切割成單個字元圖片,當然對於圖片裁剪也就是特徵提取有很多辦法,例如垂直投影法,等距切割法等等,其中等距切割也是比較簡單的,但是對於稍微復雜一點的驗證碼識別時准確率非常低,因為等距切割時將驗證碼按照相同的寬度進行裁剪,對於那些字元寬度大小不一的,就算裁剪出來也不能很好的表示字元的特徵,所以有時候需要先對圖片進行一系列的預處理,例如字元矯正等等,然後再用垂直投影法在x軸和y軸上按照投影的大小進行裁剪。
對於垂直投影法來說的話,最後我們還得考慮訓練集在維度上都同意,由於是非等級切割,所以每個圖片的像素肯定不一樣,所以為了維度統一還得進行填充,總之稍微麻煩一點。
這里主要是以等距切割為例子,因為在操作起來比較簡單,那麼掩碼也是選用0-9的純數字驗證碼來進行識別,驗證碼如下

這樣的圖片看起來的話間距基本上都差不多大,所以在分割時也比較容易,將圖片切成四塊後,就可以拿每一塊去進行訓練識別了。
使用機器學習來進行訓練和識別的話,我們就得考慮特徵選取了,一般驗證碼識別有一套標準的流程,圖片

對於驗證碼識別來說我們關注的不是驗證碼的顏色,而是字元代表的含義,所以在圖片處理時進行灰度化和二值化以及去噪,比如說去掉干擾線,那麼去噪也有相應的演算法來實現,這里不做具體討論,二值化其實就是將圖片呈現出兩種顏色,即非黑即白,這樣的好處是在特徵處理時可以使用0和1來代表黑色和白色,0和1代表什麼顏色取決於個人喜好。
這樣的話將二值化和其它步驟處理後的圖片進行特徵提取,將黑色像素點標記成1,白色像素點標記成0,這樣就可以得到圖片的數值表示,那麼特徵維度就等於圖片像素的大小,最終將圖片按照X軸或者Y軸表示,即將像素的所標記的值合並到一行,例如
1111100000000000010
1110000000000000000
表示成,這樣每張圖片就可以使用一行0和1的數值來表示。
進行特徵提取之後,我們得到了圖片在數學上的表示,那麼下一步就需要進行模型訓練了,由於如上文所述,圖片識別是一個分類問題,所以在機器學習中,我主要採用了兩種模型來進行訓練, SVM支持向量機 和 BP神經網路 來進行模型訓練,SVM使用scikit-learn機器學習包裡面的實現來做,神經網路使用Pybrain來進行實現。
有關SVM和BP神經網路的演算法部分,大家最好還是去網上搜下相關的Paper,這樣你才能知道什麼演算法能解決什麼問題,以及它大概的原理是什麼樣子的,有能力的同學可以去對推導下這兩個演算法。
實踐
在問題分析部分我們已經對驗證碼識別的大概思路有了一個了解,那麼這部分則主要正對上面所述部分進行具體實現。
首先,我們應該明白SVM和神經網路模型演算法是屬於有監督學習,即需要對樣本進行標注,也就是標記每張圖片表示的是那個數字,但是實際遇到的問題是,如果數據量小的話,我們可以進行人工標注,那麼在數據量比較大的情況下,人工標注可能就不太現實了,所以對於圖片來說的話也一樣,你進行切割完成之後你必須得標注這個數字是幾,所以我們需要對切割的圖片進行預處理,也就是打標記,我比較懶,所以我也不會一個個去打標簽,所以這里使用ocr來對切割的圖片進行預分類,ocr在單文字識別上的效果正確率還是可以的,在ocr進行預分類之後,我們只需要去糾正那些分類錯誤的圖片即可,這樣就能大大的減少工作量。
這里實現主要有以下幾個步驟:
圖片採集
圖片預處理(包括圖片切割,二值化以及圖像增強)
圖片的預分類標注以及手動糾錯標注
特徵提取
模型訓練以及預測
圖片採集
圖片採集就比較簡單,不過多的闡述,如下圖代碼所示

將下載到了圖片按照時間戳存到指定位置

圖片預處理以及圖片裁剪
對圖片進行預處理後採用等距切割法對圖片進行切割

裁剪後的圖片如下

圖片預分類
圖片預分類採用pytesseract來對分割的圖片進行預分類,減輕工作量。
具體代碼如下

ocr的分類效果正確率應該在50%以上,剩下的就是對預分類的圖片進行人工糾錯了。
ocr的分類效果圖

人工糾錯和標記後的結果

每個目錄表示一個類別標簽。
特徵提取
特徵提取的具體內容請參考問題分析中,裡面有詳細的說明。
關鍵代碼如下

最終圖片的數學上表示會以記錄在 /Users/iswin/Downloads/yzm/traindata/train_data.txt 中,數據的格式如下圖所示

紅色線框表示一張圖片數值上的表示,最後一個數字0表示該圖片的類型,我是為了方便把標簽追加到最後一行。
SVM模型分類
這里svm的實現使用了scikit-learn來實現,關於scikit-learn的使用去官網看Tutorial就好了,這里需要說一下SVM關於參數選擇的問題,我們都知道SVM支持多個核函數,例如高斯核、線性核、poly以及sgmoid核函數,但是選擇那麼核函數一開始對於不太熟悉的同學怎麼選擇的確是個問題,所以這里使用了scikit-learn的GridSearchCV來對參數進行最優化選擇,經過參數尋優,這里高斯核的最終效果還是不錯的,所以訓練的時候直接使用高斯核來進行訓練。
為了方便預測時的使用,這里對訓練結果使用了joblib模塊來進行持久化。為了簡單對評價模型進行,這里使用了5折交叉驗證來對結果進行檢驗。
最終結果的准確率在:Accuracy: 0.96 (+/- 0.09)
具體代碼如下:

舉個預測的例子,看看效果

BP神經網路模型分類
BP神經網路也稱負反饋神經網路,即按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一,在BP神經網路之後,又出現了在深度學習中應用最廣泛的CNN即卷積神經網路,這幾天也正在學習。
本文使用了三層BP神經網路來對訓練集進行訓練,即輸入層+2層隱含層+輸出層,關於BP神經網路本身這里需要注意的是激活函數的選擇以及對於多分類問題輸出層函數選擇的問題,激活函數主要有sigmod、tanh以及relu,關於怎麼選取激活函數,這塊沒有進行深入了解,一般都是每個激活函數都跑一次,看最終效果。
這里的神經網路模型分類主要是對Pybrain用法的學習以及BP神經網路的基本認識,輸入層使用了LinearLayer即線性輸入層,隱含層使用了SigmoidLayer即激活函數為sigmod的隱含層,輸出層由於是多分類問題,所以使用了SoftmaxLayer,最終在神經網路計算的結果中選取數值最大的那個索引位置就是預測的驗證碼類別,也就是0-9之間的數值。
關於Pybrain的資料除了官方文檔不是特別多,關於構建神經網路的方式提供了兩種方式,一種是 buildNetwork 函數來進行構建,另外一種就是使用 FeedForwardNetwork 函數來進行構建,這里需要注意的是如果使用 FeedForwardNetwork 來進行構建的話,注意要手動給各層加上Bias偏置項,否則結果可能可能非常差,當時我實驗時沒加,半天計算結果不對,最後看了下buildNetwork函數的源代碼才發現沒加Bias項,還有就是需要注意迭代至收斂的步數即函數中的 *maxEpochs=500 ,這個根據情況調整,Pybrain有自己的數據集格式,所以在使用時必須按照它的格式來進行數據的初始化。
這里除了輸入層的維度(即驗證碼的訓練集維度)和輸出是固定的之外,其中隱含層的神經元個數也是可以調整的,具體的感興趣的同學自己去調然後再看下結果。
對模型使用10折交叉驗證進行了簡單評估,錯誤率在Total error: 0.062左右,效果比SVM的差一點,應該通參數調優應該可以提高准確率,不過重在學習。
訓練集樣本: /Users/iswin/Downloads/yzm/traindata/train_data_uniq.txt
主要代碼如下:

舉個例子,來看看預測效果

總結
通過這個小實驗,至少讓我對機器學習和相關演算法大致有了一個了解,同時作為安全人員來說至少知道了如何使用開源的機器學習框架來構架自己的模型,筆記中難免會有錯誤之處,歡迎大家提出意見。

6. 遺傳神經網路識別原理

4.3.1 遺傳BP簡介

遺傳識別是遺傳演算法+神經網路的一種新興的尋優技術,適合於復雜的、疊加的非線性系統的辨識描述。神經網路演算法是當前較為成熟的識別分類方法,但網路權值的訓練一直存在著缺陷。為此結合具體應用,在對遺傳演算法進行改進的基礎上,本文採用了一種基於遺傳學習權值的神經網路識別方法,並取得了較好的效果。

盡管常規遺傳演算法是穩健的,但針對一個具體問題遺傳演算法只有和其他方法(或稱原有演算法)有效地結合在一起,組成一個新的混合演算法,才能在實際中得到廣泛應用。混合演算法既要保持原有演算法的長處,又要保持遺傳演算法的優點,因此常規遺傳演算法中的適應值函數、編碼、遺傳運算元等必須做適當的修改以適應混合演算法的要求。

4.3.1.1 適應值信息

常規演算法中,適應值常被表示為全局極小,用歐氏距離來實現。例如,適應值常被表示為如下形式:

圖4-5 改進的 GABP計算流程圖

GABP的計算過程圖如圖4-5所示。

7. 如何辨別網路信息的真偽

一,首先提高自身的辨別能力,多學習,你需要提高哪一方面的辨別能力,你可以多學那一方面的書籍。
二,多向他人請教,多問為什麼?多分析信息與信息之間的相關程度等。
三,認真分析信息的來源,信息的發出者等方面。比如有一些信息是權威部門發出的,有較高的可信程度。一些信息是小道消息,可信度較差。

8. 關於網路信息如何辨別真假

關於網路信息如何辨別真假?1:識別信息的真假,我們經常會看到一條信息會有不同的文字形式展現,雖然內容上相近,但是有些還是為了博得觀看者的眼球,夾雜著一些誇大和失真的色彩。
2:識別信息的真假,我們瀏覽新聞的時候盡量從一些權威性的官網上進行瀏覽,官網上的信息都是最及時也是最真實的報道。
3:識別信息的真假,我們要從客觀的角度看待新聞,也就是自己也要有一定的辨別能力,比如網路上有的時候傳播一些食物相剋的文章,大家可以從營養學家發表的官方文章來進行辨別。
4:識別信息的真假,我們可以從網路上網友的評論進行辨別,一般本土的新聞,當地的網友是最有發言權的,他們更能辨別信息的真假,從而進行參考。
5:識別信息的真假,我們可以通過實踐來證明,前提是沒有涉及危險的地方來進行辨別,這樣是最直接也是最真實的,當然這個信息是對自己特別有用的。
6:需要注意的是以上幾種方法,是我們日常生活中幾種常見的識別信息真假的方法,大家可以根據自身的需求採用相應的方法進行參考,目的是讓信息變得更加有效,讓自己能夠最真實的了解信息的真實性。

9. 如何系統學習網路知識

網路是一個復雜的系統,涉及知識很多。
對於初學者,要看的一套書是網路書籍中的聖經《TCP/IP詳解卷一:協議》,這一本書講解了基本所有的網路基本知識,熟讀這本書就可以對網路協議知識有一個大概的理論基礎。
於網路基礎協議有了一個大概的理解後,加強自己的動手能力,學習一些基礎的網路實驗,比如ospf、rip等網路路由協議。可以通過一些軟體來進行模擬實驗。通過動手練習來增加知識。
能夠熟練掌握一些知識之後就可以加深自己這方面的知識了,還是《TCP/IP詳解卷2:實現》,這一本書講的是關於網路協議他是怎麼實現的,因此這就涉及到了網路底層編程的問題。需要對編程有一定的理解。
關於底層編程的學習,最好從最基礎的c語言學習,一本C語言從入門到精通是十分必要的。
需要掌握其他的一些基本常識的,比如操作系統方面,要熟悉windows 和Linux系統。對於windows系統的一些基本問題要能解決。

閱讀全文

與如何學習識別網路相關的資料

熱點內容
網路上開真車什麼意思 瀏覽:809
小米路由器連接正常但無網路 瀏覽:875
光纖貓怎麼設置網路共享 瀏覽:689
網路訂房好評怎麼寫 瀏覽:768
禁止網路共享的手機型號 瀏覽:86
小米無線網路機頂盒哪個好 瀏覽:59
提示不安全網路設置 瀏覽:298
什麼病毒會阻斷網路傳輸 瀏覽:622
查看不了網路電腦內容 瀏覽:35
手機國際網路電話 瀏覽:683
note4網路設置 瀏覽:548
導航用哪個網路好 瀏覽:955
路由器星型網路 瀏覽:551
通過路由器上的按鈕如何連接網路 瀏覽:482
計算機網路路由表查找 瀏覽:61
網路資本運作哪個團隊最好 瀏覽:591
關於計算機網路的論文提綱 瀏覽:34
網路橋接有線電腦怎麼連接 瀏覽:763
光谷執業葯師網路課程哪裡便宜 瀏覽:303
mfp136nw網路設置 瀏覽:731

友情鏈接