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. ดูข้อมูลและยกเว้นคอลัมน์ใด ๆ ที่มีข้อมูลหายไปจำนวนมาก
  2. ดูข้อมูลอีกครั้งและเลือกคอลัมน์ที่คุณต้องการใช้ (การเลือกคุณสมบัติ ) สำหรับการคาดการณ์ของคุณ นี่คือสิ่งที่คุณอาจต้องการเปลี่ยนแปลงเมื่อคุณทำซ้ำ
  3. ยกเว้นแถวที่ยังมีข้อมูลขาดหายไปในคอลัมน์ที่เหลือ
  4. แก้ไขการพิมพ์ผิดที่ชัดเจนและรวมคำตอบที่เทียบเท่า ตัวอย่างเช่นสหรัฐฯสหรัฐฯสหรัฐอเมริกาและอเมริกาควรรวมเป็นหมวดหมู่เดียว
  5. ยกเว้นแถวที่มีข้อมูลอยู่นอกช่วง ตัวอย่างเช่นหากคุณกำลังวิเคราะห์การเดินทางด้วยรถแท็กซี่ภายในนิวยอร์กซิตี้คุณจะต้องกรองแถวที่มีละติจูดและลองจิจูดและลองจิจูดของรถรับส่งหรือรถรับส่งที่อยู่นอกกรอบของเขตเมือง

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

การเข้ารหัสข้อมูลและการทำให้เป็นมาตรฐานสำหรับการเรียนรู้ของเครื่อง

หากต้องการใช้ข้อมูลที่เป็นหมวดหมู่สำหรับการจัดประเภทเครื่องคุณต้องเข้ารหัสป้ายข้อความเป็นรูปแบบอื่น มีสองการเข้ารหัสทั่วไป

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