Keras - ภาพรวมของการเรียนรู้เชิงลึก
การเรียนรู้เชิงลึกเป็นส่วนย่อยของการเรียนรู้ของเครื่องที่กำลังพัฒนา การเรียนรู้เชิงลึกเกี่ยวข้องกับการวิเคราะห์ข้อมูลที่ป้อนเข้าทีละชั้นโดยแต่ละชั้นจะแยกข้อมูลระดับที่สูงขึ้นเกี่ยวกับอินพุต
ให้เราใช้สถานการณ์ง่ายๆในการวิเคราะห์ภาพ สมมติว่าภาพอินพุตของคุณแบ่งออกเป็นตารางสี่เหลี่ยมพิกเซล ตอนนี้เลเยอร์แรกเป็นนามธรรมพิกเซล ชั้นที่สองเข้าใจขอบในภาพ ชั้นถัดไปสร้างโหนดจากขอบ จากนั้นถัดไปจะค้นหากิ่งก้านจากโหนด ในที่สุดเลเยอร์เอาต์พุตจะตรวจจับวัตถุเต็ม ที่นี่กระบวนการแยกคุณลักษณะจะเริ่มจากเอาต์พุตของเลเยอร์หนึ่งไปยังอินพุตของเลเยอร์ถัดไปที่ตามมา
ด้วยการใช้แนวทางนี้เราสามารถประมวลผลคุณสมบัติจำนวนมากซึ่งทำให้การเรียนรู้เชิงลึกเป็นเครื่องมือที่ทรงพลังมาก อัลกอริทึมการเรียนรู้เชิงลึกยังมีประโยชน์สำหรับการวิเคราะห์ข้อมูลที่ไม่มีโครงสร้าง ให้เราเรียนรู้พื้นฐานของการเรียนรู้เชิงลึกในบทนี้
โครงข่ายประสาทเทียม
แนวทางหลักของการเรียนรู้เชิงลึกที่ได้รับความนิยมมากที่สุดคือการใช้ "โครงข่ายประสาทเทียม" (ANN) พวกเขาได้รับแรงบันดาลใจจากแบบจำลองของสมองมนุษย์ซึ่งเป็นอวัยวะที่ซับซ้อนที่สุดในร่างกายของเรา สมองของมนุษย์ประกอบด้วยเซลล์เล็ก ๆ มากกว่า 90 พันล้านเซลล์ที่เรียกว่า "เซลล์ประสาท" เซลล์ประสาทเชื่อมต่อระหว่างกันผ่านใยประสาทที่เรียกว่า“ แอกซอน” และ“ เดนไดรต์” บทบาทหลักของแอกซอนคือการส่งข้อมูลจากเซลล์ประสาทหนึ่งไปยังอีกเซลล์หนึ่งซึ่งเชื่อมต่ออยู่
ในทำนองเดียวกันบทบาทหลักของเดนไดรต์คือการรับข้อมูลที่ส่งโดยแอกซอนของเซลล์ประสาทอื่นที่เชื่อมต่ออยู่ เซลล์ประสาทแต่ละเซลล์ประมวลผลข้อมูลขนาดเล็กแล้วส่งผลลัพธ์ไปยังเซลล์ประสาทอื่นและกระบวนการนี้จะดำเนินต่อไป นี่เป็นวิธีการพื้นฐานที่สมองของมนุษย์ใช้ในการประมวลผลข้อมูลจำนวนมากเช่นคำพูดภาพ ฯลฯ และดึงข้อมูลที่เป็นประโยชน์ออกมา
จากแบบจำลองนี้เครือข่ายประสาทเทียม (ANN) ถูกคิดค้นโดยนักจิตวิทยา Frank Rosenblattในปีพ. ศ. 2501 ANN ประกอบด้วยหลายโหนดซึ่งคล้ายกับเซลล์ประสาท โหนดเชื่อมต่อกันอย่างแน่นหนาและจัดเป็นชั้นต่างๆที่ซ่อนอยู่ เลเยอร์อินพุตรับข้อมูลอินพุตและข้อมูลจะผ่านเลเยอร์ที่ซ่อนอยู่อย่างน้อยหนึ่งเลเยอร์ตามลำดับและในที่สุดเลเยอร์เอาต์พุตจะทำนายสิ่งที่เป็นประโยชน์เกี่ยวกับข้อมูลอินพุต ตัวอย่างเช่นอินพุตอาจเป็นรูปภาพและเอาต์พุตอาจเป็นสิ่งที่ระบุในภาพพูดว่า“ แมว”
เซลล์ประสาทเดี่ยว (เรียกว่า perceptron ใน ANN) สามารถแสดงได้ดังนี้ -
ที่นี่
การป้อนข้อมูลหลายรายการพร้อมกับน้ำหนักหมายถึงเดนไดรต์
ผลรวมของอินพุตพร้อมกับฟังก์ชันกระตุ้นแสดงถึงเซลล์ประสาท Sum อันที่จริงหมายถึงค่าที่คำนวณของอินพุตทั้งหมดและฟังก์ชันการเปิดใช้งานแสดงถึงฟังก์ชันซึ่งแก้ไขไฟล์ Sum ค่าเป็น 0, 1 หรือ 0 ถึง 1
เอาต์พุตจริงแสดงถึงแอกซอนและเซลล์ประสาทจะได้รับเอาต์พุตในชั้นถัดไป
ให้เราทำความเข้าใจโครงข่ายประสาทเทียมประเภทต่างๆในส่วนนี้
Perceptron หลายชั้น
Multi-Layer perceptron เป็นรูปแบบที่ง่ายที่สุดของ ANN ประกอบด้วยเลเยอร์อินพุตเดียวเลเยอร์ที่ซ่อนอยู่อย่างน้อยหนึ่งเลเยอร์และสุดท้ายเป็นเลเยอร์เอาต์พุต เลเยอร์ประกอบด้วยคอลเลกชันของเพอร์เซปตรอน ชั้นอินพุตเป็นคุณสมบัติอย่างน้อยหนึ่งอย่างของข้อมูลอินพุต ทุกชั้นที่ซ่อนอยู่ประกอบด้วยเซลล์ประสาทอย่างน้อยหนึ่งเซลล์และประมวลผลลักษณะบางอย่างของคุณลักษณะและส่งข้อมูลที่ประมวลผลไปยังชั้นที่ซ่อนถัดไป กระบวนการเลเยอร์เอาต์พุตรับข้อมูลจากเลเยอร์สุดท้ายที่ซ่อนอยู่และส่งผลลัพธ์ออกมาในที่สุด
Convolutional Neural Network (CNN)
Convolutional neural network เป็นหนึ่งใน ANN ที่ได้รับความนิยมมากที่สุด มีการใช้กันอย่างแพร่หลายในด้านการจดจำรูปภาพและวิดีโอ มันขึ้นอยู่กับแนวคิดของ Convolution ซึ่งเป็นแนวคิดทางคณิตศาสตร์ มันเกือบจะคล้ายกับ Perceptron หลายชั้นยกเว้นว่ามันมีชุดของเลเยอร์คอนโวลูชั่นและเลเยอร์พูลก่อนชั้นเซลล์ประสาทที่ซ่อนอยู่อย่างเต็มที่ มีสามชั้นที่สำคัญ -
Convolution layer - เป็นหน่วยการสร้างหลักและทำงานด้านการคำนวณตามฟังก์ชัน Convolution
Pooling layer - จัดเรียงถัดจากเลเยอร์คอนโวลูชั่นและใช้เพื่อลดขนาดของอินพุตโดยลบข้อมูลที่ไม่จำเป็นออกเพื่อให้คำนวณได้เร็วขึ้น
Fully connected layer - จัดเรียงให้อยู่ถัดจากชุดของเลเยอร์การแปลงและการรวมกลุ่มและจำแนกข้อมูลเข้าเป็นหมวดหมู่ต่างๆ
CNN ธรรมดาสามารถแสดงได้ดังต่อไปนี้ -
ที่นี่
ใช้ Convolution และเลเยอร์พูล 2 ชุดและรับและประมวลผลอินพุต (เช่นรูปภาพ)
ใช้เลเยอร์เดียวที่เชื่อมต่ออย่างสมบูรณ์และใช้เพื่อส่งออกข้อมูล (เช่นการจำแนกประเภทของภาพ)
เครือข่ายประสาทที่เกิดซ้ำ (RNN)
Recurrent Neural Networks (RNN) มีประโยชน์ในการแก้ไขข้อบกพร่องใน ANN รุ่นอื่น ๆ ANN ส่วนใหญ่จำขั้นตอนจากสถานการณ์ก่อนหน้าไม่ได้และเรียนรู้ที่จะตัดสินใจตามบริบทในการฝึกอบรม ในขณะเดียวกัน RNN จัดเก็บข้อมูลในอดีตและการตัดสินใจทั้งหมดนำมาจากสิ่งที่ได้เรียนรู้จากอดีต
แนวทางนี้มีประโยชน์ในการจำแนกภาพเป็นหลัก บางครั้งเราอาจต้องมองไปในอนาคตเพื่อแก้ไขอดีต ในกรณีนี้ RNN แบบสองทิศทางจะเป็นประโยชน์ในการเรียนรู้จากอดีตและทำนายอนาคต ตัวอย่างเช่นเรามีตัวอย่างที่เขียนด้วยลายมือในหลายอินพุต สมมติว่าเรามีความสับสนในอินพุตหนึ่งเราจึงต้องตรวจสอบข้อมูลอื่น ๆ อีกครั้งเพื่อรับรู้บริบทที่ถูกต้องซึ่งใช้เวลาในการตัดสินใจจากอดีต
ขั้นตอนการทำงานของ ANN
ให้เราทำความเข้าใจขั้นตอนต่างๆของการเรียนรู้เชิงลึกก่อนแล้วเรียนรู้ว่า Keras ช่วยในกระบวนการเรียนรู้เชิงลึกได้อย่างไร
รวบรวมข้อมูลที่จำเป็น
การเรียนรู้เชิงลึกต้องใช้ข้อมูลอินพุตจำนวนมากเพื่อให้เรียนรู้และทำนายผลลัพธ์ได้สำเร็จ ดังนั้นก่อนอื่นให้รวบรวมข้อมูลให้ได้มากที่สุด
วิเคราะห์ข้อมูล
วิเคราะห์ข้อมูลและทำความเข้าใจข้อมูลเป็นอย่างดี จำเป็นต้องมีความเข้าใจที่ดีขึ้นเกี่ยวกับข้อมูลเพื่อเลือกอัลกอริทึม ANN ที่ถูกต้อง
เลือกอัลกอริทึม (แบบจำลอง)
เลือกอัลกอริทึมที่เหมาะสมที่สุดสำหรับประเภทของกระบวนการเรียนรู้ (เช่นการจัดประเภทรูปภาพการประมวลผลข้อความ ฯลฯ ) และข้อมูลอินพุตที่มี อัลกอริทึมแสดงโดยModelใน Keras อัลกอริทึมประกอบด้วยเลเยอร์อย่างน้อยหนึ่งเลเยอร์ แต่ละเลเยอร์ใน ANN สามารถแสดงด้วยKeras Layer ใน Keras
Prepare data - ประมวลผลกรองและเลือกเฉพาะข้อมูลที่ต้องการจากข้อมูล
Split data- แยกข้อมูลออกเป็นชุดข้อมูลการฝึกอบรมและการทดสอบ ข้อมูลการทดสอบจะถูกใช้เพื่อประเมินการคาดคะเนของอัลกอริทึม / โมเดล (เมื่อเครื่องเรียนรู้) และเพื่อตรวจสอบประสิทธิภาพของกระบวนการเรียนรู้
Compile the model- รวบรวมอัลกอริทึม / แบบจำลองเพื่อให้สามารถใช้ต่อไปเพื่อเรียนรู้โดยการฝึกอบรมและในที่สุดก็ทำการทำนาย ขั้นตอนนี้ต้องการให้เราเลือกฟังก์ชันการสูญเสียและเครื่องมือเพิ่มประสิทธิภาพ ฟังก์ชันการสูญเสียและเครื่องมือเพิ่มประสิทธิภาพใช้ในขั้นตอนการเรียนรู้เพื่อค้นหาข้อผิดพลาด (ส่วนเบี่ยงเบนจากผลลัพธ์จริง) และทำการปรับให้เหมาะสมเพื่อให้ข้อผิดพลาดลดลง
Fit the model - ขั้นตอนการเรียนรู้จริงจะทำในระยะนี้โดยใช้ชุดข้อมูลการฝึกอบรม
Predict result for unknown value - ทำนายผลลัพธ์สำหรับข้อมูลอินพุตที่ไม่รู้จัก (นอกเหนือจากข้อมูลการฝึกอบรมและการทดสอบที่มีอยู่)
Evaluate model - ประเมินแบบจำลองโดยการทำนายผลลัพธ์สำหรับข้อมูลการทดสอบและเปรียบเทียบการคาดการณ์กับผลลัพธ์จริงของข้อมูลการทดสอบ
Freeze, Modify or choose new algorithm- ตรวจสอบว่าการประเมินรูปแบบสำเร็จหรือไม่ ถ้าใช่ให้บันทึกอัลกอริทึมเพื่อวัตถุประสงค์ในการคาดการณ์ในอนาคต ถ้าไม่เช่นนั้นให้แก้ไขหรือเลือกอัลกอริทึม / โมเดลใหม่และสุดท้ายฝึกทำนายและประเมินโมเดลอีกครั้ง ทำซ้ำขั้นตอนจนกว่าจะพบอัลกอริทึม (แบบจำลอง) ที่ดีที่สุด
ขั้นตอนข้างต้นสามารถแสดงโดยใช้ผังงานด้านล่าง -