Ⅰ 人工神經網路綜述
文章主要分為:
一、人工神經網路的概念;
二、人工神經網路的發展歷史;
三、人工神經網路的特點;
四、人工神經網路的結構。
。。
人工神經網路(Artificial Neural Network,ANN)簡稱神經網路(NN),是基於生物學中神經網路的基本原理,在理解和抽象了人腦結構和外界刺激響應機制後,以網路拓撲知識為理論基礎,模擬人腦的神經系統對復雜信息的處理機制的一種數學模型。該模型以並行分布的處理能力、高容錯性、智能化和自學習等能力為特徵,將信息的加工和存儲結合在一起,以其獨特的知識表示方式和智能化的自適應學習能力,引起各學科領域的關注。它實際上是一個有大量簡單元件相互連接而成的復雜網路,具有高度的非線性,能夠進行復雜的邏輯操作和非線性關系實現的系統。
神經網路是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激活函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重(weight),神經網路就是通過這種方式來模擬人類的記憶。網路的輸出則取決於網路的結構、網路的連接方式、權重和激活函數。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。神經網路的構築理念是受到生物的神經網路運作啟發而產生的。人工神經網路則是把對生物神經網路的認識與數學統計模型相結合,藉助數學統計工具來實現。另一方面在人工智慧學的人工感知領域,我們通過數學統計學的方法,使神經網路能夠具備類似於人的決定能力和簡單的判斷能力,這種方法是對傳統邏輯學演算的進一步延伸。
人工神經網路中,神經元處理單元可表示不同的對象,例如特徵、字母、概念,或者一些有意義的抽象模式。網路中處理單元的類型分為三類:輸入單元、輸出單元和隱單元。輸入單元接受外部世界的信號與數據;輸出單元實現系統處理結果的輸出;隱單元是處在輸入和輸出單元之間,不能由系統外部觀察的單元。神經元間的連接權值反映了單元間的連接強度,信息的表示和處理體現在網路處理單元的連接關系中。人工神經網路是一種非程序化、適應性、大腦風格的信息處理,其本質是通過網路的變換和動力學行為得到一種並行分布式的信息處理功能,並在不同程度和層次上模仿人腦神經系統的信息處理功能。
神經網路,是一種應用類似於大腦神經突觸連接結構進行信息處理的數學模型,它是在人類對自身大腦組織結合和思維機制的認識理解基礎之上模擬出來的,它是根植於神經科學、數學、思維科學、人工智慧、統計學、物理學、計算機科學以及工程科學的一門技術。
在介紹神經網路的發展歷史之前,首先介紹一下神經網路的概念。神經網路主要是指一種仿造人腦設計的簡化的計算模型,這種模型中包含了大量的用於計算的神經元,這些神經元之間會通過一些帶有權重的連邊以一種層次化的方式組織在一起。每一層的神經元之間可以進行大規模的並行計算,層與層之間進行消息的傳遞。
下圖展示了整個神經網路的發展歷程:
神經網路的發展有悠久的歷史。其發展過程大致可以概括為如下4個階段。
(1)、M-P神經網路模型:20世紀40年代,人們就開始了對神經網路的研究。1943 年,美國心理學家麥克洛奇(Mcculloch)和數學家皮茲(Pitts)提出了M-P模型,此模型比較簡單,但是意義重大。在模型中,通過把神經元看作個功能邏輯器件來實現演算法,從此開創了神經網路模型的理論研究。
(2)、Hebb規則:1949 年,心理學家赫布(Hebb)出版了《The Organization of Behavior》(行為組織學),他在書中提出了突觸連接強度可變的假設。這個假設認為學習過程最終發生在神經元之間的突觸部位,突觸的連接強度隨之突觸前後神經元的活動而變化。這一假設發展成為後來神經網路中非常著名的Hebb規則。這一法則告訴人們,神經元之間突觸的聯系強度是可變的,這種可變性是學習和記憶的基礎。Hebb法則為構造有學習功能的神經網路模型奠定了基礎。
(3)、感知器模型:1957 年,羅森勃拉特(Rosenblatt)以M-P 模型為基礎,提出了感知器(Perceptron)模型。感知器模型具有現代神經網路的基本原則,並且它的結構非常符合神經生理學。這是一個具有連續可調權值矢量的MP神經網路模型,經過訓練可以達到對一定的輸入矢量模式進行分類和識別的目的,它雖然比較簡單,卻是第一個真正意義上的神經網路。Rosenblatt 證明了兩層感知器能夠對輸入進行分類,他還提出了帶隱層處理元件的三層感知器這一重要的研究方向。Rosenblatt 的神經網路模型包含了一些現代神經計算機的基本原理,從而形成神經網路方法和技術的重大突破。
(4)、ADALINE網路模型: 1959年,美國著名工程師威德羅(B.Widrow)和霍夫(M.Hoff)等人提出了自適應線性元件(Adaptive linear element,簡稱Adaline)和Widrow-Hoff學習規則(又稱最小均方差演算法或稱δ規則)的神經網路訓練方法,並將其應用於實際工程,成為第一個用於解決實際問題的人工神經網路,促進了神經網路的研究應用和發展。ADALINE網路模型是一種連續取值的自適應線性神經元網路模型,可以用於自適應系統。
人工智慧的創始人之一Minsky和Papert對以感知器為代表的網路系統的功能及局限性從數學上做了深入研究,於1969年發表了轟動一時《Perceptrons》一書,指出簡單的線性感知器的功能是有限的,它無法解決線性不可分的兩類樣本的分類問題,如簡單的線性感知器不可能實現「異或」的邏輯關系等。這一論斷給當時人工神經元網路的研究帶來沉重的打擊。開始了神經網路發展史上長達10年的低潮期。
(1)、自組織神經網路SOM模型:1972年,芬蘭的KohonenT.教授,提出了自組織神經網路SOM(Self-Organizing feature map)。後來的神經網路主要是根據KohonenT.的工作來實現的。SOM網路是一類無導師學習網路,主要用於模式識別﹑語音識別及分類問題。它採用一種「勝者為王」的競爭學習演算法,與先前提出的感知器有很大的不同,同時它的學習訓練方式是無指導訓練,是一種自組織網路。這種學習訓練方式往往是在不知道有哪些分類類型存在時,用作提取分類信息的一種訓練。
(2)、自適應共振理論ART:1976年,美國Grossberg教授提出了著名的自適應共振理論ART(Adaptive Resonance Theory),其學習過程具有自組織和自穩定的特徵。
(1)、Hopfield模型:1982年,美國物理學家霍普菲爾德(Hopfield)提出了一種離散神經網路,即離散Hopfield網路,從而有力地推動了神經網路的研究。在網路中,它首次將李雅普諾夫(Lyapunov)函數引入其中,後來的研究學者也將Lyapunov函數稱為能量函數。證明了網路的穩定性。1984年,Hopfield 又提出了一種連續神經網路,將網路中神經元的激活函數由離散型改為連續型。1985 年,Hopfield和Tank利用Hopfield神經網路解決了著名的旅行推銷商問題(Travelling Salesman Problem)。Hopfield神經網路是一組非線性微分方程。Hopfield的模型不僅對人工神經網路信息存儲和提取功能進行了非線性數學概括,提出了動力方程和學習方程,還對網路演算法提供了重要公式和參數,使人工神經網路的構造和學習有了理論指導,在Hopfield模型的影響下,大量學者又激發起研究神經網路的熱情,積極投身於這一學術領域中。因為Hopfield 神經網路在眾多方面具有巨大潛力,所以人們對神經網路的研究十分地重視,更多的人開始了研究神經網路,極大地推動了神經網路的發展。
(2)、Boltzmann機模型:1983年,Kirkpatrick等人認識到模擬退火演算法可用於NP完全組合優化問題的求解,這種模擬高溫物體退火過程來找尋全局最優解的方法最早由Metropli等人1953年提出的。1984年,Hinton與年輕學者Sejnowski等合作提出了大規模並行網路學習機,並明確提出隱單元的概念,這種學習機後來被稱為Boltzmann機。
Hinton和Sejnowsky利用統計物理學的感念和方法,首次提出的多層網路的學習演算法,稱為Boltzmann 機模型。
(3)、BP神經網路模型:1986年,儒默哈特(D.E.Ru melhart)等人在多層神經網路模型的基礎上,提出了多層神經網路權值修正的反向傳播學習演算法----BP演算法(Error Back-Propagation),解決了多層前向神經網路的學習問題,證明了多層神經網路具有很強的學習能力,它可以完成許多學習任務,解決許多實際問題。
(4)、並行分布處理理論:1986年,由Rumelhart和McCkekkand主編的《Parallel Distributed Processing:Exploration in the Microstructures of Cognition》,該書中,他們建立了並行分布處理理論,主要致力於認知的微觀研究,同時對具有非線性連續轉移函數的多層前饋網路的誤差反向傳播演算法即BP演算法進行了詳盡的分析,解決了長期以來沒有權值調整有效演算法的難題。可以求解感知機所不能解決的問題,回答了《Perceptrons》一書中關於神經網路局限性的問題,從實踐上證實了人工神經網路有很強的運算能力。
(5)、細胞神經網路模型:1988年,Chua和Yang提出了細胞神經網路(CNN)模型,它是一個細胞自動機特性的大規模非線性計算機模擬系統。Kosko建立了雙向聯想存儲模型(BAM),它具有非監督學習能力。
(6)、Darwinism模型:Edelman提出的Darwinism模型在90年代初產生了很大的影響,他建立了一種神經網路系統理論。
(7)、1988年,Linsker對感知機網路提出了新的自組織理論,並在Shanon資訊理論的基礎上形成了最大互信息理論,從而點燃了基於NN的信息應用理論的光芒。
(8)、1988年,Broomhead和Lowe用徑向基函數(Radialbasis function, RBF)提出分層網路的設計方法,從而將NN的設計與數值分析和線性適應濾波相掛鉤。
(9)、1991年,Haken把協同引入神經網路,在他的理論框架中,他認為,認知過程是自發的,並斷言模式識別過程即是模式形成過程。
(10)、1994年,廖曉昕關於細胞神經網路的數學理論與基礎的提出,帶來了這個領域新的進展。通過拓廣神經網路的激活函數類,給出了更一般的時滯細胞神經網路(DCNN)、Hopfield神經網路(HNN)、雙向聯想記憶網路(BAM)模型。
(11)、90年代初,Vapnik等提出了支持向量機(Supportvector machines, SVM)和VC(Vapnik-Chervonenkis)維數的概念。
經過多年的發展,已有上百種的神經網路模型被提出。
深度學習(Deep Learning,DL)由Hinton等人於2006年提出,是機器學習的一個新領域。深度學習本質上是構建含有多隱層的機器學習架構模型,通過大規模數據進行訓練,得到大量更具代表性的特徵信息。深度學習演算法打破了傳統神經網路對層數的限制,可根據設計者需要選擇網路層數。
突觸是神經元之間相互連接的介面部分,即一個神經元的神經末梢與另一個神經元的樹突相接觸的交界面,位於神經元的神經末梢尾端。突觸是軸突的終端。
大腦可視作為1000多億神經元組成的神經網路。神經元的信息傳遞和處理是一種電化學活動.樹突由於電化學作用接受外界的刺激,通過胞體內的活動體現為軸突電位,當軸突電位達到一定的值則形成神經脈沖或動作電位;再通過軸突末梢傳遞給其它的神經元.從控制論的觀點來看;這一過程可以看作一個多輸入單輸出非線性系統的動態過程。
神經元的功能特性:(1)時空整合功能;(2)神經元的動態極化性;(3)興奮與抑制狀態;(4)結構的可塑性;(5)脈沖與電位信號的轉換;(6)突觸延期和不應期;(7)學習、遺忘和疲勞。
神經網路從兩個方面模擬大腦:
(1)、神經網路獲取的知識是從外界環境中學習得來的。
(2)、內部神經元的連接強度,即突觸權值,用於儲存獲取的知識。
神經網路系統由能夠處理人類大腦不同部分之間信息傳遞的由大量神經元連接形成的拓撲結構組成,依賴於這些龐大的神經元數目和它們之間的聯系,人類的大腦能夠收到輸入的信息的刺激由分布式並行處理的神經元相互連接進行非線性映射處理,從而實現復雜的信息處理和推理任務。
對於某個處理單元(神經元)來說,假設來自其他處理單元(神經元)i的信息為Xi,它們與本處理單元的互相作用強度即連接權值為Wi, i=0,1,…,n-1,處理單元的內部閾值為θ。那麼本處理單元(神經元)的輸入為:
,而處理單元的輸出為:
式中,xi為第i個元素的輸入,wi為第i個處理單元與本處理單元的互聯權重即神經元連接權值。f稱為激活函數或作用函數,它決定節點(神經元)的輸出。θ表示隱含層神經節點的閾值。
神經網路的主要工作是建立模型和確定權值,一般有前向型和反饋型兩種網路結構。通常神經網路的學習和訓練需要一組輸入數據和輸出數據對,選擇網路模型和傳遞、訓練函數後,神經網路計算得到輸出結果,根據實際輸出和期望輸出之間的誤差進行權值的修正,在網路進行判斷的時候就只有輸入數據而沒有預期的輸出結果。神經網路一個相當重要的能力是其網路能通過它的神經元權值和閾值的不斷調整從環境中進行學習,直到網路的輸出誤差達到預期的結果,就認為網路訓練結束。
對於這樣一種多輸入、單輸出的基本單元可以進一步從生物化學、電生物學、數學等方面給出描述其功能的模型。利用大量神經元相互連接組成的人工神經網路,將顯示出人腦的若干特徵,人工神經網路也具有初步的自適應與自組織能力。在學習或訓練過程中改變突觸權重wij值,以適應周圍環境的要求。同一網路因學習方式及內容不同可具有不同的功能。人工神經網路是一個具有學習能力的系統,可以發展知識,以至超過設計者原有的知識水平。通常,它的學習(或訓練)方式可分為兩種,一種是有監督(supervised)或稱有導師的學習,這時利用給定的樣本標准進行分類或模仿;另一種是無監督(unsupervised)學習或稱無導師學習,這時,只規定學習方式或某些規則,而具體的學習內容隨系統所處環境(即輸入信號情況)而異,系統可以自動發現環境特徵和規律性,具有更近似於人腦的功能。
在人工神經網路設計及應用研究中,通常需要考慮三個方面的內容,即神經元激活函數、神經元之間的連接形式和網路的學習(訓練)。
Ⅱ 如何入門大數據
大數據
數據科學並沒有一個獨立的學科體系,統計學,機器學習,數據挖掘,資料庫,分布式計算,雲計算,信息可視化等技術或方法來對付數據。
但從狹義上來看,我認為數據科學就是解決三個問題:
1. data pre-processing;(數據預處理)
2. data interpretation;(數據解讀)
3.data modeling and analysis.(數據建模與分析)
這也就是我們做數據工作的三個大步驟:
1、原始數據要經過一連串收集、提取、清洗、整理等等的預處理過程,才能形成高質量的數據;
2、我們想看看數據「長什麼樣」,有什麼特點和規律;
3、按照自己的需要,比如要對數據貼標簽分類,或者預測,或者想要從大量復雜的數據中提取有價值的且不易發現的信息,都要對數據建模,得到output。
這三個步驟未必嚴謹,每個大步驟下面可能依問題的不同也會有不同的小步驟,但按我這幾年的經驗來看,按照這個大思路走,數據一般不會做跑偏。
這樣看來,數據科學其實就是門復合型的技術,既然是技術就從編程語言談起吧,為了簡練,只說說R和Python。但既然是薦數據科學方面的書,我這里就不提R/Python編程基礎之類的書了,直接上跟數據科學相關的。
R programming
如果只是想初步了解一下R語言已經R在數據分析方面的應用,那不妨就看看這兩本:
R in action:我的R語言大數據101。其實對於一個沒有任何編程基礎的人來說,一開始就學這本書,學習曲線可能會比較陡峭。但如果配合上一些輔助材料,如官方發布的R basics(http://cran.r-project.org/doc/contrib/usingR.pdf),stackoverflow上有tag-R的問題集(Newest 『r』 Questions),遇到復雜的問題可在上面搜索,總會找到解決方案的。這樣一來,用這本書拿來入門學習也問題不大。而且這本書作者寫得也比較輕松,緊貼實戰。
Data analysis and graphics using R:使用R語言做數據分析的入門書。這本書的特點也是緊貼實戰,沒有過多地講解統計學理論,所以喜歡通過情境應用來學習的人應該會喜歡這本入門書。而且這本書可讀性比較強,也就是說哪怕你手頭沒電腦寫不了代碼,有事沒事拿出這本書翻一翻,也能讀得進去。
但如果你先用R來從事實實在在的數據工作,那麼上面兩本恐怕不夠,還需要這些:
Modern applied statistics with S:這本書里統計學的理論就講得比較多了,好處就是你可以用一本書既復習了統計學,又學了R語言。(S/Splus和R的關系就類似於Unix和Linux,所以用S教程學習R,一點問題都沒有)
Data manipulation with R:這本書實務性很強,它教給你怎麼從不同格式的原始數據文件里讀取、清洗、轉換、整合成高質量的數據。當然和任何一本注重實戰的書一樣,本書也有豐富的真實數據或模擬數據供你練習。對於真正從事數據處理工作的人來說,這本書的內容非常重要,因為對於任何研究,一項熟練的數據預處理技能可以幫你節省大量的時間和精力。否則,你的研究總是要等待你的數據。
R Graphics Cookbook:想用R做可視化,就用這本書吧。150多個recipes,足以幫你應付絕大多數類型的數據。以我現在極業余的可視化操作水平來看,R是最容易做出最漂亮的圖表的工具了。
An introction to statistical learning with application in R:這本書算是著名的the element of statistical learning的姊妹篇,後者更注重統計(機器)學習的模型和演算法,而前者所涉及的模型和演算法原沒有後者全面或深入,但卻是用R來學習和應用機器學習的很好的入口。
A handbook of statistical analysis using R:這本書內容同樣非常扎實,很多統計學的學生就是用這本書來學慣用R來進行統計建模的。
Python
Think Python,Think Stats,Think Bayes:這是Allen B. Downey寫的著名的Think X series三大卷。其實是三本精緻的小冊子,如果想快速地掌握Python在統計方面的操作,好好閱讀這三本書,認真做習題,答案鏈接在書里有。這三本書學通了,就可以上手用Python進行基本的統計建模了。
Python For Data Analysis: 作者是pandas的主要開發者,也正是Pandas使Python能夠像R一樣擁有dataframe的功能,能夠處理結構比較復雜的數據。這本書其實analysis講得不多,說成數據處理應該更合適。掌握了這本書,處理各種糟心的數據就問題不大了。
Introction to Python for Econometrics, Statistics and Data Analysis:這本書第一章就告訴你要安裝Numpy, Scipy, Matplotlib, Pandas, IPython等等。然後接下來的十好幾章就是逐一介紹這幾個庫該怎麼用。很全面,但讀起來比較枯燥,可以用來當工具書。
Practical Data Analysis: 這本書挺奇葩,貌似很暢銷,但作者把內容安排得東一榔頭西一棒子,什麼都講一點,但一個都沒講透。這本書可以作為我們學習數據分析的一個索引,看到哪塊內容有意思,就順著它這個藤去摸更多的瓜。
Python Data Visualization Cookbook: 用Python做可視化的教材肯定不少,我看過的也就這一本,覺得還不錯。其實這類書差別都不會很大,咬住一本啃下來就是王道。
Exploratory Data Analysis 和 Data Visualization
Exploratory Data Analysis:John Tukey寫於1977年的經典老教材,是這一領域的開山之作。如今EDA已經是統計學里的重要一支,但當時還是有很多人對他的工作不屑一顧。可他愛數據,堅信數據可以以一種出人意料的方式呈現出來。正是他的努力,讓數據可視化成為一門無比迷人的技術。但這本書不推薦閱讀了,內容略過時。要想完整地了解EDA,推薦下一本:
Exploratory Data Analysis with MATLAB:這本書雖然標題帶了個MATLAB,但實際上內容幾乎沒怎麼講MATLAB,只是每講一個方法的時候就列出對應的MATALB函數。這本書的重要之處在於,這是我讀過的講EDA最系統的一本書,除了對visualization有不輸於John Tucky的講解外,對於高維的數據集,通過怎樣的方法才能讓我們從中找到潛在的pattern,這本書也做了詳盡的講解。全書所以案例都有對應的MATALB代碼,而且還提供了GUI(圖形用戶界面)。所以這本書學起來還是相當輕松愉悅的。
Visualize This:中譯本叫「鮮活的數據」,作者是個「超級數據迷」,建立了一個叫http://flowingdata.com的網頁展示他的數據可視化作品,這本書告訴你該選擇什麼樣的可視化工具,然後告訴你怎樣visualize關系型數據、時間序列、空間數據等,最後你就可以用數據講故事了。如果你只想感受一下數據可視化是個什麼,可以直接點開下面這個鏈接感受下吧!A tour through the visualization zoo(A Tour Through the Visualization Zoo)
Machine Learning & Data Mining
這一塊就不多說了,不是因為它不重要,而是因為它太太太重要。所以這一部分就推兩本書,都是」世界名著「,都比較難讀,需要一點點地啃。這兩本書拿下,基本就算是登堂入室了。其實作為機器學習的延伸和深化,概率圖模型(PGM)和深度學習(deep learning)同樣值得研究,特別是後者現在簡直火得不得了。但PGM偏難,啃K.Daphne那本大作實在太燒腦,也沒必要,而且在數據領域的應用也不算很廣。deep learning目前工業界的步子邁得比學術界的大,各個domain的應用如火如荼,但要有公認的好教材問世則還需時日,所以PGM和deep learning這兩塊就不薦書了。
The Element of Statistical Learning:要學機器學習,如果讓我只推薦一本書,我就推薦這本巨著。Hastie、Tibshirani、Friedman這三位大牛寫書寫得太用心了,大廈建得夠高夠大,結構也非常嚴謹,而且很有前瞻性,納入了很多前沿的內容,而不僅僅是一部綜述性的教材。(圖表也做得非常漂亮,應該是用R語言的ggplot2做的。)這本書注重講解模型和演算法本身,所以需要具備比較扎實的數理基礎,啃起這本書來才不會太吃力。事實上掌握模型和演算法的原理非常重要。機器學習(統計學習)的庫現在已經非常豐富,即使你沒有完全搞懂某個模型或演算法的原理和過程,只要會用那幾個庫,機器學習也能做得下去。但你會發現你把數據代進去,效果永遠都不好。但是,當你透徹地理解了模型和演算法本身,你再調用那幾個庫的時候,心情是完全不一樣的,效果也不一樣。
Data Mining: Concepts and Techniques, by Jiawei Han and Micheline Kamber 數據挖掘的教材汗牛充棟,之所以推薦這本韓家煒爺爺的,是因為雖然他這本書的出發點是應用,但原理上的內容也一點沒有落下,內容非常完整。而且緊跟時代,更新的很快,我看過的是第二版,就已經加進去了social network analysis這種當時的前沿內容。現在已經有第三版了,我還沒看過,但應該也加入了不少新內容。其實這本書並不難讀,只是篇幅較長,啃起來比較耗時。
其實這兩本書里單拎出來一塊內容可能又是幾本書的節奏,比如bayesian方法,再拿出兩三本書來講也不為過,我個人用到的比較多,而且也確實有不少好書。但並非是所有data scientist都要用到,所以這一塊就不再細說。
還有一些印象比較深刻的書:
Big Data Glossary: 主要講解大數據處理技術及工具,內容涵蓋了NoSQL,MapRece,Storage,Servers,NLP庫與工具包,機器學習工具包,數據可視化工具包,數據清洗,序列化指南等等。總之,是一本辭典式的大數據入門指導。
Mining of Massive Datasets:這本書是斯坦福大學Web Mining的講義,裡面很多內容與韓家煒的Data Mining那本書重合,但這本書里詳細地講了MapRece的設計原理,PageRank(Google創業時期的核心排序演算法,現在也在不斷優化更新)講解得也比較詳細。
Developing Analytic Talent: 作者是個從事了十幾年數據工作的geek,技術博客寫得很有個人風格,寫的內容都比較偏門,通常只有具備相關數據處理經驗的人能體會出來,絲毫不照顧初學者的感受。比如他會談到當數據流更新太快時該怎麼辦,或者MapRece在什麼時候不好用的問題,才不管你懂不懂相關基礎原理。所以這本書不太適合初學者閱讀。這本書其實是作者的博客文章的集結,用how to become a data scientist的邏輯把他近幾年的博客文章串聯了起來。
Past, Present and Future of Statistical Science:這本書是由COPSS(統計學社主席委員會,由國際各大統計學會的帶頭人組成)在50周年出版的一本紀念冊,裡面有50位統計學家每人分別貢獻出的一兩篇文章,有的回憶了自己當年如何走上統計學這條路,有的探討了一些統計學的根本問題,有的談了談自己在從事的前沿研究,有的則給年輕一代寫下了寄語。非常有愛的一本書。
其它資料
Harvard Data Science:這是H大的Data science在線課,我沒有修過,但口碑很好。這門課需要費用8千刀左右,比起華盛頓大學的4千刀的Data science在線課雖貴一倍,但比斯坦福的14千刀要便宜將近一半(而且斯坦福的更偏計算機)。如果想自學,早有好心人分享了slides: (https://drive.google.com/folderview?id=0BxYkKyLxfsNVd0xicUVDS1dIS0k&usp=sharing)和homeworks and solutions: (https://github.com/cs109/content)
PyData:PyData是來自各個domain的用Python做數據的人每年舉行一次的聚會,期間會有各路牛人舉行一些規模不大的seminar或workshop,有好心人已經把video上傳到github,有興趣的去認領吧(DataTau/datascience-anthology-pydata · GitHub)
工具
R/Python/MATLAB(必備):如果是做數據分析和模型開發,以我的觀察來看,使用這三種工具的最多。R生來就是一個統計學家開發的軟體,所做的事也自然圍繞統計學展開。MATLAB雖然算不上是個專業的數據分析工具,但因為很多人不是專業做數據的,做數據還是為了自己的domain expertise(特別是科學計算、信號處理等),而MATLAB又是個強大無比的Domain expertise工具,所以很多人也就順帶讓MATLAB也承擔了數據處理的工作,雖然它有時候顯得效率不高。Python雖然不是做數據分析的專業軟體,但作為一個面向對象的高級動態語言,其開源的生態使Python擁有無比豐富的庫,Numpy, Scipy 實現了矩陣運算/科學計算,相當於實現了MATLAB的功能,Pandas又使Python能夠像R一樣處理dataframe,scikit-learn又實現了機器學習。
SQL(必備):雖然現在人們都說傳統的關系型資料庫如Oracle、MySQL越來越無法適應大數據的發展,但對於很多人來說,他們每天都有處理數據的需要,但可能一輩子都沒機會接觸TB級的數據。不管怎麼說,不論是用關系型還是非關系型資料庫,SQL語言是必須要掌握的技能,用什麼資料庫視具體情況而定。
MongoDB(可選):目前最受歡迎的非關系型資料庫NoSQL之一,不少人認為MongoDB完全可以取代mySQL。確實MongoDB方便易用,擴展性強,Web2.0時代的必需品。
Hadoop/Spark/Storm(可選): MapRece是當前最著名也是運用最廣泛的分布式計算框架,由Google建立。Hadoop/Spark/storm都是基於MapRece的框架建立起來的分布式計算系統,要說他們之間的區別就是,Hadoop用硬碟存儲數據,Spark用內存存儲數據,Storm只接受實時數據流而不存儲數據。一言以蔽之,如果數據是離線的,如果數據比較復雜且對處理速度要求一般,就Hadoop,如果要速度,就Spark,如果數據是在線的實時的流數據,就Storm。
OpenRefine(可選):Google開發的一個易於操作的數據清洗工具,可以實現一些基本的清洗功能。
Tableau(可選):一個可交互的數據可視化工具,操作簡單,開箱即用。而且圖表都設計得非常漂亮。專業版1999美刀,終身使用。媒體和公關方面用得比較多。
Gephi(可選):跟Tableau類似,都是那種可交互的可視化工具,不需要編程基礎,生成的圖表在美學和設計上也是花了心血的。更擅長復雜網路的可視化。
Ⅲ 關於復雜網路同步的描述,越詳細越好,急!
復雜網路的理論研究經過近十年的發展,已經取得了令人矚目的一些成果。復雜網路的復雜結構和動力學行為的多樣性使得復雜系統的研究更具意義,也更具挑戰性,復雜網路的研究也被認為是21世紀科學技術前沿戰略性研究課題之一。其中,關於復雜網路系統動力學行為中同步的研究也已成為控制工程界的重要研究課題。本文在閱讀現有的復雜網路有關文獻的基礎上,對這一研究課題進行了全面的綜述,並從復雜網路理論的角度對復雜系統的同步控制問題進行了較為深入的研究。論文的主要研究內容及創新點包括如下七個方面: 1.從復雜網路理論這一新的角度對大規模工程系統進行討論,並分別構建了幾類常見的大規模工程系統的復雜網路模型。隨後,利用復雜網路理論分析了工程系統的網路拓撲特性,並在此基礎上,將復雜網路系統同步方面的研究與大型工程系統的應用相結合,根據復雜網路同步理論對工程系統的動態性能進行探討,從而為此類問題的解決提供了新的思路。 2.針對星形耦合網路系統同步問題進行了研究。首先討論了此類系統同步問題,發現系統達到同步與網路的耦合強度無關。本章提出了復雜網路系統可反饋同步化的概念,並研究了星形耦合網路系統的可反饋同步化問題,得到了此類系統可反饋同步化的判據。其次,討論了採用牽制控制策略實現低階星形網路系統的同步問題,並以充分利用網路的結構信息為基礎,分別給出局部控制律和全局控制律的設計方法。最後,將之推廣到高階系統,研究了高階非線性星形網路系統的牽制控制問題,得到了比較具體的結論,具有實際應用價值。 3.針對最近鄰耦合網路系統的同步控制進行了討論。首先研究了此類系統達到同步的條件,發現只要節點本身的動力學行為穩定,則此類系統能夠達到同步。根據第三章提出的可反饋同步化的概念,研究了最近鄰耦合網路系統可反饋同步化的問題,並得到相應的判據。其次,本文利用控製作用衰減率概念,研究了最近鄰耦合網路系統的牽制控制能力,並對此類網路分析了不同的牽制控制策略的有效性。隨後,在此基礎上,採用牽制控制策略實現此類系統的同步,並分別給出了系統局部控制律和全局控制律的設計方法。此方法充分利用了網路結構信息,從而減少了控制律設計的保守性。 4.討論了一類廣義時滯復雜動態網路系統的同步穩定性和牽制控制問題。針對此類系統,本文首先分別給出了保守性小的連續時間時滯復雜動態網路系統和離散時間時滯復雜動態網路系統的同步穩定性條件。其次,通過對部分節點施加牽制控製作用的方法,設計分散反饋控制器,分別使得連續時間時滯復雜動態網路系統和離散時間時滯復雜動態網路系統達到同步,從而保證了整個系統的同步穩定性。隨後,在此基礎上,將控制器的設計問題轉化為求解線性矩陣不等式(LMI)組合的凸優化問題。該問題便於利用現有的優化軟體求解,也大大降低了問題求解的復雜性。 5.針對由動力學行為不同的節點構成的異質復雜網路系統進行研究。大規模復雜系統往往根據工藝、空間或時間的不同劃分為不同的子系統。根據各子系統的特點,可分別採用最適合的方式來建立模型,並據此形成由不同類型的子系統模型構成的關聯系統。本文以復雜網路理論為基礎,通過構建此類關聯系統的網路模型,研究了使此類新穎的異質復雜動態網路系統穩定的牽制控制問題。該類復雜網路系統分別由不同模型描述的節點相互關聯而成,利用牽制控制使得該類系統達到穩定。根據Lyapunov穩定性定理,分別獨立地求解了對應於各節點及其關聯拓撲的線性矩陣不等式(LMI),從而判斷出異質復雜網路系統牽制控制的穩定性。上述方法將原問題轉化為多個低維線性矩陣不等式的並行求解,大大減少計算的復雜性。 6.利用網路結構優化的方法,研究了如何改善復雜網路系統的同步性和一致性的問題。本文首先給出了加權網路熵的定義,將之用來測量加權網路的均勻性。其次,分析了網路均勻性、一致性和同步性三者之間的關系。隨後,基於此加權網路熵指標和網路的統計特性,提出了一種改善復雜網路系統一致性和同步性的結構優化方法,即通過盡可能少地增加連線來最大程度地增大復雜網路系統的一致性和同步性。該方法也為此類問題的解決提供了一個新的途徑。 7.基於復雜動態網路系統同步控制理論,研究了分布式多移動機器人的隊形保持和跟蹤控制問題。首先,為了估算外部向量場變化情況下的所有移動機器人的測量的平均值,每個移動機器人需測量自身運動軌跡的向量場局部值,並將之與其他鄰近機器人共享。根據共享的信息,移動機器人以同步協商的合作方式控制自身運動軌跡,同時維持一定的隊形。其次,研究了跟隨領航者的隊形控制方法。針對多機器人之間形成的兩種隊形(最近鄰耦合網路和星形網路)進行分析,並提出了具體的移動機器人動態控制律的設計方法,可較方便地對系統的極點進行配置。最後,探討了復雜系統同步理論在多移動機器人中的應用