AI for Computer Game Dr.Yodthong Rodkaew

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การเคลื่อนที่.
Advertisements

การออกแบบฐานข้อมูลในระดับ Conceptual
ทักษะการคิดขั้นสูงของบลูม (Bloom’s Taxonomy)
การเสนอโครงการวิทยานิพนธ์
รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
วงจรสวิตช์ประจุ(Switched Capacitor)
ลักษณะของหลักสูตร หลักสูตรที่เน้นเนื้อหาเป็นหลักสำคัญ
ธรรมชาติและลักษณะของภาษา
การเขียนผังงาน.
โดย นาย สิริชัย นิธิอุทัย
Functional programming part II
นายชะเวรินทร์ อินสุวรรณ เลขที่ 12 ม.5/4
สื่อการเรียนรู้ เรื่องความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์
การแก้ปัญหาด้วยคอมพิวเตอร์
บทที่ 12 การจดทะเบียนชื่อโดเมน (Domain Name Registration)
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
ระบบประสาท (Nervous System)
วิชา การออกแบบและพัฒนาซอฟต์แวร์
การจัดการความรู้ (Knowledge Management)
ไกรฤกษ์ เชยชื่น, M.Eng. Electrical
Perceptron and Delta rule training for the NN
Back-Propagation Learning (การเรียนรู้แบบแพร่กลับ) (ต่อ)
Adaline and Delta rule training for NN
ระบบสารสนเทศเพื่อการจัดการ (Management Information System :MIS)
Surachai Wachirahatthapong
Biometric ความหมายของเทคโนโลยี Biometric ความเป็นมาเกี่ยวกับ Biometric
น.ส.กฤติกา วงศาวณิช นายศุภชัย ตั้งบุญญะศิริ
ระบบกฎของ FUZZY.
เขียนโดย David Meerman Scott.
Thai Handwritten Character Recognition by Artificial Neural Networks
การเลือกจำนวน Hidden Node ที่เหมาะสมกับโครงข่ายประสาทเทียม
ความหมาย ปัญญาประดิษฐ์
รู้จักและใช้งาน Applet
บทที่ 1 ความรู้พื้นฐานในการ พัฒนาระบบ
ตอนที่ 4 ความรู้พื้นฐานทางดิจิตอล
8. ระบบผู้เชี่ยวชาญ.
สัปดาห์ที่ 14 ผลตอบสนองต่อความถี่ Frequency Response (Part II)
สัปดาห์ที่ 13 ผลตอบสนองต่อความถี่ Frequency Response (Part I)
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
ที่ใช้ใน Object-Oriented Design
Artificial Intelligence (AI)
การเขียนอัลกอริทึม แบบโฟลวชาร์ต
ตัวแปร ชนิดข้อมูล และ ตัวดำเนินการใน PHP
กสิณ ประกอบไวทยกิจ ห้องวิจัยการออกแบบวงจรด้วยระบบคอมพิวเตอร์(CANDLE)
2.1 วิธีแก้ปัญหาด้วยคอมพิวเตอร์ (Computer problem solving methods)
หลักสูตรอบรม การวัดประสิทธิภาพและผลิตภาพของการผลิตสินค้าเกษตร
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
การนำระบบเทคโนโลยีสารสนเทศมาสนับสนุนการทำงาน
Search Engine จัดทำโดย น. ส. กรรณิดา เดิมบางปิด เลขที่ 1 น. ส. เกศินี ศรีอินทร์สุทธิ์ เลขที่ 4 น. ส. เบญจวรรณ แซ่อั๊ง เลขที่ 51 1.
หลักการแก้ปัญหา
อินเทอร์เน็ต โดย.. ครูสาคร หนูอิน.
การออกแบบส่วนติดต่อกับผู้ใช้ User Interface Design
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Artificial Neural Network โครงข่ายประสาทเทียม
วิชาคอมพิวเตอร์ จัดทำโดย นายดำรงเกียรติ อาศา นายปรมินทร์ สิ้นเซ่ง
หลักการเขียนโปรแกรม ( )
โครงสร้าง ภาษาซี.
เทคโนโลยีมีความสัมพันธ์กับศาสตร์อื่นๆ โดยเฉพาะวิทยาศาสตร์
รูปร่างเครือข่ายคอมพิวเตอร์ จัดทำโดย เด็กชาย คณิศร อ้อยกลาง เลขที่ 36 ม.2/5 เสนอ อ.สายฝน เอกกันทา โรงเรียนจักรคำคณาทร จ.ลำพูน.
Domain Name System   (DNS).
เทคโนโลยีกับศาสตร์ จากความหมายของคำว่า "วิทยาศาสตร์" และความหมายของคำว่า "เทคโนโลยี" ที่กล่าวมาข้างต้นจะเห็นว่า วิทยาศาสตร์เป็นความรู้ที่นำไปใช้อธิบายได้ว่า.
พัฒนาการเด็กปฐมวัย & โครงการพัฒนาIQ EQ เด็กแรกเกิด-5 ปี
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
….WETCOME…. TO HOMEPAGE.
บทที่ 5 การเขียนรายงานโครงงานคอมพิวเตอร์
Wattanapong suttapak SE, ICT University of Phayao.
Chapter 05 Selection structure ผู้สอน อ. ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยี คอมพิวเตอร์เคลื่อนที่ ng.
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
ใบสำเนางานนำเสนอ:

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