1. 程式人生 > >大資料----機器學習---神經網路

大資料----機器學習---神經網路

1.神經網路與深度學習的發展歷程:

2.神經網路與大腦神經元

神經網路的起源、結構、個體間的資訊互動方式是以我們大腦神經元為模板的,我們的大腦神經元如下所示:

3.神經網路源頭--M-P神經元模型

M-P 模型問題:

• 模型不能訓練,也就是沒有學習的過程:

可以說不能稱作是機器學習,上圖中的w0,w1,w2都是預設好的定死的,不能夠通過

學習來調整。

• 在機器學習中,不僅有模型,還有一個學習的概念:

怎麼樣給一個模型輸入不同的樣本讓這個模型最後適應你的資料,最後學習到適合你當

前資料的引數,比如w0,w1等

4.可學習的模型-感知機模型

感知機(perceptron)是處理二分類的線性分類模型。感知機旨在求出將訓練資料進行線性劃分的分離超平面,屬於判別模型,所以,匯入誤分類的損失函式,利用梯度下降法極小化損失函式,求得感知機模型,感知機預測是用學習得到的感知機模型對新輸入的資料進行分類。感知機在1957年由Rosenblatt提出,是神經網路和支援向量機的基礎。

由輸入空間到輸出空間的如下函式:

f(x)=sign(wx+b)

稱為感知機。其中w為權重,b為偏置,sign為符號函式:

sign(x)={+1,x≥0−1,x<0

所以,感知機輸出是{+1,-1}.

幾何解釋: 線性方程

wx+b=0

對應特徵空間的一個超平面S,其中w為該平面的法向量,b為超平面的截距。這個超平面將特徵空間分為兩個部分,位於兩部分的點分別被分為正負兩類,因此,超平面S被稱為分離超平面。

有了感知機模型以後學術界就覺得感知機是實現人工智慧的方式。但是隨著研究的進展,大家發現感知機不能學習一個XOR異或問題

5.解決異或問題:

兩層感知機解決異或問題

6.神經網路簡單架構:

    6.1確定神經網路層數

• (1)輸入層和輸出層僅有一層,隱層有多層

    6.2確定每層單元的個數

• (1)輸入層單元個數根據輸入資料個數定

• (2)輸出層單元個數根據目標分類個數確定

• (3)隱層的單元個數如何確定?

=>隱層個數設定沒有明確規則,根據準確度來進行判斷和改進。

=>留一法和交叉驗證法

7.神經網路簡單總結

最開始出現了MP模型,但是這個時候並不具有深度學習的特徵,只是簡單的模擬神經元架構而已,之後出現了感知機模型具有深度學習特徵,但是出現了異或的問題,我們解決異或的手段是兩層神經元網路架構BP,這個模型也是有缺點的,它的提取能力是有限的,所以目前市場上出現了卷積層神經網路(CNN)與迴圈層神經網路(RNN),但是這兩個模型都是在兩層架構BP的基礎上實現的。

8.神經網路與深度學習的應用領域

目前市場上神經網路與深度學習的重點引用領域在人臉識別(隔代遺傳人臉識別、狗臉識別)無人駕駛(涉及語音識別、影象識別)目標檢測和追蹤。

9.機器學習三要素

    9.1模型 :模型的定義在於尋找規律,在機器學習中首先要確定什麼樣的模型,模型通常分為決策函式與條件概率分佈,

    9.2策略:同來評估模型的好壞,使用損失函式來進行度量,常用的損失函式有:

    9.3演算法

機器學習的演算法就是求解最優化問題的演算法,優化問題上有顯示的解析解,這個優化就比較簡單,但是一般時候這個解析解不存在,就需要利用數值計算的方法求解,機器學習可以利用已經有的最優化演算法,也可以開發獨自的最優化演算法。

10.機器學習系統的構建

不同模型有不同的擬合效果,我們要選擇最適合的:

第三個值泛化性最好的,也是最優先選擇的模型,一與二都是出於欠擬合狀態,四出於過擬合狀態。

這裡有一個模型泛化的說法:

泛化:模型具有好的泛化能力指的是:模型不但在訓練資料集上表現的效果很好,對於新資料的適應能力也有很好的效果

泛化能力的表現:過擬合和欠擬合

過擬合overfitting:模型在訓練資料上表現良好,在未知資料或者測試集上表現差。

產生的原因:可能是模型太過於複雜、資料不純、訓練資料太少等造成。

出現的場景:當模型優化到一定程度,就會出現過擬合的情況。

解決辦法:(1)重新清洗資料

(2)增大訓練的資料量

(3)採用正則化方法對引數施加懲罰:常用的有L1正則和L2正則

(4)採用dropout方法,即採用隨機取樣的方法訓練模型,常用於神經網路演算法中。

欠擬合underfitting:在訓練資料和未知資料上表現都很差

產生的原因:模型過於簡單

出現的場景:欠擬合一般出現在機器學習模型剛剛訓練的時候,也就是說一開始我們的模型往往是欠擬合也正是因為如此才有了優化的空間,我們通過不斷優化調整演算法來使得模型的表達能力更強

解決辦法:(1)新增其他特徵項:因為特徵項不夠而導致欠擬合,可以新增其他特徵項來很好的解決。

(2)新增多項式特徵:可以線上性模型中通過新增二次或三次項使得模型的泛化能力更強。

(3)減少正則化引數,正則化的目的是用來防止過擬合的,但是現在模型出現了欠擬合,需要減少正則化引數。

11 模型選擇的原則-奧卡姆剃刀原則

給定兩個具有相同泛化誤差的模型,較簡單的模型比較複雜的模型更可取。奧卡姆剃刀原則是模型選擇的基本而且重要的原則。

12 機器學習演算法層面目前的情況

近幾年隨著眾多強大開源庫的出現,我們不用像以前那樣用程式語言一步一步的去實現機器學習的演算法,我們使用成熟的機器學習庫裡面的演算法來完成我們要的功能,我們只需要瞭解各個模型的引數如何調整,或者演算法應用到實際業務中的一些簡單改動即可。

13 機器學習庫(目前常用的、簡單介紹)

Scikit-learn:簡單高效的資料探勘和資料分析工具可供大家使用,可在各種環境中重複使用建立在NumPy,SciPy和matplotlib上開源,可商業使用-獲取BSD許可證

Scikit-learn演算法選擇

SparkMLLIB:MLlib是Spark機器學習庫

Weka

WEKA的全名是懷卡託智慧分析環境(Waikato Environment forKnowledge Analysis),同時weka也是紐西蘭的一種鳥名,而WEKA的主要開發者來自紐西蘭。

WEKA作為一個公開的資料探勘工作平臺,集合了大量能承擔資料探勘任務的機器學習演算法,包括對資料進行預處理,分類,迴歸、聚類、關聯規則以及在新的互動式介面上的視覺化。

如果想自己實現資料探勘演算法的話,可以看一看weka的介面文件。在weka中整合自己的演算法甚至借鑑它的方法自己實現視覺化工具並不是件很困難的事情。