HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)(神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)白酒分類)

    發(fā)布時間:2023-04-21 23:39:56     稿源: 創(chuàng)意嶺    閱讀: 116        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)(神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)白酒分類)

    一、深度學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)編寫需要設(shè)計到哪些算法?

    涉及到的算法有很多,比如反向傳播算法、前向傳播、卷積算法、矩陣遠(yuǎn)點的算法、梯度優(yōu)化的算法、評估算法等等。單純用算法來描述過于籠統(tǒng),一般都是直接用對應(yīng)的數(shù)學(xué)原理和公式去描述神經(jīng)網(wǎng)絡(luò)的編寫過程的。首先,定義網(wǎng)絡(luò)結(jié)構(gòu),諸如神經(jīng)元個數(shù)、隱層數(shù)目、權(quán)重、偏置等,其次根據(jù)梯度下降進(jìn)行前向傳播,再次反向傳播更新梯度,最后是循環(huán)往復(fù)直到網(wǎng)絡(luò)最優(yōu)。

    二、利用神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類算法綜述(持續(xù)更新中)

    傳統(tǒng)的文本分類一般都是使用詞袋模型/Tf-idf作為特征+機(jī)器學(xué)習(xí)分類器來進(jìn)行分類的。隨著深度學(xué)習(xí)的發(fā)展,越來越多的神經(jīng)網(wǎng)絡(luò)模型被用來進(jìn)行文本分類。本文將對這些神經(jīng)網(wǎng)絡(luò)模型做一個簡單的介紹。

    本文介紹了一種詞向量模型,雖然算不得文本分類模型,但由于其可以說是fasttext的基礎(chǔ)。因此也簡單提一下。

    作者認(rèn)為cbow和skipgram及大部分詞向量模型都沒有考慮到單詞的多態(tài)性,而簡單的將一個單詞的多種形態(tài)視為獨立的單詞。例如like的不同形式有l(wèi)ikes,liking,liked,likes,這些單詞的意思其實是相同的,但cbow/skipgram模型卻認(rèn)為這些單詞是各自獨立的,沒有考慮到其形態(tài)多樣性。

    因此作者提出了一個可以有效利用單詞字符級別信息的n-gram詞向量模型,該模型是以skipgram模式實現(xiàn)的。例如單詞 where,其n-gram表示為<wh, whe, her, ere, re>, where。其中<>分別表示前后綴。在原始的skipgram模型中,輸入僅僅只是where的onehot向量,而在此模型中輸入則變成了<wh, whe, her, ere, re>, where的onehot編碼的加和,有效的利用了字符級別的信息,因此效果更加好。

    而在loss方面,文中采用了負(fù)采樣+binary LogisticRegression的策略。即對每一個目標(biāo)單詞都預(yù)測為正負(fù)中的一種。

    在本文中作者提供了一個基于神經(jīng)網(wǎng)絡(luò)的文本分類模型,這個模型是基于cbow的,與cbow非常類似。

    和CBOW一樣,fastText模型也只有三層:輸入層、隱含層、輸出層(Hierarchical Softmax),輸入都是多個經(jīng)向量表示的單詞,輸出都是一個特定的target,隱含層都是對多個詞向量的疊加平均。不同的是,CBOW的輸入是目標(biāo)單詞的上下文,fastText的輸入是多個單詞及其n-gram特征的embeding表示方式,這些特征用來表示單個文檔;CBOW的輸入單詞被onehot編碼過,fastText的輸入特征是被embedding過;CBOW的輸出是目標(biāo)詞匯,fastText的輸出是文檔對應(yīng)的類標(biāo)。輸出層的實現(xiàn)同樣使用了層次softmax,當(dāng)然如果自己實現(xiàn)的話,對于類別數(shù)不是很多的任務(wù),個人認(rèn)為是可以直接使用softmax的。

    最后,貼一個Keras的模型fasttext簡化版。

    基于詞向量表示,本文提出利用卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行文本分類。其算法如上圖所示:

    在本文中,作者嘗試了多種不同的詞向量模式:

    在上一篇文章中CNN網(wǎng)絡(luò)的輸入一般是預(yù)訓(xùn)練好的詞向量,而在本文中作者提出一種直接將embedding訓(xùn)練與分類任務(wù)結(jié)合在一起,且能有效提取/保留詞序信息,也即有效訓(xùn)練出n-gram的模型方法,其實也可以理解為一種利用CNN來進(jìn)行embedding的方法。

    此外,另一個問題是輸入序列長度變化問題(在上一篇文章textCNN中通過padding解決的?),在本文作者提出使用一個動態(tài)可變的pooling層來解決這個問題,使得卷積層輸出的大小是相同的。關(guān)于可變pooling其實與圖像識別中的 空間金字塔池化 (Spatial Pyramid Pooling) 是類似的。

    這篇文章有點將fastText與TextCNN結(jié)合在一起的感覺,將n-gram embedding與分類任務(wù)結(jié)合在了一起進(jìn)行訓(xùn)練,通過CNN來進(jìn)行Embedding。

    Text Categorization via Region Embedding》

    在本篇文章中作者提出了一個tv-embedding(即two-view embedding),它也屬于region embedding(也可以理解為ngram embedding)。這種方法與上面的bow-CNN表示相似,使用bow(bag of words)的方式來表示一個區(qū)域的詞句,然后通過某個區(qū)域(region,左右鄰域的單詞或詞句)來預(yù)測其前后的區(qū)域(單詞或詞句),即輸入?yún)^(qū)域是view1,target區(qū)域是view2。tv-embedding是單獨訓(xùn)練的,在使用的時候與CNN中的embedding組合在一起(形成多個channel?)。作者認(rèn)為,word2vec方法預(yù)訓(xùn)練得到的embedding向量是普適性的,而通過特定任務(wù)的數(shù)據(jù)集的訓(xùn)練得到tv-embedding具有任務(wù)相關(guān)的一些信息,更有利于提升我們的模型效果。

    吐槽一下,這篇文章沒太看懂,也可能是英語太差,作者文章中沒有那種一眼就能讓人理解的網(wǎng)絡(luò)圖,像textCNN的圖就非常一目了然,看圖就知道是怎么做的了。

    本文提出了一個使用監(jiān)督學(xué)習(xí)加半監(jiān)督預(yù)訓(xùn)練的基于LSTM的文本分類模型。文章作者與上面相同,所以用到的很多技術(shù)可以說與上面也是同出一轍。因此簡單說下本文的一些思路。

    作者認(rèn)為已有的直接使用LSTM作為文本分類模型并直接將LSTM的最后一個輸出作為后續(xù)全連接分類器的方法面臨兩個問題:(1)這種方式一般都是與word embedding整合在一起(即輸入onehot經(jīng)過一個embedding層再進(jìn)入LSTM),但是embedding訓(xùn)練不穩(wěn)定,不好訓(xùn)練;(2)直接使用LSTM最后一個輸出來表示整個文檔不準(zhǔn)確,一般來說LSTM輸入中后面的單詞會在最后輸出中占有較重的權(quán)重,但是這對于文章表示來說并不總是對的。因此作者對這兩點進(jìn)行了改進(jìn):

    本文其實可以看作是作者將自己前面的tv-embedding半監(jiān)督訓(xùn)練與RCNN的一個融合吧,大有一種一頓操作猛如虎,一看人頭0-5的感覺(因為作者的實驗結(jié)果跟一般的CNN相比其實也搶不了多少)。

    本文的作者也是前面兩篇使用CNN來進(jìn)行文本分類處理的文章的作者。因此在本文中,結(jié)合了前面兩篇文章提出的一些方法,并使用了一個深層的卷積神經(jīng)網(wǎng)絡(luò)。具體的細(xì)節(jié)包括:

    更多詳細(xì)的關(guān)于DPCNN的細(xì)節(jié)可以查看 從DPCNN出發(fā),撩一下深層word-level文本分類模型 。

    本文提出了一種基于CNN+Attention的文本分類模型。作者認(rèn)為已有的基于CNN的文本分類模型大都使用的是固定大小的卷積核,因此其學(xué)習(xí)到的表示也是固定的n-gram表示,這個n與CNN filter大小相關(guān)。但是在進(jìn)行句子的語義表示時,不同句子發(fā)揮重要作用的ngram詞語常常是不同的,也即是變化的。因此,模型能根據(jù)句子來自適應(yīng)的選擇每個句子最佳的n-gram對于提升模型的語義表示能力是非常關(guān)鍵的。本文便是由此思路提出了一種自適應(yīng)的來選擇不同n-gram表示的模型。

    本文模型在主題結(jié)構(gòu)上參照了CV中的DenseNet,借由DenseNet中的稠密連接來提取到豐富的n-gram特征表示。舉例來說,在layer3的特征不僅能學(xué)習(xí)到f(x1, x2, x3),還能學(xué)習(xí)到f(x1(x2,x3))這種更多層次,更加豐富的特征。網(wǎng)絡(luò)的結(jié)構(gòu)主要包括三部分:DenseCNN主網(wǎng)絡(luò),Attention module和最后的全連接層分類網(wǎng)絡(luò)。下面對這三部分進(jìn)行簡單的說明:

    本文通過Dense connection + Attention來自動獲取對于文本語義最重要的n-gram特征,結(jié)果很好。但是缺點是,這個網(wǎng)絡(luò)比較適合較短的文本,文中對輸入文本進(jìn)行了padding補(bǔ)齊,對于不同數(shù)據(jù)集最大長度分別為50,100等,但這對于較長的文本明顯是不足的。因此對于較長的文本或許HAN這種借用RNN來不限制輸入長短的網(wǎng)絡(luò)會更好。

    本文提出了一種結(jié)合循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行文本分類的方法,其結(jié)構(gòu)如上圖所示,該網(wǎng)絡(luò)可以分為三部分:

    雖然說是RNN與CNN的結(jié)合,但是其實只用到了CNN中的pooling,多少有一點噱頭的意思。文中還提到了RCNN為什么比CNN效果好的原因,即為什么RCNN能比CNN更好的捕捉到上下文信息:CNN使用了固定大小window(也即kernel size)來提取上下文信息,其實就是一個n-gram。因此CNN的表現(xiàn)很大程度上受window大小的影響,太小了會丟失一些長距離信息,太大了又會導(dǎo)致稀疏性問題,而且會增加計算量。

    在眾多自然語言處理任務(wù)中,一個非常突出的問題就是訓(xùn)練數(shù)據(jù)不足,且標(biāo)注難度大。因此文本提出了一種多任務(wù)共享的RNN模型框架,其使用多個不同任務(wù)數(shù)據(jù)集來訓(xùn)練同一個模型共享參數(shù),已達(dá)到擴(kuò)充數(shù)據(jù)集的作用。

    文中作者提出了三個模型,如上圖所示:

    三個模型的訓(xùn)練方式相同:

    本文提出了一個層次LSTM+Attention模型。作者認(rèn)為,雖然一篇文章有多個句子組成但真正其關(guān)鍵作用的可能是其中的某幾個,因此對各個句子施加了注意力機(jī)制,以使得對文章語義貢獻(xiàn)較多的句子占有更多的權(quán)重。同樣的,組成一個句子的單詞有多個,但是發(fā)揮重要作用的可能就那么幾個,因此使用注意力機(jī)制以使得重要單詞發(fā)揮更大的作用,這些便是本文的核心思想。整個網(wǎng)絡(luò)可分為三層,兩個LSTM層分別用來進(jìn)行word encode和sentence encode,最頂上為一個全連接分類層。若加上兩層注意力層,則可認(rèn)為網(wǎng)絡(luò)為5層。下面簡單聊聊這五層網(wǎng)絡(luò)的結(jié)構(gòu):

    總體來說,本文看起來還是比較有意思的,符合人閱讀文章的習(xí)慣,我們寫文章的時候也是有中心詞和中心句的。但是由于這個層級結(jié)構(gòu)是否會導(dǎo)致訓(xùn)練慢或者不好訓(xùn)練還不得而知。最后,文中還提出對文章按長短先進(jìn)行排序,長度相似的進(jìn)入一個batch,這將訓(xùn)練速度加快了3倍。

    本文提出了一個基于圖神經(jīng)網(wǎng)絡(luò)的文本分類方法。該方法的主要思想是將所有文章及其包含的詞匯都放到一個圖網(wǎng)絡(luò)里面去,圖網(wǎng)絡(luò)中的節(jié)點分為兩種類型:單詞節(jié)點和文章節(jié)點。其中連接單詞節(jié)點和文章節(jié)點的邊的權(quán)重使用TF-IDF來表示,而單詞與單詞之間邊的權(quán)重則是使用點互信息(PMI)來表示。點互信息與傳統(tǒng)語言模型中的條件概率計算方式非常相似。只不過PMI采用的是滑窗方式而條件概率是直接在所有語料中進(jìn)行統(tǒng)計,可以認(rèn)為是將所有語料當(dāng)做一個大窗口,這時就又與PMI相同了。

    A表示圖網(wǎng)絡(luò)的鄰接矩陣,表示如下:

    GCN同樣也是可以含有多層隱藏層的,其各個層的計算方式如下:

    其中A'為歸一化對稱鄰接矩陣, W0 ∈ R^(m×k) 為權(quán)重矩陣,ρ是激活函數(shù),例如 ReLU ρ(x) = max(0,x) 如前所述,可以通過疊加多個GCN層來合并更高階的鄰域信息:

    其中j表示層數(shù)。

    損失函數(shù)定義為所有已標(biāo)記文檔的交叉熵誤差:

    文中提到Text GCN運(yùn)行良好的原因有兩個方面:

    但是其也有一些缺:

    總的來說,文章的idea還是挺有意思的,效果也還不錯。初識GCN可能還是有一點難以理解,可以參考如下資料進(jìn)行進(jìn)一步學(xué)習(xí):

    基于圖卷積網(wǎng)絡(luò)的文本分類算法

    如何理解 Graph Convolutional Network(GCN)?

    三、神經(jīng)網(wǎng)絡(luò):卷積神經(jīng)網(wǎng)絡(luò)(CNN)

    神經(jīng)網(wǎng)絡(luò) 最早是由心理學(xué)家和神經(jīng)學(xué)家提出的,旨在尋求開發(fā)和測試神經(jīng)的計算模擬。

    粗略地說, 神經(jīng)網(wǎng)絡(luò) 是一組連接的 輸入/輸出單元 ,其中每個連接都與一個 權(quán) 相關(guān)聯(lián)。在學(xué)習(xí)階段,通過調(diào)整權(quán)值,使得神經(jīng)網(wǎng)絡(luò)的預(yù)測準(zhǔn)確性逐步提高。由于單元之間的連接,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)又稱 連接者學(xué)習(xí)。

    神經(jīng)網(wǎng)絡(luò)是以模擬人腦神經(jīng)元的數(shù)學(xué)模型為基礎(chǔ)而建立的,它由一系列神經(jīng)元組成,單元之間彼此連接。從信息處理角度看,神經(jīng)元可以看作是一個多輸入單輸出的信息處理單元,根據(jù)神經(jīng)元的特性和功能,可以把神經(jīng)元抽象成一個簡單的數(shù)學(xué)模型。

    神經(jīng)網(wǎng)絡(luò)有三個要素: 拓?fù)浣Y(jié)構(gòu)、連接方式、學(xué)習(xí)規(guī)則

    神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu) :神經(jīng)網(wǎng)絡(luò)的單元通常按照層次排列,根據(jù)網(wǎng)絡(luò)的層次數(shù),可以將神經(jīng)網(wǎng)絡(luò)分為單層神經(jīng)網(wǎng)絡(luò)、兩層神經(jīng)網(wǎng)絡(luò)、三層神經(jīng)網(wǎng)絡(luò)等。結(jié)構(gòu)簡單的神經(jīng)網(wǎng)絡(luò),在學(xué)習(xí)時收斂的速度快,但準(zhǔn)確度低。

    神經(jīng)網(wǎng)絡(luò)的層數(shù)和每層的單元數(shù)由問題的復(fù)雜程度而定。問題越復(fù)雜,神經(jīng)網(wǎng)絡(luò)的層數(shù)就越多。例如,兩層神經(jīng)網(wǎng)絡(luò)常用來解決線性問題,而多層網(wǎng)絡(luò)就可以解決多元非線性問題

    神經(jīng)網(wǎng)絡(luò)的連接 :包括層次之間的連接和每一層內(nèi)部的連接,連接的強(qiáng)度用權(quán)來表示。

    根據(jù)層次之間的連接方式,分為:

    1)前饋式網(wǎng)絡(luò):連接是單向的,上層單元的輸出是下層單元的輸入,如反向傳播網(wǎng)絡(luò),Kohonen網(wǎng)絡(luò)

    2)反饋式網(wǎng)絡(luò):除了單項的連接外,還把最后一層單元的輸出作為第一層單元的輸入,如Hopfield網(wǎng)絡(luò)

    根據(jù)連接的范圍,分為:

    1)全連接神經(jīng)網(wǎng)絡(luò):每個單元和相鄰層上的所有單元相連

    2)局部連接網(wǎng)絡(luò):每個單元只和相鄰層上的部分單元相連

    神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)

    根據(jù)學(xué)習(xí)方法分:

    感知器:有監(jiān)督的學(xué)習(xí)方法,訓(xùn)練樣本的類別是已知的,并在學(xué)習(xí)的過程中指導(dǎo)模型的訓(xùn)練

    認(rèn)知器:無監(jiān)督的學(xué)習(xí)方法,訓(xùn)練樣本類別未知,各單元通過競爭學(xué)習(xí)。

    根據(jù)學(xué)習(xí)時間分:

    離線網(wǎng)絡(luò):學(xué)習(xí)過程和使用過程是獨立的

    在線網(wǎng)絡(luò):學(xué)習(xí)過程和使用過程是同時進(jìn)行的

    根據(jù)學(xué)習(xí)規(guī)則分:

    相關(guān)學(xué)習(xí)網(wǎng)絡(luò):根據(jù)連接間的激活水平改變權(quán)系數(shù)

    糾錯學(xué)習(xí)網(wǎng)絡(luò):根據(jù)輸出單元的外部反饋改變權(quán)系數(shù)

    自組織學(xué)習(xí)網(wǎng)絡(luò):對輸入進(jìn)行自適應(yīng)地學(xué)習(xí)

    摘自《數(shù)學(xué)之美》對人工神經(jīng)網(wǎng)絡(luò)的通俗理解:

    神經(jīng)網(wǎng)絡(luò)種類很多,常用的有如下四種:

    1)Hopfield網(wǎng)絡(luò),典型的反饋網(wǎng)絡(luò),結(jié)構(gòu)單層,有相同的單元組成

    2)反向傳播網(wǎng)絡(luò),前饋網(wǎng)絡(luò),結(jié)構(gòu)多層,采用最小均方差的糾錯學(xué)習(xí)規(guī)則,常用于語言識別和分類等問題

    3)Kohonen網(wǎng)絡(luò):典型的自組織網(wǎng)絡(luò),由輸入層和輸出層構(gòu)成,全連接

    4)ART網(wǎng)絡(luò):自組織網(wǎng)絡(luò)

    深度神經(jīng)網(wǎng)絡(luò):

    Convolutional Neural Networks(CNN)卷積神經(jīng)網(wǎng)絡(luò)

    Recurrent neural Network(RNN)循環(huán)神經(jīng)網(wǎng)絡(luò)

    Deep Belief Networks(DBN)深度信念網(wǎng)絡(luò)

    深度學(xué)習(xí)是指多層神經(jīng)網(wǎng)絡(luò)上運(yùn)用各種機(jī)器學(xué)習(xí)算法解決圖像,文本等各種問題的算法集合。深度學(xué)習(xí)從大類上可以歸入神經(jīng)網(wǎng)絡(luò),不過在具體實現(xiàn)上有許多變化。

    深度學(xué)習(xí)的核心是特征學(xué)習(xí),旨在通過分層網(wǎng)絡(luò)獲取分層次的特征信息,從而解決以往需要人工設(shè)計特征的重要難題。

    Machine Learning vs. Deep Learning 

    神經(jīng)網(wǎng)絡(luò)(主要是感知器)經(jīng)常用于 分類

    神經(jīng)網(wǎng)絡(luò)的分類知識體現(xiàn)在網(wǎng)絡(luò)連接上,被隱式地存儲在連接的權(quán)值中。

    神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)就是通過迭代算法,對權(quán)值逐步修改的優(yōu)化過程,學(xué)習(xí)的目標(biāo)就是通過改變權(quán)值使訓(xùn)練集的樣本都能被正確分類。

    神經(jīng)網(wǎng)絡(luò)特別適用于下列情況的分類問題:

    1) 數(shù)據(jù)量比較小,缺少足夠的樣本建立模型

    2) 數(shù)據(jù)的結(jié)構(gòu)難以用傳統(tǒng)的統(tǒng)計方法來描述

    3) 分類模型難以表示為傳統(tǒng)的統(tǒng)計模型

    缺點:

    1) 需要很長的訓(xùn)練時間,因而對于有足夠長訓(xùn)練時間的應(yīng)用更合適。

    2) 需要大量的參數(shù),這些通常主要靠經(jīng)驗確定,如網(wǎng)絡(luò)拓?fù)浠颉敖Y(jié)構(gòu)”。

    3)  可解釋性差 。該特點使得神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)挖掘的初期并不看好。

    優(yōu)點:

    1) 分類的準(zhǔn)確度高

    2)并行分布處理能力強(qiáng)

    3)分布存儲及學(xué)習(xí)能力高

    4)對噪音數(shù)據(jù)有很強(qiáng)的魯棒性和容錯能力

    最流行的基于神經(jīng)網(wǎng)絡(luò)的分類算法是80年代提出的 后向傳播算法 。后向傳播算法在多路前饋神經(jīng)網(wǎng)絡(luò)上學(xué)習(xí)。 

    定義網(wǎng)絡(luò)拓?fù)?

    在開始訓(xùn)練之前,用戶必須說明輸入層的單元數(shù)、隱藏層數(shù)(如果多于一層)、每一隱藏層的單元數(shù)和輸出層的單元數(shù),以確定網(wǎng)絡(luò)拓?fù)洹?

    對訓(xùn)練樣本中每個屬性的值進(jìn)行規(guī)格化將有助于加快學(xué)習(xí)過程。通常,對輸入值規(guī)格化,使得它們落入0.0和1.0之間。

    離散值屬性可以重新編碼,使得每個域值一個輸入單元。例如,如果屬性A的定義域為(a0,a1,a2),則可以分配三個輸入單元表示A。即,我們可以用I0 ,I1 ,I2作為輸入單元。每個單元初始化為0。如果A = a0,則I0置為1;如果A = a1,I1置1;如此下去。

    一個輸出單元可以用來表示兩個類(值1代表一個類,而值0代表另一個)。如果多于兩個類,則每個類使用一個輸出單元。

    隱藏層單元數(shù)設(shè)多少個“最好” ,沒有明確的規(guī)則。

    網(wǎng)絡(luò)設(shè)計是一個實驗過程,并可能影響準(zhǔn)確性。權(quán)的初值也可能影響準(zhǔn)確性。如果某個經(jīng)過訓(xùn)練的網(wǎng)絡(luò)的準(zhǔn)確率太低,則通常需要采用不同的網(wǎng)絡(luò)拓?fù)浠蚴褂貌煌某跏紮?quán)值,重復(fù)進(jìn)行訓(xùn)練。

    后向傳播算法學(xué)習(xí)過程:

    迭代地處理一組訓(xùn)練樣本,將每個樣本的網(wǎng)絡(luò)預(yù)測與實際的類標(biāo)號比較。

    每次迭代后,修改權(quán)值,使得網(wǎng)絡(luò)預(yù)測和實際類之間的均方差最小。

    這種修改“后向”進(jìn)行。即,由輸出層,經(jīng)由每個隱藏層,到第一個隱藏層(因此稱作后向傳播)。盡管不能保證,一般地,權(quán)將最終收斂,學(xué)習(xí)過程停止。

    算法終止條件:訓(xùn)練集中被正確分類的樣本達(dá)到一定的比例,或者權(quán)系數(shù)趨近穩(wěn)定。

    后向傳播算法分為如下幾步:

    1) 初始化權(quán)

    網(wǎng)絡(luò)的權(quán)通常被初始化為很小的隨機(jī)數(shù)(例如,范圍從-1.0到1.0,或從-0.5到0.5)。

    每個單元都設(shè)有一個偏置(bias),偏置也被初始化為小隨機(jī)數(shù)。

    2) 向前傳播輸入

    對于每一個樣本X,重復(fù)下面兩步:

    向前傳播輸入,向后傳播誤差

    計算各層每個單元的輸入和輸出。輸入層:輸出=輸入=樣本X的屬性;即,對于單元j,Oj = Ij = Xj。隱藏層和輸出層:輸入=前一層的輸出的線性組合,即,對于單元j, Ij =wij Oi + θj,輸出=

    3) 向后傳播誤差

    計算各層每個單元的誤差。

    輸出層單元j,誤差:

    Oj是單元j的實際輸出,而Tj是j的真正輸出。

    隱藏層單元j,誤差:

    wjk是由j到下一層中單元k的連接的權(quán),Errk是單元k的誤差

    更新 權(quán) 和 偏差 ,以反映傳播的誤差。

    權(quán)由下式更新:

     其中,△wij是權(quán)wij的改變。l是學(xué)習(xí)率,通常取0和1之間的值。

     偏置由下式更新:

      其中,△θj是偏置θj的改變。

    Example

    人類視覺原理:

    深度學(xué)習(xí)的許多研究成果,離不開對大腦認(rèn)知原理的研究,尤其是視覺原理的研究。1981 年的諾貝爾醫(yī)學(xué)獎,頒發(fā)給了 David Hubel(出生于加拿大的美國神經(jīng)生物學(xué)家) 和Torsten Wiesel,以及Roger Sperry。前兩位的主要貢獻(xiàn),是“發(fā)現(xiàn)了視覺系統(tǒng)的信息處理”, 可視皮層是分級的 。

    人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素Pixels),接著做初步處理(大腦皮層某些細(xì)胞發(fā)現(xiàn)邊緣和方向),然后抽象(大腦判定,眼前的物體的形狀,是圓形的),然后進(jìn)一步抽象(大腦進(jìn)一步判定該物體是只氣球)。

    對于不同的物體,人類視覺也是通過這樣逐層分級,來進(jìn)行認(rèn)知的:

    在最底層特征基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特征(輪子、眼睛、軀干等),到最上層,不同的高級特征最終組合成相應(yīng)的圖像,從而能夠讓人類準(zhǔn)確的區(qū)分不同的物體。

    可以很自然的想到:可以不可以模仿人類大腦的這個特點,構(gòu)造多層的神經(jīng)網(wǎng)絡(luò),較低層的識別初級的圖像特征,若干底層特征組成更上一層特征,最終通過多個層級的組合,最終在頂層做出分類呢?答案是肯定的,這也是許多深度學(xué)習(xí)算法(包括CNN)的靈感來源。

    卷積神經(jīng)網(wǎng)絡(luò)是一種多層神經(jīng)網(wǎng)絡(luò),擅長處理圖像特別是大圖像的相關(guān)機(jī)器學(xué)習(xí)問題。卷積網(wǎng)絡(luò)通過一系列方法,成功將數(shù)據(jù)量龐大的圖像識別問題不斷降維,最終使其能夠被訓(xùn)練。

    CNN最早由Yann LeCun提出并應(yīng)用在手寫字體識別上。LeCun提出的網(wǎng)絡(luò)稱為LeNet,其網(wǎng)絡(luò)結(jié)構(gòu)如下:

    這是一個最典型的卷積網(wǎng)絡(luò),由 卷積層、池化層、全連接層 組成。其中卷積層與池化層配合,組成多個卷積組,逐層提取特征,最終通過若干個全連接層完成分類。

    CNN通過卷積來模擬特征區(qū)分,并且通過卷積的權(quán)值共享及池化,來降低網(wǎng)絡(luò)參數(shù)的數(shù)量級,最后通過傳統(tǒng)神經(jīng)網(wǎng)絡(luò)完成分類等任務(wù)。

    降低參數(shù)量級:如果使用傳統(tǒng)神經(jīng)網(wǎng)絡(luò)方式,對一張圖片進(jìn)行分類,那么,把圖片的每個像素都連接到隱藏層節(jié)點上,對于一張1000x1000像素的圖片,如果有1M隱藏層單元,一共有10^12個參數(shù),這顯然是不能接受的。

    但是在CNN里,可以大大減少參數(shù)個數(shù),基于以下兩個假設(shè):

    1)最底層特征都是局部性的,也就是說,用10x10這樣大小的過濾器就能表示邊緣等底層特征

    2)圖像上不同小片段,以及不同圖像上的小片段的特征是類似的,也就是說,能用同樣的一組分類器來描述各種各樣不同的圖像

    基于以上兩個假設(shè),就能把第一層網(wǎng)絡(luò)結(jié)構(gòu)簡化

    用100個10x10的小過濾器,就能夠描述整幅圖片上的底層特征。

    卷積運(yùn)算的定義如下圖所示:

    如上圖所示,一個5x5的圖像,用一個3x3的 卷積核 :

       101

       010

       101

    來對圖像進(jìn)行卷積操作(可以理解為有一個滑動窗口,把卷積核與對應(yīng)的圖像像素做乘積然后求和),得到了3x3的卷積結(jié)果。

    這個過程可以理解為使用一個過濾器(卷積核)來過濾圖像的各個小區(qū)域,從而得到這些小區(qū)域的特征值。在實際訓(xùn)練過程中, 卷積核的值是在學(xué)習(xí)過程中學(xué)到的。

    在具體應(yīng)用中,往往有多個卷積核,可以認(rèn)為, 每個卷積核代表了一種圖像模式 ,如果某個圖像塊與此卷積核卷積出的值大,則認(rèn)為此圖像塊十分接近于此卷積核。如果設(shè)計了6個卷積核,可以理解為這個圖像上有6種底層紋理模式,也就是用6種基礎(chǔ)模式就能描繪出一副圖像。以下就是24種不同的卷積核的示例:

    池化 的過程如下圖所示:

    可以看到,原始圖片是20x20的,對其進(jìn)行采樣,采樣窗口為10x10,最終將其采樣成為一個2x2大小的特征圖。

    之所以這么做,是因為即使做完了卷積,圖像仍然很大(因為卷積核比較?。?,所以為了降低數(shù)據(jù)維度,就進(jìn)行采樣。

    即使減少了許多數(shù)據(jù),特征的統(tǒng)計屬性仍能夠描述圖像,而且由于降低了數(shù)據(jù)維度,有效地避免了過擬合。

    在實際應(yīng)用中,分為最大值采樣(Max-Pooling)與平均值采樣(Mean-Pooling)。

    LeNet網(wǎng)絡(luò)結(jié)構(gòu):

    注意,上圖中S2與C3的連接方式并不是全連接,而是部分連接。最后,通過全連接層C5、F6得到10個輸出,對應(yīng)10個數(shù)字的概率。

    卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)類似,也是參照了反向傳播算法

    第一階段,向前傳播階段:

    a)從樣本集中取一個樣本(X,Yp),將X輸入網(wǎng)絡(luò);

    b)計算相應(yīng)的實際輸出Op

    第二階段,向后傳播階段

    a)計算實際輸出Op與相應(yīng)的理想輸出Yp的差;

    b)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。

    四、人工神經(jīng)網(wǎng)絡(luò)算法與機(jī)器學(xué)習(xí)算法是兩種完全不同的算法

    人工神經(jīng)網(wǎng)絡(luò)算法與機(jī)器學(xué)習(xí)算法是兩種完全不同的算法,他們的區(qū)別在于:

    人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,簡稱ANN)是一種有監(jiān)督學(xué)習(xí)算法,它試圖通過模擬人腦神經(jīng)系統(tǒng)對復(fù)雜信息的處理機(jī)制來構(gòu)建一種數(shù)學(xué)模型。

    該算法是最知名、應(yīng)用最為廣泛的機(jī)器學(xué)習(xí)算法,可以毫不夸張地說,你所能接觸到的人工智能產(chǎn)品,絕大部分都使用了神經(jīng)網(wǎng)絡(luò)算法,比如手機(jī)經(jīng)常用到的人臉識別、文字識別、語音識別、指紋識別等,都是基于神經(jīng)網(wǎng)絡(luò)分類算法實現(xiàn)的。

    神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)(神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)白酒分類)

    機(jī)器學(xué)習(xí)(MachineLearning,ML)逐漸成為熱門學(xué)科,主要目的是設(shè)計和分析一些學(xué)習(xí)算法,讓計算機(jī)從數(shù)據(jù)中獲得一些決策函數(shù),從而可以幫助人們解決一些特定任務(wù),提高效率。它的研究領(lǐng)域涉及了概率論、統(tǒng)計學(xué)、逼近論、凸分析、計算復(fù)雜性理論等多門學(xué)科。

    機(jī)器學(xué)習(xí)最成功的應(yīng)用領(lǐng)域是計算機(jī)視覺,雖然也還是需要大量的手工編碼來完成工作。人們需要手工編寫分類器、邊緣檢測濾波器,以便讓程序能識別物體從哪里開始,到哪里結(jié)束;寫形狀檢測程序來判斷檢測對象是不是有八條邊;寫分類器來識別字母“ST-O-P”。使用以上這些手工編寫的分類器,人們總算可以開發(fā)算法來感知圖像,判斷圖像是不是一個停止標(biāo)志牌。

    神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)(神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)白酒分類)

    以上就是關(guān)于神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    神經(jīng)網(wǎng)絡(luò)二分類(神經(jīng)網(wǎng)絡(luò)二分類代碼)

    圖神經(jīng)網(wǎng)絡(luò)有哪些用途

    使用chatGPT搭建一個CNN卷積神經(jīng)網(wǎng)絡(luò)

    上海晚上好玩的地方排行榜(上海晚上好玩的地方排行榜最新)

    空氣源排行榜(空氣源品牌排行榜前十名)