神經網絡分析算法

2021-02-15 算法與數學之美

整理自網絡

算法起源

在思維學中,人類的大腦的思維分為:邏輯思維、直觀思維、和靈感思維三種基本方式。

而神經網絡就是利用其算法特點來模擬人腦思維的第二種方式,它是一個非線性動力學系統,其特點就是信息分布式存儲和並行協同處理,雖然單個神經元的結構及其簡單,功能有限,但是如果大量的神經元構成的網絡系統所能實現的行為確實及其豐富多彩的。其實簡單點講就是利用該算法來模擬人類大腦來進行推理和驗證的。

我們先簡要的分析下人類大腦的工作過程,我小心翼翼的在網上找到了一張勉強看起來舒服的大腦圖片

嗯,看著有那麼點意思了,起碼看起來舒服點,那還是在19世紀末,有一位叫做:Waldege的大牛創建了神經元學活,他說人類複雜的神經系統是由數目繁多的神經元組成,說大腦皮層包括100億個以上的神經元,每立方毫米源數萬個,汗..我想的是典型的大數據。他們相互聯繫形成神經網絡,通過感官器官和神經來接受來自身體外的各種信息(在神經網絡算法中我們稱:訓練)傳遞中樞神經,然後經過對信息的分析和綜合,再通過運動神經發出控制信息(比如我在博客園敲文字),依次來實現機體與外部環境的聯繫。

神經元這玩意跟其它細胞一樣,包括:細胞核、細胞質和細胞核,但是它還有比較特殊的,比如有許多突起,就跟上面的那個圖片一樣,分為:細胞體、軸突和樹突三分部。細胞體內有細胞核,突起的作用是傳遞信息。樹突的作用是作為引入輸入信息的突起,而軸突是作為輸出端的突起,但它只有一個。

也就是說一個神經元它有N個輸入(樹突),然後經過信息加工(細胞核),然後只有一個輸出(軸突)。而神經元之間四通過樹突和另一個神經元的軸突相聯繫,同時進行著信息傳遞和加工。我去...好複雜....

我們來看看神經網絡的原理算法公式

中間那個圓圓的就是細胞核了,X1、X2、X3....Xn就是樹突了,而Yi就是軸突了....是不是有那麼點意思了,嗯...我們的外界信息是通過神經元的樹突進行輸入,然後進過細胞核加工之後,經過Yi輸出,然後輸出到其它神經元...

但是這種算法有著它自身的特點,就好像人類的大腦神經元一樣,當每次收到外界信息的輸入,不停的刺激的同時會根據信息的不同發生自身的調節,比如:通過不斷的訓練運動員學會了遠動,不停的訓練學會了騎自行車....等等吧這些人類的行為形成,其本質是通過不停的訓練數百億腦神經元形成的。而這些行為的沉澱之後就是正確結果導向。

同樣該算法也會通過X1、X2、X3....Xn這些元素不停的訓練,進行自身的參數的調整來適應,同樣訓練次數的增加而形成一個正確的結果導向。這時候我們就可以利用它的自身適應過程產生正確的結果,而通過不斷的訓練使其具備學習功能,當然,該算法只是反映了人腦的若干基本特性,但並非生物系統的逼真描述,只是某種簡單的模仿、簡化和抽象。

該算法不同數字計算機一樣,會按照程序的一步一步地執行運算,而是能夠自身適應環境、總結規律、完成某種運算、識別或控制過程,而這就是機器人的起源...人工智慧的基礎。

神經網絡算法原理

由於神經網絡算法的設計面太大,我們此處暫且只分析Microsoft神經網絡算法的原理,在Microsoft神經網絡算法中,我們可以簡化成下面這個圖片:

Microsoft神經網絡使用的由最多三層神經元組成的「多層感知器」網絡,分別為:輸入層、可選隱含層和輸出層。

輸入層:輸入神經元定義數據挖掘模型所有的輸入屬性值以及概率。

