วิศวกรการเรียนรู้ของเครื่อง: ตำนานกับความเป็นจริง

เผยแพร่แล้ว: 2018-05-08

แมชชีนเลิร์นนิงคือสิ่งที่ช่วยให้คอมพิวเตอร์มีความสามารถในการเรียนรู้และทำงานได้ดีขึ้นซ้ำๆ มุ่งเน้นไปที่การพัฒนาอัลกอริธึมแบบไดนามิกที่สามารถเปลี่ยนแปลง (แก้ไข) ตัวเองได้เมื่อเปิดเผยข้อมูลชุดใหม่ พูดง่ายๆ ก็คือ แมชชีนเลิร์นนิงเป็นสิ่งที่ทำให้ Facebook กลายเป็น "คุณต้องการแท็กเพื่อนของคุณในภาพนี้หรือไม่" ทุกครั้งที่คุณอัปโหลดรูปภาพกลุ่ม คนที่ทำงานเบื้องหลังเพื่อทำให้ทั้งหมดนี้เกิดขึ้นเป็นที่รู้จักอย่างถ่อมตนในนาม Machine Learning Engineers
ตอนนี้ เช่นเดียวกับโดเมนอื่นๆ ทั้งหมดภายใต้ขอบเขตกว้างของวิทยาศาสตร์ข้อมูล แมชชีนเลิร์นนิงก็มีความเข้าใจผิดมากมายเกี่ยวกับเรื่องนี้เช่นกัน และการเคลียร์สิ่งเหล่านี้คือเป้าหมายของเราในวันนี้ แต่ก่อนอื่น สิ่งสำคัญคือเราต้องแนะนำคุณเกี่ยวกับชีวิตของวิศวกรแมชชีนเลิร์นนิง รวมถึงทักษะและเครื่องมือที่พวกเขามีอยู่
วิศวกรการเรียนรู้ของเครื่อง
ก่อนอื่น เรามาแบ่งเขตการเรียนรู้ของเครื่องจากวิทยาศาสตร์ข้อมูลให้ชัดเจนก่อน

สารบัญ

วิศวกรการเรียนรู้ด้วยเครื่องเป็นนักวิทยาศาสตร์ข้อมูลหรือไม่?

วิทยาศาสตร์ข้อมูลเป็นคำศัพท์ที่ครอบคลุมทุกอย่าง แต่มีบางอย่างที่แตกต่างกันโดยพื้นฐานเกี่ยวกับวิธีการทำงานของแมชชีนเลิร์นนิง วิทยาศาสตร์ข้อมูลและนักวิเคราะห์สำรวจข้อมูลเป็นหลักและพยายามค้นหาแนวทางหรือแบบจำลองที่เหมาะสมกับความต้องการทางธุรกิจของพวกเขา
ในทางกลับกัน แมชชีนเลิร์นนิงเปลี่ยนโมเดลนี้โดยสิ้นเชิง วิศวกรแมชชีนเลิร์นนิงไม่ได้เกี่ยวข้องโดยตรงกับข้อมูล พวกเขารู้ผลลัพธ์ที่ต้องการ แต่ปล่อยให้อัลกอริทึมทำงานแทนพวกเขา แมชชีนเลิร์นนิงสร้างเครื่องที่เอาชนะแชมเปี้ยน Go หรือแท็กรูปภาพหรือแปลภาษาต่างๆ เป้าหมายเหล่านี้ไม่สามารถบรรลุได้ด้วยการสำรวจข้อมูลอย่างรอบคอบ ซึ่งแตกต่างจากในกรณีของการวิเคราะห์ข้อมูล มีข้อมูลมากมายให้สำรวจและมีมิติมากเกินไปที่จะจัดการ (เช่น อะไรคือมิติของเกม Go หรือภาษา) คำมั่นสัญญาของการเรียนรู้ด้วยเครื่องคือมันสร้างตัวแบบเอง: ทำการสำรวจข้อมูล และการปรับแต่ง
ความแตกต่างระหว่าง Data Science, Machine Learning และ Big Data!

