artificial neural networks
DESCRIPTION
國立中興大學行銷研究所. Artificial Neural Networks. 人工類神經網路. 類神經網路概述. 前言. 主宰人類思考及行為的大腦,是人類經過數百萬年進化的結晶,最初人類並不相信它是思維和情緒的中心,但在十七世紀以後,經過一些醫生及解剖學家的研究及努力,於是對於腦的結構、腦的基本元素 ‥ 神經元的功能及神經元,組成網路時的連接機能,有了較深入的瞭解,也因此產生了 《 突觸理論 》 ( synaptoldgy ) 的學說,為現代的類神經科學奠訂了基礎。 - PowerPoint PPT PresentationTRANSCRIPT
1
Artificial Neural Networks
國立中興大學行銷研究所
人工類神經網路
2
類神經網路概述
3
前言• 主宰人類思考及行為的大腦,是人類經過數百萬年進
化的結晶,最初人類並不相信它是思維和情緒的中心,但在十七世紀以後,經過一些醫生及解剖學家的研究及努力,於是對於腦的結構、腦的基本元素‥神經元的功能及神經元,組成網路時的連接機能,有了較深入的瞭解,也因此產生了 《突觸理論》( synaptoldgy)的學說,為現代的類神經科學奠訂了基礎。
• 人類的腦神經系統都是由神經網絡所構成的,由於有神經網絡的存在,使得人類具有學習的能力,但是此種學習能力,在現代科學結晶的電腦中,卻不存在。因此科學家及工程師們,為了使電腦具有學習的能力,便模擬人類的神經模型,建立一個類似於人類的人工神經網絡,希望能藉著此一網絡,使電腦能具有學習的能力。
4
類神經網路概述• 類神經網路的架構來自對人類神經系統的認識,它是由許多非線性的運算單元 ( 神經元 neuron) ,和運算單元間的眾多連結 (links) 所組成。
5
類神經網路概述—三項功能
1) 學習 類神經網路可以隨著外在環境的變化來改變它的行
為模式,為了使類神經網路能夠在動態環境中發揮功效,適當的學習模式是類神經網路系統的基本條件。
2) 回想 當類神經網路受到一個輸入刺激,進而依據網路架
構產生一個輸出值時,即稱為「回想」。3) 歸納推演 歸納推演是從一個系統中的局部觀察,而描述出其
整體的特性;類神經網路擁有對輸入的資料萃取特徵的能力。
6
類神經網路概述• 類神經網路如同看不清內部運作的黑盒子,不能告訴我們正確決策之所以正確的原因,或解決方案為什麼有效,只能讓人知道「事實就是如此」。
• 適用問題:最佳化、辨識 / 分類、預測、評估 / 決策
• 應用產業:財務預測、醫學診斷、辨識支票數字
7
歷史溯源• 1940 年代,開始有人研究類神經元如何運作。• 1943 年, Warren McCulloch (a neurophysiologist at
Yale University) 與 Walter Pits (a logician)提出最早的數學模式 (MP模型,即「形式神經元」 ) ,解釋生物神經元如何運作,並發表了經典文章 A Logical Calculus Immanent in Nervous Activity. 此文刺激了人工智慧的發展。
• 1949年 Hebb提出改變神經元連接強度的 Hebb規則• 1957年 Rosenblatt引進了感知器 (Perceptron)的概念,不過仍無法解決一般性問題。
• 1962年 Widrow均自適應線性元件
8
歷史溯源 ( 續 )
• 1969年,人工智慧大師 Minsky在其Perceptron書中,提出當時的神經網路理論,無法解決邏輯上的 X0R無法分類的問題。由於 Minsky在學術上的地位相當高,並且又由於當時 VonNeumann電腦的盛行,使得人工智慧得到迅速的發展,並有顯著的成就,整個學術界因此沉醉於數位電腦的成功之中,而忽略了發展新的人工智慧技術及模擬電腦的迫切性。從此,神經網路的研究,便墜入了黑暗期。
9
歷史溯源 ( 續 )
• 雖然在這這樣的打擊下,還是有許多的學者,在此艱難的情況下,仍然致力於神經網絡的研究。例如 : 提出自適應共振理論的 Grossberg,提出自組織映射理論的芬蘭學者 Kogonen,提出神經認知機理論的 Fukushima,致力於和神經網路有關的數學理論研究的 Fukushima,提出BSB模型的 Anderson及提出 BP(BackPropa-gation)理論的 Webos…等,他們都為往後神經網路理論的研究,奠訂了相當的基礎。
10
歷史溯源 ( 續 )
• 1982 年, John Hopfield 發明倒傳遞—一種避開先前缺陷的訓練網路方法,使得研究再度熱絡,研究範圍延展到商業界,協助解決營運上的問題。
• 其後又有 Rumellhart及 McClelland等人所提出的平行分散式處理 (PDP)理論、 Kosko提出的雙向聯想記憶網路、 Hecht-Nielsen的反向傳播網路、 Holland的分類系統 ...等等,漸漸使得類神經網路理論的研究蓬勃起來。
11
歷史溯源 ( 續 )
• 類神經網路在 1980年代廣為發展的原因:1) 電腦已經普及。2) 類神經網路與已知的統計方法密切相關,所以
分析家更樂於使用。3) 大部分公司作業系統開始自動化,資料取得容易。
4) 類神經網路開始可以使用在實務上,也是資料採礦經常運用的工具。
12
歷史溯源 ( 續 )• 近年來,美國、歐洲及日本等先進國家的科學家及企業家對神經網路的研究,展現了相當大的熱情,許多和類神經網路有關的學術會議,也相繼展開,如 1986年四月美國物理學家在SnowBird召開的國際神經網路會議、 1987年在 SanDiego召開神經網路國際會議、 ...等,其後國際神經網路學會也隨之誕生,許多和神經網路有關的期刊也相繼出版,如 :1988年創刊的 " 神經網路 " 雜誌, 1990年 3 月問世的IEEE神經網路會刊 ...等,由於在這種熱絡的大環境下,神經網路的研究,漸漸的被推上高峰。
13
不動產估價
14
不動產估價
• 類神經網路接受特定的輸入 (房屋資訊 ) ,並產生特定的結果 (房屋估價 ) ,我們不需瞭解複雜的計算過程,只要使用所得出的估價。
估價值
暖氣類型
車庫大小
屋齡
起居室空間
類神經網路模型
15
不動產估價—預測步驟
1. 收集所有會影響銷售價格的房屋特徵變項。2. 使用以往實際銷售資料來訓練類神經網路 (將所
有變數數值轉換成介於 -1~1 之間的新數值 )
3. 將資料隨機分為訓練集和驗證集4. 類神經網路會藉由比較預測值與實際值去調整內
部的權重值,以改進預測結果的準確性。5. 當權重值不再改變或達到預設訓練次數時,就是訓練完成的時候。
6. 此時,再以一組未試過的新例子 ( 測試資料集 ) 測試,若感到滿意,預測模型即完成。
16
範例收集•好的範例的要件 :
–範例數目充足–範例分佈均勻–範例數據正確
•範例來源:記錄、實驗、模擬、問卷•範例之分類:訓練、測試、驗證範例
17
不動產估價—變數描述
變數 描 述 值 域
暖氣 暖氣規格 A or B
管線設施 管線設施的個數 5~17
車庫 可停車數量 0-2
生活空間 空間大小 ( 呎平方 ) 714~4185
用來描述一棟房子的共通變數:
18
範例收集•訓練範例之數目:
–簡單問題: =5*輸入神經數目 *輸出數目,(50範例之數目 250)
–一般問題: =10*輸入神經數目 *輸出數目,(100範例之數目 500)
–困難問題: =20*輸入神經數目 *輸出數目,(200範例之數目 1000)
•測試範例之數目:–大到足以確保測試 *結果的可信賴度
19
不動產估價—數值轉換
• 連續變數:– 整數
轉換值 =2( 原始值 - 中位數 )/( 最大值 - 最小值 +1) ex: 管線個數為 9 個,值域範圍為 5~17 , 轉換後的新數值為 2(9-11)/(17-5+1)= -0.3077
– 實數 轉換值 =2( 原始值 - 中位數 )/( 最大值 - 最小值 ) ex: 起居室面積為 1614平方呎,值域範圍為 714~4185平方呎, 轉換後的新數值為 2(1614-2449.5)/(4185-714)= -0.4813
• 類別變數: 在 -1~1 之間選擇一個小數來表示每一個項目,如果有三個項目,
可分別指定為 -1 、 0 、 1
20
不動產估價—訓練組範例
變數 值域 範例原始值 標準化值
銷售價格 (target variable)
$103000-$250000 $171,000 -0.0748
屋齡 0-23 4 -0.6522
居住單位數 1-3 1 -1.0000
暖氣 A or B B 1.0000
管線設施 5-17 9 -0.3846
車庫 0-2 0 0.0000
生活空間 714-4185 1614 -0.4813
……
21
不動產估價— Results
估價值
暖 氣
車庫
管線設施
生活空間
類神經網路模型1.0000
0.3333
0.0000
0.2593
0.75
0.75 ( 輸出 ) × $147,000 ( 值域 ) + $103,000 ( 值域底數 ) = 房價估價 $213,250
……
22
類神經網路結構型態1.簡單的類神經網路,只取 四個輸入單元,產生一個 輸出單元。2.結果相同於統計上的邏輯 回歸 (logistic regression)
增加隱藏層的數目可使網路更有能力捕捉更多的關係型態。若隱藏層的神經援過多,會有造成過度學習的風險,通常一個隱藏層是必要的。
23
類神經網路結構型態類神經網路可以產生一個或多個輸出單元
網路中有一個中繼層叫「隱藏層」 (hidden layer) ,可使網路在辨認型態時更有能力
24
類神經網路單元
• 每項輸入變數有自己的加權值• 組合函數 (combination function)將所有輸入變數的值加權加總成一個值
• 轉換函數 (transfer function) 依組合函數的結果計算輸出值,輸出值通常介於 0~1 之間。
Σ
W1
W2
W3
活化函數=組合函數+轉換函數
輸入變數 X2
輸入變數 X1
輸入變數 X3
組合函數 =ΣWT×X
輸出
Activation function
25
轉換函數
• 線性函數最少用,一個只包含線性轉換的前饋式類神經網路就是在做線性回歸。
• S型函數 (sigmoid)與雙曲線正切函數 (hyperbolic tangent) 的最大差異在於輸出值的範圍不同,前者介於 0~1 ,後者則在 -1~1 之間。
S 型函數
線型函數
雙曲線正切函數
0.0
0.5
-0.5
-1.0
1.0
輸出
26
• Logistic(x) = 1/(1+e-x)
• tanh(x)=(ex-e-x)/(ex+e-x)
27
類神經網路的分類依學習演算法分類可分為:• 監督式類神經網路 監督式學習法從不斷修正網路中的傳遞權重,以減少誤差,直到差距小於臨界值。
ANN輸入 輸出
誤差 真實值
28
類神經網路的分類• 非監督式類神經網路 訓練過程中只需提供輸入資料,不需提供輸出資料,網路依照資料的特性自己去學習及調整權重。
輸入 輸出聚類結果
ANN
29
依連結架構分類:• 可分為前饋式、回饋式 類神經網路
類神經網路的分類
回饋式類神經網路至少含有一個 回饋迴圈;回饋式架構常用於處理動態現象或動態的時間序列,擁有更強的學習能力。
前饋式類神經網路
30
前饋式類神經網路
變數 標準化值暖氣 1.0000
管線設施 0.3333
車庫 0.0000
生活空間 0.2593
-0.04826
0.48854
-0.26228-0.53499
-0.35789
-0.24434
-0.22200
1.0000
0.3333
0.0000
0.2593
0.47909
-0.33192
單位元輸出項
0.58282
0.57265
0.33530
0.42183
0.49815
-0.24754
$176,228
輸入權值 常數輸入項
[ 輸入層 ] [ 隱藏層 ] [ 輸出層 ]
常數輸入項 ( 偏權值 ) bias :值為 1 的常數輸入,也有權重,並且包含在組合函數之內。 組合函數 =ΣWT×X+ wbj
-0.23057
隱藏層數量代表網路理解型態的能力,而隱藏層數量的判斷:
1) 是否會過度訓練 2) 訓練範例的數量
31
倒傳導類神經網路
• 倒傳導步驟:1) 網路取得訓練例子,用現有權重計算輸出的結果2) 倒傳導計算出輸出值與實際值的誤差3) 誤差經由迴授回到網路,調整權重以取得最小的誤差
訊息正向傳播 誤差修正負向傳播
32
倒傳導類神經網路• Delta 法則: 先測量輸入對輸出的單元藉由調整每一個權重去減少誤差,經過足夠的訓練後,權重不再劇烈變動,誤差也不再減少,即訓練完成。
• Delta 法則的參數1) 動量:權重改變目前變化方向的傾向2) 學習速度:控制權重變化的快慢
• 局部最佳解:存在與網路中全然不同的局部權重組合,產生了更好了結果。
33
選擇訓練資料• 選擇訓練資料的考量點:1) 涵蓋所有特性的值2) 變數的數量3) 訓練範例的數量4) 輸出的數量
1) 變數愈多,所需時間愈多, 手動去除不具預測能力的項 目可以大幅提昇網路效能。
2)挑選預測影響力大的項目,並 只使用這些變數訓練網路,可 以使用決策數來完成。
變數愈多,網路需要的訓練資料愈多,每個權重至少需要 30 個例子,最好要 100 個
1)基本上,每個輸出的訓練資料 數量最好相同。
2)訓練資料需要包含所有可能的 輸出值,確保網路能夠對稀有 罕見的事件做出正確得判斷。 Ex: 引擎故障率
34
準備資料—準備輸入資料通常是類神經網路最為複雜的部份
其原因為:• 1.選擇正確的資料及例子,讓網路訓練十分困 難,通常要訓練許多次才能得到較佳的結果
• 2.調整 (Mapping) 資料使每一個項目都介於到 -1 及 +1之間,讓網路更容易瞭解,此過程充滿複雜的程序,若遇到歪斜不良的資料就更難處理了
35
連續值的變項•錢的數量 ( 銷售價 , 週銷售額 )•平均值 ( 平均銷售量 )•比率 ( 負債收入比 , 價格收入比 )•物理特性測量值 ( 居住空間坪數 , 溫度 )
36
連續值的調整
•當連續值落在最大值及最小值所定義範圍的之內,我們可以將其調整到 -1 及 +1之間,其調整方式如下:
調整值= 2 *原始值 – 最小值________________________
最大值 –最小值 +1- 1
37
若值大於或小於範圍•使用更大的範圍•拒絕、捨去超出範圍的值•低於最小值以最小值代替 高於最大值以最大值代替
•將最小值轉到 -0.9,最大值轉到 +0.9,而非轉到 -1 與 +1
•沒關係大多數的值都接近於 0 ,少數的超出值不會有顯著的影響
38
偏態的家庭收入分佈資料
39
偏態資料的影響•收入曲線若向低端偏移,會使得類神經網路很難在收入分析上具有優勢
•偏移的曲線會讓類神經網路無法在重要區域有效,因為值 (value)太過集中,使的計算無法施行
•資料偏移對於決策樹沒太大影響,因為其是依排序 (rank)來計算
40
調整偏態資料的解決方法1.離散法 (Discreting):將偏移的收入資料分成數個範圍,本案例我們將資料以五等份來區分
• 此方法在此案例中較無效用,因為資料還是集中在第一、二個區域,沒有將偏移的資料分散
• 我們在轉換過程中失去了原始資料的型態
$10,000-$17,999
Very low(-1)
$ 18,000- $ 31,999
Low(-0.5)
$ 32,000- $ 63,999
Middle(0)
$ 64,000- $ 99,999
High(0.5)
$ 100,000 and above
Very high(1)
41
偏態資料的解決方法
2.取對數函數(logarithm) :取以 10為底的 log來將其調整
3.將資料標準化(standardize) :將資料以平均數 (mean) 及標準差 (standard deviation)將資料標準化
收入 標準化 取 log
10,000 0.0101
4
18,000 0.0182
4.25
32,000 0.0323
4.50
63,000 0.0636
4.79
100,000 0.1010
5
250,000 0.2525
5.39
800,000 0.8081
5.90
1,000,000
1.0101
6
42
有順序、離散的變項
•次數 ( 小孩數目、購買數量 )
•年齡
•次序性的項目 ( 低、中、高 )
43
有順序值的調整• 年齡的的範圍通常在 0
到 100之間,但實際調整的範圍則看我們所使用的資料而定
• 我們以小孩數量為例,來說明順序值的轉換
• 值得注意的是,這樣等距離的分配,保留了原先彼此順序的關係
小孩數 調整值0 -1
1 -0.5
2 0
3 0.5
4 1
4 以上 以 1 代表
44
有順序值的調整
45
有順序值的調整• 溫度計碼法(Thermometer codes)的方式是將資料以不等比例的方式轉換,較能區分其中差異性,用在學習成績、債卷等級來說十分適合
• 以行銷實務上來說,沒有小孩的家庭是和有一個小孩的家庭是大大不同的
• 若超過 8 個以上的變項,使用溫度計碼就會減低它的效力
值 調整值
0 0000
0/16 0
1 1000
8/16 0.5
2 1100
12/16
0.75
3 1110
14/16
0.875
46
類別值的變項
• 性別、婚姻狀況 ( 已婚、未婚、離婚 )• 狀態號碼• 產品號碼• 郵遞區號
47
類別值的調整• 將其當作是離散、有次序
的值來處理
• 我們以婚姻狀態來說明
• 以網路觀點來說,調整後資料顯示,單身和未知是相當遙遠的,而離婚和結婚卻不是。這些無異議且不明確的次序會讓網路混淆,進而使的訓練無效果
婚姻狀況 調整值
單身 -1
離婚 -0.5
結婚 0
寡居 0.5
未知 1
48
類別值的調整• 類別值較佳的調整方法為: Break the categories into
flags
• 我們可以將資料型態打破,使用 N 的編碼,指定為+1或 -1的標旗,更可以將其中編碼簡化成為 N-1的編碼
性別 Gender Male Flag
Gender Female Flag
Gender Unknown Flag
Gender Male Flag
Gender Female Flag
Male +1 -1 -1 +1 -1Female -1 +1 -1 -1 +1Unknown -1 -1 +1 -1 -1
N Coding N-1 Coding
49
解釋結果• 以連續值來說 在訓練集 (Training Set)中輸出值 $103,000對應
值 -1而 $250,000對應值 1 ,若最終結果跑出來對應值是 0 的話,我們可以很清楚此值應該是:
$103,000+$250,000/2=$176,500• 以二位元或類別值來說 在訓練集 (Training Set)中,理想上會以 0 為分野,
大於 0 歸為一類;小於 0 歸為一類;或是以 -0.33及+0.33分為三個區段,但很多情況下,網路會產生居中的值,使得解讀十分困難,所以我們可以透過信心水準的方式來更準確的判定其中的值
50
• 以此圖來看,若以零為切斷點來分別 A 、 B 的話, 會判斷錯很多結果梢高於 0 的 A ,所以我們在此案例中選定切斷點 0.35來作為區隔處
51
類神經網路輸出類別及信心水準
Output Value Category Confidence
-1.0 A 100%
-0.6 A 80%
-0.02 A 51%
+0.02 B 51%
+0.6 B 80%
+1.0 B 100%
52
用在時間序列的類神經網路• 在許多資料採礦問題中,資料常成現於時間續列當中
• 類神經網路可以輕易地被採用,來作為時間續列資料的分析
• 網路是藉著時間序列中從前的資料開始訓練,以利於預測未來所發生的結果
53
時間序列的類神經網路
54
時間序列資料 星期幾 收盤價
1 1 $40.25
2 2 $ 41
3 3 $ 39.25
4 4 $ 39.75
5 5 $ 40.5
6 1 $ 40.5
7 2 $ 40.75
55
時間落遲的時間序列資料 星期幾 收盤價 前一天收盤價 前兩天收盤價
1 1 $ 40.25
2 2 $ 41 $ 40.25
3 3 $ 39.25 $ 41 $ 40.25
4 4 $ 39.75 $ 39.25 $ 41
5 5 $ 40.5 $ 39.75 $ 39.25
6 1 $ 40.5 $ 40.5 $ 39.75
7 2 $ 40.75 $ 40.5 $ 40.5
56
探討網路內部在進行什麼• 類神經網路是不透明的,就算知道所有單元的權重也很難探知網路內部與瞭解為什麼網路可以如此運作
• 不過我們可以用敏感度分析 (Sensitivity analysis)來大概了解輸入值對網路結果的相對重要性,此方法是分析每一個資料,來找出網路的輸出對每一個輸入的敏感度
57
敏感度分析的步驟1.找出每個輸入資料群的平均數,我們可以將此平均數當
作測試資料的中心2.當所有輸入都用其平均值時,量測網路的輸出值3.一次改變一個輸入值,通常用最大值或最小值取代 (-1 or +1),並觀察網路輸出值的變化• 某些輸入值使網路的輸出沒有改變太多,此代表網路對此
輸入值並不敏感;若輸出改變甚多時,代表網路對此些輸入值十分敏感
• 藉由測量輸出的改變量,我們可以測出每一個輸入的敏感度,並建立起每個項目相對的重要性
58
在敏感度測試過程中有很多方法:• 我們可以藉著同一次改變幾個組合點的方式,去看此些點
的組合對於輸出值的變化,是否對此網路重要• 由極端值或特定點來測試輸出值的變化• 如果敏感度分析對此三個情況產生及極不相同的結果,那
就表示還有更高階、更佳的點組合影響著網路• 〝誤差〞是敏感度的代理,可以用來看出每一個輸入影響
網路輸出的大小。將整個測試資料的誤差累加後,可以找到到底哪個輸入對輸出有較大的影響
59
自我組織圖 (Self-Organization Maps)
• 自我組織圖 (SOM)是類神經網路中的特殊類型,是利用非直接資料採礦,用來辨識資料集群
• 此方法如同前項式、倒傳導網路一樣,也是由一些底層的基礎單元所構成,但是 SOM有兩個不一樣的地方, 1.它有不一樣的位向(topology)2.學習上的倒傳導方式也不再適用
60
自我組織圖
61
自我組織圖
62
案例:尋找集群
63
類神經網路的缺點
• 類神經網路若要運作的好,不能有過多的輸入變數,但網路本身無法自行決定變數的多寡,不過可以透過決策樹方法來解決變數選取的問題
• 輸入值需要在 -1與 +1之間• 無法解釋產生的結果• 在訓練網路時,無法保證其中的權重是最適的,要建立許多網路,然後在其中挑選最好的
64
SAS 軟體實際操作
65
SAS Results
AGE
INCOME
-0.149406241
-0.07
7166
819
-0.101460065
0.04568903310.07178841450.3600936601
3.9448078648
1.0792471736
-0.14985828
-1.529008537
0.7983983776
0.5782195991
0.4468675257
輸出
66
Thank for your listening!