โครงข่ายประสาทเทียม (Artificial Neural Network) ในงาน Image Processing โครงข่ายประสาทเทียม (Artificial Neural Network) หรือ Neural Network คือตัวแบบทางคณิตศาสตร์ ที่จำลองการทำงานของเซลประสาทของสิ่งมีชีวิต โดย โครงข่ายประสาทเทียม ประกอบขึ้นจากแบบจำลองของ Neural หรือโหนด (Node) จำนวนมากมายเชื่อมต่อกันเป็นโครงข่าย โหนดบางโหนดเชื่อมต่อกับสิ่งแวดล้อมภายนอกและสามารถทำหน้าที่เป็นหน่วยอินพุทหรือเอาทุดได้ ภายใน โครงข่ายประสาทเทียม จะมีกลุ่มของตัวเลขหรือที่เรียกว่าค่าน้ำหนัก (Weight) เก็บไว้เป็นค่าประจำตัวของมัน ค่าน้ำหนักเหล่านี้เปรียบเสมือนกับความรู้ของ โครงข่ายประสาทเทียม นั่นเอง ฉะนั้น การเรียนรู้ของ Neural Network เกิดขึ้นได้โดยการปรับเปลี่ยนค่าน้ำหนักเหล่านี้
โครงข่ายประสาทเทียม (Artificial Neural Network) ในงาน Image Processing นิยมนำไปใช้ในการสร้างตัวจำแนกรูปแบบ (Pattern classification) อยู่เสมอ ข้อได้เปรียบของ โครงข่ายประสาทเทียม เมื่อเทียบกับตัวแบ่งแยกรูปแบบประเภทอื่น ๆ คือมันสามารถตัดสินค่าอินพุท (Output) ที่ค่อนข้างแม่นยำบนลักษณะของอินพุท (Input) ที่ไม่ชัดเจน กำกวม มีลักษณะไม่เชิงเส้น (Non-liner) หรืออาจกล่าวได้ว่าเป็นปัญหาที่เกิดขึ้นจริงในธรรมชาติอย่างไรก็ตามแม้ว่า โครงข่ายประสาทเทียม จะมีความสามารถในการแบ่งแยกรูปแบบที่ดี แต่ว่าเมื่อทำการสร้าง โครงข่ายประสาทเทียม ขึ้นมาแล้วมันจะทำงานได้ทันที การที่ โครงข่ายประสาทเทียม จะทำงานได้ จำเป็นต้องได้รับการสอน (Training) ตัวอย่างข้อมูลเพื่อให้ โครงข่ายประสาทเทียม นั้นทำการจดจำรูปแบบต่าง ๆ ของตัวอย่างข้อมูลให้ได้ก่อนจึงสามารถนำไปใช้งานได้ ซึ่งกระบวนการสอนนี้อาจต้องใช้เวลาพอสมควร
ลักษณะการเรียนรู้ของระบบโครงข่ายประสาทเทียมสามารถแบ่งได้เป็น 3 รูปแบบดังนี้
1) การเรียนรู้แบบมีผู้สอน (Supervised Learning) โครงข่ายประสาทเทียมจะได้รับการฝึกด้วยกลุ่มฝึกที่ประกอบด้วยข้อมูลนำเข้าและค่าส่งออกที่ต้องการ การปรับค่าน้ำหนักและค่าไบแอส (Bias) นั้นจะกระทำเพื่อให้ค่าส่งออกที่ได้มีความใกล้เคียง หรือตรงกับค่าส่งออกที่ต้องการมากที่สุด ตัวอย่างโครงข่ายประสาทเทียมที่ใช้วิธีการเรียนรู้แบบนี้ เช่น แบคโพรพาเกชั่น (Back-Propagation) และมัลติเลเยอร์ เพอเซ็พตรอน (Multilayer Perceptron) เป็นต้น
2) การเรียนรู้แบบเสริมกำลัง (Reinforcement Learning) การเรียนรู้แบบนี้จะคล้ายคลึงกับการเรียนรู้แบบมีผู้สอน แต่ต่างกันตรงที่การเรียนรู้แบบนี้จะใช้นำเข้าและใช้ระดับ (Grade) หรือคะแนน (Score) แทนค่าส่งออก ซึ่งวิธีนี้จะมีความซับซ้อนมากกว่าและใช้เวลาในการฝึกมากกว่า ทำให้เป็นที่นิยมน้อยกว่า การเรียนรู้แบบมีผู้สอน การเรียนรู้รูปแบบนี้มีความเหมาะสมสำหรับระบบขนาดใหญ่ที่ประกอบด้วยโครงข่ายประสาทเทียมหลายเครือข่ายทำงานร่วมกัน
3) การเรียนรู้แบบไม่มีผู้สอน (Unsupervised Learning) การเรียนรู้เพื่อปรับค่าน้ำหนัก และค่าไบแอสจะตอบสนองต่อข้อมูลนำเข้าเท่านั้น โดยไม่ได้ใช้ค่าส่งออกร่วมด้วยในการฝึก วิธีการเรียนรู้แบบนี้จะใช้การจัดแบ่งกลุ่ม โดยพิจารณาตามรูปแบบของค่านำเข้า ตัวอย่างโครงข่ายประสารทเทียมที่ใช้วิธีการเรียนรู้แบบนี้เช่น เคาเตอร์โพรพาเกชั่น (Counter Propagation) และ โครงข่ายโคแอนเนน (Kohonen Network)
สถาปัตยกรรมโครงข่าย
โครงสร้างของโครงข่ายประสาทเทียม สร้างขึ้นมาจากส่วนประกอบ 3 ส่วนที่เชื่อมต่อกัน แต่ละส่วนเรียกว่า เลเยอร์ (Layers) และเรียกประสาทเทียมว่าโหนด (Node)
สถาปัตยกรรมโครงข่ายประสาทเทียม เมื่อพิจารณาในลักษณะทิศทางการส่งข้อมูล ได้มีการแบ่งออกเป็น 2 รูปแบบ คือ แบบป้อนไปหน้า และแบบป้อนกลับ
1) แบบป้อนไปหน้า (Feed forward Network) ข้อมูลที่ประมวลผลในวงจรข่ายจะถูกส่งไปในทิศทางเดียวจาก Input Nodes ส่งต่อมาเรื่อย ๆ จนถึง Output Nodes โดยไม่มีการย้อนกลับของข้อมูลหรือแม้แต่ Nodes ใน Layer เดียวกันก็ไม่มีการเชื่อมต่อกัน
2) แบบป้อนกลับ (Feedback Network) ข้อมูลที่ประมวลผลในวงจรข่าย จะมีการป้อนกลับเข้าไปยังวงจรข่ายหลาย ๆ ครั้ง จนกระทั่งได้คำตอบออกมา (บางทีเรียกว่า Recurrent Network)
วิธีการสอน
วิธีการสอน คือรูปแบบสำหรับการฝึกฝนในโครงข่ายประสาทเทียม ซึ่งประกอบด้วยตัวประมวลผลเรียกว่า นิวรอน ทำหน้าที่เชื่อมต่อถึงกันและนิวรอนแต่ละตัวจะส่งผ่านสัญญาณจากตัวมันไปยังนิวรอนตัวอื่น ๆ ต่างเลเยอร์ (Layer) ผ่านทางจุดเชื่อมตัวที่เรียกน้ำหนัก (Weight) โดยมีตัวนิวรอนที่อยู่ในเลเยอร์เดียวกันจะมีหน้าที่เหมือนกัน แต่ละนิวรอนจะรับค่าสัญญาณอินพุตที่เชื่อมต่อกับตัวมันทั้งหมดมาประมวลผล และให้สัญญาณออกมาที่เอาต์พุตเพียงหนึ่งค่าเท่านั้น โดยที่สัญญาณเอาต์พุตที่ได้จากแต่ละชั้นจะถูกส่งต่อไปยังนิวรอนในชั้นปลายทางต่อไป
เปอร์เซ็ปตรอน (Perceptrons) เป็นเทคนิคการสอนประเภทหนึ่ง เปอร์เซ็ปตรอนเหมาะสำหรับการแก้ปัญหาเพื่อจำแนกรูปแบบหรือจัดหมวดหมู่ ซึ่งมีความรวดเร็วและเชื่อถือได้ เปอร์เซ็ปตรอนเป็นรูปแบบเลเยอร์เดี่ยว ดังแสดงในภาพที่ 2.9 โดยข้อมูลเข้า p จำนวน R ตัว จะเชื่อมต่อด้วยกลุ่มของน้ำหนัก w และรวบรวมที่จุดรวมระหว่างข้อมูลอินพุตกับน้ำหนัก n = p x w ทั้งนี้หากมีค่าไบแอส b ก็จะนำมารวมด้วยที่จุดรวมผลนี้ n = (p x w)+b จากนั้นจะได้ค่าเอาต์พุต n ซึ่งเป็นผลรวมสุดท้ายจะส่งผ่านไปยังฟังก์ชันถ่ายโอน
ข้อจำกัดของเปอร์เซ็ปตรอน คือ ค่าของเอาต์พุตจะมีได้เพียง 2 ค่า คือค่า 0 หรือ ค่า 1 เปอร์เซ็ปตรอนสามารถแยกจัดหมวดหมู่ข้อมูลเชิงเส้นเท่านั้น แต่หากเวกเตอร์ไม่มีลักษณะเชิงเส้นการเรียนรู้จะไม่พบจุดที่เวกเตอร์จะสามารถแยกแยะหมวดหมู่ได้ แต่เปอร์เซ็ปตรอนจะค้นหาเวลาที่จะสิ้นสุดการเรียนรู้
เปอร์เซ็ปตรอนรับอินพุตเป็นเวกเตอร์จำนวนจริงแล้วคำนวณหาผลรวมเชิงเส้น (Linear combination) แบบถ่วงน้ำหนักของอินพุต x1,x2,…,xn โดยที่ค่าน้ำหนัก w1,w2,….,wn ปรากฏในรูปเป็นค่าน้ำหนักของอินพุตและให้เอาต์พุตเป็น 1 ถ้าผลรวมที่ได้มีค่าเกินค่าขีดแบ่งและเป็น -1 ถ้าไม่เกิดค่าขีดแบ่ง การเรียนรู้เปอร์เซ็ปตรอน คือการหาค่าเวกเตอร์น้ำหนักที่เหมาะสมในการจำแนกประเภทของข้อมูลสอนเพื่อให้เปอร์เซ็ปตรอนแสดงเอาต์พุตได้ตรงกับค่าที่สอน
อัลกอริทึมเริ่มต้นจากลุ่มค่าเวกเตอร์น้ำหนัก โดยมากค่าที่สุ่มมานี้จะไม่ได้ระนาบหลายมิติที่แบ่งตัวอย่างได้ถูกต้องทุกตัว ดังนั้นจึงต้องมีการแก้ไขน้ำหนัก โดยเทียบเปอร์เซ็ปตรอนกับตัวอย่างที่สอน หมายถึงว่าเมื่อเราป้อนตัวอย่างสอนเข้าไปในเปอร์เซ็ปตรอน เราจะคำนวณค่าเอาต์พุตได้นำเอาเอาต์พุตที่คำนวณได้โดยเปอร์เซ็ปตรอนเทียบกับเอาต์พุตเป้าหมาย ถ้าตรงกันแสดงว่าจำแนกตัวอย่างได้ถูกต้อง ไม่ต้องปรับน้ำหนักสำหรับตัวอย่างนั้น แต่ถ้าไม่ตรงกันที่จะทำการปรับน้ำหนักตามสมการในอัลกอริทึม ส่วนอัตราการเรียนรู้เป็นตัวเลขบวกจำนวนน้อย ๆ เช่น 0.01 , 0.005 เป็นต้น อัตราการเรียนรู้นี้จะส่งผลต่อการเข้าของเปอร์เซ็ปตรอน ถ้าอัตราการเรียนรู้มีค่ามากเปอร์เซ็ปตรอนก็จะเรียนรู้ได้
อัลกอริทึมการแพร่กระจายย้อนกลับเป็นวิธีการสอนเลเยอร์หลาย ๆ เลเยอร์ และการทำงานของฟังก์ชันถ่ายโอนที่มีลักษณะไม่เป็นเชิงเส้น เวกเตอร์อินพุตจะสอดคล้องกับเวกเตอร์เป้าหมาย (Target) ซึ่งจะถูกเรียนรู้จนกว่าจะสามารถสร้างฟังก์ชันถ่ายโอนที่สามารถประมาณค่าที่ดีได้ เวกเตอร์อินพุตจะมีความสัมพันธ์จากเวกเตอร์เอาต์พุต เนื่องจากแบบแพร่กระจายย้อนกลับจะมีการเรียนรู้อย่างเหมาะสมในการหาคำตอบที่มีเหตุผลเมื่อพบอินพุตที่ไม่เคยพบมาก่อน โดยทั่วไปแล้วอินพุตตัวใหม่จะเกิดขึ้นจากนำเอาต์พุตมาแก้ไขและเรียนรู้ใหม่อีกครั้ง ลักษณะทั่วไปคือการเรียนรู้ในโครงข่ายด้วยกลุ่มคู่ของอินพุต เป้าหมายและได้รับผลลัพธ์ที่ดีโดยไม่ต้องเรียนรู้ทุก ๆ ค่าของคู่อินพุต เอาต์พุต เงื่อนไขการทำงานของการแพร่กระจายย้อนกลับจะอ้างอิงจากค่าความผิดพลาด (Error) ที่ได้รับจากโครงข่าย
โครงข่ายใยประสาทเทียมแบบแพร่กลับ (Back-Propagation Algorithm) สามารถเข้าใจง่ายและมีการประยุกต์ใช้โดยทั่วไป การปรับสอนโครงข่ายใยประสาทเทียมแบบแพร่กลับ ประกอบไปด้วย 3 ขั้นตอน คือ
1) ขั้นตอนการคำนวณไปข้างหน้า (Feed Forward) จากชั้นข้อมูลเข้า (Input Layer) ไปยังชั้นแอบแฝง (Hidden Layer) และไปสู่ชั้นข้อมูลออก (Output Layer)
2) ขั้นตอนการคำนวณ และการแทนค่ากลับของผลรวมของความผิดพลาดของสัญญาณออกกับค่าเป้าหมาย
3) ขั้นตอนการปรับค่าน้ำหนัก (Weight) และ ไบแอส (Bias) ซึ่งค่าน้ำหนักนี้หลังจากที่ได้จากสถานะ การเรียนรู้จะเก็บไว้ใช้อีกครั้ง สถานะของการทดสอบ ซึ่งในสถานการณ์ทดสอบจะไม่มีการปรับแต่งค่าน้ำหนัก ส่วนค่าไบแอสนี้คือในกรณีที่โครงข่ายมีจำนวนโหนดที่ไม่เหมาะสม คือจำนวนโหนดที่น้อยเกินไป การเพิ่มโหนดไบแอสเข้าไปจะทำให้โครงข่ายสามารถมีประสิทธิภาพของการเรียนรู้ดีขึ้น
หลังจากที่โครงข่ายได้ผ่านกระบวนการเรียนรู้แล้ว จะเป็นการนำโครงข่ายไปประยุกต์ใช้งาน ขั้นตอนนี้จะขึ้นอยู่กับขั้นตอนการคำนวณไปข้างหน้าเพียงขั้นตอนเดียว โดยจะนำค่าน้ำหนักที่ได้จากการเรียนรู้ไปใช้ในการพยากรณ์ต่อไป
ขั้นตอนของ Back-propagation Algorithm มีดังนี้
1) กำหนดค่าอัตราเร็วในการเรียนรู้ (Rate Parameter:r)
2) สำหรับแต่ละตัวอย่างอินพุตให้ทำตามขั้นตอนต่อไปนี้จนกว่าได้ระดับ performance ที่ต้องการ
(1) คำนวณหาค่าเอาต์พุตโดยใช้ค่าน้ำหนักเริ่มต้นซึ่งอาจได้จากการสุ่ม
(2) คำนวณหาค่า Beta : แทนประโยชน์ที่จะได้รับสำหรับการเปลี่ยนค่าเอาต์พุตของแต่ละโหนด
(3) คำนวณค่าน้ำหนักที่เปลี่ยนแปลงไปสำหรับในทุกน้ำหนัก
(4) เพิ่มค่าน้ำหนักที่เปลี่ยนแปล สำหรับตัวอย่างอินพุตทั้งหมด และเปลี่ยนค่าน้ำหนัก
เครือข่ายเชิงเส้น (Linear Networks) โมเดลเชิงเส้นสำหรับโครงข่ายประสาทเทียม
โมเดลเชิงเส้นเป็นองค์ประกอบหลักของการแปลด้วยเครื่องทางสถิติ การแปล x ที่เป็นไปได้ของประโยคจะแสดงด้วยชุดของคุณสมบัติ hi (x) แต่ละคุณลักษณะจะมีการถ่วงน้ำหนักโดยพารามิเตอร์ λi เพื่อให้ได้คะแนนโดยรวม ละเว้นฟังก์ชันเลขชี้กำลังที่เราเคยใช้ก่อนหน้านี้เพื่อเปลี่ยนรูปแบบเชิงเส้นให้เป็นแบบจำลองเชิงเส้นลอจิกสูตรต่อไปนี้จะรวมรูปแบบขึ้น
กราฟิกโดยทั่วไปสามารถแสดงรูปแบบเชิงเส้นโดยเครือข่ายที่มีการป้อนข้อมูลค่าคุณลักษณะ โหนดลูกศรมีน้ำหนักและคะแนนเป็นโหนดขาออกตามรูปข้างล่าง ส่วนใหญ่เราใช้โมเดลเชิงเส้นเพื่อรวมองค์ประกอบต่างๆของระบบการแปลด้วยเครื่องเช่นรูปแบบภาษารูปแบบการแปลวลีรูปแบบการเรียงลำดับใหม่ และคุณสมบัติต่างๆเช่นความยาวของประโยคหรือระยะทางข้ามแบบสะสมระหว่าง การแปลวลี วิธีการฝึกสอนกำหนดค่าน้ำหนัก λi ให้กับแต่ละคุณลักษณะดังกล่าว hi (x) ซึ่งหมายถึงความสำคัญในการให้คะแนนการแปลที่ดีขึ้น ในการแปลด้วยเครื่องทางสถิตินี้เรียกว่าการปรับแต่ง อย่างไรก็ตามโมเดลเชิงเส้นไม่อนุญาตให้เรากำหนดความสัมพันธ์ที่ซับซ้อนระหว่างคุณลักษณะต่างๆได้