ผลที่ได้คือ วิศวกรแมชชีนเลิร์นนิงไม่ได้ "สำรวจ" มากเท่ากับนักวิทยาศาสตร์ข้อมูลหรือนักวิเคราะห์ อย่างน้อยก็ไม่ใช่ในความหมายที่แท้จริงของคำ เป้าหมายของพวกเขาไม่ได้พบความสำคัญในข้อมูลของพวกเขา – พวกเขาเชื่อว่าความสำคัญอยู่ที่นั่นแล้ว แต่มีเป้าหมายที่จะสร้างโมเดล/อัลกอริทึม/เครื่องจักร/ระบบที่สามารถวิเคราะห์ข้อมูลและสร้างผลลัพธ์ได้ หรือเพื่อสร้างโครงข่ายประสาทเทียมที่ใช้งานได้ – ที่ปรับแต่งได้เพื่อให้ได้ผลลัพธ์ที่เชื่อถือได้ในชุดข้อมูลอินพุตใดๆ
มาดูประเด็นสำคัญเกี่ยวกับวิศวกรแมชชีนเลิร์นนิงกัน:

  • พวกเขามีทักษะด้านวิศวกรรมซอฟต์แวร์ที่แข็งแกร่งกว่านักวิเคราะห์/นักวิทยาศาสตร์ข้อมูลทั่วไป วิศวกรแมชชีนเลิร์นนิงทำงานร่วมกับวิศวกรที่รับผิดชอบในการบำรุงรักษาระบบการผลิต ดังนั้น พวกเขาจึงต้องเข้าใจวิธีการพัฒนาซอฟต์แวร์ แนวทางปฏิบัติที่คล่องตัว และเครื่องมือพัฒนาซอฟต์แวร์ที่ทันสมัยที่สุด พวกเขาจำเป็นต้องละเอียดถี่ถ้วนกับทุกอย่างตั้งแต่ IDE เช่น Eclipse หรือ IntelliJ ไปจนถึงส่วนประกอบของไปป์ไลน์การปรับใช้ซอฟต์แวร์
  • วิศวกรแมชชีนเลิร์นนิงมุ่งเน้นไปที่การทำให้ผลิตภัณฑ์ข้อมูลทำงานในการผลิต เป็นผลให้พวกเขาเป็นแบบองค์รวมในแนวทางของพวกเขา พวกเขาเป็นส่วนสำคัญของทีมพัฒนาซอฟต์แวร์ และด้วยเหตุนี้จึงรู้ว่าการทดสอบ A/B คืออะไร พวกเขาไม่เพียง "เข้าใจ" เท่านั้น แต่ยังรู้วิธีดำเนินการทดสอบ A/B ในระบบการผลิตอีกด้วย พวกเขาเข้าใจถึงความสำคัญของการบันทึกและความปลอดภัยต่อชะตากรรมของแอปพลิเคชันใดๆ
  • พวกเขาพร้อมที่จะตรวจสอบผลิตภัณฑ์ข้อมูลในการผลิต แม้ว่าจะมีทรัพยากรมากมายที่จะทำให้กระบวนการตรวจสอบแอปพลิเคชันเป็นไปโดยอัตโนมัติ แต่ข้อกำหนดของการเรียนรู้ของเครื่องยังก้าวไปอีกขั้น ไปป์ไลน์ข้อมูล โมเดล อัลกอริธึม หรือแม้แต่ระบบอาจล้าสมัยและจำเป็นต้องได้รับการฝึกอบรมใหม่ ระบบแมชชีนเลิร์นนิงสามารถบิดเบือนได้ง่ายโดยการประนีประนอมกับไปป์ไลน์ข้อมูลที่ป้อน ดังนั้นวิศวกรแมชชีนเลิร์นนิงจึงจำเป็นต้องรู้วิธีตรวจจับการประนีประนอมเหล่านี้เสมอ
Neural Networks for Dummies: คู่มือที่ครอบคลุม