隱含層:隱藏神經元接受來自輸入神經元的輸入,並向輸出神經元提供輸出。隱藏層是向各種輸入概率分配權重的位置。權重說明某一特定宿儒對於隱藏神經元的相關性或重要性。輸入所分配的權重越大,則輸入值也就越重要。而這個過程可以描述為學習的過程。權重可為負值,表示輸入抑制而不是促進某一特定結果。

輸出層:輸出神經元代表數據挖掘模型的可預測屬性值。

數據從輸入經過中間隱含層到輸出,整個過程是一個從前向後的傳播數據和信息的過程,後面一層節點上的數據值從與它相連接的前面節點傳來,之後把數據加權之後經過一定的函數運算得到新的值,繼續傳播到下一層節點。這個過程就是一個前向傳播過程。

而當節點輸出發生錯誤時,也就是和預期不同,神經網絡就要自動「學習」,後一層節點對前一層節點一個「信任」程度(其實改變的就是連接件的權重),採取降低權重的方式來懲罰,如果節點輸出粗粗哦,那就要查看這個錯誤的受那些輸入節點的影響,降低導致出錯的節點連接的權重,懲罰這些節點,同時提高那些做出正確建議節點的連接的權重。對那些受到懲罰的節點而說,也用同樣的方法來懲罰它前面的節點,直到輸入節點而止。這種稱為:回饋。

而我們學習的過程就是重複上面的介紹的流程,通過前向傳播得到輸入值,用回饋法進行學習。當把訓練集中的所有數據運行過一遍之後,則稱為一個訓練周期。訓練後得到神經網絡模型,包含了訓練集中相應值和受預測值影響變化的規律。

在每個神經元中的隱含層中都有著複雜的函數,並且這些都非線性函數,並且類似生物學神經網絡的基本傳輸特徵,這些函數稱之為:激活函數,即:輸入值發生細微的變化有時候會產生較大的輸出變化。

當然Microsot神經網絡算法使用的函數是這樣的:

其中a是輸入值,而O是輸出值。

處理反向傳播,計算誤差,更新權值時輸出層所用的誤差函數為交叉熵

上述公式中Oi是輸出神經元i的輸出,而Ti是基於訓練樣例的該輸出神經元實際值。

隱含神經元的誤差是基於下一層的神經元的誤差和相關權值來計算的。公式為:

其中Oi是輸出神經元i的輸出,該單元有j個到下一層的輸出。Erri是神經元i的誤差,Wij是這兩個神經元之間的權值。

一旦計算出每個神經元的誤差,則下一步是使用以下方法來調整網絡中的權值。

其中l為0-1範圍內的數,稱之為學習函數。

其實以上函數應用的激活函數還是挺簡單的。有興趣的可以進行詳細的研究和公式的推算,咱這裡只是簡要分析,列舉算法特點。

Microsoft神經網絡分析算法特點

經過上面的原理分析,我們知道了神經網絡算法分為了:輸入層、隱含層、輸出層三層方式連接,其中隱含層是可選的,也就是說在Microsoft神經網絡算法中如果不經過隱含層,則輸入將會直接從輸入層中的節點傳遞到輸出層中的節點。

輸入層特點:如果輸入層如果為離散值,那麼輸入神經元通常代表輸入屬性的單個狀態。如果輸入數據包含Null值,則缺失的值也包括在內。具有兩個以上狀態的離散輸入屬性值會生成一個輸入神經元,如果存在NUll值,會自動再重新的生成一個輸入的神經元,用以處理Null值,一個連續的輸入屬性將生成兩個輸入神經元:一個用於缺失的狀態、一個用以連續屬性自身的值。輸入神經元可向一個多多個神經元提供輸入。

隱含層特點:隱含神經元接受來自輸入神經元的輸入,並向輸出神經元提供輸出。存在激活函數供其使用改變閥值。

輸出層特點:輸出神經如果對於離散輸入屬性,輸出神經元通常代表可預測可預測屬性的單個預測狀態,其中包括缺失的Null值。

