- อะไรคือการเรียนรู้เครื่อง ?
- โค้ดแมชชีนเลิร์นนิงทำอะไร
- เมื่อเราบอกว่าเครื่องเรียนรู้มันแก้ไขรหัสของตัวเองหรือไม่หรือแก้ไขประวัติ (ฐานข้อมูล) ซึ่งจะมีประสบการณ์ของรหัสสำหรับชุดอินพุตที่กำหนด?
คำตอบ:
การเรียนรู้ของเครื่องคืออะไร?
โดยพื้นฐานแล้วมันเป็นวิธีการสอนคอมพิวเตอร์เพื่อสร้างและปรับปรุงการคาดการณ์หรือพฤติกรรมจากข้อมูลบางอย่าง "ข้อมูล" นี้คืออะไร? นั่นขึ้นอยู่กับปัญหาทั้งหมด อาจเป็นการอ่านจากเซ็นเซอร์ของหุ่นยนต์ขณะที่มันเรียนรู้ที่จะเดินหรือผลลัพธ์ที่ถูกต้องของโปรแกรมสำหรับอินพุตบางอย่าง
อีกวิธีหนึ่งในการคิดถึงแมชชีนเลิร์นนิงก็คือ "การจดจำรูปแบบ" ซึ่งเป็นการสอนโปรแกรมให้ตอบสนองหรือจดจำรูปแบบ
โค้ดแมชชีนเลิร์นนิงทำอะไร
ขึ้นอยู่กับประเภทของการเรียนรู้ของเครื่องที่คุณกำลังพูดถึง แมชชีนเลิร์นนิงเป็นสาขาวิชาขนาดใหญ่ที่มีอัลกอริทึมที่แตกต่างกันหลายร้อยรายการสำหรับแก้ปัญหาต่างๆมากมายโปรดดูข้อมูลเพิ่มเติมที่Wikipedia โดยเฉพาะดูใต้ประเภทอัลกอริทึม
เมื่อเราพูดว่าเครื่องเรียนรู้มันจะปรับเปลี่ยนรหัสของตัวมันเองหรือแก้ไขประวัติ (ฐานข้อมูล) ซึ่งจะมีประสบการณ์ของรหัสสำหรับชุดอินพุตที่กำหนด?
อีกครั้งหนึ่งที่มันขึ้นอยู่กับ
ตัวอย่างหนึ่งของโค้ดที่ได้รับการแก้ไขคือGenetic Programmingซึ่งคุณจะพัฒนาโปรแกรมเพื่อทำงานให้เสร็จสมบูรณ์ (แน่นอนว่าโปรแกรมไม่ได้แก้ไขตัวเอง - แต่จะแก้ไขโปรแกรมคอมพิวเตอร์อื่น)
ในทางกลับกันโครงข่ายประสาทเทียมจะปรับเปลี่ยนพารามิเตอร์โดยอัตโนมัติเพื่อตอบสนองต่อสิ่งเร้าที่เตรียมไว้และการตอบสนองที่คาดหวัง สิ่งนี้ช่วยให้พวกเขาสามารถสร้างพฤติกรรมต่างๆได้ (ตามทฤษฎีแล้วพวกเขาสามารถสร้างพฤติกรรมใด ๆ ได้เนื่องจากสามารถประมาณฟังก์ชันใดก็ได้ตามความแม่นยำโดยพลการโดยมีเวลาเพียงพอ)
ฉันควรทราบว่าการใช้คำว่า "ฐานข้อมูล" ของคุณหมายความว่าอัลกอริทึมการเรียนรู้ของเครื่องทำงานโดยการ "จดจำ" ข้อมูลเหตุการณ์หรือประสบการณ์ กรณีนี้ไม่จำเป็น (หรือบ่อยครั้ง!)
โครงข่ายประสาทเทียมซึ่งฉันได้กล่าวไปแล้วจะเก็บเฉพาะ "สถานะ" ปัจจุบันของการประมาณเท่านั้นซึ่งจะอัปเดตเมื่อเกิดการเรียนรู้ แทนที่จะจดจำสิ่งที่เกิดขึ้นและวิธีตอบสนองต่อสิ่งนั้นเครือข่ายประสาทเทียมจะสร้าง "แบบจำลอง" ของ "โลก" ของพวกเขา แบบจำลองจะบอกวิธีตอบสนองต่ออินพุตบางอย่างแม้ว่าอินพุตจะเป็นสิ่งที่ไม่เคยเห็นมาก่อนก็ตาม
ความสามารถสุดท้ายนี้ - ความสามารถในการตอบสนองต่ออินพุตที่ไม่เคยมีมาก่อน - เป็นหนึ่งในหลักการสำคัญของอัลกอริธึมการเรียนรู้ของเครื่องจำนวนมาก ลองนึกภาพว่าพยายามสอนคนขับคอมพิวเตอร์ให้นำทางบนทางหลวงในการจราจร การใช้อุปมา "ฐานข้อมูล" ของคุณคุณจะต้องสอนคอมพิวเตอร์ว่าจะทำอย่างไรในสถานการณ์ที่เป็นไปได้นับล้าน อัลกอริธึมการเรียนรู้ของเครื่องที่มีประสิทธิภาพจะ (หวังว่า!) จะสามารถเรียนรู้ความคล้ายคลึงกันระหว่างสถานะต่างๆและตอบสนองต่อสิ่งเหล่านี้ในทำนองเดียวกัน
ความคล้ายคลึงกันระหว่างรัฐอาจเป็นอะไรก็ได้แม้แต่สิ่งที่เราอาจคิดว่าเป็น "โลกีย์" ก็สามารถเดินทางไปคอมพิวเตอร์ได้! ตัวอย่างเช่นสมมติว่าโปรแกรมควบคุมคอมพิวเตอร์ได้เรียนรู้ว่าเมื่อรถคันหน้าชะลอความเร็วจะต้องชะลอตัวลงเพื่อ สำหรับมนุษย์การเปลี่ยนรถเป็นมอเตอร์ไซค์ไม่ได้ทำให้อะไรเปลี่ยนแปลงเราตระหนักดีว่ามอเตอร์ไซค์ก็เป็นพาหนะเช่นกัน สำหรับอัลกอริทึมการเรียนรู้ของเครื่องอาจเป็นเรื่องยากอย่างน่าประหลาดใจ! ฐานข้อมูลจะต้องจัดเก็บข้อมูลแยกกันเกี่ยวกับกรณีที่มีรถอยู่ด้านหน้าและจุดที่มีรถจักรยานยนต์อยู่ข้างหน้า ในทางกลับกันอัลกอริธึมแมชชีนเลิร์นนิงจะ "เรียนรู้" จากตัวอย่างรถยนต์และสามารถสรุปให้กับตัวอย่างของรถจักรยานยนต์ได้โดยอัตโนมัติ
การเรียนรู้ของเครื่องเป็นสาขาหนึ่งของวิทยาการคอมพิวเตอร์ทฤษฎีความน่าจะเป็นและทฤษฎีการเพิ่มประสิทธิภาพซึ่งช่วยให้สามารถแก้ไขงานที่ซับซ้อนได้ซึ่งวิธีการเชิงตรรกะ / ขั้นตอนจะไม่สามารถทำได้หรือเป็นไปได้
แมชชีนเลิร์นนิงมีหลายประเภท ได้แก่ (แต่ไม่ จำกัด เพียง):
การเรียนรู้ภายใต้การดูแล
ในการเรียนรู้ภายใต้การดูแลคุณมีฟังก์ชันที่ซับซ้อนมาก (การแมป) จากอินพุตไปยังเอาต์พุตคุณมีตัวอย่างของคู่อินพุต / เอาต์พุตมากมาย แต่คุณไม่รู้ว่าฟังก์ชันที่ซับซ้อนนั้นคืออะไร อัลกอริทึมการเรียนรู้ภายใต้การดูแลทำให้เป็นไปได้ด้วยชุดข้อมูลขนาดใหญ่ของคู่อินพุต / เอาต์พุตเพื่อทำนายค่าเอาต์พุตสำหรับค่าอินพุตใหม่บางค่าที่คุณอาจไม่เคยเห็นมาก่อน วิธีการพื้นฐานคือคุณแบ่งชุดข้อมูลออกเป็นชุดฝึกและชุดทดสอบ คุณมีโมเดลที่มีฟังก์ชันข้อผิดพลาดที่เกี่ยวข้องซึ่งคุณพยายามย่อส่วนเหนือชุดการฝึกจากนั้นตรวจสอบให้แน่ใจว่าโซลูชันของคุณใช้งานได้กับชุดทดสอบ เมื่อคุณทำสิ่งนี้ซ้ำกับอัลกอริธึมแมชชีนเลิร์นนิงและ / หรือพารามิเตอร์ต่างๆจนกระทั่งโมเดลทำงานได้ดีพอสมควรในชุดทดสอบคุณสามารถลองใช้ผลลัพธ์กับอินพุตใหม่ได้ โปรดทราบว่าในกรณีนี้โปรแกรมจะไม่เปลี่ยนแปลงเพียง แต่เปลี่ยนโมเดล (ข้อมูล) เท่านั้น แม้ว่าในทางทฤษฎีแล้วจะสามารถส่งออกโปรแกรมที่แตกต่างกันได้ แต่ก็ไม่ได้ทำในทางปฏิบัติเท่าที่ฉันทราบ ตัวอย่างของการเรียนรู้ภายใต้การดูแลคือระบบการจดจำตัวเลขที่ใช้โดยที่ทำการไปรษณีย์ซึ่งจะจับคู่พิกเซลกับป้ายกำกับในชุด 0 ... 9 โดยใช้ภาพตัวเลขจำนวนมากที่มีป้ายกำกับด้วยมือว่าอยู่ใน 0 ... 9.
การเรียนรู้เสริมแรง
ในการเรียนรู้แบบเสริมกำลังโปรแกรมมีหน้าที่รับผิดชอบในการตัดสินใจและจะได้รับรางวัล / อรรถประโยชน์สำหรับการดำเนินการเป็นระยะ ๆ อย่างไรก็ตามไม่เหมือนกับกรณีการเรียนรู้ภายใต้การดูแลคือผลลัพธ์จะไม่เกิดขึ้นทันที อัลกอริทึมสามารถกำหนดลำดับการดำเนินการจำนวนมากและได้รับข้อเสนอแนะในตอนท้ายเท่านั้น ในการเรียนรู้แบบเสริมกำลังเป้าหมายคือการสร้างแบบจำลองที่ดีเพื่อที่อัลกอริทึมจะสร้างลำดับของการตัดสินใจที่นำไปสู่ยูทิลิตี้ / รางวัลระยะยาวสูงสุด ตัวอย่างที่ดีของการเรียนรู้แบบเสริมกำลังคือการสอนให้หุ่นยนต์นำทางโดยให้โทษเชิงลบเมื่อใดก็ตามที่เซ็นเซอร์ตรวจจับการชนของมันตรวจพบว่ามันชนเข้ากับวัตถุ หากเข้ารหัสอย่างถูกต้องเป็นไปได้ที่หุ่นยนต์จะเชื่อมโยงข้อมูลเซ็นเซอร์ตัวค้นหาระยะกับข้อมูลเซ็นเซอร์กันชนและทิศทางที่ส่งไปยังล้อในที่สุด
ข้อมูลเพิ่มเติม
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเราขอแนะนำอย่างยิ่งให้คุณอ่านPattern Recognition และ Machine Learning โดย Christopher M. Bishopหรือเรียนหลักสูตรแมชชีนเลิร์นนิง คุณอาจสนใจอ่านเอกสารประกอบการบรรยายจาก CIS 520: Machine Learning ที่ Pennได้ฟรี
การเรียนรู้ของเครื่องเป็นวิธีการในการสร้างแบบจำลองจากข้อมูลตัวอย่างและใช้แบบจำลองเพื่อทำการคาดคะเนหรือกลยุทธ์ มันเป็นของปัญญาประดิษฐ์
การเรียนรู้ของเครื่องเป็นระเบียบวินัยทางวิทยาศาสตร์ที่เกี่ยวข้องกับการออกแบบและการพัฒนาอัลกอริทึมที่ช่วยให้คอมพิวเตอร์สามารถพัฒนาพฤติกรรมตามข้อมูลเชิงประจักษ์เช่นจากข้อมูลเซ็นเซอร์หรือฐานข้อมูล อ่านเพิ่มเติมเกี่ยวกับWikipedia
รหัสการเรียนรู้ของเครื่องจะบันทึก "ข้อเท็จจริง" หรือการประมาณไว้ในที่จัดเก็บบางประเภทและด้วยอัลกอริทึมจะคำนวณความน่าจะเป็นที่แตกต่างกัน
รหัสตัวเองจะไม่ได้รับการแก้ไขเมื่อมีเครื่องเรียนรู้เพียงฐานข้อมูลของสิ่งที่ "มันรู้ว่า"
การเรียนรู้ของเครื่องเป็นเพียงคำทั่วไปในการกำหนดอัลกอริทึมการเรียนรู้ที่หลากหลายซึ่งก่อให้เกิดการเรียนรู้เสมือนจริงจากตัวอย่าง (ไม่มีป้ายกำกับ / ติดป้ายกำกับ) ความแม่นยำ / ข้อผิดพลาดที่แท้จริงนั้นพิจารณาจากคุณภาพของข้อมูลการฝึกอบรม / การทดสอบที่คุณให้ไว้กับอัลกอริทึมการเรียนรู้ของคุณ สามารถวัดได้โดยใช้อัตราการลู่เข้า เหตุผลที่คุณให้ตัวอย่างเป็นเพราะคุณต้องการให้อัลกอริทึมการเรียนรู้ที่คุณเลือกสามารถให้ข้อมูลได้โดยคำแนะนำทำให้เกิดการสรุป อัลกอริทึมสามารถแบ่งออกเป็นสองส่วนหลัก ๆ ที่มีการเรียนรู้ภายใต้การดูแล (การจัดหมวดหมู่) และเทคนิคการเรียนรู้ที่ไม่มีผู้ดูแล (การจัดกลุ่ม) เป็นสิ่งสำคัญอย่างยิ่งที่คุณจะต้องตัดสินใจอย่างชาญฉลาดเกี่ยวกับวิธีที่คุณวางแผนในการแยกชุดข้อมูลการฝึกอบรมและการทดสอบรวมทั้งคุณภาพที่คุณให้กับอัลกอริทึมการเรียนรู้ของคุณ เมื่อคุณจัดเตรียมชุดข้อมูลคุณต้องระวังสิ่งต่างๆเช่นการปรับให้เหมาะสมและการรักษาความรู้สึกของอคติที่ดีต่อสุขภาพในตัวอย่างของคุณ จากนั้นอัลกอริทึมโดยทั่วไปจะเรียนรู้การเขียนเพื่อเขียนบนพื้นฐานของลักษณะทั่วไปที่ได้จากข้อมูลที่คุณให้ไว้ทั้งสำหรับการฝึกอบรมและจากนั้นสำหรับการทดสอบในกระบวนการคุณพยายามให้อัลกอริทึมการเรียนรู้ของคุณสร้างตัวอย่างใหม่บนพื้นฐานของการฝึกอบรมที่กำหนดเป้าหมายของคุณ ในการจัดกลุ่มมีแนวทางให้ข้อมูลน้อยมากโดยพื้นฐานแล้วอัลกอริทึมจะพยายามสร้างผ่านการวัดรูปแบบระหว่างข้อมูลเพื่อสร้างชุดคลัสเตอร์ที่เกี่ยวข้องเช่น kmeans / knearest เพื่อนบ้าน จากนั้นอัลกอริทึมโดยทั่วไปจะเรียนรู้การเขียนเพื่อเขียนบนพื้นฐานของลักษณะทั่วไปที่ได้จากข้อมูลที่คุณให้ไว้ทั้งสำหรับการฝึกอบรมและจากนั้นสำหรับการทดสอบในกระบวนการคุณพยายามให้อัลกอริทึมการเรียนรู้ของคุณสร้างตัวอย่างใหม่บนพื้นฐานของการฝึกอบรมที่กำหนดเป้าหมายของคุณ ในการจัดกลุ่มมีแนวทางให้ข้อมูลน้อยมากโดยพื้นฐานแล้วอัลกอริทึมจะพยายามสร้างผ่านการวัดรูปแบบระหว่างข้อมูลเพื่อสร้างชุดคลัสเตอร์ที่เกี่ยวข้องเช่น kmeans / knearest เพื่อนบ้าน จากนั้นอัลกอริทึมโดยทั่วไปจะเรียนรู้การเขียนเพื่อเขียนบนพื้นฐานของลักษณะทั่วไปที่ได้จากข้อมูลที่คุณให้ไว้ทั้งสำหรับการฝึกอบรมและจากนั้นสำหรับการทดสอบในกระบวนการคุณพยายามให้อัลกอริทึมการเรียนรู้ของคุณสร้างตัวอย่างใหม่บนพื้นฐานของการฝึกอบรมที่กำหนดเป้าหมายของคุณ ในการจัดกลุ่มมีแนวทางให้ข้อมูลน้อยมากโดยพื้นฐานแล้วอัลกอริทึมจะพยายามสร้างผ่านการวัดรูปแบบระหว่างข้อมูลเพื่อสร้างชุดคลัสเตอร์ที่เกี่ยวข้องเช่น kmeans / knearest เพื่อนบ้าน
หนังสือดีๆบางเล่ม: Introduction to ML (Nilsson / Stanford), Gaussian Process for ML, Introduction to ML (Alpaydin), Information Theory Inference and Learning Algorithms (หนังสือที่มีประโยชน์มาก), Machine Learning (Mitchell), Pattern Recognition และ Machine Learning (มาตรฐาน หนังสือหลักสูตร ML ที่เอดินบะระและมหาวิทยาลัยต่าง ๆ แต่ค่อนข้างหนักกับการอ่านคณิตศาสตร์), การขุดข้อมูลและการเรียนรู้ด้วยเครื่องจักรเชิงปฏิบัติด้วย Weka (ทำงานผ่านทฤษฎีโดยใช้ weka และการฝึกฝนใน Java)
Reinforcement Learning มีหนังสือออนไลน์ฟรีให้คุณอ่าน: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html
IR, IE, ผู้แนะนำและการขุดข้อความ / ข้อมูล / เว็บโดยทั่วไปใช้หลักการเรียนรู้ของเครื่องเป็นจำนวนมาก คุณยังสามารถใช้เทคนิค Metaheuristic / Global Optimization ได้ที่นี่เพื่อทำให้กระบวนการเรียนรู้ของคุณเป็นไปโดยอัตโนมัติ เช่นใช้เทคนิควิวัฒนาการเช่น GA (อัลกอริทึมทางพันธุกรรม) เพื่อเพิ่มประสิทธิภาพตามแนวทางเครือข่ายประสาทของคุณ (ซึ่งอาจใช้อัลกอริทึมการเรียนรู้บางอย่าง) คุณสามารถเข้าถึงมันได้อย่างหมดจดในรูปแบบของวิธีการเรียนรู้ของเครื่องที่น่าจะเป็นไปได้เช่นการเรียนรู้แบบ Bayesian อัลกอริทึมเหล่านี้ส่วนใหญ่ล้วนมีการใช้สถิติที่หนักมาก แนวคิดเกี่ยวกับการลู่เข้าและลักษณะทั่วไปมีความสำคัญต่ออัลกอริทึมการเรียนรู้เหล่านี้หลายประการ
แมชชีนเลิร์นนิงเป็นการศึกษาด้านวิทยาการคอมพิวเตอร์เกี่ยวกับการสร้างอัลกอริทึมที่สามารถจำแนกข้อมูลที่พวกเขาไม่เคยเห็นมาก่อนโดยการเรียนรู้รูปแบบจากการฝึกอบรมเกี่ยวกับข้อมูลที่คล้ายคลึงกัน "ผู้เรียน" ในความหมายนี้มีทุกประเภท เครือข่ายประสาทเทียม, เครือข่ายแบบเบย์, แผนผังการตัดสินใจ, อัลกอริธึม k-clustering, แบบจำลอง markov ที่ซ่อนอยู่และเครื่องเวกเตอร์สนับสนุนเป็นตัวอย่าง
ขึ้นอยู่กับผู้เรียนแต่ละคนเรียนรู้ในรูปแบบที่แตกต่างกัน ผู้เรียนบางคนสร้างกรอบความคิดที่มนุษย์เข้าใจได้ (เช่นต้นไม้แห่งการตัดสินใจ) และบางส่วนก็ไม่อาจหยั่งรู้ได้ (เช่นโครงข่ายใยประสาท)
ผู้เรียนล้วนต้องอาศัยข้อมูลเป็นหลักซึ่งหมายความว่าพวกเขาบันทึกสถานะเป็นข้อมูลเพื่อนำกลับมาใช้ในภายหลัง พวกเขาไม่ได้แก้ไขตัวเองเช่นนี้อย่างน้อยโดยทั่วไป
ฉันคิดว่าหนึ่งในคำจำกัดความที่ยอดเยี่ยมที่สุดของแมชชีนเลิร์นนิงที่ฉันเคยอ่านมาจากหนังสือเล่มนี้ของ Tom Mitchell จำง่ายและใช้งานง่าย
กล่าวกันว่าโปรแกรมคอมพิวเตอร์เรียนรู้จากประสบการณ์ E ที่เกี่ยวข้องกับงานบางประเภท T และการวัดประสิทธิภาพ P ถ้าประสิทธิภาพของงานใน T ตามที่วัดโดย P จะดีขึ้นตามประสบการณ์ E
A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
ฉีกขาดจาก Wikipedia อย่างไร้ยางอาย: การเรียนรู้ของเครื่องเป็นระเบียบวินัยทางวิทยาศาสตร์ที่เกี่ยวข้องกับการออกแบบและพัฒนาอัลกอริทึมที่ช่วยให้คอมพิวเตอร์สามารถพัฒนาพฤติกรรมตามข้อมูลเชิงประจักษ์เช่นจากข้อมูลเซ็นเซอร์หรือฐานข้อมูล
ค่อนข้างง่ายรหัสแมชชีนเลิร์นนิงทำให้งานแมชชีนเลิร์นนิงบรรลุผลสำเร็จ นั่นอาจเป็นได้หลายอย่างตั้งแต่การตีความข้อมูลเซ็นเซอร์ไปจนถึงขั้นตอนวิธีทางพันธุกรรม
ฉันจะบอกว่ามันขึ้นอยู่กับ ไม่การแก้ไขโค้ดไม่ใช่เรื่องปกติ แต่ไม่ได้อยู่นอกขอบเขตของความเป็นไปได้ ฉันจะไม่บอกด้วยว่าการเรียนรู้ของเครื่องจะแก้ไขประวัติเสมอไป บางครั้งเราไม่มีประวัติศาสตร์ที่จะสร้างขึ้น บางครั้งเราเพียงต้องการตอบสนองต่อสิ่งแวดล้อม แต่ไม่ได้เรียนรู้จากประสบการณ์ในอดีตของเรา
โดยพื้นฐานแล้วการเรียนรู้ของเครื่องเป็นสาขาวิชาที่เปิดกว้างมากซึ่งมีวิธีการและอัลกอริทึมมากมายที่ทำให้ไม่มีคำตอบ 1 ข้อสำหรับคำถามที่ 3 ของคุณ
แมชชีนเลิร์นนิงเป็นคำที่นำมาจากโลกแห่งความเป็นจริงของบุคคลและนำไปใช้กับสิ่งที่ไม่สามารถเรียนรู้ได้จริงนั่นคือเครื่องจักร
หากต้องการเพิ่มคำตอบอื่น ๆ การเรียนรู้ของเครื่องจะไม่ (โดยปกติ) เปลี่ยนรหัส แต่อาจเปลี่ยนเส้นทางการดำเนินการและการตัดสินใจตามข้อมูลก่อนหน้าหรือข้อมูลที่รวบรวมใหม่และด้วยเหตุนี้ผล "การเรียนรู้"
มีหลายวิธีในการ "สอน" เครื่องจักร - คุณให้น้ำหนักกับพารามิเตอร์ต่างๆของอัลกอริทึมจากนั้นให้เครื่องแก้ปัญหาในหลาย ๆ กรณีทุกครั้งที่คุณให้ข้อเสนอแนะเกี่ยวกับคำตอบแก่เธอและเครื่องจะปรับน้ำหนักตาม คำตอบของเครื่องใกล้เคียงกับคำตอบของคุณหรือตามคะแนนที่คุณให้คำตอบหรือตามอัลกอริทึมการทดสอบผลลัพธ์บางอย่าง
นี่เป็นวิธีการเรียนรู้วิธีหนึ่งและยังมีอีกมากมาย ...