ทักษะที่จำเป็นบางประการสำหรับวิศวกรการเรียนรู้ของเครื่องที่ประสบความสำเร็จ:

  • ความรู้พื้นฐานของวิทยาการคอมพิวเตอร์และการเขียนโปรแกรม
  • ความน่าจะเป็นและสถิติ
  • การสร้างแบบจำลองข้อมูลและการประเมิน
  • ค้นหาไลบรารี ML ที่เหมาะสมเพื่อใช้และปรับแต่งได้ตามต้องการ
  • วิศวกรรมซอฟต์แวร์และการสร้างแบบจำลอง

ตำนาน #1: วิศวกรแมชชีนเลิร์นนิงทำให้ระบบคิดเหมือนมนุษย์ทุกประการ

แม้ว่านี่จะเป็นเป้าหมายสุดท้าย แต่ก็ยังห่างไกลจากความจริงในขณะนี้ เปรียบเทียบกระบวนการเรียนรู้ของเด็กโดยสังเขปกับกระบวนการเรียนรู้ของเครื่องจักรโดยสังเขป และคุณจะรู้ว่าแมชชีนเลิร์นนิงยังอยู่ในช่วงเริ่มต้น ตัวอย่างเช่น ทารกไม่จำเป็นต้องสังเกตมนุษย์หลายร้อยคนสำหรับสิ่งง่ายๆ เช่น เดินหรือรับประทานอาหาร พวกเขาตั้งเป้าหมายของตนเอง รับรู้คนอื่นรอบตัว สร้างกลยุทธ์การเรียนรู้โดยสัญชาตญาณ และปรับแต่งผ่านการลองผิดลองถูกจนกว่าพวกเขาจะประสบความสำเร็จ แม้ว่าจะไม่มีการแทรกแซงหรือคำแนะนำจากภายนอกมากนัก แต่ทารกก็สามารถเรียนรู้วิธีการเดินพร้อมกับสิ่งจำเป็นอื่นๆ ได้สำเร็จ
ในทางกลับกัน แมชชีนต้องการการดูแลในแต่ละขั้นตอนของการเรียนรู้ นอกจากนี้ เด็กยังสามารถผสมผสานปัจจัยการผลิตต่างๆ ที่ได้รับจากอวัยวะรับสัมผัสต่างๆ อย่างเป็นองค์รวมและมีประสิทธิภาพ ตัวอย่างเช่น เด็กจะสามารถจดจำรูปภาพได้ในทันที และเข้าใจข้อความใดๆ ที่เขียนทับรูปภาพนั้นด้วย แต่ในการสอนเครื่องจักรในสิ่งเดียวกัน เราจำเป็นต้องมีอัลกอริธึมที่ซับซ้อนแยกจากกัน ซึ่งแต่ละขั้นตอนสำหรับการจดจำข้อมูล การระบุสัญญาณรบกวน และการทำความเข้าใจข้อความ

ความเชื่อ #2: ข้อมูลทั้งหมดมีประโยชน์สำหรับวิศวกรการเรียนรู้ของเครื่อง

ไม่ต้องสงสัยเลยว่าวิศวกรแมชชีนเลิร์นนิงก็ต้องการข้อมูลเช่นกัน แต่ไม่ใช่ทั้งหมดที่เกี่ยวข้องกับแมชชีนเลิร์นนิง พวกเขาต้องการข้อมูลที่เป็นตัวแทนซึ่งครอบคลุมรูปแบบและผลลัพธ์ที่ระบบจะต้องจัดการ ข้อมูลไม่ควรมีรูปแบบที่ไม่เกี่ยวข้องรวมอยู่ด้วย เนื่องจากโมเดลการเรียนรู้ของเครื่องจะสะท้อนรูปแบบที่ไม่เกี่ยวข้องเหล่านั้นและค้นหารูปแบบดังกล่าวในข้อมูลที่จะใช้ด้วย
ข้อมูลทั้งหมดที่คุณใช้สำหรับการฝึกอบรมจะต้องมีป้ายกำกับและติดป้ายกำกับอย่างดีด้วยคุณสมบัติที่ตรงกับคำถามที่คุณจะถามกับระบบการเรียนรู้ของเครื่อง ซึ่งต้องใช้ความพยายามอย่างมาก ข้อมูลทั้งหมดนี้ต้องมีป้ายกำกับที่ดีพร้อมคุณลักษณะที่ตรงกับคำถามที่คุณจะนำเสนอต่อระบบของคุณ นอกจากนี้ยังควรบริสุทธิ์และไม่มีข้อผิดพลาดหรือความไม่สอดคล้องกัน ดังนั้น ข้อมูลทั้งหมดไม่มีประโยชน์สำหรับวิศวกรการเรียนรู้ของเครื่อง – มีเพียงข้อมูลที่เกี่ยวข้องเท่านั้น!
จับตาดูสิ่งที่ยิ่งใหญ่ต่อไป: การเรียนรู้ของเครื่อง

