Machine Learning - คู่มือฉบับย่อ
ปัญญาประดิษฐ์ (AI) ในปัจจุบันได้ก้าวข้ามขีด จำกัด ของบล็อกเชนและคอมพิวเตอร์ควอนตัมไปแล้ว เนื่องจากคนทั่วไปสามารถใช้ทรัพยากรคอมพิวเตอร์จำนวนมหาศาลได้อย่างง่ายดาย ตอนนี้นักพัฒนาใช้ประโยชน์จากสิ่งนี้ในการสร้างโมเดล Machine Learning ใหม่และฝึกโมเดลที่มีอยู่ใหม่เพื่อประสิทธิภาพและผลลัพธ์ที่ดีขึ้น ความพร้อมใช้งานที่ง่ายดายของ High Performance Computing (HPC) ส่งผลให้ผู้เชี่ยวชาญด้านไอทีที่มีทักษะ Machine Learning เพิ่มขึ้นอย่างรวดเร็ว
ในบทช่วยสอนนี้คุณจะได้เรียนรู้โดยละเอียดเกี่ยวกับ -
หัวใจสำคัญของการเรียนรู้ของเครื่องคืออะไร?
แมชชีนเลิร์นนิงประเภทต่างๆมีอะไรบ้าง
อัลกอริทึมที่แตกต่างกันสำหรับการพัฒนาโมเดลการเรียนรู้ของเครื่องมีอะไรบ้าง
มีเครื่องมืออะไรบ้างในการพัฒนาโมเดลเหล่านี้
ตัวเลือกภาษาโปรแกรมมีอะไรบ้าง?
แพลตฟอร์มใดบ้างที่รองรับการพัฒนาและปรับใช้แอปพลิเคชัน Machine Learning
IDEs (Integrated Development Environment) มีอะไรบ้าง?
จะอัพเกรดทักษะของคุณอย่างรวดเร็วในพื้นที่สำคัญนี้ได้อย่างไร?
เมื่อคุณแท็กใบหน้าในรูปภาพ Facebook จะเป็น AI ที่ทำงานอยู่เบื้องหลังและระบุใบหน้าในรูปภาพ ปัจจุบันการติดแท็กใบหน้ามีอยู่ทั่วไปในหลายแอปพลิเคชันที่แสดงรูปภาพที่มีใบหน้าของมนุษย์ ทำไมแค่ใบหน้าของมนุษย์? มีแอพพลิเคชั่นมากมายที่ตรวจจับวัตถุเช่นแมวสุนัขขวดนมรถยนต์ ฯลฯ เรามีรถยนต์ที่ขับเคลื่อนด้วยตนเองซึ่งวิ่งบนถนนของเราซึ่งตรวจจับวัตถุแบบเรียลไทม์เพื่อบังคับรถ เมื่อคุณเดินทางคุณใช้ GoogleDirectionsเพื่อเรียนรู้สถานการณ์การจราจรแบบเรียลไทม์และปฏิบัติตามเส้นทางที่ดีที่สุดที่ Google แนะนำ ณ เวลานั้น นี่เป็นอีกหนึ่งการนำเทคนิคการตรวจจับวัตถุมาใช้แบบเรียลไทม์
ให้เราพิจารณาตัวอย่างของ Google Translateแอปพลิเคชันที่เรามักใช้ในขณะไปต่างประเทศ แอปนักแปลออนไลน์ของ Google บนมือถือของคุณช่วยให้คุณสื่อสารกับคนในท้องถิ่นที่พูดภาษาต่างประเทศสำหรับคุณ
มีแอพพลิเคชั่น AI มากมายที่เราใช้ในปัจจุบัน ในความเป็นจริงเราแต่ละคนใช้ AI ในหลาย ๆ ส่วนของชีวิตโดยที่เราไม่รู้ตัว AI ในปัจจุบันสามารถทำงานที่ซับซ้อนได้อย่างแม่นยำและรวดเร็ว ให้เราพูดถึงตัวอย่างของงานที่ซับซ้อนเพื่อทำความเข้าใจความสามารถที่คาดหวังในแอปพลิเคชัน AI ที่คุณจะพัฒนาในวันนี้สำหรับลูกค้าของคุณ
ตัวอย่าง
เราทุกคนใช้ Google Directionsระหว่างการเดินทางของเราทุกที่ในเมืองสำหรับการเดินทางประจำวันหรือแม้แต่การเดินทางระหว่างเมือง แอปพลิเคชัน Google Directions แนะนำเส้นทางที่เร็วที่สุดไปยังปลายทางของเราในเวลานั้น เมื่อเราเดินตามเส้นทางนี้เราสังเกตเห็นว่า Google เกือบ 100% ในคำแนะนำและเราประหยัดเวลาอันมีค่าของเราในการเดินทาง
คุณสามารถจินตนาการถึงความซับซ้อนที่เกี่ยวข้องกับการพัฒนาแอปพลิเคชันประเภทนี้ได้เนื่องจากมีเส้นทางไปยังจุดหมายปลายทางของคุณหลายเส้นทางและแอปพลิเคชันจะต้องตัดสินสถานการณ์การจราจรในทุกเส้นทางที่เป็นไปได้เพื่อให้คุณประมาณเวลาเดินทางสำหรับแต่ละเส้นทางดังกล่าว นอกจากนี้ให้พิจารณาข้อเท็จจริงที่ว่าเส้นทางของ Google ครอบคลุมทั่วโลก ไม่ต้องสงสัยเลยว่ามีการใช้เทคนิค AI และ Machine Learning มากมายภายใต้ประทุนของแอปพลิเคชันดังกล่าว
เมื่อพิจารณาถึงความต้องการอย่างต่อเนื่องสำหรับการพัฒนาแอปพลิเคชันดังกล่าวตอนนี้คุณจะรู้สึกซาบซึ้งว่าเหตุใดจึงมีความต้องการผู้เชี่ยวชาญด้านไอทีที่มีทักษะ AI อย่างกะทันหัน
ในบทต่อไปเราจะเรียนรู้สิ่งที่ต้องใช้ในการพัฒนาโปรแกรม AI
การเดินทางของ AI เริ่มขึ้นในปี 1950 เมื่อพลังการประมวลผลเป็นเพียงเศษเสี้ยวของสิ่งที่เป็นอยู่ในปัจจุบัน AI เริ่มต้นจากการคาดการณ์โดยเครื่องจักรในแบบที่นักสถิติทำการทำนายโดยใช้เครื่องคิดเลขของเขา ดังนั้นการพัฒนา AI ทั้งหมดในช่วงแรกจึงใช้เทคนิคทางสถิติเป็นหลัก
ในบทนี้ให้เราพิจารณารายละเอียดว่าเทคนิคทางสถิติเหล่านี้คืออะไร
เทคนิคทางสถิติ
การพัฒนาแอปพลิเคชัน AI ในปัจจุบันเริ่มต้นด้วยการใช้เทคนิคทางสถิติแบบเก่าแก่ คุณต้องใช้การแก้ไขแบบเส้นตรงในโรงเรียนเพื่อทำนายมูลค่าในอนาคต มีเทคนิคทางสถิติอื่น ๆ อีกมากมายที่นำไปใช้ในการพัฒนาโปรแกรม AI ที่เรียกว่า เราพูดว่า“ ที่เรียกว่า” เนื่องจากโปรแกรม AI ที่เรามีอยู่ในปัจจุบันนั้นซับซ้อนกว่ามากและใช้เทคนิคที่ไกลกว่าเทคนิคทางสถิติที่ใช้โดยโปรแกรม AI ในยุคแรก ๆ
ตัวอย่างบางส่วนของเทคนิคทางสถิติที่ใช้ในการพัฒนาแอพพลิเคชั่น AI ในสมัยนั้นและยังคงปฏิบัติอยู่มีอยู่ที่นี่ -
- Regression
- Classification
- Clustering
- ทฤษฎีความน่าจะเป็น
- ต้นไม้แห่งการตัดสินใจ
ที่นี่เราได้แสดงรายการเทคนิคหลักบางอย่างเท่านั้นที่เพียงพอที่จะทำให้คุณเริ่มต้นใช้งาน AI โดยไม่ทำให้คุณกลัวถึงความกว้างใหญ่ที่ AI ต้องการ หากคุณกำลังพัฒนาแอปพลิเคชัน AI โดยอาศัยข้อมูลที่ จำกัด คุณจะใช้เทคนิคทางสถิติเหล่านี้
อย่างไรก็ตามวันนี้ข้อมูลมีมากมาย ในการวิเคราะห์ชนิดของข้อมูลขนาดใหญ่ที่เรามีเทคนิคทางสถิตินั้นช่วยได้ไม่มากนักเนื่องจากมีข้อ จำกัด บางประการ ดังนั้นจึงมีการพัฒนาวิธีการขั้นสูงขึ้นเช่นการเรียนรู้เชิงลึกเพื่อแก้ปัญหาที่ซับซ้อนมากมาย
เมื่อเราก้าวไปข้างหน้าในบทช่วยสอนนี้เราจะเข้าใจว่า Machine Learning คืออะไรและใช้อย่างไรในการพัฒนาแอปพลิเคชัน AI ที่ซับซ้อนดังกล่าว
พิจารณารูปต่อไปนี้ที่แสดงพล็อตราคาบ้านเทียบกับขนาดในตารางฟุต
หลังจากวางแผนจุดข้อมูลต่างๆบนพล็อต XY เราวาดเส้นที่เหมาะสมที่สุดเพื่อทำการคาดการณ์ของเราสำหรับบ้านหลังอื่น ๆ ตามขนาดของมัน คุณจะป้อนข้อมูลที่ทราบไปยังเครื่องและขอให้ค้นหาข้อมูลที่เหมาะสมที่สุด เมื่อเครื่องพบเส้นที่พอดีที่สุดแล้วคุณจะทดสอบความเหมาะสมโดยการให้อาหารในขนาดโรงเรือนที่ทราบเช่นค่า Y ในเส้นโค้งด้านบน ตอนนี้เครื่องจะคืนค่า X-value โดยประมาณนั่นคือราคาที่คาดหวังของบ้าน แผนภาพสามารถคาดการณ์ได้เพื่อหาราคาบ้านที่มีขนาด 3,000 ตารางฟุตหรือใหญ่กว่านั้น สิ่งนี้เรียกว่าการถดถอยในสถิติ โดยเฉพาะอย่างยิ่งการถดถอยแบบนี้เรียกว่าการถดถอยเชิงเส้นเนื่องจากความสัมพันธ์ระหว่างจุดข้อมูล X และ Y เป็นเส้นตรง
ในหลาย ๆ กรณีความสัมพันธ์ระหว่างจุดข้อมูล X & Y อาจไม่ใช่เส้นตรงและอาจเป็นเส้นโค้งที่มีสมการที่ซับซ้อน ตอนนี้งานของคุณคือการค้นหาเส้นโค้งที่เหมาะสมที่สุดซึ่งสามารถคาดการณ์ได้เพื่อทำนายค่าในอนาคต พล็อตแอปพลิเคชันดังกล่าวแสดงไว้ในรูปด้านล่าง
ที่มา:
https://upload.wikimedia.org/wikipedia/commons/c/c9/
คุณจะใช้เทคนิคการเพิ่มประสิทธิภาพทางสถิติเพื่อค้นหาสมการสำหรับเส้นโค้งที่พอดีที่สุดที่นี่ และนี่คือสิ่งที่ Machine Learning เกี่ยวกับ คุณใช้เทคนิคการเพิ่มประสิทธิภาพที่เป็นที่รู้จักเพื่อค้นหาวิธีที่ดีที่สุดสำหรับปัญหาของคุณ
ต่อไปให้เราดูหมวดหมู่ต่างๆของ Machine Learning
Machine Learning แบ่งออกเป็นหมวดหมู่อย่างกว้าง ๆ ภายใต้หัวข้อต่อไปนี้ -
การเรียนรู้ของเครื่องพัฒนาจากซ้ายไปขวาดังแสดงในแผนภาพด้านบน
ในขั้นต้นนักวิจัยเริ่มต้นด้วยการเรียนรู้ภายใต้การดูแล นี่คือกรณีของการทำนายราคาที่อยู่อาศัยที่กล่าวถึงก่อนหน้านี้
ตามมาด้วยการเรียนรู้ที่ไม่มีผู้ดูแลซึ่งเครื่องจะเรียนรู้ด้วยตัวเองโดยไม่ต้องมีการควบคุมดูแล
นักวิทยาศาสตร์ค้นพบเพิ่มเติมว่าอาจเป็นความคิดที่ดีที่จะให้รางวัลแก่เครื่องจักรเมื่อทำงานได้ตามที่คาดหวังและมีการเรียนรู้การเสริมแรง
ในไม่ช้าข้อมูลที่มีอยู่ในปัจจุบันได้กลายเป็นเรื่องที่น่าสยดสยองมากจนเทคนิคทั่วไปที่พัฒนาขึ้นจนถึงขณะนี้ล้มเหลวในการวิเคราะห์ข้อมูลขนาดใหญ่และให้การคาดการณ์แก่เรา
ดังนั้นการเรียนรู้เชิงลึกจึงเกิดขึ้นที่สมองของมนุษย์ถูกจำลองขึ้นในโครงข่ายประสาทเทียม (ANN) ที่สร้างขึ้นในคอมพิวเตอร์ไบนารีของเรา
ตอนนี้เครื่องเรียนรู้ด้วยตัวเองโดยใช้พลังประมวลผลสูงและทรัพยากรหน่วยความจำขนาดใหญ่ที่มีอยู่ในปัจจุบัน
ปัจจุบันเป็นที่สังเกตว่า Deep Learning ได้แก้ไขปัญหาที่แก้ไม่ได้ก่อนหน้านี้หลายประการ
ตอนนี้เทคนิคนี้ก้าวหน้าไปอีกขั้นด้วยการมอบสิ่งจูงใจให้กับเครือข่าย Deep Learning เป็นรางวัลและในที่สุด Deep Reinforcement Learning ก็มาถึง
ให้เราศึกษารายละเอียดแต่ละหมวดหมู่เหล่านี้เพิ่มเติม
การเรียนรู้ภายใต้การดูแล
การเรียนรู้ภายใต้การดูแลนั้นคล้ายคลึงกับการฝึกเด็กให้เดิน คุณจะจับมือเด็กแสดงให้เขาเห็นว่าจะก้าวไปข้างหน้าอย่างไรเดินด้วยตัวเองเพื่อสาธิตและอื่น ๆ จนกว่าเด็กจะเรียนรู้ที่จะเดินด้วยตัวเอง
การถดถอย
ในกรณีของการเรียนรู้ภายใต้การดูแลคุณให้ตัวอย่างที่เป็นรูปธรรมกับคอมพิวเตอร์ คุณบอกว่าสำหรับค่าคุณลักษณะที่กำหนด x1 ผลลัพธ์คือ y1 สำหรับ x2 มันคือ y2 สำหรับ x3 มันคือ y3 และอื่น ๆ จากข้อมูลนี้คุณให้คอมพิวเตอร์ค้นหาความสัมพันธ์เชิงประจักษ์ระหว่าง x และ y
เมื่อเครื่องได้รับการฝึกฝนด้วยวิธีนี้โดยมีจุดข้อมูลจำนวนเพียงพอตอนนี้คุณจะขอให้เครื่องทำนาย Y สำหรับ X ที่กำหนดสมมติว่าคุณรู้ค่า Y ที่แท้จริงสำหรับ X ที่ให้มานี้คุณจะสามารถอนุมานได้ การคาดการณ์ของเครื่องถูกต้องหรือไม่
ดังนั้นคุณจะทดสอบว่าเครื่องได้เรียนรู้โดยใช้ข้อมูลการทดสอบที่ทราบหรือไม่ เมื่อคุณพอใจแล้วว่าเครื่องสามารถทำการทำนายด้วยระดับความแม่นยำที่ต้องการ (พูด 80 ถึง 90%) คุณสามารถหยุดการฝึกอบรมเครื่องเพิ่มเติมได้
ตอนนี้คุณสามารถใช้เครื่องเพื่อทำการคาดการณ์จุดข้อมูลที่ไม่รู้จักได้อย่างปลอดภัยหรือขอให้เครื่องทำนาย Y สำหรับ X ที่กำหนดซึ่งคุณไม่ทราบค่าที่แท้จริงของ Y การฝึกอบรมนี้เกิดขึ้นภายใต้การถดถอยที่เราพูดถึง ก่อนหน้านี้
การจำแนกประเภท
คุณยังสามารถใช้เทคนิคการเรียนรู้ของเครื่องสำหรับปัญหาการจัดหมวดหมู่ ในปัญหาการจัดหมวดหมู่คุณแบ่งประเภทของวัตถุที่มีลักษณะคล้ายคลึงกันเป็นกลุ่มเดียว ตัวอย่างเช่นในชุดนักเรียน 100 คนพูดว่าคุณอาจต้องการจัดกลุ่มพวกเขาเป็นสามกลุ่มตามความสูง - สั้นกลางและยาว การวัดความสูงของนักเรียนแต่ละคนคุณจะจัดให้อยู่ในกลุ่มที่เหมาะสม
ตอนนี้เมื่อมีนักเรียนใหม่เข้ามาคุณจะจัดให้เขาอยู่ในกลุ่มที่เหมาะสมโดยวัดส่วนสูงของเขา โดยปฏิบัติตามหลักการในการฝึกการถดถอยคุณจะฝึกเครื่องเพื่อจำแนกนักเรียนตามคุณลักษณะของเขา - ความสูง เมื่อเครื่องเรียนรู้วิธีการสร้างกลุ่มก็จะสามารถจำแนกนักเรียนใหม่ที่ไม่รู้จักได้อย่างถูกต้อง อีกครั้งคุณจะใช้ข้อมูลการทดสอบเพื่อตรวจสอบว่าเครื่องได้เรียนรู้เทคนิคการจำแนกประเภทของคุณก่อนที่จะนำรุ่นที่พัฒนาแล้วไปใช้ในการผลิต
การเรียนรู้ภายใต้การดูแลคือจุดที่ AI เริ่มต้นการเดินทางจริงๆ เทคนิคนี้ถูกนำไปใช้อย่างประสบความสำเร็จในหลายกรณี คุณได้ใช้โมเดลนี้ในขณะที่ทำการจดจำลายลักษณ์อักษรบนเครื่องของคุณ มีการพัฒนาอัลกอริทึมหลายอย่างสำหรับการเรียนรู้ภายใต้การดูแล คุณจะได้เรียนรู้เกี่ยวกับพวกเขาในบทต่อไปนี้
การเรียนรู้ที่ไม่มีผู้ดูแล
ในการเรียนรู้ที่ไม่ได้รับการดูแลเราไม่ได้ระบุตัวแปรเป้าหมายให้กับเครื่อง แต่เราถามเครื่องว่า“ คุณบอกอะไรฉันเกี่ยวกับ X ได้บ้าง” โดยเฉพาะอย่างยิ่งเราอาจถามคำถามเช่นชุดข้อมูลขนาดใหญ่ X“ กลุ่มที่ดีที่สุด 5 กลุ่มที่เราสามารถสร้างจาก X ได้คืออะไร” หรือ“ คุณลักษณะใดที่เกิดขึ้นพร้อมกันบ่อยที่สุดใน X” เพื่อให้ได้คำตอบสำหรับคำถามดังกล่าวคุณสามารถเข้าใจได้ว่าจำนวนจุดข้อมูลที่เครื่องต้องการเพื่อสรุปกลยุทธ์จะมีมาก ในกรณีของการเรียนรู้ภายใต้การดูแลเครื่องสามารถฝึกได้โดยมีจุดข้อมูลเพียงไม่กี่พันจุด อย่างไรก็ตามในกรณีของการเรียนรู้ที่ไม่มีผู้ดูแลจำนวนจุดข้อมูลที่ได้รับการยอมรับอย่างสมเหตุสมผลสำหรับการเรียนรู้เริ่มต้นในไม่กี่ล้าน ทุกวันนี้ข้อมูลโดยทั่วไปมีอยู่มากมาย ข้อมูลจำเป็นต้องมีการดูแลจัดการ อย่างไรก็ตามจำนวนข้อมูลที่ไหลอย่างต่อเนื่องในเครือข่ายโซเชียลในกรณีส่วนใหญ่การดูแลจัดการข้อมูลเป็นงานที่เป็นไปไม่ได้
รูปต่อไปนี้แสดงขอบเขตระหว่างจุดสีเหลืองและสีแดงตามที่กำหนดโดยการเรียนรู้ของเครื่องที่ไม่ได้รับการดูแล คุณจะเห็นได้อย่างชัดเจนว่าเครื่องจะสามารถกำหนดระดับของจุดสีดำแต่ละจุดได้อย่างแม่นยำ
ที่มา:
https://chrisjmccormick.files.wordpress.com/2013/08/approx_decision_boun dary.png
การเรียนรู้ที่ไม่มีผู้ดูแลแสดงให้เห็นถึงความสำเร็จอย่างมากในแอปพลิเคชัน AI สมัยใหม่หลายอย่างเช่นการตรวจจับใบหน้าการตรวจจับวัตถุและอื่น ๆ
การเรียนรู้เสริมแรง
ลองฝึกสุนัขเลี้ยงเราฝึกสัตว์เลี้ยงของเราให้เอาลูกบอลมาให้เรา เราโยนลูกบอลในระยะที่กำหนดและขอให้สุนัขดึงกลับมาให้เรา ทุกครั้งที่สุนัขทำสิ่งนี้เราจะให้รางวัลแก่สุนัข อย่างช้าๆสุนัขจะเรียนรู้ว่าการทำงานอย่างถูกต้องจะให้รางวัลแก่เขาจากนั้นสุนัขก็เริ่มทำงานอย่างถูกต้องทุกครั้งในอนาคต แนวคิดนี้ถูกนำไปใช้ในการเรียนรู้ประเภท“ การเสริมแรง” เทคนิคนี้ได้รับการพัฒนาขึ้นเพื่อให้เครื่องสามารถเล่นเกมได้ เครื่องจะได้รับอัลกอริทึมเพื่อวิเคราะห์การเคลื่อนไหวที่เป็นไปได้ทั้งหมดในแต่ละขั้นตอนของเกม เครื่องอาจเลือกการเคลื่อนไหวอย่างใดอย่างหนึ่งโดยสุ่ม หากการเคลื่อนไหวถูกต้องเครื่องจะได้รับรางวัลมิฉะนั้นอาจถูกลงโทษ ช้า ๆ เครื่องจะเริ่มแยกความแตกต่างระหว่างการเคลื่อนไหวที่ถูกและผิดและหลังจากการทำซ้ำหลาย ๆ ครั้งจะได้เรียนรู้การไขปริศนาเกมด้วยความแม่นยำที่ดีขึ้น ความแม่นยำในการชนะเกมจะดีขึ้นเมื่อเครื่องเล่นเกมมากขึ้น
กระบวนการทั้งหมดอาจแสดงในแผนภาพต่อไปนี้ -
เทคนิคการเรียนรู้ของเครื่องนี้แตกต่างจากการเรียนรู้ภายใต้การดูแลตรงที่คุณไม่จำเป็นต้องจัดหาคู่อินพุต / เอาต์พุตที่มีป้ายกำกับ โฟกัสอยู่ที่การหาจุดสมดุลระหว่างการสำรวจโซลูชันใหม่กับการใช้ประโยชน์จากโซลูชันที่เรียนรู้
การเรียนรู้เชิงลึก
การเรียนรู้เชิงลึกเป็นแบบจำลองที่ใช้โครงข่ายประสาทเทียม (ANN) โดยเฉพาะอย่างยิ่ง Convolutional Neural Networks (CNN) มีสถาปัตยกรรมหลายอย่างที่ใช้ในการเรียนรู้เชิงลึกเช่นเครือข่ายประสาทเทียมลึกเครือข่ายความเชื่อเชิงลึกเครือข่ายประสาทที่เกิดซ้ำและโครงข่ายประสาทเทียม
เครือข่ายเหล่านี้ได้รับการประยุกต์ใช้อย่างประสบความสำเร็จในการแก้ปัญหาการมองเห็นของคอมพิวเตอร์การรู้จำเสียงการประมวลผลภาษาธรรมชาติชีวสารสนเทศศาสตร์การออกแบบยาการวิเคราะห์ภาพทางการแพทย์และเกม มีสาขาอื่น ๆ อีกมากมายที่นำไปใช้ในเชิงรุกในเชิงรุก การเรียนรู้เชิงลึกต้องใช้พลังในการประมวลผลขนาดใหญ่และข้อมูลมหาศาลซึ่งโดยทั่วไปในปัจจุบันสามารถหาได้ง่าย
เราจะพูดถึงการเรียนรู้เชิงลึกโดยละเอียดในบทต่อ ๆ ไป
การเรียนรู้การเสริมแรงเชิงลึก
Deep Reinforcement Learning (DRL) ผสมผสานเทคนิคของทั้งการเรียนรู้เชิงลึกและการเสริมแรง ขณะนี้อัลกอริธึมการเรียนรู้แบบเสริมกำลังเช่น Q-learning ได้รวมเข้ากับการเรียนรู้เชิงลึกเพื่อสร้างแบบจำลอง DRL ที่มีประสิทธิภาพ เทคนิคนี้ประสบความสำเร็จอย่างมากในด้านหุ่นยนต์วิดีโอเกมการเงินและการดูแลสุขภาพ ปัญหาที่แก้ไขไม่ได้ก่อนหน้านี้จำนวนมากได้รับการแก้ไขโดยการสร้างแบบจำลอง DRL มีงานวิจัยมากมายที่เกิดขึ้นในพื้นที่นี้และเป็นที่สนใจของอุตสาหกรรมต่างๆ
จนถึงตอนนี้คุณได้รับคำแนะนำสั้น ๆ เกี่ยวกับโมเดลการเรียนรู้ของเครื่องต่างๆแล้วตอนนี้ให้เราสำรวจลึกลงไปอีกเล็กน้อยเกี่ยวกับอัลกอริทึมต่างๆที่มีอยู่ในโมเดลเหล่านี้
การเรียนรู้ภายใต้การดูแลเป็นหนึ่งในรูปแบบสำคัญของการเรียนรู้ที่เกี่ยวข้องกับเครื่องฝึก บทนี้พูดถึงรายละเอียดเกี่ยวกับเรื่องเดียวกัน
อัลกอริทึมสำหรับการเรียนรู้ภายใต้การดูแล
มีหลายอัลกอริทึมสำหรับการเรียนรู้ภายใต้การดูแล อัลกอริทึมที่ใช้กันอย่างแพร่หลายของการเรียนรู้ภายใต้การดูแลมีดังต่อไปนี้ -
- k- เพื่อนบ้านที่ใกล้ที่สุด
- ต้นไม้แห่งการตัดสินใจ
- ไร้เดียงสา Bayes
- การถดถอยโลจิสติก
- สนับสนุนเครื่องเวกเตอร์
ในขณะที่เราดำเนินการต่อในบทนี้ให้เราพิจารณารายละเอียดเกี่ยวกับอัลกอริทึมแต่ละอย่าง
k- เพื่อนบ้านที่ใกล้ที่สุด
k-Nearest Neighbours ซึ่งเรียกง่ายๆว่า kNN เป็นเทคนิคทางสถิติที่สามารถใช้ในการแก้ปัญหาการจำแนกประเภทและการถดถอย ให้เราพูดถึงกรณีการจำแนกวัตถุที่ไม่รู้จักโดยใช้ kNN พิจารณาการกระจายของวัตถุตามที่แสดงในภาพด้านล่าง -
ที่มา:
https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
แผนภาพแสดงวัตถุสามประเภทโดยทำเครื่องหมายด้วยสีแดงสีน้ำเงินและสีเขียว เมื่อคุณเรียกใช้ตัวแยกประเภท kNN บนชุดข้อมูลข้างต้นขอบเขตของวัตถุแต่ละประเภทจะถูกทำเครื่องหมายดังที่แสดงด้านล่าง -
ที่มา:
https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm
ตอนนี้ให้พิจารณาวัตถุใหม่ที่ไม่รู้จักซึ่งคุณต้องการจัดประเภทเป็นสีแดงสีเขียวหรือสีน้ำเงิน นี่คือภาพด้านล่าง
ดังที่คุณเห็นด้วยสายตาจุดข้อมูลที่ไม่รู้จักเป็นของคลาสของวัตถุสีน้ำเงิน ในทางคณิตศาสตร์สามารถสรุปได้โดยการวัดระยะห่างของจุดที่ไม่รู้จักนี้กับจุดอื่น ๆ ในชุดข้อมูล เมื่อคุณทำเช่นนั้นคุณจะรู้ว่าเพื่อนบ้านส่วนใหญ่เป็นสีฟ้า ระยะทางเฉลี่ยไปยังวัตถุสีแดงและสีเขียวจะมากกว่าระยะทางเฉลี่ยไปยังวัตถุสีน้ำเงินอย่างแน่นอน ดังนั้นวัตถุที่ไม่รู้จักนี้สามารถถูกจัดประเภทเป็นของคลาสสีน้ำเงิน
อัลกอริทึม kNN ยังสามารถใช้สำหรับปัญหาการถดถอย อัลกอริทึม kNN พร้อมใช้งานในไลบรารี ML ส่วนใหญ่
ต้นไม้แห่งการตัดสินใจ
แผนผังการตัดสินใจอย่างง่ายในรูปแบบผังงานแสดงไว้ด้านล่าง -
คุณจะต้องเขียนโค้ดเพื่อจำแนกข้อมูลอินพุตของคุณตามผังงานนี้ ผังงานสามารถอธิบายได้ด้วยตนเองและไม่สำคัญ ในสถานการณ์นี้คุณกำลังพยายามจัดประเภทอีเมลขาเข้าเพื่อตัดสินใจว่าจะอ่านเมื่อใด
ในความเป็นจริงต้นไม้แห่งการตัดสินใจอาจมีขนาดใหญ่และซับซ้อน มีอัลกอริทึมหลายอย่างเพื่อสร้างและสำรวจต้นไม้เหล่านี้ ในฐานะผู้ที่ชื่นชอบ Machine Learning คุณต้องเข้าใจและเชี่ยวชาญเทคนิคเหล่านี้ในการสร้างและสำรวจเส้นทางการตัดสินใจ
ไร้เดียงสา Bayes
Naive Bayes ใช้สำหรับสร้างลักษณนาม สมมติว่าคุณต้องการคัดแยก (แยกประเภท) ผลไม้ชนิดต่างๆจากตะกร้าผลไม้ คุณอาจใช้คุณสมบัติต่างๆเช่นสีขนาดและรูปร่างของผลไม้ตัวอย่างเช่นผลไม้ที่มีสีแดงมีลักษณะกลมและมีเส้นผ่านศูนย์กลางประมาณ 10 ซม. ดังนั้นในการฝึกโมเดลคุณจะต้องใช้คุณสมบัติเหล่านี้และทดสอบความน่าจะเป็นที่คุณสมบัติที่กำหนดนั้นตรงกับข้อ จำกัด ที่ต้องการ จากนั้นความน่าจะเป็นของคุณสมบัติต่างๆจะถูกรวมเข้าด้วยกันเพื่อให้ได้ความน่าจะเป็นที่ผลไม้ที่ให้มาคือแอปเปิ้ล โดยทั่วไปแล้ว Naive Bayes ต้องการข้อมูลการฝึกอบรมจำนวนเล็กน้อยสำหรับการจำแนกประเภท
การถดถอยโลจิสติก
ดูแผนภาพต่อไปนี้ แสดงการกระจายของจุดข้อมูลในระนาบ XY
จากแผนภาพเราสามารถตรวจสอบการแยกจุดสีแดงออกจากจุดสีเขียวได้ด้วยสายตา คุณอาจวาดเส้นแบ่งเขตเพื่อแยกจุดเหล่านี้ออก ตอนนี้ในการจัดประเภทจุดข้อมูลใหม่คุณจะต้องพิจารณาว่าจุดนั้นอยู่ที่ด้านใดของเส้น
สนับสนุนเครื่องเวกเตอร์
ดูการกระจายของข้อมูลต่อไปนี้ ในที่นี้ข้อมูลทั้งสามคลาสไม่สามารถแยกออกจากกันได้ เส้นโค้งขอบเขตไม่เป็นเส้นตรง ในกรณีเช่นนี้การหาสมการของเส้นโค้งจะกลายเป็นงานที่ซับซ้อน
ที่มา: http://uc-r.github.io/svm
Support Vector Machines (SVM) มีประโยชน์ในการกำหนดขอบเขตการแยกในสถานการณ์เช่นนี้
โชคดีที่ส่วนใหญ่คุณไม่ต้องเขียนโค้ดอัลกอริทึมที่กล่าวถึงในบทเรียนก่อนหน้านี้ มีไลบรารีมาตรฐานจำนวนมากที่ให้การใช้งานอัลกอริทึมเหล่านี้พร้อมใช้งาน ชุดเครื่องมือหนึ่งที่นิยมใช้คือ scikit-learn รูปด้านล่างแสดงให้เห็นถึงประเภทของอัลกอริทึมที่คุณสามารถใช้งานได้ในไลบรารีนี้
ที่มา: https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
การใช้อัลกอริทึมเหล่านี้เป็นเรื่องเล็กน้อยและเนื่องจากสิ่งเหล่านี้ผ่านการทดสอบมาเป็นอย่างดีคุณจึงสามารถใช้อัลกอริทึมเหล่านี้ในแอปพลิเคชัน AI ของคุณได้อย่างปลอดภัย ห้องสมุดเหล่านี้ส่วนใหญ่ใช้งานได้ฟรีแม้เพื่อวัตถุประสงค์ทางการค้า
สิ่งที่คุณได้เห็นคือการทำให้เครื่องเรียนรู้ที่จะหาวิธีแก้ปัญหาให้กับเป้าหมายของเรา ในการถดถอยเราฝึกให้เครื่องทำนายมูลค่าในอนาคต ในการจัดหมวดหมู่เราฝึกให้เครื่องจำแนกวัตถุที่ไม่รู้จักในประเภทใดประเภทหนึ่งที่กำหนดโดยเรา ในระยะสั้นเราได้รับการฝึกอบรมเครื่องจักรเพื่อให้สามารถทำนาย Y สำหรับข้อมูลของเรา X เนื่องจากมีชุดข้อมูลขนาดใหญ่และไม่ได้ประมาณหมวดหมู่จึงเป็นเรื่องยากสำหรับเราในการฝึกอบรมเครื่องโดยใช้การเรียนรู้ภายใต้การดูแล จะเกิดอะไรขึ้นถ้าเครื่องสามารถค้นหาและวิเคราะห์ข้อมูลขนาดใหญ่ที่ทำงานในหลายกิกะไบต์และเทราไบต์และบอกเราว่าข้อมูลนี้มีหมวดหมู่ที่แตกต่างกันมากมาย?
ตัวอย่างเช่นพิจารณาข้อมูลของผู้มีสิทธิเลือกตั้ง เมื่อพิจารณาข้อมูลบางอย่างจากผู้มีสิทธิเลือกตั้งแต่ละคน (สิ่งเหล่านี้เรียกว่าคุณลักษณะในคำศัพท์ AI) ให้เครื่องทำนายว่ามีผู้มีสิทธิเลือกตั้งจำนวนมากที่จะลงคะแนนให้พรรคการเมือง X และจำนวนมากจะลงคะแนนให้ Y เป็นต้น ดังนั้นโดยทั่วไปเราจึงขอให้เครื่องกำหนดจุดข้อมูล X จำนวนมากว่า“ คุณบอกอะไรเกี่ยวกับ X ได้บ้าง” หรืออาจเป็นคำถามเช่น“ 5 กลุ่มที่ดีที่สุดที่เราสร้างจาก X ได้คืออะไร” หรืออาจเป็นเช่น“ คุณลักษณะสามประการใดเกิดขึ้นพร้อมกันบ่อยที่สุดใน X”
นี่คือการเรียนรู้ที่ไม่มีผู้ดูแลเป็นข้อมูลเกี่ยวกับ
อัลกอริทึมสำหรับการเรียนรู้ที่ไม่มีผู้ดูแล
ตอนนี้ให้เราพูดถึงหนึ่งในอัลกอริทึมที่ใช้กันอย่างแพร่หลายสำหรับการจำแนกประเภทในแมชชีนเลิร์นนิงที่ไม่ได้รับการดูแล
k-mean clustering
การเลือกตั้งประธานาธิบดีในสหรัฐอเมริกาปี 2000 และ 2004 เป็นไปอย่างใกล้ชิด - ใกล้มาก เปอร์เซ็นต์คะแนนนิยมที่มากที่สุดที่ผู้สมัครได้รับคือ 50.7% และต่ำสุดคือ 47.9% หากผู้มีสิทธิเลือกตั้งต้องเปลี่ยนข้างผลการเลือกตั้งจะแตกต่างกันไป มีผู้มีสิทธิเลือกตั้งกลุ่มเล็ก ๆ ที่เมื่อได้รับการร้องขออย่างถูกต้องแล้วจะเปลี่ยนข้าง กลุ่มเหล่านี้อาจไม่ได้มีขนาดใหญ่ แต่ด้วยการแข่งขันที่ใกล้ชิดเช่นนี้พวกเขาอาจมีขนาดใหญ่พอที่จะเปลี่ยนแปลงผลการเลือกตั้งได้ คุณจะพบกลุ่มคนเหล่านี้ได้อย่างไร? คุณจะดึงดูดพวกเขาด้วยงบประมาณที่ จำกัด ได้อย่างไร? คำตอบคือการรวมกลุ่ม
ให้เราเข้าใจว่ามันทำอย่างไร
ขั้นแรกคุณต้องรวบรวมข้อมูลเกี่ยวกับบุคคลทั้งที่มีหรือไม่ได้รับความยินยอม: ข้อมูลใด ๆ ที่อาจให้เบาะแสเกี่ยวกับสิ่งที่สำคัญสำหรับพวกเขาและสิ่งที่จะมีผลต่อวิธีการลงคะแนน
จากนั้นคุณใส่ข้อมูลนี้ลงในอัลกอริทึมการทำคลัสเตอร์บางประเภท
ถัดไปสำหรับแต่ละคลัสเตอร์ (ควรเลือกกลุ่มที่ใหญ่ที่สุดก่อน) คุณต้องสร้างข้อความที่จะดึงดูดผู้มีสิทธิเลือกตั้งเหล่านี้
สุดท้ายคุณส่งมอบแคมเปญและวัดผลเพื่อดูว่าแคมเปญทำงานได้หรือไม่
การจัดกลุ่มเป็นประเภทของการเรียนรู้ที่ไม่มีผู้ดูแลซึ่งรวมกลุ่มของสิ่งที่คล้ายกันโดยอัตโนมัติ มันเป็นเหมือนการจัดหมวดหมู่โดยอัตโนมัติ คุณสามารถจัดกลุ่มได้เกือบทุกอย่างและยิ่งรายการที่คล้ายกันอยู่ในคลัสเตอร์คลัสเตอร์ก็จะยิ่งดีขึ้น ในบทนี้เราจะศึกษาอัลกอริทึมการจัดกลุ่มประเภทหนึ่งที่เรียกว่า k-mean เรียกว่า k-mean เนื่องจากพบคลัสเตอร์เฉพาะ 'k' และศูนย์กลางของแต่ละคลัสเตอร์คือค่าเฉลี่ยของค่าในคลัสเตอร์นั้น
การระบุคลัสเตอร์
การระบุคลัสเตอร์จะบอกอัลกอริทึมว่า“ นี่คือข้อมูลบางส่วน ตอนนี้จัดกลุ่มสิ่งที่คล้ายกันเข้าด้วยกันและบอกฉันเกี่ยวกับกลุ่มเหล่านั้น” ข้อแตกต่างที่สำคัญจากการจัดหมวดหมู่คือในการจัดหมวดหมู่คุณรู้ว่าคุณกำลังมองหาอะไร แม้ว่าจะไม่เป็นเช่นนั้นในการทำคลัสเตอร์
การจัดกลุ่มบางครั้งเรียกว่าการจัดประเภทโดยไม่ได้รับการดูแลเนื่องจากให้ผลลัพธ์เช่นเดียวกับการจัดหมวดหมู่ แต่ไม่มีคลาสที่กำหนดไว้ล่วงหน้า
ตอนนี้เราสบายใจกับการเรียนรู้ทั้งแบบมีผู้ดูแลและไม่มีผู้ดูแล เพื่อทำความเข้าใจหมวดหมู่การเรียนรู้ของเครื่องที่เหลือก่อนอื่นเราต้องเข้าใจ Artificial Neural Networks (ANN) ซึ่งเราจะเรียนรู้ในบทถัดไป
ความคิดของโครงข่ายประสาทเทียมได้มาจากโครงข่ายประสาทในสมองของมนุษย์ สมองของมนุษย์มีความซับซ้อนจริงๆ การศึกษาสมองอย่างรอบคอบนักวิทยาศาสตร์และวิศวกรได้คิดค้นสถาปัตยกรรมที่สามารถเข้ากับโลกดิจิทัลของคอมพิวเตอร์ไบนารีของเราได้ สถาปัตยกรรมทั่วไปอย่างหนึ่งดังแสดงในแผนภาพด้านล่าง -
มีชั้นอินพุตซึ่งมีเซ็นเซอร์จำนวนมากเพื่อรวบรวมข้อมูลจากโลกภายนอก ทางด้านขวามือเรามีเลเยอร์เอาต์พุตที่ให้ผลลัพธ์ที่เครือข่ายคาดการณ์ไว้ ระหว่างสองชั้นนี้ซ่อนอยู่หลายชั้น แต่ละเลเยอร์เพิ่มเติมจะเพิ่มความซับซ้อนในการฝึกอบรมเครือข่าย แต่จะให้ผลลัพธ์ที่ดีกว่าในสถานการณ์ส่วนใหญ่ มีสถาปัตยกรรมหลายประเภทที่เราจะพูดถึงในตอนนี้
ANN สถาปัตยกรรม
แผนภาพด้านล่างแสดงสถาปัตยกรรม ANN หลายแบบที่พัฒนาขึ้นในช่วงระยะเวลาหนึ่งและในทางปฏิบัติในปัจจุบัน
ที่มา:
https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-explained-3fb6f2367464
สถาปัตยกรรมแต่ละแบบได้รับการพัฒนาสำหรับแอปพลิเคชันประเภทใดประเภทหนึ่ง ดังนั้นเมื่อคุณใช้เครือข่ายประสาทเทียมสำหรับแอปพลิเคชันการเรียนรู้ของเครื่องคุณจะต้องใช้สถาปัตยกรรมที่มีอยู่อย่างใดอย่างหนึ่งหรือออกแบบของคุณเอง ประเภทของแอปพลิเคชันที่คุณตัดสินใจในที่สุดขึ้นอยู่กับความต้องการแอปพลิเคชันของคุณ ไม่มีแนวทางเดียวที่บอกให้คุณใช้สถาปัตยกรรมเครือข่ายเฉพาะ
Deep Learning ใช้ ANN ก่อนอื่นเราจะดูแอปพลิเคชั่นการเรียนรู้เชิงลึกสองสามตัวที่จะทำให้คุณเห็นถึงพลังของมัน
การใช้งาน
Deep Learning ประสบความสำเร็จอย่างมากในหลาย ๆ ด้านของแอปพลิเคชันแมชชีนเลิร์นนิง
Self-driving Cars- รถยนต์ขับเคลื่อนอัตโนมัติใช้เทคนิคการเรียนรู้เชิงลึก โดยทั่วไปแล้วพวกเขาจะปรับตัวให้เข้ากับสถานการณ์การจราจรที่เปลี่ยนแปลงตลอดเวลาและขับรถได้ดีขึ้นเรื่อย ๆ ในช่วงเวลาหนึ่ง
Speech Recognition- แอปพลิเคชั่น Deep Learning ที่น่าสนใจอีกอย่างคือการรู้จำเสียง พวกเราทุกคนใช้แอพมือถือหลายตัวในปัจจุบันที่สามารถจดจำคำพูดของเราได้ Siri ของ Apple, Alexa ของ Amazon, Cortena ของ Microsoft และผู้ช่วยของ Google ทั้งหมดนี้ใช้เทคนิคการเรียนรู้เชิงลึก
Mobile Apps- เราใช้แอปบนเว็บและแอพมือถือหลายตัวเพื่อจัดระเบียบรูปภาพของเรา การตรวจจับใบหน้า, รหัสใบหน้า, การติดแท็กใบหน้า, การระบุวัตถุในภาพ - ทั้งหมดนี้ใช้การเรียนรู้เชิงลึก
โอกาสที่ไม่ได้ใช้ของการเรียนรู้เชิงลึก
หลังจากดูแอปพลิเคชันการเรียนรู้เชิงลึกที่ประสบความสำเร็จอย่างมากในหลายโดเมนผู้คนเริ่มสำรวจโดเมนอื่น ๆ ที่ยังไม่มีการใช้แมชชีนเลิร์นนิง มีหลายโดเมนที่ใช้เทคนิคการเรียนรู้เชิงลึกได้สำเร็จและยังมีโดเมนอื่น ๆ อีกมากมายที่สามารถใช้ประโยชน์ได้ บางส่วนจะกล่าวถึงที่นี่
เกษตรกรรมเป็นอุตสาหกรรมหนึ่งที่ผู้คนสามารถใช้เทคนิคการเรียนรู้เชิงลึกเพื่อปรับปรุงผลผลิตของพืชได้
การเงินสำหรับผู้บริโภคเป็นอีกส่วนหนึ่งที่แมชชีนเลิร์นนิงสามารถช่วยในการตรวจจับการฉ้อโกงได้ล่วงหน้าและวิเคราะห์ความสามารถในการชำระเงินของลูกค้า
เทคนิคการเรียนรู้เชิงลึกยังถูกนำไปใช้กับสาขาการแพทย์เพื่อสร้างยาใหม่ ๆ และจัดหาใบสั่งยาเฉพาะบุคคลให้กับผู้ป่วย
ความเป็นไปได้นั้นไม่มีที่สิ้นสุดและเราต้องคอยเฝ้าดูความคิดและการพัฒนาใหม่ ๆ ที่เกิดขึ้นบ่อยๆ
สิ่งที่จำเป็นสำหรับการบรรลุมากขึ้นโดยใช้การเรียนรู้เชิงลึก
ในการใช้การเรียนรู้เชิงลึกพลังการประมวลผลขั้นสูงเป็นข้อกำหนดบังคับ คุณต้องมีทั้งหน่วยความจำและ CPU เพื่อพัฒนาโมเดลการเรียนรู้เชิงลึก โชคดีที่วันนี้เรามี HPC - High Performance Computing ด้วยเหตุนี้การพัฒนาแอปพลิเคชันการเรียนรู้เชิงลึกที่เรากล่าวถึงข้างต้นจึงกลายเป็นความจริงในวันนี้และในอนาคตเช่นกันเราจึงสามารถเห็นแอปพลิเคชันในพื้นที่ที่ไม่ได้ใช้ซึ่งเราได้กล่าวถึงก่อนหน้านี้
ตอนนี้เราจะมาดูข้อ จำกัด บางประการของการเรียนรู้เชิงลึกที่เราต้องพิจารณาก่อนใช้ในแอปพลิเคชันแมชชีนเลิร์นนิงของเรา
ข้อเสียของการเรียนรู้เชิงลึก
ประเด็นสำคัญบางประการที่คุณต้องพิจารณาก่อนใช้การเรียนรู้เชิงลึกมีดังต่อไปนี้ -
- แนวทาง Black Box
- ระยะเวลาในการพัฒนา
- ปริมาณข้อมูล
- มีราคาแพงในการคำนวณ
ตอนนี้เราจะศึกษาข้อ จำกัด แต่ละข้อโดยละเอียด
แนวทาง Black Box
ANN เปรียบเสมือนกล่องดำ คุณป้อนข้อมูลที่แน่นอนและจะให้ผลลัพธ์เฉพาะแก่คุณ แผนภาพต่อไปนี้แสดงให้คุณเห็นแอปพลิเคชั่นดังกล่าวที่คุณป้อนภาพสัตว์เข้ากับโครงข่ายประสาทเทียมและจะบอกคุณว่าภาพนั้นเป็นของสุนัข
เหตุใดจึงเรียกว่าวิธีการแบบกล่องดำคือคุณไม่ทราบว่าเหตุใดเครือข่ายจึงได้ผลลัพธ์บางอย่าง คุณไม่รู้ว่าเครือข่ายสรุปว่าเป็นหมาได้อย่างไร? ตอนนี้ให้พิจารณาแอปพลิเคชันธนาคารที่ธนาคารต้องการตัดสินความน่าเชื่อถือของลูกค้า เครือข่ายจะให้คำตอบแก่คุณสำหรับคำถามนี้อย่างแน่นอน อย่างไรก็ตามคุณจะสามารถให้เหตุผลกับลูกค้าได้หรือไม่? ธนาคารจำเป็นต้องอธิบายให้ลูกค้าเข้าใจว่าเหตุใดเงินกู้จึงไม่ถูกลงโทษ?
ระยะเวลาในการพัฒนา
ขั้นตอนการฝึกโครงข่ายประสาทเทียมแสดงไว้ในแผนภาพด้านล่าง -
ก่อนอื่นคุณต้องกำหนดปัญหาที่คุณต้องการแก้ไขสร้างข้อกำหนดสำหรับปัญหานั้นตัดสินใจเกี่ยวกับคุณสมบัติอินพุตออกแบบเครือข่ายปรับใช้และทดสอบเอาต์พุต หากผลลัพธ์ไม่เป็นไปตามที่คาดไว้ให้ใช้ข้อมูลนี้เป็นข้อเสนอแนะเพื่อปรับโครงสร้างเครือข่ายของคุณใหม่ นี่เป็นกระบวนการที่ทำซ้ำและอาจต้องทำซ้ำหลายครั้งจนกว่าเครือข่ายเวลาจะได้รับการฝึกฝนอย่างเต็มที่เพื่อให้ได้ผลลัพธ์ที่ต้องการ
ปริมาณข้อมูล
เครือข่ายการเรียนรู้เชิงลึกมักต้องการข้อมูลจำนวนมากสำหรับการฝึกอบรมในขณะที่อัลกอริทึมการเรียนรู้ของเครื่องแบบเดิมสามารถใช้งานได้อย่างประสบความสำเร็จแม้จะมีจุดข้อมูลเพียงไม่กี่พันจุด โชคดีที่ปริมาณข้อมูลเพิ่มขึ้นที่ 40% ต่อปีและกำลังประมวลผลของ CPU เพิ่มขึ้นที่ 20% ต่อปีดังที่เห็นในแผนภาพด้านล่าง -
มีราคาแพงในการคำนวณ
การฝึกอบรมเครือข่ายประสาทเทียมต้องใช้พลังในการคำนวณมากกว่าที่จำเป็นในการรันอัลกอริทึมแบบเดิมหลายเท่า การฝึกโครงข่ายประสาทเทียมระดับลึกให้ประสบความสำเร็จอาจต้องใช้เวลาฝึกหลายสัปดาห์
ตรงกันข้ามกับสิ่งนี้อัลกอริทึมการเรียนรู้ของเครื่องแบบเดิมใช้เวลาเพียงไม่กี่นาที / ชั่วโมงในการฝึกอบรม นอกจากนี้จำนวนพลังการคำนวณที่จำเป็นสำหรับการฝึกโครงข่ายประสาทเทียมแบบลึกนั้นขึ้นอยู่กับขนาดของข้อมูลของคุณและเครือข่ายนั้นลึกและซับซ้อนเพียงใด?
หลังจากดูภาพรวมแล้วว่า Machine Learning คืออะไรความสามารถข้อ จำกัด และแอปพลิเคชันแล้วตอนนี้ให้เราดำดิ่งสู่การเรียนรู้“ Machine Learning”
Machine Learning มีความกว้างมากและต้องใช้ทักษะในหลายโดเมน ทักษะที่คุณต้องได้รับเพื่อเป็นผู้เชี่ยวชาญด้าน Machine Learning มีดังต่อไปนี้ -
- Statistics
- ทฤษฎีความน่าจะเป็น
- Calculus
- เทคนิคการเพิ่มประสิทธิภาพ
- Visualization
ความจำเป็นของทักษะต่างๆของการเรียนรู้ของเครื่อง
เพื่อให้คุณทราบสั้น ๆ เกี่ยวกับทักษะที่คุณต้องได้รับให้เราพูดถึงตัวอย่างบางส่วน -
สัญกรณ์คณิตศาสตร์
อัลกอริธึมการเรียนรู้ของเครื่องส่วนใหญ่จะขึ้นอยู่กับคณิตศาสตร์เป็นหลัก ระดับคณิตศาสตร์ที่คุณต้องรู้น่าจะเป็นแค่ระดับเริ่มต้น สิ่งที่สำคัญคือคุณควรจะสามารถอ่านสัญกรณ์ที่นักคณิตศาสตร์ใช้ในสมการได้ ตัวอย่างเช่น - หากคุณสามารถอ่านสัญกรณ์และเข้าใจความหมายคุณก็พร้อมสำหรับการเรียนรู้แมชชีนเลิร์นนิง ถ้าไม่คุณอาจต้องฝึกความรู้คณิตศาสตร์ของคุณ
$$ f_ {AN} (net- \ theta) = \ begin {cases} \ gamma & if \: net- \ theta \ geq \ epsilon \\ net- \ theta & if - \ epsilon <net- \ theta <\ epsilon \\ - \ gamma & if \: net- \ theta \ leq- \ epsilon \ end {cases} $$
$$ \ displaystyle \\\ max \ LIMIT _ {\ alpha} \ begin {bmatrix} \ displaystyle \ sum \ LIMIT_ {i = 1} ^ m \ alpha- \ frac {1} {2} \ displaystyle \ sum \ LIMIT_ { ผม j = 1} ^ m label ^ \ left (\ begin {array} {c} i \\ \ end {array} \ right) \ cdot \: label ^ \ left (\ begin {array} {c} j \\ \ end {array} \ right) \ cdot \: a_ {i} \ cdot \: a_ {j} \ langle x ^ \ left (\ begin {array} {c} i \\ \ end {array} \ ขวา), x ^ \ left (\ begin {array} {c} j \\ \ end {array} \ right) \ rangle \ end {bmatrix} $$
$$ f_ {AN} (net- \ theta) = \ left (\ frac {e ^ {\ lambda (net- \ theta)} - e ^ {- \ lambda (net- \ theta)}} {e ^ { \ lambda (net- \ theta)} + e ^ {- \ lambda (net- \ theta)}} \ right) \; $$
ทฤษฎีความน่าจะเป็น
นี่คือตัวอย่างเพื่อทดสอบความรู้ในปัจจุบันของคุณเกี่ยวกับทฤษฎีความน่าจะเป็น: การจำแนกประเภทด้วยความน่าจะเป็นแบบมีเงื่อนไข
$$ p (c_ {i} | x, y) \; = \ frac {p (x, y | c_ {i}) \; p (c_ {i}) \;} {p (x, y) \ ;} $$
ด้วยคำจำกัดความเหล่านี้เราสามารถกำหนดกฎการจำแนกแบบเบย์ -
- ถ้า P (c1 | x, y)> P (c2 | x, y) คลาสคือ c1
- ถ้า P (c1 | x, y) <P (c2 | x, y) คลาสคือ c2
ปัญหาการเพิ่มประสิทธิภาพ
นี่คือฟังก์ชันการเพิ่มประสิทธิภาพ
$$ \ displaystyle \\\ max \ LIMIT _ {\ alpha} \ begin {bmatrix} \ displaystyle \ sum \ LIMIT_ {i = 1} ^ m \ alpha- \ frac {1} {2} \ displaystyle \ sum \ LIMIT_ { ผม j = 1} ^ m label ^ \ left (\ begin {array} {c} i \\ \ end {array} \ right) \ cdot \: label ^ \ left (\ begin {array} {c} j \\ \ end {array} \ right) \ cdot \: a_ {i} \ cdot \: a_ {j} \ langle x ^ \ left (\ begin {array} {c} i \\ \ end {array} \ ขวา), x ^ \ left (\ begin {array} {c} j \\ \ end {array} \ right) \ rangle \ end {bmatrix} $$
ภายใต้ข้อ จำกัด ดังต่อไปนี้ -
$$ \ alpha \ geq0 และ \: \ displaystyle \ sum \ LIMIT_ {i-1} ^ m \ alpha_ {i} \ cdot \: label ^ \ left (\ begin {array} {c} i \\ \ end {array} \ right) = 0 $$
หากคุณสามารถอ่านและทำความเข้าใจข้างต้นได้แสดงว่าคุณพร้อมแล้ว
การแสดงภาพ
ในหลายกรณีคุณจะต้องเข้าใจพล็อตการแสดงภาพประเภทต่างๆเพื่อทำความเข้าใจการกระจายข้อมูลของคุณและตีความผลลัพธ์ของผลลัพธ์ของอัลกอริทึม
นอกเหนือจากแง่มุมทางทฤษฎีข้างต้นของแมชชีนเลิร์นนิงแล้วคุณยังต้องมีทักษะการเขียนโปรแกรมที่ดีในการเขียนโค้ดอัลกอริทึมเหล่านั้น
การใช้ ML ต้องใช้อะไรบ้าง? ให้เราดูในบทถัดไป
ในการพัฒนาแอปพลิเคชัน ML คุณจะต้องตัดสินใจเกี่ยวกับแพลตฟอร์ม IDE และภาษาสำหรับการพัฒนา มีให้เลือกมากมาย สิ่งเหล่านี้ส่วนใหญ่จะตอบสนองความต้องการของคุณได้อย่างง่ายดายเนื่องจากทั้งหมดนี้มีการใช้อัลกอริทึม AI ที่กล่าวถึง
หากคุณกำลังพัฒนาอัลกอริทึม ML ด้วยตัวคุณเองจำเป็นต้องทำความเข้าใจประเด็นต่อไปนี้อย่างรอบคอบ -
ภาษาที่คุณเลือก - โดยพื้นฐานแล้วนี่คือความสามารถของคุณในภาษาใดภาษาหนึ่งที่สนับสนุนในการพัฒนา ML
IDE ที่คุณใช้ - สิ่งนี้จะขึ้นอยู่กับความคุ้นเคยของคุณกับ IDE ที่มีอยู่และระดับความสะดวกสบายของคุณ
Development platform- มีหลายแพลตฟอร์มสำหรับการพัฒนาและการปรับใช้ ส่วนใหญ่ใช้งานได้ฟรี ในบางกรณีคุณอาจต้องเสียค่าธรรมเนียมใบอนุญาตเกินจำนวนการใช้งานที่กำหนด นี่คือรายการสั้น ๆ ของตัวเลือกภาษา IDE และแพลตฟอร์มสำหรับการอ้างอิงที่พร้อมใช้งานของคุณ
ตัวเลือกภาษา
นี่คือรายการภาษาที่รองรับการพัฒนา ML -
- Python
- R
- Matlab
- Octave
- Julia
- C++
- C
รายการนี้ไม่ครอบคลุมเป็นหลัก อย่างไรก็ตามมันครอบคลุมภาษายอดนิยมมากมายที่ใช้ในการพัฒนาแมชชีนเลิร์นนิง ขึ้นอยู่กับระดับความสะดวกสบายของคุณเลือกภาษาสำหรับการพัฒนาพัฒนาแบบจำลองของคุณและทดสอบ
IDE
นี่คือรายการ IDE ที่รองรับการพัฒนา ML -
- อาร์สตูดิโอ
- Pycharm
- iPython / Jupyter Notebook
- Julia
- Spyder
- Anaconda
- Rodeo
- Google –Colab
รายการด้านบนไม่ครอบคลุมเป็นหลัก แต่ละคนมีข้อดีและข้อด้อยของตัวเอง ขอแนะนำให้ผู้อ่านลองใช้ IDE ที่แตกต่างกันเหล่านี้ก่อนที่จะ จำกัด ขอบเขตให้เหลือเพียงรายการเดียว
แพลตฟอร์ม
นี่คือรายการของแพลตฟอร์มที่สามารถใช้งานแอปพลิเคชัน ML ได้ -
- IBM
- Microsoft Azure
- Google Cloud
- Amazon
- Mlflow
อีกครั้งรายการนี้ยังไม่ครบถ้วนสมบูรณ์ ขอแนะนำให้ผู้อ่านลงชื่อสมัครใช้บริการดังกล่าวข้างต้นและทดลองใช้ด้วยตนเอง
บทช่วยสอนนี้แนะนำให้คุณรู้จักกับ Machine Learning ตอนนี้คุณรู้แล้วว่าการเรียนรู้ของเครื่องเป็นเทคนิคการฝึกอบรมเครื่องจักรเพื่อทำกิจกรรมต่างๆที่สมองของมนุษย์สามารถทำได้แม้ว่าจะเร็วกว่าและดีกว่ามนุษย์ทั่วไปเล็กน้อยก็ตาม วันนี้เราได้เห็นแล้วว่าเครื่องจักรสามารถเอาชนะแชมเปี้ยนที่เป็นมนุษย์ได้ในเกมเช่น Chess, AlphaGO ซึ่งถือว่าซับซ้อนมาก คุณได้เห็นแล้วว่าเครื่องจักรสามารถได้รับการฝึกฝนให้ทำกิจกรรมต่างๆของมนุษย์ในหลาย ๆ ด้านและสามารถช่วยเหลือมนุษย์ให้มีชีวิตที่ดีขึ้น
การเรียนรู้ของเครื่องอาจเป็นแบบภายใต้การดูแลหรือไม่ได้รับการดูแล หากคุณมีข้อมูลน้อยกว่าและมีป้ายกำกับข้อมูลสำหรับการฝึกอบรมอย่างชัดเจนให้เลือกใช้การเรียนรู้ภายใต้การดูแล โดยทั่วไปการเรียนรู้ที่ไม่มีผู้ดูแลจะให้ประสิทธิภาพและผลลัพธ์ที่ดีกว่าสำหรับชุดข้อมูลขนาดใหญ่ หากคุณมีชุดข้อมูลขนาดใหญ่ที่พร้อมใช้งานอย่างง่ายดายให้ไปที่เทคนิคการเรียนรู้เชิงลึก คุณยังได้เรียนรู้ Reinforcement Learning และ Deep Reinforcement Learning ตอนนี้คุณรู้แล้วว่า Neural Networks คืออะไรแอพพลิเคชั่นและข้อ จำกัด ต่างๆ
สุดท้ายเมื่อพูดถึงการพัฒนาโมเดลแมชชีนเลิร์นนิงของคุณเองคุณได้พิจารณาถึงตัวเลือกของภาษาการพัฒนา IDE และแพลตฟอร์มต่างๆ สิ่งต่อไปที่คุณต้องทำคือเริ่มเรียนรู้และฝึกฝนเทคนิคการเรียนรู้ของเครื่องแต่ละอย่าง หัวข้อมีขนาดใหญ่หมายความว่ามีความกว้าง แต่ถ้าคุณพิจารณาความลึกแต่ละหัวข้อสามารถเรียนรู้ได้ภายในไม่กี่ชั่วโมง แต่ละหัวข้อเป็นอิสระจากกัน คุณต้องพิจารณาทีละหัวข้อเรียนรู้ฝึกฝนและใช้อัลกอริทึมในหัวข้อนั้นโดยใช้ตัวเลือกภาษาของคุณ นี่เป็นวิธีที่ดีที่สุดในการเริ่มศึกษา Machine Learning ฝึกทีละหัวข้อในไม่ช้าคุณจะได้รับความกว้างที่จำเป็นสำหรับผู้เชี่ยวชาญด้าน Machine Learning ในที่สุด
โชคดี!