ฉันยังไม่มีลูก แต่เมื่อฉันมี ฉันต้องการให้พวกเขาเรียนรู้สองสิ่ง:
- การเงินส่วนบุคคล
- การเรียนรู้ของเครื่อง
ไม่ว่าคุณจะเชื่อหรือไม่ว่าภาวะเอกฐานอยู่ใกล้กัน ปฏิเสธไม่ได้ว่าโลกใช้ข้อมูล การทำความเข้าใจว่าข้อมูลนั้นถูกแปลงเป็นความรู้นั้นมีความสำคัญต่อผู้ใดก็ตามในยุคนี้ และยิ่งไปกว่านั้นสำหรับนักพัฒนา
นี่เป็นบทความแรกในซีรีส์ที่จะพยายามทำให้การเรียนรู้ของเครื่อง (ML) สามารถเข้าถึงได้โดยนักพัฒนา Ruby แบบฟูลสแตก ด้วยการทำความเข้าใจเครื่องมือ ML ที่มีอยู่ คุณจะสามารถช่วยให้ผู้มีส่วนได้ส่วนเสียของคุณตัดสินใจได้ดีขึ้น บทความในอนาคตจะเน้นที่เทคนิคแต่ละอย่างและตัวอย่างเชิงปฏิบัติ แต่ในบทความนี้ เรากำลังเตรียมพื้นที่ โดยแสดงแผนที่และปักหมุดที่ระบุว่า "คุณอยู่ที่นี่"
จุดเริ่มต้นที่ต่ำต้อย
ปัญญาประดิษฐ์ (AI) และการเรียนรู้ของเครื่องไม่ใช่เรื่องใหม่ ย้อนกลับไปในปี 1950 อาร์เธอร์ ซามูเอลได้สร้างโปรแกรมคอมพิวเตอร์ที่สามารถเล่นหมากฮอสได้ เขาใช้ "การตัดแต่งกิ่งอัลฟ่าเบต้า" ซึ่งเป็นอัลกอริธึมการค้นหาทั่วไป
ทศวรรษที่ 1960 ได้เห็นการกำเนิดของโครงข่ายประสาทหลายชั้นและอัลกอริธึมเพื่อนบ้านที่ใกล้ที่สุด ซึ่งใช้เพื่อค้นหาเส้นทางที่เหมาะสมที่สุดในคลังสินค้า
แล้วถ้า AI เก่ามาก ทำไม AI สตาร์ทอัพถึงมาแรง? ในความคิดของฉัน มีเหตุผลสองประการสำหรับสิ่งนี้:
- พลังคอมพิวเตอร์ (ดูกฎของมัวร์)
- ปริมาณข้อมูลที่ถูกเพิ่มลงในอินเทอร์เน็ตทุกวัน
มีสถิติสองอย่างที่เกี่ยวข้องกับปริมาณข้อมูลที่สร้างขึ้นในแต่ละวัน ซึ่งทำให้ฉันต้องทึ่งทุกครั้งที่นึกถึง:
- ในปี 2018 เรากำลังสร้างข้อมูล 2.5 quintillion ไบต์ทุกวัน ไม่ต้องสงสัยเลยว่าตัวเลขนี้เพิ่มขึ้นตั้งแต่บทความของ Forbes นี้เผยแพร่เท่านั้น
- ในช่วงสองปีที่ผ่านมา 90% ของข้อมูลในโลกถูกสร้างขึ้น
เมื่อรวมกันแล้ว สิ่งนี้หมายความว่า (1) ฮาร์ดแวร์ที่จำเป็นในการจัดเก็บข้อมูลและรันอัลกอริธึมยังคงมีราคาจับต้องได้ และ (2) ปริมาณข้อมูลที่มีในการฝึกโมเดล ML เพิ่มขึ้นอย่างรวดเร็ว
ทุก ๆ วันเรากำลังโต้ตอบ ได้รับอิทธิพล และมีส่วนร่วมในโลกแห่งปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง ตัวอย่างเช่น คุณสามารถขอบคุณ (หรือตำหนิ) อัลกอริทึมสำหรับสิ่งต่อไปนี้:
- วงเงินเครดิตของคุณ
- ช่วยวินิจฉัยโรค
- บางทีแม้ว่าคุณจะได้งานหรือไม่
- ช่วยคุณค้นหาเส้นทางที่มีประสิทธิภาพที่สุดตามสภาพการจราจรในปัจจุบัน
- Alexa เข้าใจสิ่งที่คุณหมายถึงเมื่อคุณบอกเธอว่าคุณเพิ่งจาม
- Spotify แนะนำให้คุณรู้จักกับเพลงใหม่ที่คุณชอบ
เหตุผลที่ฉันเลี้ยงลูกในอนาคตโดยสมมติขึ้นคือ ฉันต้องการให้พวกเขาเข้าใจว่าชีวิตดิจิทัลของพวกเขามีอิทธิพลต่อชีวิต "จริง" ของพวกเขาอย่างไร นัยของการตัดสินใจเรื่องความเป็นส่วนตัวของข้อมูล และวิธีสร้างความคิดเห็นของตนเองว่าเมื่อใดที่พวกเขาควรไว้วางใจเครื่อง เทียบกับเมื่อไม่ควร
ในส่วนที่เหลือของโพสต์นี้ ฉันต้องการให้ภาพรวมของแมชชีนเลิร์นนิงสามประเภทที่ฉันได้ศึกษา ได้แก่ การเรียนรู้ภายใต้การดูแล การเรียนรู้แบบไม่มีผู้ดูแล และการเรียนรู้แบบเสริมกำลัง เราจะพูดถึงสิ่งที่ทำให้แต่ละแนวทางไม่เหมือนกัน และปัญหาแต่ละข้อก็แก้ปัญหาได้ดีเป็นพิเศษ
การเรียนรู้ภายใต้การดูแล
การเรียนรู้ภายใต้การดูแลคือ... ก็ถูกควบคุมโดยมนุษย์ :) ลองนึกภาพว่าเรากำลังสร้างระบบการเรียนรู้ภายใต้การดูแลเพื่อตัดสินว่าใครได้รับการอนุมัติให้จำนอง วิธีนี้อาจใช้ได้ผล:
- ธนาคารรวบรวมชุดข้อมูลที่จับคู่แอตทริบิวต์ของลูกค้า (อายุ เงินเดือน ฯลฯ) กับผลลัพธ์ (การชำระคืน ค่าเริ่มต้น ฯลฯ)
- เราฝึกระบบของเราโดยใช้ข้อมูล
- ระบบใช้สิ่งที่เรียนรู้เพื่อคาดเดาผลลัพธ์ในอนาคตตามคุณลักษณะของผู้สมัคร
- ถ้าอัลกอริทึมเดาถูก เราจะบอกมันว่า "เยี่ยมมาก! คุณพูดถูก" แต่ถ้ามันผิด เราบอกมันว่า "ไม่ คุณไม่ถูกต้อง โปรดปรับปรุงและลองอีกครั้ง"
ตัวอย่างนี้ถือเป็นปัญหา "การจัดประเภท" เนื่องจากผลลัพธ์ของอัลกอริทึมเป็นหมวดหมู่ ในกรณีนี้ อนุมัติหรือไม่อนุมัติ ตัวอย่างอื่นๆ ของปัญหาการจำแนกประเภทรวมถึงการตัดสินใจว่า:
- คนเป็นโรค
- เอ็กซเรย์กระดูกหัก
- อีเมลเป็นสแปม
หากคุณอยากทราบข้อมูลเพิ่มเติมเกี่ยวกับคณิตศาสตร์เบื้องหลังอัลกอริธึมการจัดหมวดหมู่ ML ให้ใช้ Google สิ่งเหล่านี้:ตัวแยกประเภท Bayes ไร้เดียงสา เครื่องเวกเตอร์สนับสนุน การถดถอยโลจิสติก โครงข่ายประสาท การสุ่มฟอเรสต์
นอกจากปัญหาการจำแนกประเภทที่ให้ผลลัพธ์ "ใช่/ไม่ใช่" แล้ว การเรียนรู้ภายใต้การดูแลยังสามารถใช้เพื่อแก้ปัญหาการถดถอยได้อีกด้วย ที่นี่ เราคาดการณ์ในระดับต่อเนื่อง เช่น
- มูลค่าหุ้นในอนาคต
- ความน่าจะเป็นที่นิวอิงแลนด์ แพทริออตส์ จะคว้าแชมป์ซูเปอร์โบวล์
- เงินเดือนเฉลี่ยที่บริษัทต้องการเสนอให้ผู้สมัครรับตำแหน่ง
ตัวอย่างของอัลกอริทึมที่ใช้สำหรับปัญหาการถดถอยภายใต้การดูแล ได้แก่ การถดถอยเชิงเส้น การถดถอยแบบไม่เชิงเส้น และการถดถอยเชิงเส้นแบบเบย์
การเรียนรู้ที่ไม่ได้รับการดูแล
ด้วยตัวอย่างการเรียนรู้ภายใต้การดูแลของเรา เราได้กำหนดหมวดหมู่การจำแนกไว้ล่วงหน้า ผู้สมัครจำนองได้รับการอนุมัติหรือถูกปฏิเสธอย่างใดอย่างหนึ่ง
ด้วยการเรียนรู้แบบไม่มีผู้ดูแล เราไม่ได้จัดหมวดหมู่ พวกเขาไม่สามารถใช้ได้ อัลกอริทึมต้องมีข้อสรุปของตัวเอง
เหตุใดเราจึงต้องการใช้แนวทางที่ไม่ได้รับการดูแล
1) บางครั้งเราไม่รู้หมวดหมู่มาก่อน ข้อมูลส่วนใหญ่ที่ลอยอยู่บนอินเทอร์เน็ตนั้นไม่มีโครงสร้าง กล่าวคือ ไม่มีป้ายกำกับ
2) ในบางครั้ง เราไม่รู้ว่าเรากำลังมองหาอะไร เราจึงสามารถขอให้อัลกอริทึมค้นหารูปแบบ/คุณลักษณะที่เป็นประโยชน์สำหรับการจัดหมวดหมู่ได้
อีกวิธีหนึ่งในการจัดการข้อมูลที่ไม่มีโครงสร้างด้วยแมชชีนเลิร์นนิงคือให้มนุษย์ดูและติดป้ายกำกับด้วยตนเอง มีบริษัทจำนวนมากที่จ้างพนักงานเพื่อจัดประเภทข้อมูลด้วยตนเอง:การติดฉลากข้อมูล
แนวทางการเรียนรู้แบบไม่มีผู้ดูแล
เทคนิคสองอย่างที่มักใช้ในการเรียนรู้แบบไม่มีผู้ดูแลคือ การเชื่อมโยงและการจัดกลุ่ม .
สมาคม: ลองนึกภาพว่าคุณคืออเมซอน คุณมีข้อมูลลูกค้าจำนวนมาก ประวัติการซื้อ ฯลฯ โดยใช้การเรียนรู้แบบไม่มีผู้ดูแล คุณสามารถแบ่งลูกค้าออกเป็น "ประเภทนักช้อป" ได้ ซึ่งอาจพบว่าผู้ที่ซื้อร่มสีชมพูมีแนวโน้มที่จะซื้อชามัทฉะด้วย
การจัดกลุ่ม: การทำคลัสเตอร์จะพิจารณาข้อมูลของคุณและแบ่งพาร์ติชั่นออกเป็นกลุ่มหรือคลัสเตอร์ตามจำนวนที่ระบุ ตัวอย่างเช่น คุณอาจมีข้อมูลที่อยู่อาศัยจำนวนหนึ่ง และต้องการดูว่ามีคุณสมบัติใดๆ (อาจเป็นข้อมูลอาชญากรรมหรือไม่) ที่สามารถทำนายได้ว่าบ้านอยู่ในละแวกใด หรือสามารถใช้เทคนิคต่างๆ เช่น ความคล้ายคลึงของโคไซน์สำหรับการจัดประเภทข้อความ ( เช่น บทความนี้เกี่ยวกับเทนนิส การทำอาหาร หรืออวกาศ)
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับเทคนิคการเรียนรู้แบบไม่มีผู้ดูแล การค้นหาโดย Google การจัดกลุ่ม k-mean ความคล้ายคลึงของโคไซน์ การจัดกลุ่มตามลำดับชั้น และการจัดกลุ่ม k-ใกล้เคียงที่สุด
การเรียนรู้การเสริมกำลัง
ชุดย่อยของการเรียนรู้ของเครื่องนี้มักใช้ในเกมเนื่องจากใช้อัลกอริธึมที่เน้นเป้าหมาย ซึ่งแตกต่างจากการเรียนรู้ภายใต้การดูแล การตัดสินใจแต่ละครั้งไม่เป็นอิสระ – เมื่อได้รับข้อมูลปัจจุบัน อัลกอริทึมจะตัดสินใจ และ อินพุตถัดไปขึ้นอยู่กับการตัดสินใจนี้ .
เช่นเดียวกับที่ฉันให้สุนัขตบหัวเมื่อเขาหยุดเห่าไม่หยุดเมื่อเสียงกริ่งประตูดังขึ้น หรือใส่ไว้ในคอกสุนัขเมื่อเขาไม่ยอมปิดตัวลง อัลกอริธึมการเสริมแรงจะได้รับรางวัลเมื่อทำการตัดสินใจเกี่ยวกับเป้าหมายที่เหมาะที่สุด (เช่น ให้คะแนน จำนวนคะแนนสูงสุด) และถูกลงโทษเมื่อทำคะแนนได้ไม่ดี
แอปพลิเคชันที่ชัดเจนสำหรับอัลกอริธึมการเรียนรู้แบบเสริมกำลัง ได้แก่ :
- เกมอย่างหมากรุกและ Go (ฉันขอแนะนำสารคดี AlphaGo ใน Netflix หากคุณยังไม่เคยดู)
- หุ่นยนต์ (สอนบอทให้ทำงานตามต้องการ)
- ยานยนต์ไร้คนขับ
- ที่ปรึกษาหุ่นยนต์ที่ผ่านการฝึกอบรมเพื่อเอาชนะตลาดหุ้น
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับอัลกอริทึมที่อยู่เบื้องหลังการเรียนรู้แบบเสริมกำลัง Google ค้นหา Q-learning, state-action-reward-state-action (SARSA), DQN และนักวิจารณ์ผู้ได้เปรียบแบบอะซิงโครนัส
บทสรุป
ฉันหวังว่าตัวอย่างเหล่านี้จะช่วยให้คุณเข้าใจเทคนิคแมชชีนเลิร์นนิงและวิธีที่แต่ละอย่างใช้เพื่อโน้มน้าวโลกที่บ้าคลั่งที่เราอาศัยอยู่ทุกวันนี้ ในขณะที่บางครั้งฉันพบว่าตัวเองเต็มไปด้วยสิ่งที่ต้องเรียนรู้ การเริ่มต้นที่ไหนสักแห่งก็ยังดีกว่าไม่ทำอะไรเลย และจำไว้ว่าสิ่งนี้จริงๆ แล้วไม่ใช่เรื่องใหม่เลย – เราแค่ได้ยินเรื่องนี้มากขึ้นเมื่อมีข้อมูลและการประมวลผลมากขึ้น พลังงานถูกกว่า