- คำศัพท์ (A ถึง D)
- การควบคุมความสามารถของ AI
- AIOps
- อัลบั้ม
- ประสิทธิภาพของสินทรัพย์
- ตัวเข้ารหัสอัตโนมัติ
- การขยายพันธุ์หลัง
- ทฤษฎีบทเบย์
- ข้อมูลขนาดใหญ่
- Chatbot: คู่มือสำหรับผู้เริ่มต้น
- การคิดเชิงคำนวณ
- วิสัยทัศน์คอมพิวเตอร์
- เมทริกซ์ความสับสน
- เครือข่ายประสาทเทียม
- cybersecurity
- ผ้าข้อมูล
- การเล่าเรื่องข้อมูล
- ข้อมูลวิทยาศาสตร์
- คลังข้อมูล
- ต้นไม้ตัดสินใจ
- Deepfakes
- การเรียนรู้ลึก ๆ
- การเรียนรู้การเสริมแรงเชิงลึก
- devops
- DevSecOps
- แบบจำลองการแพร่กระจาย
- ดิจิตอลแฝด
- การลดขนาด
- คำศัพท์ (E ถึง K)
- เอดจ์ไอ
- อารมณ์ AI
- การเรียนรู้ทั้งมวล
- การแฮ็กอย่างมีจริยธรรม
- ETL
- AI ที่อธิบายได้
- สหพันธ์การเรียนรู้
- ฟินอ๊อฟ
- กำเนิด AI
- เครือข่ายผู้ให้กำเนิด
- กำเนิดเทียบกับการเลือกปฏิบัติ
- ไล่โทนสี
- โคตรไล่ระดับ
- การเรียนรู้ไม่กี่ช็อต
- การจำแนกรูปภาพ
- การดำเนินงานด้านไอที (ITOps)
- ระบบอัตโนมัติของเหตุการณ์
- วิศวกรรมอิทธิพล
- K-หมายถึงการจัดกลุ่ม
- K-เพื่อนบ้านที่ใกล้ที่สุด
- คำศัพท์ (L ถึง Q)
- คำศัพท์ (R ถึง Z)
- การเรียนรู้เสริมแรง
- AI ที่มีความรับผิดชอบ
- อาร์แอลเอชเอฟ
- ระบบอัตโนมัติของกระบวนการหุ่นยนต์
- มีโครงสร้าง vs ไม่มีโครงสร้าง
- การวิเคราะห์ความเชื่อมั่น
- อยู่ภายใต้การดูแล vs ไม่ได้รับการดูแล
- สนับสนุนเครื่องเวกเตอร์
- ข้อมูลสังเคราะห์
- สื่อสังเคราะห์
- การจัดประเภทข้อความ
- TinyML
- ถ่ายทอดการเรียนรู้
- เครือข่ายประสาทหม้อแปลง
- การทดสอบของทัวริง
- การค้นหาความคล้ายคลึงกันของเวกเตอร์
AI 101
Gradient Descent คืออะไร?
สารบัญ
Gradient Descent คืออะไร?
หากคุณเคยอ่านเกี่ยวกับวิธีการฝึกฝนโครงข่ายประสาทเทียม คุณคงเคยเจอคำว่า "การไล่ระดับสีแบบไล่ระดับ" มาก่อนอย่างแน่นอน ไล่ระดับโคตร เป็นวิธีการหลักในการเพิ่มประสิทธิภาพการทำงานของโครงข่ายประสาทเทียม ซึ่งช่วยลดอัตราการสูญเสีย/ข้อผิดพลาดของเครือข่าย อย่างไรก็ตาม ผู้ที่เพิ่งเริ่มเรียนรู้เกี่ยวกับ Machine Learning อาจเข้าใจยากสักหน่อย และบทความนี้จะพยายามช่วยให้คุณมีสัญชาตญาณที่ดีเกี่ยวกับวิธีการทำงานของการไล่ระดับสี
การไล่ระดับสีเป็นอัลกอริทึมการเพิ่มประสิทธิภาพ ใช้เพื่อปรับปรุงประสิทธิภาพของเครือข่ายนิวรัลโดยการปรับแต่งพารามิเตอร์ของเครือข่าย เพื่อให้ความแตกต่างระหว่างการคาดการณ์ของเครือข่ายและค่าจริง/ที่คาดไว้ของเครือข่าย (เรียกว่าการสูญเสีย) มีค่าน้อยที่สุดเท่าที่จะเป็นไปได้ การไล่ระดับสีใช้ค่าเริ่มต้นของพารามิเตอร์และใช้การดำเนินการตามแคลคูลัสเพื่อปรับค่าให้เป็นค่าที่จะทำให้เครือข่ายมีความแม่นยำมากที่สุด คุณไม่จำเป็นต้องรู้แคลคูลัสมากมายเพื่อทำความเข้าใจว่าเกรเดียนต์โคตรทำงานอย่างไร แต่คุณต้องมีความเข้าใจเกี่ยวกับการไล่ระดับสี
การไล่ระดับสีคืออะไร?
สมมติว่ามีกราฟที่แสดงจำนวนข้อผิดพลาดที่โครงข่ายประสาทเทียมสร้างขึ้น ด้านล่างของกราฟแสดงจุดที่ข้อผิดพลาดต่ำที่สุด ในขณะที่ด้านบนของกราฟคือจุดที่ข้อผิดพลาดสูงที่สุด เราต้องการย้ายจากด้านบนของกราฟลงมาด้านล่าง การไล่ระดับสีเป็นเพียงวิธีการวัดความสัมพันธ์ระหว่างข้อผิดพลาดและน้ำหนักของโครงข่ายประสาทเทียม ความสัมพันธ์ระหว่างสองสิ่งนี้ สามารถเขียนกราฟเป็นความชันได้ด้วยน้ำหนักที่ไม่ถูกต้องทำให้เกิดข้อผิดพลาดมากขึ้น ความชันของความชัน/การไล่ระดับสีแสดงถึงความรวดเร็วในการเรียนรู้ของโมเดล
ความชันที่ชันขึ้นหมายถึงการลดข้อผิดพลาดลงอย่างมาก และโมเดลกำลังเรียนรู้อย่างรวดเร็ว ในขณะที่หากความชันเป็นศูนย์ แสดงว่าโมเดลอยู่บนที่ราบสูงและไม่ได้เรียนรู้ เราสามารถเลื่อนลงมาตามความชันเพื่อให้มีข้อผิดพลาดน้อยลงโดยการคำนวณการไล่ระดับสี ทิศทางการเคลื่อนที่ (การเปลี่ยนแปลงพารามิเตอร์ของเครือข่าย) สำหรับแบบจำลองของเรา
ลองเปลี่ยนคำอุปมาเล็กน้อยและจินตนาการถึงเนินเขาและหุบเขา เราต้องการไปที่ด้านล่างของเนินเขาและค้นหาส่วนของหุบเขาที่แสดงถึงการสูญเสียที่ต่ำที่สุด เมื่อเราเริ่มต้นที่ยอดเนิน เราสามารถก้าวลงจากเนินสูงๆ และมั่นใจว่าเรากำลังมุ่งหน้าไปยังจุดต่ำสุดในหุบเขา
อย่างไรก็ตาม เมื่อเราเข้าใกล้จุดต่ำสุดในหุบเขา ก้าวของเราก็จะต้องเล็กลง มิฉะนั้น เราจะเลยจุดต่ำสุดที่แท้จริงไปได้ ในทำนองเดียวกัน เป็นไปได้ว่าเมื่อทำการปรับน้ำหนักของเครือข่าย การปรับนั้นสามารถดึงให้ห่างจากจุดที่สูญเสียน้อยที่สุดได้ ดังนั้น การปรับค่าจึงต้องมีขนาดเล็กลงเมื่อเวลาผ่านไป ในบริบทของการลงเขาไปยังจุดที่มีความสูญเสียน้อยที่สุด การไล่ระดับสีคือเวกเตอร์/คำแนะนำที่ให้รายละเอียดเส้นทางที่เราควรเดินไปและขนาดของก้าวที่เราควรจะเป็น
ตอนนี้เรารู้แล้วว่าการไล่ระดับสีเป็นคำแนะนำที่บอกเราว่าควรไปในทิศทางใด (ควรปรับปรุงค่าสัมประสิทธิ์ใด) และขั้นตอนใหญ่แค่ไหนที่เราควรดำเนินการ (ควรปรับปรุงค่าสัมประสิทธิ์เท่าใด) เราสามารถสำรวจวิธีการคำนวณการไล่ระดับสีได้
การคำนวณ Gradients & Gradient Descent
เพื่อดำเนินการไล่ระดับสีขั้นแรกต้องคำนวณการไล่ระดับสี ในการสั่งซื้อ เพื่อคำนวณการไล่ระดับสีเราจำเป็นต้องทราบฟังก์ชันการสูญเสีย/ต้นทุน เราจะใช้ฟังก์ชันต้นทุนเพื่อกำหนดอนุพันธ์ ในแคลคูลัส อนุพันธ์หมายถึงความชันของฟังก์ชัน ณ จุดที่กำหนด ดังนั้นโดยพื้นฐานแล้ว เราก็แค่คำนวณความชันของเนินตาม ฟังก์ชันการสูญเสีย. เรากำหนดการสูญเสียโดยใช้ค่าสัมประสิทธิ์ผ่านฟังก์ชันการสูญเสีย หากเราแสดงฟังก์ชันการสูญเสียเป็น "f" เราสามารถระบุได้ว่าสมการสำหรับการคำนวณการสูญเสียเป็นดังนี้ (เราแค่เรียกใช้ค่าสัมประสิทธิ์ผ่านฟังก์ชันต้นทุนที่เราเลือก):
การสูญเสีย = ฉ(ค่าสัมประสิทธิ์)
จากนั้นเราจะคำนวณอนุพันธ์หรือกำหนดความชัน การหาอนุพันธ์ของการขาดทุนจะบอกเราว่าทิศทางไหนขึ้นหรือลงทางชัน โดยให้สัญญาณที่เหมาะสมแก่เราในการปรับค่าสัมประสิทธิ์ของเรา เราจะแสดงทิศทางที่เหมาะสมเป็น "เดลต้า"
เดลต้า = derivative_function (ขาดทุน)
ตอนนี้เราได้พิจารณาแล้วว่าทิศทางใดเป็นขาลงไปสู่จุดที่สูญเสียน้อยที่สุด ซึ่งหมายความว่าเราสามารถอัปเดตค่าสัมประสิทธิ์ในพารามิเตอร์โครงข่ายประสาทเทียมและหวังว่าจะลดการสูญเสียได้ เราจะอัปเดตค่าสัมประสิทธิ์ตามค่าสัมประสิทธิ์ก่อนหน้าลบค่าการเปลี่ยนแปลงที่เหมาะสมตามที่กำหนดโดยทิศทาง (เดลต้า) และอาร์กิวเมนต์ที่ควบคุมขนาดของการเปลี่ยนแปลง (ขนาดของขั้นตอนของเรา) อาร์กิวเมนต์ที่ควบคุมขนาดของการอัปเดตเรียกว่า "อัตราการเรียนรู้” และเราจะแทนมันด้วยคำว่า “อัลฟ่า”
ค่าสัมประสิทธิ์ = ค่าสัมประสิทธิ์ – (อัลฟา * เดลต้า)
จากนั้นเราก็ทำขั้นตอนนี้ซ้ำจนกว่าเครือข่ายจะมาบรรจบกันที่จุดสูญเสียต่ำสุด ซึ่งควรจะอยู่ใกล้ศูนย์
การเลือกค่าที่เหมาะสมสำหรับอัตราการเรียนรู้ (อัลฟ่า) เป็นสิ่งสำคัญมาก อัตราการเรียนรู้ที่เลือกต้องไม่น้อยหรือใหญ่เกินไป โปรดจำไว้ว่าเมื่อเราเข้าใกล้จุดสูญเสียต่ำสุด ก้าวของเราต้องเล็กลง มิฉะนั้นเราจะเลยจุดที่สูญเสียต่ำสุดจริงและจบลงที่อีกด้านหนึ่ง จุดที่สูญเสียน้อยที่สุดนั้นมีขนาดเล็ก และหากอัตราการเปลี่ยนแปลงของเราสูงเกินไป ข้อผิดพลาดอาจจบลงด้วยการเพิ่มขึ้นอีกครั้ง หากขนาดของขั้นตอนใหญ่เกินไป ประสิทธิภาพของเครือข่ายจะยังคงเด้งไปมารอบๆ จุดที่สูญเสียน้อยที่สุด เกินขีดจำกัดในด้านหนึ่งและอีกด้านหนึ่ง หากสิ่งนี้เกิดขึ้น เครือข่ายจะไม่มีวันบรรจบกับการกำหนดค่าน้ำหนักที่เหมาะสมที่สุดอย่างแท้จริง
ในทางตรงกันข้าม หากอัตราการเรียนรู้น้อยเกินไป เครือข่ายอาจใช้เวลานานเป็นพิเศษในการหาค่าน้ำหนักที่เหมาะสม
ประเภทของการไล่ระดับสี
ตอนนี้เราเข้าใจแล้วว่าการไล่ระดับสีแบบไล่ระดับสีทำงานอย่างไรโดยทั่วไป เรามาดูบางส่วนที่แตกต่างกัน ประเภทของการไล่ระดับสี.
Batch Gradient Descent: รูปแบบของ Gradient Descent นี้ทำงานผ่านตัวอย่างการฝึกทั้งหมดก่อนที่จะอัปเดตค่าสัมประสิทธิ์ การไล่ระดับสีแบบไล่ระดับสีประเภทนี้น่าจะเป็นรูปแบบการลงแบบไล่ระดับสีที่มีประสิทธิภาพมากที่สุดในการคำนวณ เนื่องจากน้ำหนักจะได้รับการอัปเดตเมื่อประมวลผลชุดทั้งหมดแล้วเท่านั้น ซึ่งหมายความว่ามีการอัปเดตทั้งหมดน้อยลง อย่างไรก็ตาม หากชุดข้อมูลมีตัวอย่างการฝึกจำนวนมาก การไล่ระดับสีเป็นชุดอาจทำให้การฝึกใช้เวลานาน
Stochastic Gradient Descent: ใน Stochastic Gradient Descent จะมีการประมวลผลตัวอย่างการฝึกอบรมเดียวสำหรับการวนซ้ำของการไล่ระดับสีและการอัปเดตพารามิเตอร์ทุกครั้ง สิ่งนี้เกิดขึ้นกับทุกตัวอย่างการฝึกอบรม เนื่องจากมีการประมวลผลตัวอย่างการฝึกอบรมเพียงตัวอย่างเดียวก่อนที่จะมีการอัปเดตพารามิเตอร์ จึงมีแนวโน้มที่จะรวมกันเร็วกว่า Batch Gradient Descent เนื่องจากมีการอัปเดตเร็วกว่า อย่างไรก็ตาม เนื่องจากกระบวนการต้องดำเนินการกับทุกรายการในชุดการฝึก จึงอาจใช้เวลาค่อนข้างนานในการดำเนินการให้เสร็จสิ้นหากชุดข้อมูลมีขนาดใหญ่ และควรใช้ประเภทการไล่ระดับสีแบบไล่ระดับสีประเภทใดประเภทหนึ่งหากต้องการ
Mini-Batch Gradient Descent: Mini-Batch Gradient Descent ทำงานโดยแยกชุดข้อมูลการฝึกอบรมทั้งหมดออกเป็นส่วนย่อย จะสร้างชุดย่อยขนาดเล็กที่รันผ่านเครือข่าย และเมื่อชุดย่อยถูกใช้เพื่อคำนวณข้อผิดพลาด ค่าสัมประสิทธิ์จะถูกปรับปรุง Mini-batch Gradient Descent เป็นจุดกึ่งกลางระหว่าง Stochastic Gradient Descent และ Batch Gradient Descent โมเดลได้รับการอัปเดตบ่อยกว่าในกรณีของ Batch Gradient Descent ซึ่งหมายถึงการบรรจบกันของพารามิเตอร์ที่เหมาะสมที่สุดของโมเดลเร็วขึ้นเล็กน้อยและมีประสิทธิภาพมากขึ้น นอกจากนี้ยังมีประสิทธิภาพในการคำนวณมากกว่า Stochastic Gradient Descent
บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม
คุณอาจชอบ
การเรียนรู้เชิงลึกกับโครงข่ายประสาทเทียม
โมเดลสมองคอมพิวเตอร์แบบใหม่สามารถพัฒนาการวิจัย AI ได้
ทีมพัฒนาวิธีการเปรียบเทียบโครงข่ายประสาทเทียม
เทคโนโลยีฮาร์ดแวร์ AI เลียนแบบการเปลี่ยนแปลงในโทโพโลยีโครงข่ายประสาทเทียม
การรับรองความถูกต้องทางชีวภาพโดยการบดฟันของคุณ
ส่วนประกอบของคอมพิวเตอร์เลียนแบบการทำงานของสมองมนุษย์