หลักสูตรนี้มุ่งเน้นไปที่คำถาม: เราจะคำนวณเมทริกซ์ด้วยความเร็วที่ยอมรับได้และความแม่นยำที่ยอมรับได้อย่างไร
หลักสูตรนี้สอนในหลักสูตรวิทยาศาสตรมหาบัณฑิตสาขาการวิเคราะห์ของมหาวิทยาลัยซานฟรานซิสโก ฤดูร้อนปี 2017 (สำหรับนักศึกษาระดับบัณฑิตศึกษาที่กำลังศึกษาเพื่อเป็นนักวิทยาศาสตร์ข้อมูล) หลักสูตรนี้สอนใน Python ด้วย Jupyter Notebooks โดยใช้ไลบรารีเช่น Scikit-Learn และ Numpy สำหรับบทเรียนส่วนใหญ่ เช่นเดียวกับ Numba (ไลบรารีที่คอมไพล์ Python เป็น C เพื่อประสิทธิภาพที่เร็วขึ้น) และ PyTorch (ทางเลือกอื่นแทน Numpy สำหรับ GPU) ในบทเรียนไม่กี่บทเรียน
สมุดบันทึกที่มาพร้อมกับสมุดบันทึกคือเพลย์ลิสต์วิดีโอการบรรยายที่มีอยู่บน YouTube หากคุณเคยสับสนกับการบรรยายหรือดำเนินเรื่องเร็วเกินไป ลองดูตอนต้นของวิดีโอถัดไป โดยฉันจะทบทวนแนวคิดจากการบรรยายครั้งก่อน ซึ่งมักจะอธิบายสิ่งต่างๆ จากมุมมองใหม่หรือด้วยภาพประกอบที่แตกต่างกัน และตอบคำถาม
คุณสามารถถามคำถามหรือแบ่งปันความคิดและแหล่งข้อมูลของคุณโดยใช้หมวดหมู่ พีชคณิตเชิงเส้นเชิงคำนวณ ในฟอรัมสนทนา fast.ai ของเรา
รายการต่อไปนี้ลิงก์ไปยังสมุดบันทึกในพื้นที่เก็บข้อมูลนี้ ซึ่งแสดงผลผ่านบริการ nbviewer หัวข้อที่ครอบคลุม:
เราเริ่มต้นด้วยภาพรวมระดับสูงของแนวคิดพื้นฐานบางประการในพีชคณิตเชิงเส้นเชิงตัวเลข
เราจะใช้ชุดข้อมูลกลุ่มข่าวสารเพื่อพยายามระบุหัวข้อของโพสต์ต่างๆ เราใช้เมทริกซ์คำศัพท์-เอกสารที่แสดงถึงความถี่ของคำศัพท์ในเอกสาร เราแยกตัวประกอบโดยใช้ NMF แล้วตามด้วย SVD
การใช้งาน SVD อีกประการหนึ่งคือการระบุตัวบุคคลและลบพื้นหลังของวิดีโอวงจรปิด เราจะกล่าวถึง PCA ที่แข็งแกร่ง ซึ่งใช้ SVD แบบสุ่ม และ SVD แบบสุ่มใช้การแยกตัวประกอบ LU
การตรวจจับแบบบีบอัดมีความสำคัญอย่างยิ่งต่อการช่วยให้สแกน CT ได้ด้วยรังสีที่ต่ำกว่า สามารถสร้างภาพขึ้นมาใหม่ได้โดยใช้ข้อมูลน้อยลง ที่นี่เราจะเรียนรู้เทคนิคและนำไปใช้กับภาพ CT
เราได้ใช้ SVD กับการสร้างแบบจำลองหัวข้อ การลบพื้นหลัง และการถดถอยเชิงเส้น SVD มีความเชื่อมโยงอย่างใกล้ชิดกับการสลายตัวของลักษณะเฉพาะ ดังนั้นตอนนี้เราจะได้เรียนรู้วิธีการคำนวณค่าลักษณะเฉพาะสำหรับเมทริกซ์ขนาดใหญ่ เราจะใช้ข้อมูล DBpedia ซึ่งเป็นชุดข้อมูลขนาดใหญ่ของลิงก์ Wikipedia เนื่องจาก eigenvector หลักในที่นี้ให้ความสำคัญกับหน้า Wikipedia ต่างๆ (นี่คือแนวคิดพื้นฐานของอัลกอริทึม PageRank ของ Google) เราจะดูวิธีการที่แตกต่างกัน 3 วิธีในการคำนวณ eigenvectors ของความซับซ้อนที่เพิ่มขึ้น (และประโยชน์ที่เพิ่มขึ้น!)
หลักสูตรนี้จัดโครงสร้างด้วยวิธีการสอน จากบนลงล่าง ซึ่งแตกต่างจากหลักสูตรคณิตศาสตร์ส่วนใหญ่ โดยทั่วไปแล้ว ในแนวทาง จากล่างขึ้นบน คุณจะต้องเรียนรู้ส่วนประกอบแยกกันทั้งหมดที่คุณจะใช้ก่อน จากนั้นจึงค่อยๆ สร้างส่วนประกอบเหล่านั้นให้เป็นโครงสร้างที่ซับซ้อนมากขึ้น ปัญหาคือนักเรียนมักจะสูญเสียแรงจูงใจ ไม่มีความรู้สึกถึง "ภาพรวม" และไม่รู้ว่าพวกเขาต้องการอะไร
ศาสตราจารย์เดวิด เพอร์กินส์จากมหาวิทยาลัยฮาร์วาร์ดมีหนังสือ Making Learning Whole ซึ่งเขาใช้กีฬาเบสบอลเป็นการเปรียบเทียบ เราไม่ต้องการให้เด็กๆ จดจำกฎกติกาเบสบอลทั้งหมดและเข้าใจรายละเอียดทางเทคนิคทั้งหมดก่อนที่จะปล่อยให้พวกเขาเล่นเกม แต่พวกเขาเริ่มเล่นด้วยความรู้สึกทั่วไป จากนั้นจึงค่อยๆ เรียนรู้กฎ/รายละเอียดเพิ่มเติมเมื่อเวลาผ่านไป
หากคุณเรียนหลักสูตรการเรียนรู้เชิงลึก fast.ai นั่นคือสิ่งที่เราใช้ คุณสามารถฟังเพิ่มเติมเกี่ยวกับปรัชญาการสอนของฉันได้ในบล็อกโพสต์นี้ หรือการพูดคุยที่ฉันให้ในงานมีตติ้ง Machine Learning ที่ซานฟรานซิสโก
ทั้งหมดที่กล่าวมา ไม่ต้องกังวลหากคุณไม่เข้าใจทุกอย่างในตอนแรก! คุณไม่ควรจะ เราจะเริ่มใช้ "กล่องดำ" หรือการสลายตัวของเมทริกซ์บางส่วนที่ยังไม่ได้อธิบาย จากนั้นเราจะเจาะลึกรายละเอียดระดับล่างในภายหลัง
ในการเริ่มต้น ให้มุ่งเน้นไปที่สิ่งที่ทำ ไม่ใช่สิ่งที่เป็นอยู่