Introduction to Artificial Neuron Networks [ANN] & Simulated Annealing [SA]

Download Report

Transcript Introduction to Artificial Neuron Networks [ANN] & Simulated Annealing [SA]

Introduction to Artificial Neuron
Networks [ANN] & Simulated
Annealing [SA]
AI for Computer Game
Dr.Yodthong Rodkaew
Introduction to Artificial
Neuron Networks [ANN]
.
Neurons
ึ ษาโครงข่ายไฟฟ้ าชวี ภาพ
• แนวคิดเริม
่ ต ้นของเทคนิคนีไ้ ด ้มาจากการศก
(Bioelectric Network) ในสมอง ซงึ่ ประกอบด ้วย เซลล์ประสาท หรือ
“นิวรอน” (Neurons) และจุดประสานประสาท (Synapses)
แต่ละเซลล์ประสาทประกอบด ้วยปลายใน
การรับกระแสประสาทเรียกว่า "เดนไดรท์"
(Dendrite) ซงึ่ เป็ น input และปลายใน
การสง่ กระแสประสาทเรียกว่า "แอคซอน"
(Axon) ซงึ่ เป็ นเหมือน output ของเซลล์
เซลล์เหล่านีท
้ างานด ้วยปฏิกริ ย
ิ าไฟฟ้ า
เคมี เมือ
่ มีการกระตุ ้นด ้วยสงิ่ เร ้าภายนอก
หรือกระตุ ้นด ้วยเซลล์ด ้วยกัน กระแส
ประสาทจะวิง่ ผ่านเดนไดรท์เข ้าสู่
ิ ว่าต ้องกระตุ ้น
นิวเคลียสซงึ่ จะเป็ นตัวตัดสน
เซลล์อน
ื่ ๆ ต่อหรือไม่ ถ ้ากระแสประสาท
แรงพอ นิวเคลียสก็จะกระตุ ้นเซลล์อน
ื่ ๆ
ต่อไปผ่านทางแอคซอน
Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
http://www.cdd.go.th/itcenter/manual/bmn_chapter2.pdf ·
http://www.resgat.net/modules.php?name=News&file=article&sid=55
คำถำม !
ทำไมคอมพิวเตอร์ในปัจจุบนั ที่มีควำมสำมำรถในกำรคำนวณสู งมำกยังไม่สำมำรถเทียบ
กับควำมสำมำรถของสมองมนุษย์ในงำนง่ำยๆ(สำหรับมนุษย์) บำงอย่ำง เช่น กำรจำใบหน้ำ
กำรฟังและกำรตีควำมหมำย กำรแปลภำษำ
ควำมสำมำรถของสมองมนุษย์ vs คอมพิวเตอร์
เซลล์ประสำทส่ งสัญญำณ
ได้ในอัตรำสู งสุ ดประมำณ
1000 Hz
ควำมเร็วของคอมพิวเตอร์
ในปัจจุบนั ขึ้นไปถึง
3000 MHz
กำรคำนวณ
เลขคณิ ต
สมองคน D
ซุปเปอร์คอมพิวเตอร์ปัจจุบนั
C
> 1000 MFLOP
กำรจดจำและแยก
แยะรู ปภำพ, เสี ยง
สมองคน C
คอมพิวเตอร์ D
ควำมเร็ว
Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
Artificial Neural Networks
• โครงข่ายประสาทเทียม (Artificial Neural Networks
ั ้ ๆ ว่าโครงข่ายประสาท (Neural
- ANN) หรือ เรียกสน
Networks หรือ Neural Net หรือ NN)
http://en.wikipedia.org/wiki/File:Neural_network_example.png
การใช้ประโยชน์
• งานการจดจารู ปแบบที่มีความไม่แน่นอน เช่น ลายมือ ลายเซนต์
ตัวอักษร รู ปหน้า
• งานการประมาณค่าฟังก์ชนั หรื อการประมาณความสัมพันธ์ (มี
inputs และ outputsแต่ไม่ทราบว่า inputs กับ outputs
มีความสัมพันธ์กนั อย่างไร)
• งานที่สิ่งแวดล้อมเปลี่ยนแปลงอยูเ่ สมอ (วงจรข่ายนิวรอลสามารถ
ปรับตัวเองได้)
• งานจัดหมวดหมู่และแยกแยะสิ่ งของ
• งานทานาย เช่นพยากรณ์อากาศ พยากรณ์หุน้
http://www.resgat.net/modules.php?name=News&file=article&sid=55
โครงสร้าง
• โครงสร้างของ neural network
http://www.resgat.net/modules.php?name=News&file=article&sid=55
วงจรข่ ำยนิวรอลเทียม Artificial Neural Networks
เลียนแบบกำรทำงำนของสมองมนุษย์ โดยใช้หน่วยประมวลผลง่ำยๆ จำนวนมำก
ต่อกันเป็ นโครงสร้ำงขึ้นมำ
Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
ตัวอย่ ำงโครงสร้ ำงของวงจรข่ ำยนิวรอลเทียม
**จะมีอธิบายต่อใน slide ต่อๆ ไป
Input nodes
Output nodes
Hidden nodes
Connections
Output ของแต่ละโหนด
yi  f ( wi1 x1  wi2 x2  wi3 x3    wim xm )
 f (  wij x j )
