您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 facebook像素代碼怎么設置(firefox中的measure it怎么使用)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-06 18:35:28【】8人已围观

简介個數等于類的數量。從概念上講,激活了的輸出神經元決定了神經網絡所預測的類。更準確地說,每個輸出神經元返回一個記錄與分類相匹配的概率數,其中概率最高的分類將被選為模型的輸出分類。前饋神經網絡的優勢是簡單

個數等于類的數量。從概念上講, 激活了的輸出神經元決定了神經網絡所預測的類。更準確地說, 每個輸出神經元返回一個記錄與分類相匹配的概率數,其中概率最高的分類將被選為模型的輸出分類。

前饋神經網絡的優勢是簡單易用,與其他類型的神經網絡相比更簡單,并且有一大堆的應用實例。

3.2卷積神經網絡

卷積神經網絡和前饋神經網絡是非常相似的,至少是數據的傳輸方式類似。他們結構大致上是模仿了視覺皮層。卷積神經網絡通過許多的過濾器。這些過濾器主要集中在一個圖像子集、補丁、圖塊的特征識別上。每一個過濾器都在尋找不同模式的視覺數據,例如,有的可能是找水平線,有的是找對角線,有的是找垂直的。這些線條都被看作是特征,當過濾器經過圖像時,他們就會構造出特征圖譜來定位各類線是出現在圖像的哪些地方。圖像中的不同物體,像貓、747s、榨汁機等都會有不同的圖像特征,這些圖像特征就能使圖像完成分類。卷積神經網絡在圖像識別和語音識別方面是非常的有效的。

卷積神經網絡與前饋神經網絡在圖像識別方面的異同比較。雖然這兩種網絡類型都能夠進行圖像識別,但是方式卻不同。卷積神經網絡是通過識別圖像的重疊部分,然后學習識別不同部分的特征進行訓練;然而,前饋神經網絡是在整張圖片上進行訓練。前饋神經網絡總是在圖片的某一特殊部分或者方向進行訓練,所以當圖片的特征出現在其他地方時就不會被識別到,然而卷積神經網絡卻能夠很好的避免這一點。

卷積神經網絡主要是用于圖像、視頻、語音、聲音識別以及無人駕駛的任務。盡管這篇文章主要是討論遞歸神經網絡的,但是卷積神經網絡在圖像識別方面也是非常有效的,所以很有必要了解。

3.3遞歸神經網絡

與前饋神經網絡不同的是,遞歸神經網絡的隱藏層的節點里有內部記憶存儲功能,隨著輸入數據的改變而內部記憶內容不斷被更新。遞歸神經網絡的結論都是基于當前的輸入和之前存儲的數據而得出的。遞歸神經網絡能夠充分利用這種內部記憶存儲狀態處理任意序列的數據,例如時間序列。

遞歸神經網絡經常用于手寫識別、語音識別、日志分析、欺詐檢測和網絡安全。

遞歸神經網絡是處理時間維度數據集的最好方法,它可以處理以下數據:網絡日志和服務器活動、硬件或者是醫療設備的傳感器數據、金融交易、電話記錄。想要追蹤數據在不同階段的依賴和關聯關系需要你了解當前和之前的一些數據狀態。盡管我們通過前饋神經網絡也可以獲取事件,隨著時間的推移移動到另外一個事件,這將使我們限制在對事件的依賴中,所以這種方式很不靈活。

追蹤在時間維度上有長期依賴的數據的更好方法是用內存來儲存重要事件,以使近期事件能夠被理解和分類。遞歸神經網絡最好的一點就是在它的隱藏層里面有“內存”可以學習到時間依賴特征的重要性。

接下來我們將討論遞歸神經網絡在字符生成器和網絡異常檢測中的應用。遞歸神經網絡可以檢測出不同時間段的依賴特征的能力使得它可以進行時間序列數據的異常檢測。

遞歸神經網絡的應用

應用一、RNNs用于字符生成

遞歸神經網絡經過訓練之后可以把英文字符當做成一系列的時間依賴事件。經過訓練后它會學習到一個字符經常跟著另外一個字符(“e”經常跟在“h”后面,像在“the、he、she”中)。由于它能預測下一個字符是什么,所以它能有效地減少文本的輸入錯誤。

Java是個很有趣的例子,因為它的結構包括很多嵌套結構,有一個開的圓括號必然后面就會有一個閉的,花括號也是同理。他們之間的依賴關系并不會在位置上表現的很明顯,因為多個事件之間的關系不是靠所在位置的距離確定的。但是就算是不明確告訴遞歸神經網絡Java中各個事件的依賴關系,它也能自己學習了解到。

在異常檢測當中,我們要求神經網絡能夠檢測出數據中相似、隱藏的或許是并不明顯的模式。就像是一個字符生成器在充分地了解數據的結構后就會生成一個數據的擬像,遞歸神經網絡的異常檢測就是在其充分了解數據結構后來判斷輸入的數據是不是正常。

字符生成的例子表明遞歸神經網絡有在不同時間范圍內學習到時間依賴關系的能力,它的這種能力還可以用來檢測網絡活動日志的異常。

異常檢測能夠使文本中的語法錯誤浮出水面,這是因為我們所寫的東西是由語法結構所決定的。同理,網絡行為也是有結構的,它也有一個能夠被學習的可預測模式。經過在正常網絡活動中訓練的遞歸神經網絡可以監測到入侵行為,因為這些入侵行為的出現就像是一個句子沒有標點符號一樣異常。

