一、神經網路,也指人工神經網路(Artificial Neural Networks,簡稱ANNs),是一種模仿生物神經網路行為特徵的演算法數學模型,由神經元、節點與節點之間的連線(突觸)所構成,如下圖:
每個神經網路單元抽象出來的數學模型如下,也叫感知器,它接收多個輸入(x1,x2,x3...),產生一個輸出,這就好比是神經末梢感受各種外部環境的變化(外部刺激),然後產生電訊號,以便於轉導到神經細胞(又叫神經元)。
單個的感知器就構成了一個簡單的模型,但在現實世界中,實際的決策模型則要複雜得多,往往是由多個感知器組成的多層網路,如下圖所示,這也是經典的神經網路模型,由輸入層、隱含層、輸出層構成。
人工神經網路可以對映任意複雜的非線性關係,具有很強的魯棒性、記憶能力、自學習等能力,在分類、預測、模式識別等方面有著廣泛的應用。
二、卷積神經網路是近年發展起來的,並引起廣泛重視的一種高效識別方法,20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於區域性敏感和方向選擇的神經元時發現其獨特的網路結構可以有效地降低反饋神經網路的複雜性,繼而提出了卷積神經網路(Convolutional Neural Networks-簡稱CNN)。現在,CNN已經成為眾多科學領域的研究熱點之一,特別是在模式分類領域,由於該網路避免了對影象的複雜前期預處理,可以直接輸入原始影象,因而得到了更為廣泛的應用。 K.Fukushima在1980年提出的新識別機是卷積神經網路的第一個實現網路。隨後,更多的科研工作者對該網路進行了改進。其中,具有代表性的研究成果是Alexander和Taylor提出的“改進認知機”,該方法綜合了各種改進方法的優點並避免了耗時的誤差反向傳播。
這聽起來像是一個奇怪的生物學和數學的結合,但是這些網路已經成為計算機視覺領域最具影響力的創新之一。2012年是神經網路成長的第一年,Alex Krizhevsky用它們贏得了當年的ImageNet競賽(基本上是計算機視覺年度奧運會),把分類錯誤記錄從26%降到了15%,這個驚人的提高從那以後,許多公司一直在以服務為核心進行深度學習。Facebook使用自動標記演算法的神經網路,谷歌的照片搜尋,亞馬遜的產品推薦,Pinterest的家庭飼料個性化和Instagram的搜尋基礎設施。
一般的,CNN的基本結構包括兩層,其一為特徵提取層,每個神經元的輸入與前一層的區域性接受域相連,並提取該區域性的特徵。一旦該區域性特徵被提取後,它與其它特徵間的位置關係也隨之確定下來;其二是特徵對映層,網路的每個計算層由多個特徵對映組成,每個特徵對映是一個平面,平面上所有神經元的權值相等。特徵對映結構採用影響函式核小的sigmoid函式作為卷積網路的啟用函式,使得特徵對映具有位移不變性。此外,由於一個對映面上的神經元共享權值,因而減少了網路自由引數的個數。卷積神經網路中的每一個卷積層都緊跟著一個用來求區域性平均與二次提取的計算層,這種特有的兩次特徵提取結構減小了特徵解析度。
CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形,該部分功能主要由池化層實現。由於CNN的特徵檢測層透過訓練資料進行學習,所以在使用CNN時,避免了顯式的特徵抽取,而隱式地從訓練資料中進行學習;再者由於同一特徵對映面上的神經元權值相同,所以網路可以並行學習,這也是卷積網路相對於神經元彼此相連網路的一大優勢。卷積神經網路以其區域性權值共享的特殊結構在語音識別和影象處理方面有著獨特的優越性,其佈局更接近於實際的生物神經網路,權值共享降低了網路的複雜性,特別是多維輸入向量的影象可以直接輸入網路這一特點避免了特徵提取和分類過程中資料重建的複雜度。
下面將以影象識別為例子,來介紹卷積神經網路的原理。
案例
假設給定一張圖(可能是字母X或者字母O),透過CNN即可識別出是X還是O,如下圖所示,那怎麼做到的呢
1)影象輸入
如果採用經典的神經網路模型,則需要讀取整幅影象作為神經網路模型的輸入(即全連線的方式),當影象的尺寸越大時,其連線的引數將變得很多,從而導致計算量非常大。 而我們人類對外界的認知一般是從區域性到全域性,先對區域性有感知的認識,再逐步對全體有認知,這是人類的認識模式。在影象中的空間聯絡也是類似,區域性範圍內的畫素之間聯絡較為緊密,而距離較遠的畫素則相關性較弱。因而,每個神經元其實沒有必要對全域性影象進行感知,只需要對區域性進行感知,然後在更高層將區域性的資訊綜合起來就得到了全域性的資訊。這種模式就是卷積神經網路中降低引數數目的重要神器:區域性感受野。
2)提取特徵
如果字母X、字母O是固定不變的,那麼最簡單的方式就是影象之間的畫素一一比對就行,但在現實生活中,字型都有著各個形態上的變化(例如手寫文字識別),例如平移、縮放、旋轉、微變形等等,如下圖所示:
我們的目標是對於各種形態變化的X和O,都能透過CNN準確地識別出來,這就涉及到應該如何有效地提取特徵,作為識別的關鍵因子。 回想前面講到的“區域性感受野”模式,對於CNN來說,它是一小塊一小塊地來進行比對,在兩幅影象中大致相同的位置找到一些粗糙的特徵(小塊影象)進行匹配,相比起傳統的整幅圖逐一比對的方式,CNN的這種小塊匹配方式能夠更好的比較兩幅影象之間的相似性。如下圖:
以字母X為例,可以提取出三個重要特徵(兩個交叉線、一個對角線),如下圖所示:
假如以畫素值"1"代表白色,畫素值"-1"代表黑色,則字母X的三個重要特徵如下:
對其進行特徵匹配計算的方法不在這裡闡述。
一、神經網路,也指人工神經網路(Artificial Neural Networks,簡稱ANNs),是一種模仿生物神經網路行為特徵的演算法數學模型,由神經元、節點與節點之間的連線(突觸)所構成,如下圖:
每個神經網路單元抽象出來的數學模型如下,也叫感知器,它接收多個輸入(x1,x2,x3...),產生一個輸出,這就好比是神經末梢感受各種外部環境的變化(外部刺激),然後產生電訊號,以便於轉導到神經細胞(又叫神經元)。
單個的感知器就構成了一個簡單的模型,但在現實世界中,實際的決策模型則要複雜得多,往往是由多個感知器組成的多層網路,如下圖所示,這也是經典的神經網路模型,由輸入層、隱含層、輸出層構成。
人工神經網路可以對映任意複雜的非線性關係,具有很強的魯棒性、記憶能力、自學習等能力,在分類、預測、模式識別等方面有著廣泛的應用。
二、卷積神經網路是近年發展起來的,並引起廣泛重視的一種高效識別方法,20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於區域性敏感和方向選擇的神經元時發現其獨特的網路結構可以有效地降低反饋神經網路的複雜性,繼而提出了卷積神經網路(Convolutional Neural Networks-簡稱CNN)。現在,CNN已經成為眾多科學領域的研究熱點之一,特別是在模式分類領域,由於該網路避免了對影象的複雜前期預處理,可以直接輸入原始影象,因而得到了更為廣泛的應用。 K.Fukushima在1980年提出的新識別機是卷積神經網路的第一個實現網路。隨後,更多的科研工作者對該網路進行了改進。其中,具有代表性的研究成果是Alexander和Taylor提出的“改進認知機”,該方法綜合了各種改進方法的優點並避免了耗時的誤差反向傳播。
這聽起來像是一個奇怪的生物學和數學的結合,但是這些網路已經成為計算機視覺領域最具影響力的創新之一。2012年是神經網路成長的第一年,Alex Krizhevsky用它們贏得了當年的ImageNet競賽(基本上是計算機視覺年度奧運會),把分類錯誤記錄從26%降到了15%,這個驚人的提高從那以後,許多公司一直在以服務為核心進行深度學習。Facebook使用自動標記演算法的神經網路,谷歌的照片搜尋,亞馬遜的產品推薦,Pinterest的家庭飼料個性化和Instagram的搜尋基礎設施。
一般的,CNN的基本結構包括兩層,其一為特徵提取層,每個神經元的輸入與前一層的區域性接受域相連,並提取該區域性的特徵。一旦該區域性特徵被提取後,它與其它特徵間的位置關係也隨之確定下來;其二是特徵對映層,網路的每個計算層由多個特徵對映組成,每個特徵對映是一個平面,平面上所有神經元的權值相等。特徵對映結構採用影響函式核小的sigmoid函式作為卷積網路的啟用函式,使得特徵對映具有位移不變性。此外,由於一個對映面上的神經元共享權值,因而減少了網路自由引數的個數。卷積神經網路中的每一個卷積層都緊跟著一個用來求區域性平均與二次提取的計算層,這種特有的兩次特徵提取結構減小了特徵解析度。
CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形,該部分功能主要由池化層實現。由於CNN的特徵檢測層透過訓練資料進行學習,所以在使用CNN時,避免了顯式的特徵抽取,而隱式地從訓練資料中進行學習;再者由於同一特徵對映面上的神經元權值相同,所以網路可以並行學習,這也是卷積網路相對於神經元彼此相連網路的一大優勢。卷積神經網路以其區域性權值共享的特殊結構在語音識別和影象處理方面有著獨特的優越性,其佈局更接近於實際的生物神經網路,權值共享降低了網路的複雜性,特別是多維輸入向量的影象可以直接輸入網路這一特點避免了特徵提取和分類過程中資料重建的複雜度。
下面將以影象識別為例子,來介紹卷積神經網路的原理。
案例
假設給定一張圖(可能是字母X或者字母O),透過CNN即可識別出是X還是O,如下圖所示,那怎麼做到的呢
1)影象輸入
如果採用經典的神經網路模型,則需要讀取整幅影象作為神經網路模型的輸入(即全連線的方式),當影象的尺寸越大時,其連線的引數將變得很多,從而導致計算量非常大。 而我們人類對外界的認知一般是從區域性到全域性,先對區域性有感知的認識,再逐步對全體有認知,這是人類的認識模式。在影象中的空間聯絡也是類似,區域性範圍內的畫素之間聯絡較為緊密,而距離較遠的畫素則相關性較弱。因而,每個神經元其實沒有必要對全域性影象進行感知,只需要對區域性進行感知,然後在更高層將區域性的資訊綜合起來就得到了全域性的資訊。這種模式就是卷積神經網路中降低引數數目的重要神器:區域性感受野。
2)提取特徵
如果字母X、字母O是固定不變的,那麼最簡單的方式就是影象之間的畫素一一比對就行,但在現實生活中,字型都有著各個形態上的變化(例如手寫文字識別),例如平移、縮放、旋轉、微變形等等,如下圖所示:
我們的目標是對於各種形態變化的X和O,都能透過CNN準確地識別出來,這就涉及到應該如何有效地提取特徵,作為識別的關鍵因子。 回想前面講到的“區域性感受野”模式,對於CNN來說,它是一小塊一小塊地來進行比對,在兩幅影象中大致相同的位置找到一些粗糙的特徵(小塊影象)進行匹配,相比起傳統的整幅圖逐一比對的方式,CNN的這種小塊匹配方式能夠更好的比較兩幅影象之間的相似性。如下圖:
以字母X為例,可以提取出三個重要特徵(兩個交叉線、一個對角線),如下圖所示:
假如以畫素值"1"代表白色,畫素值"-1"代表黑色,則字母X的三個重要特徵如下:
對其進行特徵匹配計算的方法不在這裡闡述。