如果挖掘模型包含一個或多個僅用於預測的屬性,算法將創建一個代表所有這些屬性的單一網絡,如果挖掘模型包含一個或多個同時用於輸入和預測的屬性,則該算法提供程序將為其中每個屬性構建一個網絡。

對於具有離散值的輸入屬性和可預測屬性,每個輸入或輸出神經元各自表示單個狀態。對於具有連續值的輸入屬性和可預測屬性,每個輸入或輸出神經元分別表示該屬性值的範圍和分布。

算法提供程序通過接受之前保留的定性數據集也就是事例集合併將維持數據中的每個事例的實際已知值與網絡的預測進行比較。即通過一個「批學習」的過程來迭代計算的整個網絡,並且改變的輸入權重。該算法處理了整個事例集合之後,將檢查每個神經元的預測值和實際值。該算法將計算錯誤程度(如果錯誤),並且調整與神經輸入關聯的權重,並通過一個「回傳」的過程從輸出神經元返回到輸出神經元。然後,該算法對整個事例集合重複該過程。經過以上的層層沉澱我們的算法就算從一個不懂的「嬰兒」逐漸成長成「成人」,而這個結果就是我們那它來發掘和預測的工具。

神經網絡分析算法應用場景

神經網絡研究內容廣泛,非本篇文章所能涵蓋,而且它反映了多學科交叉技術領域的特點。研究工作集中以下領域:

(1)生物原型研究。從生理學、心理學、腦科學、病理學等生物科學方面研究神經細胞、神經網絡、神經系統的生物原型結構及其功能機理。

(2)建立理論模型。根據生物原型的研究,建立神經元、神經網絡的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。

(3)網絡模型與算法研究。在理論模型研究的基礎上構作具體的神經網絡模型,以實現計算機模擬或準備製作硬體,包括網絡學習算法的研究。這方面的工作也稱為技術模型研究。

(4)人工神經網絡應用系統。在網絡模型與算法研究的基礎上,利用人工神經網絡組成實際的應用系統,例如,完成某種信號處理或模式識別的功能、構造專家系統、製成機器人等等。

我去....這那是我這個碼農層面研究的事,上面說的種種如果有興趣童鞋可以繼續深入研究,隨便一塊玩好了都可以升官加祿,衣食無憂.

回歸正題,我們還是來看看我們的Microsoft 神經網絡分析算法在數據挖掘領域的應用那些:

營銷和促銷分析,如評估直接郵件促銷或一個電臺廣告活動的成功情況。

根據歷史數據預測股票升降、匯率浮動或其他頻繁變動的金融信息。

分析製造和工業流程。

文本挖掘。

分析多個輸入和相對較少的輸出之間的複雜關係的任何預測模型。

其實它的應用場景是最廣泛的,比如當我們拿到一堆數據的時候,針對一個目標無從下手毫無頭緒的時候,Microsoft 神經網絡分析算法就是該應用的最佳場景了,因為其利用「人腦」的特點去茫茫的數據海洋中去發掘有用的信息。比如:BOSS把公司的資料庫扔給你了...讓你分析下公司為啥不掙錢...或者說啥子原因導致的不盈利...這時候該算法就應該出場了。

不過從最近的市場中發現,該算法的在"文本挖掘"中特別火,而且更在微軟中得到充分利用,比如當前的:微軟小冰,各種平臺下的語音識別,並且就連蘋果這樣的孤傲的公司也在慢慢的臣服於該算法的魅力下。

回復以下關鍵字獲取相關文章:

數據挖掘 | 機器學習 | 數學之美 | 遊戲算法 | 生活數學 | 排名算法|大型網站技術演進 | 數學名人 | 學科概述 | 計算機科學 | 搜尋引擎



據說好多人都不知道長按圖片也能關注,你知道嗎?

