แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

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

ตรงประเด็น. เขียนโปรแกรมแอปพลิเคชันหลายโปรแกรมใน MS Excel สำหรับการแสดงภาพและการแสดงภาพกระบวนการที่เกิดขึ้นในวิธีการเรียนรู้ของเครื่องที่แตกต่างกันเมื่อวิเคราะห์ข้อมูล ท้ายที่สุดแล้วการเห็นคือความเชื่อตามที่ผู้ถือวัฒนธรรมกล่าวไว้ซึ่งพัฒนาวิธีการเหล่านี้ส่วนใหญ่ (ไม่ใช่ทั้งหมด) “เครื่องเวกเตอร์สนับสนุน” ที่ทรงพลังที่สุดหรือ SVM เครื่องเวกเตอร์สนับสนุนคือการประดิษฐ์ของ เพื่อนร่วมชาติของเรา Vladimir Vapnik สถาบันการจัดการแห่งมอสโก ปี 1963 อย่างไรก็ตาม ตอนนี้เขาสอนและทำงานในสหรัฐอเมริกา)

สามไฟล์สำหรับการตรวจสอบ

1. การจัดกลุ่ม K-mean

ปัญหาประเภทนี้หมายถึง “การเรียนรู้แบบไม่มีผู้ดูแล” เมื่อเราต้องแบ่งข้อมูลเบื้องต้นออกเป็นหมวดหมู่จำนวนหนึ่งที่ทราบล่วงหน้า แต่เราไม่มี “คำตอบที่ถูกต้อง” เลยจำนวนเท่าใด เราจะต้องดึงข้อมูลเหล่านั้นออกมาจากข้อมูลนั้นเอง . ปัญหาคลาสสิกพื้นฐานของการค้นหาชนิดย่อยของดอกไอริส (Ronald Fisher, 1936!) ซึ่งถือเป็นสัญญาณแรกของสาขาความรู้นี้เป็นเพียงลักษณะนี้

วิธีการนี้ค่อนข้างง่าย เรามีชุดของวัตถุที่แสดงเป็นเวกเตอร์ (ชุดของตัวเลข N) ในดอกไอริส นี่คือชุดของตัวเลข 4 ตัวที่แสดงลักษณะของดอกไม้: ความยาวและความกว้างของกลีบด้านนอกและด้านในของกลีบดอก Perianth ตามลำดับ (ไอริสฟิชเชอร์ - Wikiwand). ระบบเมตริกคาร์ทีเซียนปกติจะถูกเลือกให้เป็นระยะทางหรือหน่วยวัดความใกล้ชิดระหว่างวัตถุ

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

กระบวนการมาบรรจบกันค่อนข้างเร็ว ในภาพสองมิติจะมีลักษณะดังนี้:

1. การกระจายคะแนนแบบสุ่มเบื้องต้นบนระนาบและจำนวนกระจุก

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

2. การระบุศูนย์คลัสเตอร์และการกำหนดจุดให้กับคลัสเตอร์

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

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

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

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

สามารถเล่นไฟล์นี้ได้ที่ลิงค์นี้ (อย่าลืมเปิดใช้งานการรองรับแมโคร ไฟล์ได้รับการสแกนไวรัสแล้ว)

คำอธิบายของวิธีการบน Wikipedia - วิธีเคมีน

2. การประมาณค่าด้วยพหุนามและการแจกแจงข้อมูล การฝึกอบรมขึ้นใหม่

นักวิทยาศาสตร์ที่โดดเด่นและผู้มีชื่อเสียงด้านวิทยาศาสตร์ข้อมูล K.V. Vorontsov อธิบายวิธีการเรียนรู้ของเครื่องโดยย่อว่าเป็น “ศาสตร์แห่งการวาดเส้นโค้งผ่านจุดต่างๆ” ในตัวอย่างนี้ เราจะค้นหารูปแบบในข้อมูลโดยใช้วิธีกำลังสองน้อยที่สุด

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

(เป็นข้อเท็จจริงที่ทราบกันดีว่าผ่านจุด N เราสามารถวาดเส้นโค้งเดี่ยวของระดับ N-1 ได้ และในกรณีทั่วไปวิธีนี้ไม่ได้ให้ผลลัพธ์ที่ต้องการ พหุนามการประมาณค่าลากรองจ์บนวิกิพีเดีย)

1. ตั้งค่าการกระจายเริ่มต้น

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

2. เราแบ่งคะแนนออกเป็น “การฝึก” และ “การควบคุม” ในอัตราส่วน 70 ต่อ 30

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

3. เราวาดเส้นโค้งโดยประมาณตามจุดฝึก เราเห็นข้อผิดพลาดที่เกิดขึ้นกับข้อมูลควบคุม

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

4. เราวาดเส้นโค้งที่แน่นอนผ่านจุดการฝึก และเราเห็นข้อผิดพลาดร้ายแรงในข้อมูลการควบคุม (และเป็นศูนย์ในข้อมูลการฝึก แต่ประเด็นคืออะไร)

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

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

ไฟล์มีอยู่ที่นี่ สแกนโดยโปรแกรมป้องกันไวรัส เปิดใช้งานมาโครเพื่อการทำงานที่ถูกต้อง

3. การไล่ระดับลงและพลวัตของการเปลี่ยนแปลงข้อผิดพลาด

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

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

1. สร้างข้อมูล ตั้งค่าขั้นตอนการไล่ระดับลง

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

2. ด้วยการเลือกขั้นตอนการไล่ระดับสีที่ถูกต้อง เราจะไปถึงจุดต่ำสุดได้อย่างราบรื่นและรวดเร็ว

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

3. หากเลือกขั้นตอนการไล่ระดับลงอย่างไม่ถูกต้อง เราจะเกินค่าสูงสุด กราฟข้อผิดพลาดจะ "กระตุก" การบรรจบกันจะใช้จำนวนขั้นตอนที่มากขึ้น

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ
и

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

4. หากเราเลือกขั้นตอนการไล่ระดับลงอย่างไม่ถูกต้อง เราจะเคลื่อนออกจากจุดต่ำสุด

แมชชีนเลิร์นนิงที่ไม่มี Python, Anaconda และสัตว์เลื้อยคลานอื่นๆ

(หากต้องการทำซ้ำกระบวนการโดยใช้ค่าขั้นตอนการไล่ระดับสีที่แสดงในรูปภาพ ให้ทำเครื่องหมายที่ช่อง "ข้อมูลอ้างอิง")

ไฟล์อยู่ที่ลิงค์นี้ คุณต้องเปิดใช้งานมาโคร ไม่มีไวรัส

ตามความเห็นของชุมชนที่เคารพ ความเรียบง่ายและวิธีการนำเสนอเนื้อหาดังกล่าวเป็นที่ยอมรับหรือไม่ คุ้มค่าที่จะแปลบทความเป็นภาษาอังกฤษหรือไม่?

ที่มา: will.com

เพิ่มความคิดเห็น