ตำนาน #3: วิศวกรแมชชีนเลิร์นนิงไม่สนใจความรู้ที่มีอยู่แล้ว

ผู้เชี่ยวชาญในหลายสาขาเลิกใช้แมชชีนเลิร์นนิงเพราะใช้วิธี "กระดานชนวนเปล่า" ในอัลกอริธึมการเรียนรู้ของตน พวกเขาคิดว่าอัลกอริธึมการเรียนรู้ของเครื่องทุกเครื่องเริ่มต้นจากศูนย์กราวด์โดยไม่รู้ข้อมูลที่มีอยู่ก่อน วิศวกรแมชชีนเลิร์นนิงเข้าใจดีว่าการเรียนรู้เป็นกระบวนการที่ยาวนานซึ่งต้องมีการตรวจสอบอย่างต่อเนื่อง ไม่สามารถเลียนแบบได้เพียงแค่ป้อนข้อมูลลงในอัลกอริธึม ดังนั้น ไม่ใช่ว่าทุกอัลกอริทึมการเรียนรู้จะเริ่มต้นด้วยกระดานชนวนที่ว่างเปล่า บางคนใช้ชุดข้อมูลเพื่อปรับแต่งกลุ่มความรู้ที่มีอยู่แล้ว ท้ายที่สุดแล้ว ขึ้นอยู่กับข้อกำหนดทางธุรกิจขององค์กร
ความเชื่อที่ #4: โมเดลการเรียนรู้ของเครื่องที่ง่ายกว่านั้นแม่นยำกว่าเสมอ

สิ่งนี้สอดคล้องกับมีดโกนของ Occam แต่ขอบอกคุณว่ามีดโกนบอกแค่ว่าคำอธิบายที่ง่ายกว่านั้นดีกว่า ไม่ใช่เพราะเหตุใด เป็นที่ต้องการมากกว่าเพราะเข้าใจง่าย จดจำ และจัดการได้ง่ายกว่า อย่างไรก็ตาม เมื่อพูดถึงแมชชีนเลิร์นนิง บางครั้งสมมติฐานที่ง่ายที่สุดที่สอดคล้องกับข้อมูลนั้นแม่นยำน้อยกว่าสำหรับการทำนายมากกว่าสมมติฐานที่ซับซ้อนกว่า อัลกอริธึมการเรียนรู้ที่ทรงพลังที่สุดบางตัวส่งออกโมเดลที่ดูเหมือนซับซ้อนโดยไม่จำเป็น - บางครั้งก็เพิ่มต่อไปหลังจากที่พวกเขาได้พอดีกับข้อมูลอย่างถูกต้องแล้ว - แต่นั่นเป็นวิธีที่พวกเขาเอาชนะอัลกอริธึมที่ทรงพลังน้อยกว่า

เรียนรู้หลักสูตร ML ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับ Masters, Executive PGP หรือ Advanced Certificate Programs เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

คณิตศาสตร์เป็นสิ่งจำเป็นสำหรับวิศวกรแมชชีนเลิร์นนิงหรือไม่

