Machine Learning คืออะไร? ข่าวกรองที่มาจากข้อมูล
กำหนดแมชชีนเลิร์นนิง
การเรียนรู้ของเครื่องเป็นสาขาหนึ่งของปัญญาประดิษฐ์ที่มีวิธีการหรืออัลกอริทึมสำหรับการสร้างแบบจำลองโดยอัตโนมัติจากข้อมูล ระบบแมชชีนเลิร์นนิงจะเรียนรู้จากประสบการณ์ต่างจากระบบที่ปฏิบัติงานโดยปฏิบัติตามกฎที่ชัดเจน ในขณะที่ระบบที่อิงตามกฎจะทำงานในลักษณะเดียวกันทุกครั้ง (ดีขึ้นหรือแย่ลง) ประสิทธิภาพของระบบแมชชีนเลิร์นนิงสามารถปรับปรุงได้ผ่านการฝึกอบรมโดยการเปิดเผยอัลกอริทึมกับข้อมูลเพิ่มเติม
อัลกอริธึมการเรียนรู้ของเครื่องมักแบ่งออกเป็นภายใต้การดูแล (ข้อมูลการฝึกอบรมจะถูกติดแท็กด้วยคำตอบ) และไม่ได้รับการดูแล (ป้ายกำกับใด ๆ ที่อาจมีอยู่จะไม่แสดงในอัลกอริทึมการฝึกอบรม) ปัญหาเกี่ยวกับแมชชีนเลิร์นนิงภายใต้การดูแลยังแบ่งออกเป็นประเภทต่างๆ (การคาดคะเนคำตอบที่ไม่ใช่ตัวเลขเช่นความน่าจะเป็นของการชำระเงินจำนองที่ไม่ได้รับ) และการถดถอย (การคาดคะเนคำตอบที่เป็นตัวเลขเช่นจำนวนวิดเจ็ตที่จะขายในเดือนหน้าในร้านแมนฮัตตัน
การเรียนรู้ที่ไม่ได้รับการดูแลยังแบ่งออกเป็นการจัดกลุ่ม (การค้นหากลุ่มของวัตถุที่คล้ายกันเช่นรองเท้าวิ่งรองเท้าเดินและรองเท้าสำหรับแต่งตัว) การเชื่อมโยง (การค้นหาลำดับของวัตถุทั่วไปเช่นกาแฟและครีม) และการลดขนาด (การฉายภาพการเลือกคุณสมบัติ และการแยกคุณลักษณะ)
การประยุกต์ใช้แมชชีนเลิร์นนิง
เราได้ยินเกี่ยวกับแอปพลิเคชันของแมชชีนเลิร์นนิงในชีวิตประจำวันแม้ว่าจะไม่ใช่ทั้งหมดที่ประสบความสำเร็จ รถยนต์ที่ขับเคลื่อนด้วยตัวเองเป็นตัวอย่างที่ดีซึ่งงานต่างๆมีตั้งแต่แบบง่ายและประสบความสำเร็จ (ระบบช่วยจอดรถและเลนบนทางหลวงที่ตามมา) ไปจนถึงความซับซ้อนและไม่ปลอดภัย (การควบคุมรถเต็มรูปแบบในพื้นที่เมืองซึ่งทำให้มีผู้เสียชีวิตหลายราย)
แมชชีนเลิร์นนิงในการเล่นเกมประสบความสำเร็จอย่างมากสำหรับหมากฮอสหมากรุกโชกิและโกที่เอาชนะแชมป์โลกมนุษย์ได้ การแปลภาษาอัตโนมัติประสบความสำเร็จอย่างมากแม้ว่าคู่ภาษาบางคู่จะทำงานได้ดีกว่าภาษาอื่น ๆ และการแปลอัตโนมัติจำนวนมากยังสามารถปรับปรุงได้โดยนักแปลที่เป็นมนุษย์
การพูดเป็นข้อความอัตโนมัติทำงานได้ดีพอสมควรสำหรับผู้ที่มีสำเนียงหลัก แต่ไม่ค่อยดีสำหรับผู้ที่มีสำเนียงระดับภูมิภาคหรือระดับชาติที่รุนแรง ประสิทธิภาพขึ้นอยู่กับชุดการฝึกอบรมที่ใช้โดยผู้ขาย การวิเคราะห์ความรู้สึกโดยอัตโนมัติของโซเชียลมีเดียมีอัตราความสำเร็จที่ดีพอสมควรอาจเป็นเพราะชุดการฝึกอบรม (เช่นการให้คะแนนผลิตภัณฑ์ของ Amazon ซึ่งแสดงความคิดเห็นด้วยคะแนนเป็นตัวเลข) มีขนาดใหญ่และง่ายต่อการเข้าถึง
การคัดกรองประวัติโดยอัตโนมัติเป็นพื้นที่ที่มีการถกเถียงกัน Amazon ต้องถอนระบบภายในเนื่องจากอคติตัวอย่างการฝึกอบรมที่ทำให้ต้องปรับลดรุ่นใบสมัครงานทั้งหมดจากผู้หญิง
ระบบคัดกรองประวัติอื่น ๆ ที่ใช้อยู่ในปัจจุบันอาจมีอคติในการฝึกอบรมที่ทำให้พวกเขาต้องอัปเกรดผู้สมัครที่เป็น "เหมือน" พนักงานปัจจุบันในรูปแบบที่กฎหมายไม่ควรมีความสำคัญ (เช่นอายุน้อยผิวขาวผู้สมัครชายจากย่านที่พูดภาษาอังกฤษระดับหรูที่เล่น กีฬาประเภททีมมีแนวโน้มที่จะผ่านการคัดกรอง) ความพยายามในการวิจัยของ Microsoft และคนอื่น ๆ มุ่งเน้นไปที่การขจัดอคติโดยนัยในการเรียนรู้ของเครื่อง
การจำแนกภาพทางพยาธิวิทยาและรังสีวิทยาโดยอัตโนมัติได้ก้าวไปสู่จุดที่สามารถช่วย (แต่ไม่สามารถแทนที่) นักพยาธิวิทยาและนักรังสีวิทยาในการตรวจหาความผิดปกติบางประเภทได้ ในขณะเดียวกันระบบการระบุใบหน้าก็เป็นที่ถกเถียงกันเมื่อใช้งานได้ดี (เนื่องจากคำนึงถึงความเป็นส่วนตัว) และมีแนวโน้มที่จะไม่แม่นยำเท่าผู้หญิงและคนที่มีสีเหมือนกับผู้ชายผิวขาว (เนื่องจากความเอนเอียงในประชากรการฝึกอบรม)
อัลกอริทึมการเรียนรู้ของเครื่อง
การเรียนรู้ของเครื่องขึ้นอยู่กับอัลกอริทึมหลายประการในการเปลี่ยนชุดข้อมูลให้เป็นแบบจำลอง อัลกอริทึมใดที่ทำงานได้ดีที่สุดขึ้นอยู่กับประเภทของปัญหาที่คุณกำลังแก้ไขทรัพยากรคอมพิวเตอร์ที่มีอยู่และลักษณะของข้อมูล ไม่ว่าคุณจะใช้อัลกอริทึมหรืออัลกอริทึมใดคุณจะต้องทำความสะอาดและปรับสภาพข้อมูลก่อน
มาดูอัลกอริทึมที่พบบ่อยที่สุดสำหรับปัญหาแต่ละประเภท
อัลกอริทึมการจำแนกประเภท
ปัญหาการจัดหมวดหมู่เป็นปัญหาการเรียนรู้ภายใต้การดูแลที่ขอให้เลือกระหว่างชั้นเรียนตั้งแต่สองชั้นขึ้นไปโดยปกติจะให้ความน่าจะเป็นสำหรับแต่ละชั้นเรียน ออกจากเครือข่ายประสาทเทียมและการเรียนรู้เชิงลึกซึ่งต้องใช้ทรัพยากรการประมวลผลในระดับที่สูงขึ้นมากอัลกอริทึมที่พบบ่อยที่สุดคือ Naive Bayes, Decision Tree, Logistic Regression, K-Nearest Neighbour และ Support Vector Machine (SVM) คุณยังสามารถใช้วิธีการทั้งมวล (การรวมโมเดล) เช่น Random Forest วิธีการบรรจุถุงอื่น ๆ และวิธีการเพิ่มพลังเช่น AdaBoost และ XGBoost
อัลกอริทึมการถดถอย
ปัญหาการถดถอยเป็นปัญหาการเรียนรู้ภายใต้การดูแลที่ขอให้แบบจำลองทำนายตัวเลข อัลกอริทึมที่ง่ายและเร็วที่สุดคือการถดถอยเชิงเส้น (กำลังสองน้อยที่สุด) แต่คุณไม่ควรหยุดเพียงแค่นั้นเพราะมันมักจะให้ผลลัพธ์ที่ปานกลาง อัลกอริธึมการถดถอยของการเรียนรู้ของเครื่องทั่วไปอื่น ๆ (ย่อมาจากเครือข่ายประสาทเทียม) ได้แก่ Naive Bayes, Decision Tree, K-Nearest Neighbours, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost และ XGBoost คุณจะสังเกตเห็นว่ามีการทับซ้อนกันระหว่างอัลกอริทึมการเรียนรู้ของเครื่องสำหรับการถดถอยและการจำแนกประเภท
อัลกอริทึมการทำคลัสเตอร์
ปัญหาการจัดกลุ่มเป็นปัญหาการเรียนรู้ที่ไม่ได้รับการดูแลซึ่งขอให้โมเดลค้นหากลุ่มของจุดข้อมูลที่คล้ายกัน อัลกอริทึมที่นิยมมากที่สุดคือ K-Means Clustering; อื่น ๆ ได้แก่ Mean-Shift Clustering, DBSCAN (Density-Based Spatial Clustering of Applications with Noise), GMM (Gaussian Mixture Models) และ HAC (Hierarchical Agglomerative Clustering)
อัลกอริทึมการลดขนาด
การลดขนาดเป็นปัญหาการเรียนรู้ที่ไม่ได้รับการดูแลซึ่งขอให้โมเดลทิ้งหรือรวมตัวแปรที่มีผลต่อผลลัพธ์เพียงเล็กน้อยหรือไม่มีเลย สิ่งนี้มักใช้ร่วมกับการจำแนกประเภทหรือการถดถอย อัลกอริธึมการลดขนาดรวมถึงการลบตัวแปรที่มีค่าที่ขาดหายไปจำนวนมากการลบตัวแปรที่มีความแปรปรวนต่ำต้นไม้การตัดสินใจป่าสุ่มการลบหรือการรวมตัวแปรที่มีความสัมพันธ์สูงการกำจัดคุณลักษณะย้อนกลับการเลือกคุณลักษณะไปข้างหน้าการวิเคราะห์ปัจจัยและ PCA (การวิเคราะห์องค์ประกอบหลัก)
วิธีการเพิ่มประสิทธิภาพ
การฝึกอบรมและการประเมินผลจะเปลี่ยนอัลกอริทึมการเรียนรู้ภายใต้การดูแลให้เป็นแบบจำลองโดยการปรับน้ำหนักพารามิเตอร์ให้เหมาะสมเพื่อค้นหาชุดค่าที่ตรงกับความจริงพื้นฐานของข้อมูลของคุณมากที่สุด อัลกอริทึมมักอาศัยตัวแปรของการสืบเชื้อสายที่ชันที่สุดสำหรับเครื่องมือเพิ่มประสิทธิภาพของพวกเขาตัวอย่างเช่นการสืบเชื้อสายแบบสุ่ม (SGD) ซึ่งโดยพื้นฐานแล้วการสืบเชื้อสายที่ชันที่สุดจะดำเนินการหลายครั้งจากจุดเริ่มต้นแบบสุ่ม
การปรับแต่งทั่วไปของ SGD จะเพิ่มปัจจัยที่แก้ไขทิศทางของการไล่ระดับสีตามโมเมนตัมหรือปรับอัตราการเรียนรู้ตามความคืบหน้าจากการส่งผ่านข้อมูลครั้งเดียว (เรียกว่ายุคหรือชุด) ไปยังถัดไป
โครงข่ายประสาทเทียมและการเรียนรู้เชิงลึก
โครงข่ายประสาทเทียมได้รับแรงบันดาลใจจากสถาปัตยกรรมของเยื่อหุ้มสมองทางชีววิทยา การเรียนรู้เชิงลึกเป็นชุดของเทคนิคสำหรับการเรียนรู้ในโครงข่ายประสาทเทียมที่เกี่ยวข้องกับเลเยอร์ "ซ่อน" จำนวนมากเพื่อระบุคุณลักษณะต่างๆ เลเยอร์ที่ซ่อนอยู่ระหว่างชั้นอินพุตและเอาต์พุต แต่ละชั้นประกอบด้วยเซลล์ประสาทเทียมซึ่งมักมีฟังก์ชันกระตุ้นการทำงานของ sigmoid หรือ ReLU (Rectified Linear Unit)
ในเครือข่ายฟีดฟอร์เวิร์ดเซลล์ประสาทจะถูกจัดเป็นเลเยอร์ที่แตกต่างกัน: ชั้นอินพุตหนึ่งชั้นการประมวลผลที่ซ่อนอยู่จำนวนเท่าใดก็ได้และเลเยอร์เอาต์พุตหนึ่งชั้นและเอาต์พุตจากแต่ละเลเยอร์จะไปที่เลเยอร์ถัดไปเท่านั้น
ในเครือข่ายฟีดฟอร์เวิร์ดที่มีการเชื่อมต่อทางลัดการเชื่อมต่อบางอย่างสามารถข้ามผ่านเลเยอร์กลางอย่างน้อยหนึ่งเลเยอร์ ในเครือข่ายประสาทที่เกิดซ้ำเซลล์ประสาทสามารถมีอิทธิพลต่อตัวเองไม่ว่าจะโดยตรงหรือโดยอ้อมผ่านชั้นถัดไป
การเรียนรู้ภายใต้การดูแลของเครือข่ายประสาทเทียมทำได้เหมือนกับการเรียนรู้ของเครื่องอื่น ๆ : คุณนำเสนอเครือข่ายด้วยกลุ่มข้อมูลการฝึกอบรมเปรียบเทียบเอาต์พุตเครือข่ายกับเอาต์พุตที่ต้องการสร้างเวกเตอร์ข้อผิดพลาดและใช้การแก้ไขกับเครือข่ายตามเวกเตอร์ข้อผิดพลาด โดยปกติจะใช้อัลกอริทึม backpropagation ชุดข้อมูลการฝึกอบรมที่ดำเนินการร่วมกันก่อนที่จะใช้การแก้ไขเรียกว่า epochs
เช่นเดียวกับการเรียนรู้ของเครื่องคุณต้องตรวจสอบการคาดคะเนของเครือข่ายประสาทเทียมกับชุดข้อมูลทดสอบแยกต่างหาก หากไม่ทำเช่นนั้นคุณจะเสี่ยงต่อการสร้างเครือข่ายประสาทที่จดจำเฉพาะอินพุตของพวกเขาแทนที่จะเรียนรู้ที่จะเป็นตัวทำนายทั่วไป
ความก้าวหน้าในฟิลด์โครงข่ายประสาทเทียมสำหรับการมองเห็นคือ LeNet-5 ของ Yann LeCun ในปี 1998 ซึ่งเป็นเครือข่ายประสาทเทียมเจ็ดระดับ(CNN) สำหรับการรับรู้ตัวเลขที่เขียนด้วยลายมือในรูปแบบดิจิทัลในภาพ 32x32 พิกเซล ในการวิเคราะห์ภาพที่มีความละเอียดสูงขึ้นเครือข่ายจะต้องมีเซลล์ประสาทและเลเยอร์ที่มากขึ้น
โดยทั่วไปแล้ว Convolutional Neural Network จะใช้ Convolutional, Pooling, ReLU, เชื่อมต่อกันเต็มรูปแบบและเลเยอร์การสูญเสียเพื่อจำลองคอร์เทกซ์ที่มองเห็นได้ เลเยอร์คอนโวลูชันโดยพื้นฐานแล้วจะใช้อินทิกรัลของพื้นที่ที่ทับซ้อนกันขนาดเล็กจำนวนมาก เลเยอร์การรวมกันดำเนินการในรูปแบบของการสุ่มตัวอย่างลงที่ไม่ใช่เชิงเส้น ชั้น Relu f(x) = max(0,x)
ซึ่งผมกล่าวก่อนหน้านี้ใช้ฟังก์ชั่นการเปิดใช้งานที่ไม่ได้พอดิบพอดี
ในชั้นที่เชื่อมต่ออย่างสมบูรณ์เซลล์ประสาทมีการเชื่อมต่ออย่างสมบูรณ์กับการกระตุ้นทั้งหมดในชั้นก่อนหน้า เลเยอร์การสูญเสียคำนวณวิธีที่การฝึกอบรมเครือข่ายลงโทษความเบี่ยงเบนระหว่างฉลากที่คาดการณ์และจริงโดยใช้ Softmax หรือการสูญเสียข้ามเอนโทรปีสำหรับการจำแนกประเภทหรือการสูญเสียแบบยุคลิดสำหรับการถดถอย
การประมวลผลภาษาธรรมชาติ (NLP) เป็นอีกหนึ่งแอปพลิเคชันหลักสำหรับการเรียนรู้เชิงลึก นอกเหนือจากปัญหาการแปลด้วยเครื่องที่ Google แปลภาษาจัดการแล้วงาน NLP ที่สำคัญ ได้แก่ การสรุปอัตโนมัติ, การแก้ปัญหาการอ้างอิงร่วม, การวิเคราะห์วาทกรรม, การแบ่งส่วนสัณฐานวิทยา, การจดจำเอนทิตีที่มีชื่อ, การสร้างภาษาธรรมชาติ, ความเข้าใจภาษาธรรมชาติ, การติดแท็กบางส่วนของคำพูด, ความรู้สึก การวิเคราะห์และการรู้จำเสียง
นอกเหนือจาก CNN แล้วงาน NLP มักถูกแก้ไขด้วยเครือข่ายประสาทที่เกิดซ้ำ (RNN) ซึ่งรวมถึงโมเดล Long-Short Term Memory (LSTM)
ยิ่งมีเลเยอร์มากขึ้นในโครงข่ายประสาทเทียมแบบลึกการคำนวณก็จะยิ่งต้องใช้เวลามากขึ้นในการฝึกโมเดลบน CPU ตัวเร่งฮาร์ดแวร์สำหรับเครือข่ายประสาทเทียม ได้แก่ GPU, TPU และ FPGA
การเรียนรู้แบบเสริมกำลัง
การเรียนรู้แบบเสริมกำลังฝึกนักแสดงหรือตัวแทนให้ตอบสนองต่อสภาพแวดล้อมในลักษณะที่เพิ่มคุณค่าให้มากที่สุดโดยปกติจะเป็นการลองผิดลองถูก ซึ่งแตกต่างจากการเรียนรู้ภายใต้การดูแลและไม่มีผู้ดูแล แต่มักจะรวมกับการเรียนรู้เหล่านี้
ตัวอย่างเช่น AlphaGo ของ DeepMind เพื่อเรียนรู้การเล่น (การกระทำ) เกม Go (สภาพแวดล้อม) ก่อนอื่นเรียนรู้ที่จะเลียนแบบผู้เล่น Go จากมนุษย์จากชุดข้อมูลขนาดใหญ่ของเกมในประวัติศาสตร์ (การเรียนรู้ของเด็กฝึกงาน) จากนั้นปรับปรุงการเล่นโดยการลองผิดลองถูก (การเรียนรู้แบบเสริมกำลัง) โดยการเล่นเกม Go จำนวนมากกับอินสแตนซ์อิสระของตัวมันเอง
การควบคุมหุ่นยนต์เป็นอีกปัญหาหนึ่งที่ถูกโจมตีด้วยวิธีการเรียนรู้แบบเสริมแรงซึ่งหมายถึงการเรียนรู้แบบเสริมแรงบวกกับโครงข่ายประสาทเทียมแบบลึกเครือข่ายประสาทเทียมส่วนลึกมักจะได้รับการฝึกฝน CNN เพื่อดึงคุณลักษณะจากเฟรมวิดีโอ
วิธีใช้แมชชีนเลิร์นนิง
เราจะสร้างโมเดลแมชชีนเลิร์นนิงได้อย่างไร คุณเริ่มต้นด้วยการทำความสะอาดและปรับสภาพข้อมูลดำเนินการต่อด้วยวิศวกรรมคุณลักษณะจากนั้นลองใช้อัลกอริทึมการเรียนรู้ของเครื่องทุกอย่างที่เหมาะสม สำหรับปัญหาบางประเภทเช่นการมองเห็นและการประมวลผลภาษาธรรมชาติอัลกอริทึมที่น่าจะทำงานเกี่ยวข้องกับการเรียนรู้เชิงลึก
การล้างข้อมูลสำหรับการเรียนรู้ของเครื่อง
ไม่มีสิ่งที่เรียกว่าข้อมูลสะอาดในป่า เพื่อให้เป็นประโยชน์สำหรับการเรียนรู้ของเครื่องข้อมูลต้องได้รับการกรองอย่างจริงจัง ตัวอย่างเช่นคุณจะต้อง:
- ดูข้อมูลและยกเว้นคอลัมน์ใด ๆ ที่มีข้อมูลหายไปจำนวนมาก
- ดูข้อมูลอีกครั้งและเลือกคอลัมน์ที่คุณต้องการใช้ (การเลือกคุณสมบัติ ) สำหรับการคาดการณ์ของคุณ นี่คือสิ่งที่คุณอาจต้องการเปลี่ยนแปลงเมื่อคุณทำซ้ำ
- ยกเว้นแถวที่ยังมีข้อมูลขาดหายไปในคอลัมน์ที่เหลือ
- แก้ไขการพิมพ์ผิดที่ชัดเจนและรวมคำตอบที่เทียบเท่า ตัวอย่างเช่นสหรัฐฯสหรัฐฯสหรัฐอเมริกาและอเมริกาควรรวมเป็นหมวดหมู่เดียว
- ยกเว้นแถวที่มีข้อมูลอยู่นอกช่วง ตัวอย่างเช่นหากคุณกำลังวิเคราะห์การเดินทางด้วยรถแท็กซี่ภายในนิวยอร์กซิตี้คุณจะต้องกรองแถวที่มีละติจูดและลองจิจูดและลองจิจูดของรถรับส่งหรือรถรับส่งที่อยู่นอกกรอบของเขตเมือง
มีอีกมากมายที่คุณสามารถทำได้ แต่จะขึ้นอยู่กับข้อมูลที่รวบรวม สิ่งนี้อาจเป็นเรื่องที่น่าเบื่อ แต่ถ้าคุณตั้งค่าขั้นตอนการล้างข้อมูลในท่อการเรียนรู้ของเครื่องคุณสามารถแก้ไขและทำซ้ำได้ตามต้องการ
การเข้ารหัสข้อมูลและการทำให้เป็นมาตรฐานสำหรับการเรียนรู้ของเครื่อง
หากต้องการใช้ข้อมูลที่เป็นหมวดหมู่สำหรับการจัดประเภทเครื่องคุณต้องเข้ารหัสป้ายข้อความเป็นรูปแบบอื่น มีสองการเข้ารหัสทั่วไป
หนึ่งคือการเข้ารหัสฉลากซึ่งหมายความว่าค่าป้ายข้อความแต่ละค่าจะถูกแทนที่ด้วยตัวเลข อีกอันหนึ่งคือการเข้ารหัสแบบร้อนแรงซึ่งหมายความว่าค่าป้ายข้อความแต่ละค่าจะเปลี่ยนเป็นคอลัมน์ที่มีค่าไบนารี (1 หรือ 0) เฟรมเวิร์กการเรียนรู้ของเครื่องส่วนใหญ่มีฟังก์ชันที่ทำ Conversion ให้คุณ โดยทั่วไปแนะนำให้ใช้การเข้ารหัสแบบร้อนเดียวเนื่องจากการเข้ารหัสฉลากบางครั้งอาจทำให้อัลกอริทึมการเรียนรู้ของเครื่องสับสนโดยคิดว่าคอลัมน์ที่เข้ารหัสนั้นได้รับคำสั่ง