AI for Computer Game Dr.Yodthong Rodkaew 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 คอมพิวเตอร์ C ทำไมคอมพิวเตอร์ในปัจจุบันที่มีความสามารถในการคำนวณสูงมากยังไม่สามารถเทียบ กับความสามารถของสมองมนุษย์ในงานง่ายๆ(สำหรับมนุษย์) บางอย่าง เช่น การจำใบหน้า การฟังและการตีความหมาย การแปลภาษา ความสามารถของสมองมนุษย์ vs คอมพิวเตอร์ เซลล์ประสาทส่งสัญญาณ ได้ในอัตราสูงสุดประมาณ 1000 Hz ความเร็วของคอมพิวเตอร์ ในปัจจุบันขึ้นไปถึง 3000 MHz ความเร็ว การคำนวณ เลขคณิต ซุปเปอร์คอมพิวเตอร์ปัจจุบัน > 1000 MFLOP สมองคน D C การจดจำและแยก แยะรูปภาพ, เสียง สมองคน C คอมพิวเตอร์ D Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
Artificial Neural Networks โครงข่ายประสาทเทียม (Artificial Neural Networks - ANN) หรือ เรียกสั้น ๆ ว่าโครงข่ายประสาท (Neural 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 Hidden nodes Output nodes Connections Output ของแต่ละโหนด Xi = input จากโหนดอื่นๆ Wij = น้ำหนัก (weight) ของแต่ละแขน (connection) Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
Network Architecture Feedforward network ข้อมูลที่ประมวลผลในวงจรข่ายจะถูกส่งไปในทิศทางเดียวจาก Input nodes ส่งต่อมาเรื่อยๆจนถึง output nodes โดยไม่มีการย้อนกลับของข้อมูล หรือแม้แต่ Nodes ใน layer เดียวกันก็ไม่มีการเชื่อมต่อกัน Direction of data flow Input nodes Output nodes Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
Feedback network Network Architecture (cont.) ข้อมูลที่ประมวลผลในวงจรข่าย จะมีการป้อนกลับเข้าไปยังวงจรข่ายหลายๆครั้ง จนกระทั่งได้คำตอบออกมา (บางทีเรียกว่า Recurrent network) Input nodes Output nodes Ref: http://gear.kku.ac.th/~nawapak/NeuralNet/neural1.ppt
A Very Simple Neuron å x1 x2 Input layer output layer w1 w2 Y1 sum threshold การทำงานของ Neural networks คือเมื่อมี input เข้ามายัง network ก็เอา input (xi) มาคูณกับ weight (wi) ของแต่ละขา ผลที่ได้จาก input ทุก ๆ ขาของ neuron จะเอามารวมกันแล้วก็เอามาเทียบกับ threshold ที่กำหนดไว้ ถ้าผลรวมมีค่ามากกว่า threshold แล้ว neuron ก็จะส่ง output (yi) ออกไป output นี้ก็จะถูกส่งไปยัง input ของ neuron อื่น ๆ ที่เชื่อมกันใน network ถ้าค่าน้อยกว่า threshold ก็จะไม่เกิด output Ref: 202.28.94.55/web/320417/2548/work1/g26/Files/Report_Neural%20Network.doc -
Output ถ้าผลรวมของอินพุทน้อยกว่าเทรชโฮล เอาท์พุทที่ได้คือ -1 ถ้าผลรวมของอินพุทมากกว่าหรือเท่ากับเทรชโฮล เอาพุทจะเป็น +1 ปี ค.ศ. 1993 Warren Macculloch และ Walter Pitts ได้นำเสนอแนวคิดเกี่ยวกับพื้นฐานของโครงข่ายประดิษฐ์ซึ่งได้กลายมาเป็นต้นแบบของโครงข่ายประดิษฐ์ในปัจจุบัน เซลล์ประสาทแต่ละเซลล์จะคำนวณน้ำหนักแต่ละอินพุทแล้วนำมารวมกันหลังจากนั้นก็จะเปรียบเทียบผลที่ได้กับค่าเทรชโฮล(threshold value) หรือ ref: Ch8 Sasalak Tongkaw ajsasalak@yahoo.com 4124501 Artificial Intelligence :AI 2005 Songkhla Rahabhat University
X = xi wi n i=1 Y = +1 if X ≥ -1 if X Activation Function xi เป็นค่าอินพุทตัวที่ i wi เป็นน้ำหนักของอินพุทตัวที่ i n เป็นจำนวนของอินพุททั้งหมด Y เป็นเอาท์พุทของเซลล์ประสาท Y = +1 if X ≥ -1 if X ref: Ch8 Sasalak Tongkaw ajsasalak@yahoo.com 4124501 Artificial Intelligence :AI 2005 Songkhla Rahabhat University
Activation Function Activation function ขึ้นอยู่กับลักษณะข้อมูลของ Output เช่น ถ้า output ที่ต้องการเป็น “ใช่” หรือ “ไม่ใช่” เราจะต้องใช้ Threshold function หรือถ้า output เป็นค่าตัวเลขที่ต่อเนื่อง เราต้องใช้ continuous function เช่น Sigmoid function
Other activation function ref: Ch8 Sasalak Tongkaw ajsasalak@yahoo.com 4124501 Artificial Intelligence :AI 2005 Songkhla Rahabhat University
A Very Simple Neuron å x1 x2 Input layer output layer w1 w2 Y1 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 å x1 x2 Input layer output layer w1 w2 Y1 sum threshold 0.5 0.0 0.5 1.0 0.5 sum = (0.0*0.5 ) + ( 1.0 * 0.5 ) = 0.5 If (sum> threshold ) then yi = 1; else yi = 0; ค่า yi เป็นเท่าใด ?
Multilayer Neuron Network Input layer hidden layer output layer w1,1 x1 Y1 wH1,1 w1,2 H1 wH1,2 wH2,1 w2,1 x2 H2 w2,2 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 hidden layer output layer w1,1 x1 Y1 wH1,1 w1,2 H1 rectangle wH1,2 wH2,1 w2,1 x2 H2 w2,2 Y2 wH2,2 tritangle .. .. .. .. H5 x9 *มีทั้งหมดอย่างละ 5 เส้น *มีทั้งหมดอย่างละ 9 เส้น
Neural Network (NN) threshold i1 w1 output Σ T i2 w2 weight input Classification Problem solved with Neural Network, weight tuning — threshold i1 w1 Σ T output i2 w2 start: Wi = 0.5 T = I1 * W1 + I2 * W2 (T >0) output =1 (T <=0) output = 0 weight input train: adjust w Wi=a*(Desire_Output – Current_Output)*Ii a = learning rate
Back propagation Algorithm Back-propagation เป็นอัลกอริทึมที่ใช้ในการเรียนรู้ของเครือข่ายใยประสาทวิธีหนึ่งที่นิยมใช้ใน multilayer perceptron เพื่อปรับค่าน้ำหนักในเส้นเชื่อมต่อระหว่างโหนดให้เหมาะสม โดยการปรับค่านี้จะขึ้นกับความแตกต่างของค่าเอาต์พุตที่คำนวณได้กับค่าเอาต์พุตที่ต้องการ O = neuron output จาก NN 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) หมายเหตุ เป็นการคำนวณอย่างง่ายเพื่อ เป็นแนวทางสำหรับการทำความเข้าใจเท่านั้น x1 x2 Input layer output layer w1,1 w2,1 Y1 hidden layer Y2 w1,2 w2,2 H1 H2 wH1,1 wH1,2 wH2,1 wH2,2 Ref: 202.28.94.55/web/320417/2548/work1/g26/Files/Report_Neural%20Network.doc – http://en.wikipedia.org/wiki/Backpropagation
Introduction to Simulated Annealing [SA] .
Local Maxima Problem ปัญหา local maxima เมื่อมีการ search แล้วพบตำแหน่งที่มีค่ามากที่สุด (ในขณะนั้น) ต่อจากนั้นก็พบว่ามีค่าน้อยลง จึงไม่ทำการ search ต่อ จึงทำให้พลาดโอกาสที่จะค้นพบสิ่งที่ดีที่สุดจากปัญหาทั้งหมด The best solution Local maxima Start search point http://www.bloggang.com/viewblog.php?id=zol&date=04-01-2008&group=10&gblog=34
Simulated Annealing - SA เป็นเทคนิค local search ชนิดหนึ่งที่สามารถแก้ปัญหา local maxima ได้ โดยเลียนแบบเทคนิค anneal (การอบอ่อนเพื่อให้เหนียว ไม่เปราะ) ของโลหะ มี 2 ขั้นตอนหลัก ๆ คือ ให้ความร้อน (heating) และควบคุมการเย็นตัว (slowly cooling) ผลที่ได้รับคือผลึกโครงข่ายอะตอมโลหะมีความแข็งแรงเหนียวแน่นมากขึ้น ใช้ตัวแปรอุณหภูมิ เพื่อทำให้ยอมรับคำตอบที่ไม่ดีกว่าคำตอบปัจจุบันได้ (downhill move) และโอกาสการยอมรับคำตอบแบบนั้นจะค่อย ๆ ลดลงเมื่ออุณหภูมิลดต่ำลง และสิ้นสุดกระบวนการเมื่ออุณหภูมิเป็นศูนย์ (T = 0) หรือพบคำตอบที่ต้องการ The best solution Local maxima Start search point http://www.bloggang.com/viewblog.php?id=zol&date=04-01-2008&group=10&gblog=34
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-01-2008&group=10&gblog=34