เนื่องจากแมชชีนเลิร์นนิงเป็นส่วนหนึ่งของ Data Science ซึ่งเป็นการผสมผสานระหว่างวิทยาการคอมพิวเตอร์และคณิตศาสตร์ ความรู้ทางคณิตศาสตร์จึงเป็นสิ่งจำเป็นสำหรับวิศวกรแมชชีนเลิร์นนิ่ง คุณจะต้องมีความรู้เกี่ยวกับแนวคิดทางคณิตศาสตร์ เช่น พีชคณิตเชิงเส้น แคลคูลัส การเพิ่มประสิทธิภาพ ความน่าจะเป็น และสถิติ เพื่อสร้างและทำความเข้าใจอัลกอริทึมของแมชชีนเลิร์นนิง เพื่อให้แม่นยำยิ่งขึ้น คุณจะต้องมีแนวคิดพื้นฐานเกี่ยวกับการดำเนินการทางคณิตศาสตร์ที่ช่วยในการวิเคราะห์ข้อมูล แต่ส่วนที่ดีที่สุดคือคุณสามารถเรียนรู้แนวคิดพื้นฐานทางคณิตศาสตร์เหล่านี้ได้ตลอดเวลาในขณะที่เรียนรู้แมชชีนเลิร์นนิง และแนวคิดเหล่านี้ส่วนใหญ่เข้าใจได้ง่ายในระดับปานกลาง

นักวิทยาศาสตร์ข้อมูลต้องการการเรียนรู้ด้วยเครื่องหรือไม่?

เรารู้ว่า Data Science และ Machine Learning เชื่อมโยงกันอย่างแยกไม่ออก ดังนั้นแมชชีนเลิร์นนิงจะดีพอๆ กับข้อมูลที่ได้รับและความสามารถของอัลกอริทึมในการนำเข้า นักวิทยาศาสตร์ข้อมูลจะต้องมีความเข้าใจพื้นฐานเกี่ยวกับแมชชีนเลิร์นนิง นักวิทยาศาสตร์ข้อมูลดึงความรู้ที่เป็นประโยชน์จากข้อมูลจำนวนมหาศาล พวกเขาเปิดเผยแนวโน้มและช่วยในการพัฒนาโซลูชันเพื่อทำให้การดำเนินธุรกิจเป็นไปโดยอัตโนมัติ สำหรับการคาดการณ์และการประมาณการที่แม่นยำ นักวิทยาศาสตร์ข้อมูลต้องเข้าใจการเรียนรู้ของเครื่อง สิ่งนี้สามารถช่วยหุ่นยนต์ในการตัดสินที่ดีขึ้นและดำเนินการอย่างชาญฉลาดในแบบเรียลไทม์โดยไม่จำเป็นต้องมีปฏิสัมพันธ์กับมนุษย์ การทำเหมืองข้อมูลและการตีความกำลังถูกเปลี่ยนโดยการเรียนรู้ของเครื่อง ขั้นตอนทางสถิติแบบดั้งเดิมถูกแทนที่ด้วยชุดอัลกอริธึมทั่วไปแบบอัตโนมัติที่แม่นยำยิ่งขึ้น

ภาษาการเขียนโปรแกรมใดที่วิศวกร ML ต้องการ

Python เป็นภาษาที่ใช้มากที่สุดสำหรับการวิเคราะห์ข้อมูลและการเรียนรู้ของเครื่อง วิศวกรของ Machine Learning ส่วนใหญ่เลือก Python สำหรับความท้าทาย NLP R หรือ Python เป็นที่ต้องการสำหรับงานวิเคราะห์ความเชื่อมั่น และ Java ใช้สำหรับแอปพลิเคชัน Machine Learning อื่นๆ เช่น การรักษาความปลอดภัยและการตรวจจับภัยคุกคาม Python กลายเป็นภาษาที่ต้องการสำหรับการวิเคราะห์ข้อมูล การเรียนรู้ของเครื่อง และปัญญาประดิษฐ์ (AI) เนื่องจากมีระบบนิเวศของห้องสมุดที่กว้างขวาง ซึ่งช่วยให้ผู้เชี่ยวชาญด้าน Machine Learning สามารถเข้าถึง จัดการ แปลง และวิเคราะห์ข้อมูลได้อย่างง่ายดาย Python เป็นที่นิยมในหมู่นักพัฒนา Machine Learning เนื่องจากมีความเป็นอิสระของแพลตฟอร์ม ความเรียบง่าย และความสามารถในการอ่าน