應用二、一個網絡異常檢測項目的示例

假設我們想要了解的網絡異常檢測就是能夠得到硬件故障、應用程序失敗、以及入侵的一些信息。

模型將會向我們展示什么呢?

隨著大量的網絡活動日志被輸入到遞歸神經網絡中去,神經網絡就能學習到正常的網絡活動應該是什么樣子的。當這個被訓練的網絡被輸入新的數據時,它就能偶判斷出哪些是正常的活動,哪些是被期待的,哪些是異常的。

訓練一個神經網絡來識別預期行為是有好處的,因為異常數據不多,或者是不能夠準確的將異常行為進行分類。我們在正常的數據里進行訓練,它就能夠在未來的某個時間點提醒我們非正常活動的出現。

說句題外話,訓練的神經網絡并不一定非得識別到特定事情發生的特定時間點(例如,它不知道那個特殊的日子就是周日),但是它一定會發現一些值得我們注意的一些更明顯的時間模式和一些可能并不明顯的事件之間的聯系。

我們將概述一下怎么用 Deeplearning4j(一個在JVM上被廣泛應用的深度學習開源數據庫)來解決這個問題。Deeplearning4j在模型開發過程中提供了很多有用的工具:DataVec是一款為ETL(提取-轉化-加載)任務準備模型訓練數據的集成工具。正如Sqoop為Hadoop加載數據,DataVec將數據進行清洗、預處理、規范化與標準化之后將數據加載到神經網絡。這跟Trifacta’s Wrangler也相似,只不過它更關注二進制數據。

開始階段

第一階段包括典型的大數據任務和ETL:我們需要收集、移動、儲存、準備、規范化、矢量話日志。時間跨度的長短是必須被規定好的。數據的轉化需要花費一些功夫,這是由于JSON日志、文本日志、還有一些非連續標注模式都必須被識別并且轉化為數值數組。DataVec能夠幫助進行轉化和規范化數據。在開發機器學習訓練模型時,數據需要分為訓練集和測試集。

訓練神經網絡

神經網絡的初始訓練需要在訓練數據集中進行。

在第一次訓練的時候,你需要調整一些超參數以使模型能夠實現在數據中學習。這個過程需要控制在合理的時間內。關于超參數我們將在之后進行討論。在模型訓練的過程中,你應該以降低錯誤為目標。

但是這可能會出現神經網絡模型過度擬合的風險。有過度擬合現象出現的模型往往會在訓練集中的很高的分數,但是在遇到新的數據時就會得出錯誤結論。用機器學習的語言來說就是它不夠通用化。Deeplearning4J提供正則化的工具和“過早停止”來避免訓練過程中的過度擬合。

神經網絡的訓練是最花費時間和耗費硬件的一步。在GPUs上訓練能夠有效的減少訓練時間,尤其是做圖像識別的時候。但是額外的硬件設施就帶來多余的花銷,所以你的深度學習的框架必須能夠有效的利用硬件設施。Azure和亞馬遜等云服務提供了基于GPU的實例,神經網絡還可以在異構集群上進行訓練。

創建模型

Deeplearning4J提供ModelSerializer來保存訓練模型。訓練模型可以被保存或者是在之后的訓練中被使用或更新。

在執行異常檢測的過程中,日志文件的格式需要與訓練模型一致,基于神經網絡的輸出結果,你將會得到是否當前的活動符合正常網絡行為預期的結論。

代碼示例

遞歸神經網絡的結構應該是這樣子的:

MultiLayerConfiguration 買粉絲nf = new NeuralNetConfiguration.Builder(

.seed(123)

.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)

.weightInit(WeightInit.XAVIER)

.updater(Updater.NESTEROVS).momentum(0.9)

.learningRate(0.005)

.gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue)

.gradientNormalizationThreshold(0.5)

.list()

.layer(0, new GravesLSTM.Builder().activation("tanh").nIn(1).nOut(10).build())

.layer(1, new RnnOutputLayer.Builder(LossFunctions.LossFunction.MCXENT)

.activation("softmax").nIn(10).nOut(numLabelClasses).build())

.pretrain(false).backprop(true).build();

MultiLayerNetwork 買粉絲 = new MultiLayerNetwork(買粉絲nf);

買粉絲.init();

下面解釋一下幾行重要的代碼:

.seed(123)

隨機設置一個種子值對神經網絡的權值進行初始化,以此獲得一個有復驗性的結果。系數通常都是被隨機的初始化的,以使我們在調整其他超參數時仍獲得一致的結果。我們需要設定一個種子值,讓我們在調整和測試的時候能夠用這個隨機的權值。

.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)

決定使用哪個最優算法(在這個例子中是隨機梯度下降法)來調整權值以提高誤差分數。你可能不需要對這個進行修改。

.learningRate(0.005)

當我們使用隨機梯度下降法的時候,誤差梯度就被計算出來了。在我們試圖將誤差值減到最小的過程中,權值也隨之變化。SGD給我們一個讓誤差更小的方向,這個學習效率就決定了我們該在這個方向上邁多大的梯度。如果學習效率太高,你可能是超過了誤差最小值;如果太低,你的訓練可能將會永遠進行。這是一個你需要調整的超參數。

很赞哦!(6324)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:云南大理永平县

工作室:小组

Email:[email protected]