เส้นทางการเรียนรู้จากบนลงล่าง: การเรียนรู้ของเครื่องสำหรับวิศวกรซอฟต์แวร์
แรงบันดาลใจจากมหาวิทยาลัยสัมภาษณ์การเข้ารหัส
การแปล: บราซิล โปรตุเกส | 中文版本 | ฝรั่งเศส | 臺灣華語版本
ฉัน (นัม วู) วางแผนที่จะเป็นวิศวกรแมชชีนเลิร์นนิงอย่างไร
มันคืออะไร?
นี่คือแผนการศึกษาหลายเดือนของฉันสำหรับการเปลี่ยนจากนักพัฒนามือถือ (เรียนรู้ด้วยตนเอง ไม่มีปริญญา CS) มาเป็นวิศวกรการเรียนรู้ของเครื่อง
เป้าหมายหลักของฉันคือการหาแนวทางในการศึกษา Machine Learning ที่เน้นการลงมือปฏิบัติจริงและสรุปคณิตศาสตร์ส่วนใหญ่สำหรับผู้เริ่มต้นเป็นหลัก แนวทางนี้แหวกแนวเพราะเป็นแนวทางจากบนลงล่างและคำนึงถึงผลลัพธ์เป็นอันดับแรกที่ออกแบบมาสำหรับวิศวกรซอฟต์แวร์
โปรดอย่าลังเลที่จะมีส่วนร่วมใด ๆ ที่คุณรู้สึกว่าจะทำให้ดีขึ้น
สารบัญ
- มันคืออะไร?
- ทำไมต้องใช้มัน?
- วิธีการใช้งาน
- ติดตามฉัน
- อย่ารู้สึกว่าคุณไม่ฉลาดพอ
- เกี่ยวกับทรัพยากรวิดีโอ
- ความรู้เบื้องต้น
- แผนรายวัน
- แรงจูงใจ
- ภาพรวมการเรียนรู้ของเครื่อง
- การเรียนรู้ของเครื่อง
- การเรียนรู้ของเครื่องเป็นเรื่องสนุก
- การเรียนรู้ของเครื่อง Inky
- การเรียนรู้ของเครื่อง: คู่มือเชิงลึก
- เรื่องราวและประสบการณ์
- อัลกอริธึมการเรียนรู้ของเครื่อง
- หนังสือเริ่มต้น
- หนังสือเชิงปฏิบัติ
- การแข่งขันความรู้ Kaggle
- ซีรีย์วิดีโอ
- มอค
- ทรัพยากร
- มาเป็นผู้สนับสนุนโอเพ่นซอร์ส
- เกมส์
- พอดแคสต์
- ชุมชน
- การประชุม
- คำถามสัมภาษณ์
- บริษัทที่ฉันชื่นชม
ทำไมต้องใช้มัน?
ฉันกำลังปฏิบัติตามแผนนี้เพื่อเตรียมพร้อมสำหรับงานในอนาคตอันใกล้นี้: วิศวกรการเรียนรู้ของเครื่อง ฉันสร้างแอปพลิเคชันมือถือแบบเนทีฟ (Android/iOS/Blackberry) มาตั้งแต่ปี 2011 ฉันจบปริญญาวิศวกรรมซอฟต์แวร์ ไม่ใช่ปริญญาวิทยาการคอมพิวเตอร์ ฉันมีความรู้พื้นฐานเล็กน้อยเกี่ยวกับแคลคูลัส พีชคณิตเชิงเส้น คณิตศาสตร์ไม่ต่อเนื่อง ความน่าจะเป็นและสถิติจากมหาวิทยาลัย ลองนึกถึงความสนใจของฉันในการเรียนรู้ของเครื่อง:
- ฉันสามารถเรียนรู้และรับงานด้าน Machine Learning โดยไม่ต้องเรียน CS Master และ PhD ได้หรือไม่
- “คุณทำได้ แต่มันยากกว่าตอนที่ผมลงสนามมาก” แดร็ค สมิธ
- ฉันจะได้งาน Machine Learning ในตำแหน่ง Software Programmer ที่ศึกษา Machine Learning ด้วยตนเองแต่ไม่มีโอกาสได้นำไปใช้ในที่ทำงานได้อย่างไร?
- "ฉันกำลังจ้างผู้เชี่ยวชาญด้านแมชชีนเลิร์นนิงให้กับทีมของฉัน และ MOOC ของคุณจะไม่ได้งานให้คุณ (มีข่าวที่ดีกว่าด้านล่าง) อันที่จริง ผู้คนจำนวนมากที่สำเร็จการศึกษาระดับปริญญาโทด้านแมชชีนเลิร์นนิงจะไม่ได้งานเพราะพวกเขา (และคนส่วนใหญ่ที่ ได้ดำเนินการ MOOCs) ไม่มีความเข้าใจอย่างลึกซึ้งที่จะช่วยฉันแก้ปัญหาได้” รอส ซี. เทย์เลอร์
- ทักษะใดบ้างที่จำเป็นสำหรับงานแมชชีนเลิร์นนิง?
- "อันดับแรก คุณต้องมีพื้นฐานด้าน CS/คณิตศาสตร์ที่ดี ML เป็นหัวข้อขั้นสูง ดังนั้นหนังสือเรียนส่วนใหญ่จึงถือว่าคุณมีพื้นฐานนั้น ประการที่สอง การเรียนรู้ของเครื่องเป็นหัวข้อทั่วไปที่มีความเชี่ยวชาญเฉพาะทางหลายอย่างที่ต้องใช้ทักษะเฉพาะตัว คุณอาจต้องการ เพื่อเรียกดูหลักสูตรของโปรแกรม MS ใน Machine Learning เพื่อดูหลักสูตร หลักสูตร และตำราเรียน" ยูริ
- "ความน่าจะเป็น การคำนวณแบบกระจาย และสถิติ" ไฮเดรนเยีย
ฉันพบว่าตัวเองอยู่ในยามลำบาก
AFAIK การเรียนรู้ของเครื่องมีสองด้าน:
- การเรียนรู้ของเครื่องเชิงปฏิบัติ: เป็นเรื่องเกี่ยวกับการค้นหาฐานข้อมูล การล้างข้อมูล การเขียนสคริปต์เพื่อแปลงข้อมูล และรวมอัลกอริธึมและไลบรารีเข้าด้วยกัน และการเขียนโค้ดที่กำหนดเองเพื่อบีบคำตอบที่เชื่อถือได้จากข้อมูลเพื่อตอบคำถามที่ยากและไม่ชัดเจน มันเป็นความยุ่งเหยิงของความเป็นจริง
- การเรียนรู้ของเครื่องเชิงทฤษฎี: นี่เป็นเรื่องเกี่ยวกับคณิตศาสตร์และนามธรรม รวมถึงสถานการณ์และขีดจำกัดในอุดมคติ และความงดงาม และการแจ้งถึงสิ่งที่เป็นไปได้ มันดูเรียบร้อยกว่าและสะอาดกว่ามาก และหลุดพ้นจากความยุ่งเหยิงแห่งความเป็นจริง
ฉันคิดว่าวิธีที่ดีที่สุดสำหรับระเบียบวิธีที่มุ่งเน้นการปฏิบัติคือ 'การปฏิบัติ — การเรียนรู้ — การปฏิบัติ' ซึ่งหมายความว่านักเรียนจะต้องเริ่มโครงการที่มีอยู่พร้อมปัญหาและแนวทางแก้ไข (การปฏิบัติ) ก่อน เพื่อทำความคุ้นเคยกับวิธีการแบบดั้งเดิมในพื้นที่ และบางทีอาจด้วย ด้วยวิธีการของพวกเขา หลังจากฝึกฝนด้วยประสบการณ์เบื้องต้นแล้ว พวกเขาสามารถอ่านหนังสือและศึกษาทฤษฎีพื้นฐาน ซึ่งทำหน้าที่เป็นแนวทางในการฝึกขั้นสูงในอนาคต และจะปรับปรุงกล่องเครื่องมือในการแก้ปัญหาเชิงปฏิบัติ การศึกษาทฤษฎียังช่วยเพิ่มความเข้าใจเกี่ยวกับประสบการณ์เบื้องต้นอีกด้วย และจะช่วยให้พวกเขาได้รับประสบการณ์ขั้นสูงได้เร็วยิ่งขึ้น
มันเป็นแผนระยะยาว ฉันต้องใช้เวลาหลายปี หากคุณคุ้นเคยกับสิ่งนี้มามากแล้ว คุณจะใช้เวลาน้อยลงมาก
วิธีการใช้งาน
ทุกอย่างด้านล่างนี้เป็นเพียงโครงร่าง และคุณควรจัดการรายการต่างๆ ตามลำดับจากบนลงล่าง
ฉันใช้มาร์กดาวน์แบบพิเศษของ Github รวมถึงรายการงานเพื่อตรวจสอบความคืบหน้า
ข้อมูลเพิ่มเติมเกี่ยวกับมาร์กดาวน์รส Github
ติดตามฉัน
ฉันเป็นวิศวกรซอฟต์แวร์ชาวเวียดนามที่มีความกระตือรือร้นและอยากทำงานในสหรัฐอเมริกา
ฉันทำงานเท่าไหร่ในระหว่างแผนนี้? ประมาณ 4 ชั่วโมง/คืนหลังจากทำงานหนักมาทั้งวัน
ฉันกำลังเดินทาง
อย่ารู้สึกว่าคุณไม่ฉลาดพอ
ฉันท้อแท้จากหนังสือและหลักสูตรที่บอกฉันทันทีที่เปิดอ่านว่าแคลคูลัสหลายตัวแปร สถิติเชิงอนุมาน และพีชคณิตเชิงเส้นเป็นข้อกำหนดเบื้องต้น ฉันยังไม่รู้จะเริ่มต้นอย่างไร…
- แล้วถ้าฉันไม่เก่งคณิตล่ะ
- 5 เทคนิคในการทำความเข้าใจอัลกอริธึมการเรียนรู้ของเครื่องโดยไม่มีพื้นฐานทางคณิตศาสตร์
- ฉันจะเรียนรู้การเรียนรู้ของเครื่องได้อย่างไร
เกี่ยวกับทรัพยากรวิดีโอ
วิดีโอบางรายการสามารถดูได้เฉพาะเมื่อลงทะเบียนในชั้นเรียน Coursera หรือ EdX เท่านั้น ดำเนินการได้ฟรี แต่บางครั้งชั้นเรียนไม่อยู่ในเซสชันอีกต่อไป ดังนั้นคุณต้องรอสองถึงสามเดือน จึงไม่สามารถเข้าถึงได้ ฉันจะเพิ่มวิดีโอเพิ่มเติมจากแหล่งที่มาสาธารณะและแทนที่วิดีโอหลักสูตรออนไลน์เมื่อเวลาผ่านไป ฉันชอบใช้การบรรยายของมหาวิทยาลัย
ความรู้เบื้องต้น
ส่วนสั้นๆ นี้ประกอบด้วยข้อกำหนดเบื้องต้น/ข้อมูลที่น่าสนใจที่ฉันต้องการเรียนรู้ก่อนเริ่มแผนรายวัน
แผนรายวัน
แต่ละวิชาไม่จำเป็นต้องใช้เวลาทั้งวันในการทำความเข้าใจอย่างถ่องแท้ และคุณสามารถเรียนได้หลายวิชาในหนึ่งวัน
ในแต่ละวัน ฉันจะเรียนหนึ่งวิชาจากรายการด้านล่าง อ่านให้ครอบคลุม จดบันทึก ทำแบบฝึกหัด และเขียนการใช้งานใน Python หรือ R
แรงจูงใจ
ภาพรวมการเรียนรู้ของเครื่อง
การเรียนรู้ของเครื่อง
การเรียนรู้ของเครื่องเป็นเรื่องสนุก
การเรียนรู้ของเครื่อง Inky
การเรียนรู้ของเครื่อง: คู่มือเชิงลึก
เรื่องราวและประสบการณ์
อัลกอริธึมการเรียนรู้ของเครื่อง
หนังสือเริ่มต้น
หนังสือเชิงปฏิบัติ
การแข่งขันความรู้ Kaggle
ซีรีย์วิดีโอ
มอค
ทรัพยากร
เกมส์
- Halite: เกมเข้ารหัส AI
- Vindinium: ความท้าทายในการเขียนโปรแกรม AI
- การแข่งขัน AI วิดีโอเกมทั่วไป
- การแข่งขัน Angry Birds AI
- เกมส์เอไอ
- การแข่งขันเกมต่อสู้ AI
- รหัสคัพ
- การแข่งขัน StarCraft AI ของนักเรียน
- การแข่งขัน AIIDE สตาร์คราฟต์ AI
- การแข่งขัน CIG StarCraft AI
- CodinGame - เกมบอท AI
กลายเป็นผู้มีส่วนร่วมโอเพ่นซอร์ส
พอดแคสต์
พอดแคสต์สำหรับผู้เริ่มต้น:
- เครื่องพูด
- การพูดนอกเรื่องเชิงเส้น
- ข้อมูลขี้ระแวง
- สัปดาห์นี้ในการเรียนรู้ของเครื่องและ AI
- คู่มือการเรียนรู้ของเครื่อง
บทสัมภาษณ์ผู้ปฏิบัติงาน ML นักวิจัย และ Kagglers เกี่ยวกับการเดินทางของพวกเขา
- Chai Time วิทยาศาสตร์ข้อมูล เสียง การเขียนบทความ
- การเรียนรู้ของเครื่องสำหรับผู้เริ่มต้น - บทสัมภาษณ์ เสียง
พอดแคสต์ขั้นสูง "เพิ่มเติม"
- อนุพันธ์บางส่วน
- การแสดงข้อมูล O'Reilly
- ไม่ใช่ค่าเบี่ยงเบนมาตรฐานมากนัก
พอดแคสต์ที่ต้องคิดนอกกรอบ:
ชุมชน
โครา
- การเรียนรู้ของเครื่อง
- สถิติ
- การทำเหมืองข้อมูล
เรดดิต
- การเรียนรู้ของเครื่อง
- คอมพิวเตอร์วิทัศน์
- ภาษาธรรมชาติ
- วิทยาศาสตร์ข้อมูล
- ข้อมูลขนาดใหญ่
- สถิติ
ข้อมูลเทา
ข่าวการเรียนรู้เชิงลึก
เคนักเก็ต
การประชุม
- ระบบประมวลผลข้อมูลประสาท (NIPS)
- การประชุมนานาชาติว่าด้วยการนำเสนอการเรียนรู้ (ICLR)
- สมาคมเพื่อความก้าวหน้าของปัญญาประดิษฐ์ (AAAI)
- การประชุม IEEE เรื่อง Computational Intelligence and Games (CIG)
- การประชุมนานาชาติ IEEE เรื่อง Machine Learning และ Applications (ICMLA)
- การประชุมนานาชาติเรื่องการเรียนรู้ของเครื่อง (ICML)
- การประชุมร่วมระหว่างประเทศด้านปัญญาประดิษฐ์ (IJCAI)
- สมาคมภาษาศาสตร์คอมพิวเตอร์ (ACL)
คำถามสัมภาษณ์
บริษัทที่ฉันชื่นชม