相關焦點

  • 算法的算法:人工神經網絡
    從Logistic回歸到支持向量機,算法層出不窮,毫不誇張的說,神經網絡成為算法的算法,為機器學習的頂峰。它也從最初不斷嘗試中成為機器學習的通用表達形式。由此,可以將神經網絡從一個固定算法展拓到一個通用觀念,並得到如下有趣的推文:任何機器學習算法,無論是決策樹還是k近鄰,都可以使用神經網絡來表示。這個概念可以通過下面的一些舉例得到驗證,同樣也可以使用數據進行嚴格的證明。
  • 算法之「算法」:所有機器學習算法都可以表示為神經網絡
    但是眾所周知,神經網絡是算法的算法及機器學習的巔峰。我們可以說,神經網絡是對機器學習的普遍概括,而不是僅僅一次嘗試。與其說神經網絡是簡單的算法,不如說是框架和概念,這是顯而易見的,因為在構建神經網絡時有很大的自由度——比如對於隱藏層&節點個數、激活函數、優化器、損失函數、網絡類型(卷積神經網絡、循環神經網絡等)以及特殊層(批歸一化、隨機失活等)。
  • 訓練神經網絡的五大算法
    訓練的算法有很多,它們的特點和性能各不相同。➤問題的抽象人們把神經網絡的學習過程轉化為求損失函數f的最小值問題。一般來說,損失函數包括誤差項和正則項兩部分。誤差項衡量神經網絡模型在訓練數據集上的擬合程度,而正則項則是控制模型的複雜程度,防止出現過擬合現象。損失函數的函數值由模型的參數(權重值和偏置值)所決定。
  • 人工神經網絡算法及其簡易R實現
    人工神經網絡(Artificial Neural Network)簡單而言是一種分類算法。作為機器學習的一個龐大分支,人工神經網絡目前大約有幾百種算法,其中包括一些著名的ANN算法:感知器神經網絡(Perceptron Neural Network), 反向傳遞(Back Propagation), Hopfield網絡和自組織映射(Self-Organizing Map, SOM)等等,這篇文章我們只介紹最基本的人工神經網絡算法原理及其簡易的R語言實現方式。
  • 「人工神經網絡」人工神經網絡之BP算法
    人工神經網絡(Artificial Neural Network,ANN)是在受到了生物學的啟發後創建的,在某種程度上它是對生物大腦的一種模擬。人們仿照生物神經網絡的結構,使用簡單運算單元模擬神經元,並將大量運算單元按某種形式密集連接,便構成了人工神經網絡。結構如圖:人工神經網絡(ANN)模型帶有權重值(w1,w2,...
  • 機器學習算法匯總:人工神經網絡、深度學習及其它
    算法類似性根據算法的功能和形式的類似性,我們可以把算法分類,比如說基於樹的算法,基於神經網絡的算法等等。當然,機器學習的範圍非常龐大,有些算法很難明確歸類到某一類。而對於有些分類來說,同一分類的算法可以針對不同類型的問題。這裡,我們儘量把常用的算法按照最容易理解的方式進行分類。
  • 什麼是神經網絡算法?
    人工智慧的底層模型是"神經網絡"(neural network)。許多複雜的應用(比如模式識別、自動控制)和高級模型(比如深度學習)都基於它。學習人工智慧,一定是從它開始什麼是神經網絡呢?網上似乎缺乏通俗的解釋。
  • 程式設計師面試常問算法:不用高等數學講明白神經網絡
    生物神經網絡通常神經網絡可以分兩種,一是生物神經網絡,一是人工神經網絡。生物神經網絡:一般指生物的大腦神經元、細胞、觸點等組成的網絡,它產生生物的意識,幫助其進行思考和行動。人工神經網絡:它是一種模仿動物神經網絡行為特徵的算法數學模型。
  • MATLAB優化算法實例——神經網絡
    ❞1 神經網絡的基本原理1.1 算法簡介神經網絡(Neural Networks)是從微觀結構與功能上對人腦神經系統進行模擬而建立起來的數學模型,它具有模擬人腦思維的能力,其特點主要是具有非線性特性神經網絡是由神經元互聯而成的,能接收並處理信息,而這種信息處理主要是由神經元之間的相互作用,即通過神經元之間的連接權值來處理並實現的。神經網絡在人工智慧、自動控制、計算機科學、信息處理和模式識別等領域得到了非常成功地應用。
  • BP神經網絡算法與實踐
    神經網絡有很多種:前向傳輸網絡、反向傳輸網絡、遞歸神經網絡、卷積神經網絡等。本文介紹基本的反向傳輸神經網絡(Backpropagation 簡稱BP),主要講述算法的基本流程和自己在訓練BP神經網絡的一些經驗。
  • 深度學習:神經網絡算法的昨天、今天和明天
    深度學習就是人工神經網絡(Artificial Neural Network)。神經網絡算法得名於其對於動物神經元傳遞信息方式的模擬,而深度學習這一「俗稱」又來自於多層級聯的神經元:眾多的層讓信息的傳遞實現了「深度」。
  • 人工神經網絡
    深度學習是機器學習研究中的一個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。深度學習是利用多層神經網絡結構,從大數據中學習現實世界中各類事物能直接用於計算機計算的表示形式,被認為是智能機器可能的「大腦結構」。簡單的說,使用多層神經網絡來進行機器學習。
  • 神經網絡解析|RNN(循環神經網絡)
    大家如果了解BP算法或者前文我們介紹的CNN網絡就會發現,他們的輸出都是只考慮前一個輸入的影響而不考慮其它時刻輸入的影響,比如簡單的貓,狗等圖片,或者手寫數字等單個物體的識別具有較好的效果。但是,對於一些與時間先後有關的,比如視頻的下一時刻的預測,文檔前後文內容的預測等,這些算法的表現就不盡如人意了。因此,RNN就應運而生了。
  • 人工神經網絡算法介紹及其參數講解
    算法介紹神經網絡是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。
  • BP神經網絡
    BP 神經網絡算法的收斂速度慢:由於BP神經網絡算法本質上為梯度下降法,它所要優化的目標函數是非常複雜的,因此,必然會出現「鋸齒形現象」,這使得BP算法低效;又由於優化的目標函數很複雜,它必然會在神經元輸出接近0或1的情況下,出現一些平坦區,在這些區域內,權值誤差改變很小,使訓練過程幾乎停頓;BP神經網絡模型中,為了使網絡執行BP算法,不能使用傳統的一維搜索法求每次迭代的步長
  • 【神經網絡】神經網絡簡介
    神經網絡是機器學習中的一種模型,是一種模仿動物神經網絡行為特徵,進行分布式並行信息處理的算法數學模型。
  • 前饋神經網絡——深度學習之神經網絡核心原理與算法
    因上幾次讀者反映,公式代碼有亂碼和不規整的問題,小編有改善喲,這篇文章開始親們會看到效果的喲~Feedforward Neural Network網絡結構(一般分兩種)BP網絡是所有的神經網絡中結構最為簡單的一種網絡。一般我們習慣把網絡畫成左邊輸入右邊輸出層的結構。
  • 典型的深度學習算法(一):卷積神經網絡(CNN)
    通過上一篇文章,相信大家對深度學習的概念、原理已經有了大致了解,近期企通查將會對深度學習中的幾種典型算法進行介紹。在深度學習領域中,已經驗證的典型成熟算法有卷積神經網絡(CNN)、循環神經網絡(RNN)、生成對抗網絡(GAN)、深度強化學習(DRL)等,下面企通查將帶領大家對典型的深度學習算法之一——卷積神經網絡(CNN)一探究竟。
  • 神經網絡和誤差逆傳播法算法(BP)的推導
    一、神經網絡     神經網絡由大量的神經元相互連接而成。
  • 什麼是神經網絡?工作原理是什麼?——AI算法必懂
    關注AI的同學一定都知道神經網絡,這是AI算法中模擬人的大腦所衍生出來的學科和算法。可以說,不了解神經網絡就不能說動算法,懂算法者必懂神經網絡。下面我們就對神經網絡的工作原理進行深入淺出的介紹。YQ0ednc