j
Xi = input จำกโหนดอื่นๆ
Wij = น้ ำหนัก (weight) ของแต่ละแขน (connection)
Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
Network Architecture
Feedforward network
ข้อมูลที่ประมวลผลในวงจรข่ำยจะถูกส่ งไปในทิศทำงเดียวจำก Input
ส่ งต่อมำเรื่ อยๆจนถึง output
nodes
nodes โดยไม่มีกำรย้อนกลับของข้อมูล หรื อแม้แต่ Nodes
ใน layer เดียวกันก็ไม่มีกำรเชื่อมต่อกัน
Direction of data flow
Input nodes
Output nodes
Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
Network Architecture (cont.)
Feedback network
ข้อมูลที่ประมวลผลในวงจรข่ำย จะมีกำรป้อนกลับเข้ำไปยังวงจรข่ำยหลำยๆครั้ง
จนกระทัง่ ได้คำตอบออกมำ (บำงทีเรี ยกว่ำ Recurrent network)
Input nodes
Output nodes
Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
A Very Simple Neuron
Input layer
x1
output layer
w1
Y1

x2
w2
sum
threshold
การทางานของ Neural networks คือเมือ
่ มี input เข ้ามายัง network ก็เอา input
(xi) มาคูณกับ weight (wi) ของแต่ละขา ผลทีไ่ ด ้จาก input ทุก ๆ ขาของ neuron จะ
เอามารวมกันแล ้วก็เอามาเทียบกับ threshold ทีก
่ าหนดไว ้ ถ ้าผลรวมมีคา่ มากกว่า
threshold แล ้ว neuron ก็จะสง่ output (yi) ออกไป output นีก
้ ็จะถูกสง่ ไปยัง input
ื่ มกันใน network ถ ้าค่าน ้อยกว่า threshold ก็จะไม่เกิด
ของ neuron อืน
่ ๆ ทีเ่ ชอ
output
Ref: 202.28.94.55/web/320417/2548/work1/g26/Files/Report_Neural%20Network.doc -
Output
• ปี ค.ศ. 1993 Warren
Macculloch และ Walter Pitts
ได้ นำเสนอแนวคิดเกีย่ วกับพืน้ ฐำน
ของโครงข่ ำยประดิษฐ์ ซึ่งได้ กลำย
มำเป็ นต้ นแบบของโครงข่ ำย
ประดิษฐ์ ในปัจจุบัน
• เซลล์ประสำทแต่ ละเซลล์จะคำนวณ
นำ้ หนักแต่ ละอินพุทแล้ วนำมำ
รวมกันหลังจำกนั้นก็จะเปรียบเทียบ
ผลทีไ่ ด้ กบั ค่ ำเทรชโฮล(threshold
value) หรื อ 
• ถ้ ำผลรวมของอินพุทน้ อยกว่ ำ
เทรชโฮล เอำท์ พุททีไ่ ด้ คือ -1
• ถ้ ำผลรวมของอินพุทมำกกว่ ำ
หรื อเท่ ำกับเทรชโฮล เอำพุทจะ
เป็ น +1
ref: Ch8 Sasalak Tongkaw [email protected] 4124501 Artificial Intelligence :AI 2005 Songkhla Rahabhat University
Activation Function
n
X = i=1
 xi wi
