ทุกอย่างเกี่ยวกับการเรียนรู้ของเครื่องในทางปฏิบัติจริงคืออะไร


11

ฉันเป็นผู้ใช้ใหม่ในการเรียนรู้ของเครื่อง (เช่นสถิติ) การเรียนรู้ความรู้ (อัลกอริทึมการเรียนรู้แบบมีผู้สอน / ไม่ได้ดูแลวิธีการหาค่าเหมาะที่สุดที่เกี่ยวข้องการทำให้เป็นมาตรฐาน ฉันรู้ว่าหากไม่มีการฝึกฝนจริงฉันจะไม่เข้าใจสิ่งที่เรียนรู้จากเครื่องเหล่านั้นอย่างลึกซึ้ง

ดังนั้นฉันเริ่มต้นด้วยปัญหาการจัดหมวดหมู่กับข้อมูลจริงพูดการจำแนกตัวเลขด้วยลายมือ (MNIST) ด้วยความประหลาดใจของฉันโดยไม่มีการเรียนรู้ / วิศวกรรมความแม่นยำถึง 0.97 โดยใช้ตัวจําแนกแบบฟอเรสต์แบบสุ่มที่มีค่าพิกเซลแบบดิบเป็นอินพุต ฉันยังลองใช้อัลกอริทึมการเรียนรู้อื่นเช่น SVM, LR พร้อมปรับพารามิเตอร์

ถ้างั้นฉันก็หลงทางมันจะง่ายเกินไปหรือฉันจะทำอะไรหายไปหรือเปล่า เพียงแค่หยิบอัลกอริทึมการเรียนรู้จากชุดเครื่องมือและปรับแต่งพารามิเตอร์บางอย่าง?

หากนั่นคือทั้งหมดที่เกี่ยวกับการเรียนรู้ของเครื่องในทางปฏิบัติแล้วฉันจะสูญเสียความสนใจในสาขานี้ ฉันคิดและอ่านบล็อกสักสองสามวันแล้วฉันก็มาถึงข้อสรุป:

  1. ส่วนที่สำคัญที่สุดของการเรียนรู้ของเครื่องในทางปฏิบัติคือวิศวกรรมคุณสมบัติซึ่งได้รับข้อมูลค้นหาการแสดงคุณลักษณะที่ดีขึ้น

  2. อัลกอริทึมการเรียนรู้ใดที่จะใช้ก็มีความสำคัญเช่นกันการปรับพารามิเตอร์ แต่ตัวเลือกสุดท้ายคือเพิ่มเติมเกี่ยวกับการทดลอง

ฉันไม่แน่ใจว่าฉันเข้าใจถูกต้องหวังว่าทุกคนสามารถแก้ไขฉันได้และให้คำแนะนำเกี่ยวกับการเรียนรู้ของเครื่องในทางปฏิบัติ


1
ฉันไม่คิดว่าฉันสามารถตอบคำถามของคุณได้อย่างสมบูรณ์ แต่ฉันขอยืนยันกับคุณว่ามีปัญหามากมายที่อัลกอริทึม / เครื่องมือไม่น่าพอใจนอกเหนือไปจากคุณภาพของฟีเจอร์ที่ไม่ดี (จากประสบการณ์ของฉันสังคมศาสตร์นั้นมีมากมาย กับทั้งสองสถานการณ์) ฉันไม่คิดว่ามันเป็นสิ่งเดียวที่คุณกังวล แต่ดูเหมือนคุณจะรู้สึกไม่สบายใจกับความสะดวกในโครงการของคุณ

1
@ Matewew ใช่ฉันเพิ่งหลงทางโดยไม่รู้ว่าจะเริ่มต้นเมื่อฉันเผชิญกับปัญหาจริงฉันควรวิเคราะห์ข้อมูลเพื่อค้นหาธรรมชาติเพื่อที่ฉันจะสามารถดึงคุณสมบัติที่มีประโยชน์หรือเพียงหยิบอัลกอริทึมการเรียนรู้และเรียกใช้?
อะโวคาโด

ฉันจะไม่ขึ้นเครื่องบินที่บินอย่างถูกต้อง 97 ครั้งจาก 100
lcrmorin

คำตอบ:


12

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

เป็นการง่ายที่จะได้รับประสิทธิภาพที่ดีในชุดข้อมูล MNIST ตัวอย่างเช่นตามเว็บไซต์ของ Yann Le Cun เกี่ยวกับประสิทธิภาพของ MNISTนั้น K เพื่อนบ้านที่ใกล้ที่สุด (K-NN) ที่มีการวัดระยะทางแบบยุคลิด (L2) ก็มีอัตราข้อผิดพลาด 3% เช่นเดียวกับการสุ่มแบบทันที ป่า L2 K-NN นั้นเรียบง่ายพอ ๆ กับ ML algorithm ในทางกลับกัน Yann, Yoshua, Leon & Patrick ที่ดีที่สุดนัดแรกที่ชุดข้อมูลนี้ LeNet-4 มีอัตราความผิดพลาด 0.7%, 0.7% น้อยกว่าหนึ่งในสี่ของ 3% ดังนั้นหากคุณใส่ระบบนี้ ฝึกอ่านตัวเลขที่เขียนด้วยลายมืออัลกอริทึมไร้เดียงสานั้นต้องใช้ความพยายามของมนุษย์มากถึงสี่เท่าในการแก้ไขข้อผิดพลาด

เครือข่ายประสาทเทียมที่ Yann และเพื่อนร่วมงานใช้นั้นถูกจับคู่กับงาน แต่ฉันจะไม่เรียกสิ่งนี้ว่า 'คุณสมบัติทางวิศวกรรม' มากเท่ากับพยายามทำความเข้าใจข้อมูลและเข้ารหัสความเข้าใจในอัลกอริทึมการเรียนรู้

ดังนั้นบทเรียนคืออะไร:

  1. มันง่ายต่อการเข้าถึงพื้นฐานประสิทธิภาพไร้เดียงสาโดยใช้วิธีการออกจากกล่องและการประมวลผลล่วงหน้าที่ดี คุณควรทำเช่นนี้เสมอเพื่อให้คุณทราบว่าพื้นฐานอยู่ที่ใดและระดับการปฏิบัตินี้ดีพอสำหรับความต้องการของคุณหรือไม่ แต่ระวังวิธีการ ML แบบนอกกรอบมักจะ 'เปราะ' นั่นคือมีความไวต่อการประมวลผลล่วงหน้าอย่างน่าประหลาดใจ เมื่อคุณได้ฝึกฝนวิธีการใช้งานทั้งหมดแล้วมันก็ควรจะลองใส่มัน
  2. ปัญหาที่ยากต้องใช้ความรู้เฉพาะโดเมนหรือข้อมูลมากขึ้นหรือทั้งสองอย่างเพื่อแก้ไข คุณสมบัติวิศวกรรมหมายถึงการใช้ความรู้เฉพาะโดเมนเพื่อช่วยอัลกอริทึม ML อย่างไรก็ตามหากคุณมีข้อมูลเพียงพออัลกอริทึม (หรือวิธีการ) ที่สามารถใช้ประโยชน์จากข้อมูลนั้นเพื่อเรียนรู้คุณลักษณะที่ซับซ้อนและผู้เชี่ยวชาญที่ใช้อัลกอริทึมนี้บางครั้งคุณสามารถสละความรู้นี้ (เช่นความท้าทาย Kaggle Merck ) นอกจากนี้บางครั้งผู้เชี่ยวชาญโดเมนผิดเกี่ยวกับคุณสมบัติที่ดี ข้อมูลที่มากขึ้นและความเชี่ยวชาญ ML จึงเป็นประโยชน์เสมอ
  3. พิจารณาอัตราข้อผิดพลาดไม่ถูกต้อง วิธีการ ML ที่มีความแม่นยำ 99% ทำให้เกิดข้อผิดพลาดครึ่งหนึ่งที่วิธีหนึ่งที่มีความแม่นยำ 98% ทำ บางครั้งสิ่งนี้สำคัญ

2
+1 ขอบคุณมาก เมื่อฉันอ่านคำตอบของคุณถ้าฉันไม่มีความรู้เฉพาะโดเมนในการทำวิศวกรรมคุณลักษณะฉันควรเน้นการประดิษฐ์วิธีการที่ดีในการเรียนรู้คุณลักษณะโดยใช้ข้อมูลที่ได้รับและลองใช้อัลกอริทึมการเรียนรู้ที่แตกต่างกัน
อะโวคาโด

@loganecolss หรือคุณสามารถอ่านสิ่งที่คนอื่นทำในข้อมูลที่คล้ายกันหรือพูดคุยกับผู้เชี่ยวชาญด้านโดเมน
qdjm

7

ฉันคิดว่าตัวอย่างที่คุณพบในบล็อกหรือเว็บไซต์เป็นตัวอย่างที่เป็นที่ทราบกันดีว่าวิธีการทั่วไปใช้งานได้ดี (แม้ว่าจะสามารถปรับปรุงได้)

ความเชี่ยวชาญของฉันอยู่ในงานวิศวกรรมคุณสมบัติและฉันสามารถบอกคุณได้ว่าบ่อยครั้งที่อัลกอริทึมมาตรฐานทำงานได้ไม่ดีเลย (ฉันไม่มีความรู้เกี่ยวกับสนาม แต่บ่อยครั้งที่ฉันทำงานกับคนที่มีมัน)

ที่นี่มีปัญหาจริงที่ฉันทำงานเป็นเวลา 6 เดือน: รับเมทริกซ์ X กับตัวอย่าง 100 ตัวอย่างและตัวแปร 10,000 รายการแทนค่าทางพันธุกรรมของผู้ป่วยและขนาด y x 100 x 1 ที่แสดงถึงความหนาแน่นของกระดูก

คุณบอกฉันได้ไหมว่ายีนตัวไหนมีอิทธิพลต่อความหนาแน่นของกระดูก?

ตอนนี้ฉันกำลังแก้ไขปัญหาอื่นอยู่ ฉันมีชุดข้อมูลการผลิตพร้อมตัวอย่าง 2000 รายการและตัวแปร 12000 ชุด เจ้านายของฉันต้องการแยกจากชุดข้อมูลนี้ที่ไม่ใช่ตัวแปรมากกว่า 30 ตัวในลักษณะที่ไม่ได้รับการดูแล
ฉันลองใช้อัลกอริทึมแล้ว แต่ฉันไม่สามารถเลือกตัวแปรน้อยกว่า 600 ตัวเพราะสิ่งเหล่านี้มีความสัมพันธ์กันอย่างมากระหว่างพวกเขา (ฉันยังคงทำงานกับสิ่งนี้ ... )

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

หวังว่านี่จะช่วยให้คุณทราบถึงปัญหาที่พบบ่อยในมิลลิลิตร


ขอบคุณสำหรับคำแนะนำของคุณดูเหมือนว่าฉันไม่ได้เข้าใกล้ปัญหาเช่นนั้นน่าสนใจ n<<พี
อะโวคาโด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.