Y = +1 if X ≥ 
-1 if X  
เมื่อ X เป็ นค่ ำนำ้ หนักของอินพุท
ภำยในเซลล์
xi เป็ นค่ ำอินพุทตัวที่ i
wi เป็ นนำ้ หนักของอินพุทตัวที่ i
n เป็ นจำนวนของอินพุททั้งหมด
Y เป็ นเอำท์ พุทของเซลล์ ประสำท
ref: Ch8 Sasalak Tongkaw [email protected] 4124501 Artificial Intelligence :AI 2005 Songkhla Rahabhat University
Activation Function
่
• Activation function ขึน
้ อยูก
่ บ
ั ลักษณะข ้อมูลของ Output เชน
ถ ้า output ทีต
่ ้องการเป็ น “ใช”่ หรือ “ไม่ใช”่ เราจะต ้องใช ้
Threshold function
• หรือถ ้า output เป็ นค่าตัวเลขทีต
่ อ
่ เนือ
่ ง เราต ้องใช ้ continuous
่ Sigmoid function
function เชน
Other activation function
ref: Ch8 Sasalak Tongkaw [email protected] 4124501 Artificial Intelligence :AI 2005 Songkhla Rahabhat University
A Very Simple Neuron
Input layer
x1
output layer
w1
Y1

x2
w2
sum
threshold
if (sum(input * weight) > threshold) then output
sum = (x1 * w1 ) + ( x2 * w2 )
If (sum> threshold) then yi = 1; else yi = 0;
Ref: 202.28.94.55/web/320417/2548/work1/g26/Files/Report_Neural%20Network.doc -
A Very Simple Neuron
Input layer
output layer
0.5
0.0
x1
w1
0.5

1.0
x2
w2
sum
threshold
0.5
sum = (0.0*0.5 ) + ( 1.0 * 0.5 ) = 0.5
If (sum> threshold ) then yi = 1; else yi = 0;
ค่า yi เป็ นเท่าใด ?
Y1
Multilayer Neuron Network
Input layer
x1
hidden layer
w1,1
w1,2
H1
w2,2
wH1,1
wH1,2
w2,1
x2
output layer
Y1
wH2,1
H2
Y2
wH2,2
H1 = threshold[ (x1*w11) + (x2*w21) ]
H2 = threshold[ (x1*w12) + (x2*w22) ]
Y1 = threshold[ (H1*wh11) + (H2*wh21) ]
Y2 = threshold[ (H1*wh12) + (H2*wh22) ]
Shape recognition with NN
Input layer
x1
hidden layer
w1,1
w1,2
H1
w2,2
*มีท้ งั หมดอย่างละ 9 เส้น
rectangle
Y2
wH2,2
H5
x9
Y1
wH2,1
H2
..
..
..
..
wH1,1
wH1,2
w2,1
x2
output layer
*มีท้ งั หมดอย่างละ 5 เส้น
tritangle
Neural Network (NN)
Classification Problem solved with Neural Network,
weight tuning
—
i1
threshold
w1
Σ
i2
input
w2
weight
T
output
start: Wi = 0.5
T = I1 * W1 + I2 * W2
(T >0) output =1
(T <=0) output = 0
train: adjust w
Wi=a*(Desire_Output – Current_Output)*Ii
a = learning rate
Back propagation Algorithm
• Back-propagation เป็ นอัลกอริ ทึมที่ใช้ในการเรี ยนรู ้ของเครื อข่ายใยประสาทวิธีหนึ่ง
ที่นิยมใช้ใน multilayer perceptron เพื่อปรับค่าน้ าหนักในเส้นเชื่อมต่อระหว่าง
โหนดให้เหมาะสม โดยการปรับค่านี้จะขึ้นกับความแตกต่างของค่าเอาต์พตุ ที่คานวณได้กบั ค่า
เอาต์พตุ ที่ตอ้ งการ
O = neuron output จาก NN
Input layer
x1
x2
hidden layer
w1,1
w1,2
H1
w2,2
wH1,1
wH1,2
w2,1
output layer
Y1
wH2,1
H2
Y2
wH2,2
Ref: 202.28.94.55/web/320417/2548/work1/g26/Files/Report_Neural%20Network.doc –
http://en.wikipedia.org/wiki/Backpropagation
T = target ที่ตอ้ งการ
r = learning rate ~0.1
เพราะว่า
Y1 =H1*wh11+H2*wh21
ดังนั้น ถ้าอยากให้ Y1 มีค่าตาม T
wH11 = wH11+ r(T-O)
wH21 = wH21+ r(T-O)
เพราะว่า
H1 =X1*w11+X2*w21
ดังนั้น
w11 = w11+ r(T-O)
w21 = w21+ r(T-O)
หมายเหตุ เป็ นการคานวณอย่างง่ายเพื่อ
เป็ นแนวทางสาหรับการทาความเข้าใจเท่านั้น
Introduction to Simulated
Annealing [SA]
.
Local Maxima Problem
• ปั ญหา local maxima เมือ
่ มีการ search แล ้วพบตาแหน่งทีม
่ ค
ี า่ มากทีส
่ ด
ุ
(ในขณะนัน
้ ) ต่อจากนัน
้ ก็พบว่ามีคา่ น ้อยลง จึงไม่ทาการ search ต่อ จึงทา
ให ้พลาดโอกาสทีจ
่ ะค ้นพบสงิ่ ทีด
่ ท
ี ส
ี่ ด
ุ จากปั ญหาทัง้ หมด
Local maxima
Start search point
http://www.bloggang.com/viewblog.php?id=zol&date=04-01-2008&group=10&gblog=34
The best solution
Simulated Annealing - SA
• เป็ นเทคนิค local search ชนิดหนึง่ ทีส
่ ามารถแก ้ปั ญหา local maxima ได ้
โดยเลียนแบบเทคนิค anneal (การอบอ่อนเพือ
่ ให ้เหนียว ไม่เปราะ) ของ
โลหะ มี 2 ขัน
้ ตอนหลัก ๆ คือ ให ้ความร ้อน (heating) และควบคุมการเย็นตัว
(slowly cooling) ผลทีไ่ ด ้รับคือผลึกโครงข่ายอะตอมโลหะมีความแข็งแรง
เหนียวแน่นมากขึน
้
• ใชตั้ วแปรอุณหภูม ิ เพือ
่ ทาให ้ยอมรับคาตอบทีไ่ ม่ดก
ี ว่าคาตอบปั จจุบน
ั ได ้
(downhill move) และโอกาสการยอมรับคาตอบแบบนัน
้ จะค่อย ๆ ลดลงเมือ
่
ิ้ สุดกระบวนการเมือ
อุณหภูมล
ิ ดตา่ ลง และสน
่ อุณหภูมเิ ป็ นศูนย์ (T = 0) หรือ
พบคาตอบทีต
่ ้องการ
Local maxima
Start search point
http://www.bloggang.com/viewblog.php?id=zol&date=04-01-2008&group=10&gblog=34
The best solution
Simulated Annealing
•
•
•
starting from state s0 and continuing to a maximum of kmax steps or until
a state with energy emax or less is found.
The call neighbour(s) should generate a randomly chosen neighbour of a
given state s; the call random() should return a random value in the range
[0,1).
The annealing schedule is defined by the call temp(r), which should yield
the temperature to use, given the fraction r of the time budget that has
been expended so far
http://en.wikipedia.org/wiki/Simulated_annealing
โอกาสในการหาโหนดอื่นๆ
ลดลงอย่างเป็ นเส้นตรง
http://www.bloggang.com/viewblog.php?id=zol&date=04-012008&group=10&gblog=34