Friday, April 20, 2018

Top10 thủ thuật dành cho machine learning newbie


Trong machine learning , có một thứ gọi là định luật ” No Free Lunch “. Nói một cách ngắn gọn, điều đó cho rằng không có một thuật toán nào là tốt nhất trong mọi vấn đề và nó đặc biệt phù hợp với supervised learning – việc học dưới sự giám sát ( thí dụ là predictive modeling – mô hình tiên đoán). 

ví dụ, bạn không thể nói rằng các kết nối nơ-ron luôn tốt hơn cây quyết định – decision trees (hay trái lại). Có rất nhiều nguyên tố ảnh hưởng chả hạn như kích thước và cấu trúc của bộ dữ liệu. 

Do đó, bạn nên thử nhiều thuật toán khác nhau cho vấn đề của bạn, trong khi sử dụng một “ tập rà soát ” còn lại để đánh giá hiệu suất và chọn ra giải pháp tối ưu nhất. 

dĩ nhiên, các thuật toán bạn thử phải phù hợp với vấn đề của bạn, đó là việc bạn chọn đúng công việc cho machine learning. tương tự, nếu bạn cần dọn dẹp nhà cửa, bạn có thể sử dụng máy hút bụi, một cây chổi hoặc một cái giẻ lau, nhưng bạn sẽ không dùng một cái xẻng và đào. 
The Big Principle 

Tuy nhiên, có một nguyên tắc chung là cơ sở cho mọi thuật toán machine learning được giám sát cho mô hình tiên đoán. 

Các thuật toán machine learning được thể hiện như việc học một target function (f) để biến bản đồ đầu vào (X) thành biến xuất (Y): Y = f (X) 

Đây là một nhiệm vụ học tập tổng quát mà chúng ta muốn đưa ra những tiên lượng trong tương lai (Y) với các thí dụ mới về các biến đầu vào (X). Chúng ta không biết chức năng (f) trông như thế nào hoặc dạng của nó. Nếu chúng ta làm như vậy, chúng ta sẽ sử dụng nó trực tiếp và không cần phải học nó từ dữ liệu bằng cách sử dụng các thuật toán machine learning. 

Phương thức phổ biến nhất của machine learning là học cách lập bản đồ Y = f (X) để đưa ra dự đoán của Y cho biến X mới. Điều này được gọi là mô hình tiên lượng hoặc phân tích tiên lượng và mục tiêu của chúng ta là làm cho các dự đoán chuẩn xác nhất có thể được. 

Đối với những người mới học về machine learning muốn hiểu được cơ bản của nó, đây sẽ là một chuyến khám phá nhanh về 10 thuật toán machine learning hàng đầu được các nhà khoa học dữ liệu dùng. 
Linear Regression – Hồi quy tuyến tính 

Hồi quy tuyến tính có nhẽ là một trong những thuật toán nức tiếng nhất và được hiểu rõ nhất trong thống kê và machine learning. 

Mô hình tiên lượng đẵn quan hoài đến việc giảm thiểu sai sót của mô hình hoặc đưa ra các dự đoán xác thực nhất có thể, với một uổng giải trình. Chúng tôi sẽ mượn, dùng lại và lấy các thuật toán từ nhiều lĩnh vực khác nhau, bao gồm số liệu thống kê và sử dụng chúng cho những mục đích này. 

biểu diễn hồi quy tuyến tính là một phương trình thể hiện một đường thẳng thể hiện hạp nhất mối quan hệ giữa các biến đầu vào (x) và các biến đầu ra (y), bằng cách tìm các trọng số cụ thể cho các biến đầu vào được gọi là các hệ số (B). 

 


thí dụ: y = B0 + B1 * x 

Chúng ta sẽ dự đoán y với biến x cho trước và mục tiêu của thuật toán hồi quy tuyến tính là tìm các giá trị cho các hệ số B0 và B1. 

Các kĩ thuật khác nhau có thể được dùng để tìm mô hình hồi quy tuyến tính từ dữ liệu, chả hạn như một giải pháp đại số tuyến tính cho Ordinary least square và việc tối ưu hóa Gradient descent. 

Hồi quy tuyến tính đã được phát minh khoảng hơn 200 năm và đã được nghiên cứu rộng rãi. Một số quy tắc tốt khi dùng kĩ thuật này là loại bỏ các biến tương tự nhau (correlated) và để loại bỏ bớt nhân tố sao lãng từ dữ liệu của bạn, nếu có thể. Đây là một kĩ thuật đơn giản và chóng vánh, và là thuật toán tốt trước hết để thử. 

2. Logistic Regression – Hồi quy logistic 

Hồi quy logistic là một thuật toán khác được mượn bởi machine learning từ lĩnh vực thống kê. Đây là phương thức tốt nhất cho các vấn đề phân loại nhị phân (vấn đề với hai lớp giá trị). 

Hồi quy logistic giống như hồi quy tuyến tính với mục đích là để tìm ra các giá trị cho các hệ số mà trọng lượng mỗi biến đầu vào. Không giống như hồi quy tuyến tính, dự đoán đầu ra được chuyển đổi bằng cách sử dụng một hàm không tuyến tính được gọi là hàm logistic. 

Hàm logistic trông giống như một S lớn và sẽ biến đổi bất kỳ giá trị nào thành 0-1. Điều này rất hữu dụng bởi chúng ta có thể ứng dụng một lề luật cho đầu ra của hàm logistic để tăng giá trị cho 0 và 1 (thí dụ IF ít hơn 0.5 sau đó đầu ra 1) và dự đoán một lớp giá trị. 

 


Vì cách mô hình được học, các dự đoán thực hành bởi hồi quy logistic cũng có thể được dùng như là xác suất của một tỉ dụ dữ liệu nhất thiết thuộc lớp 0 hoặc lớp 1. Điều này có thể bổ ích cho các vấn đề khi bạn cần đưa ra nhiều lý do cho một dự đoán. 

Giống như hồi quy tuyến tính, hồi quy logistic hoạt động tốt hơn khi bạn loại bỏ các thuộc tính không hệ trọng đến biến đầu ra cũng như các thuộc tính hao hao nhau (correlated). Đó là một mô hình có thể học hỏi nhanh và có hiệu quả với các vấn đề phân loại nhị phân. 

3. Linear Discriminant Analysis – phân tách phân loại tuyến tính 

Hồi quy Logistic là một thuật toán phân loại truyền thống giới hạn vào các vấn đề phân loại hai lớp. Nếu bạn có nhiều hơn hai lớp thì thuật toán phân tích phân loại tuyến tính nên được ưu tiên. 

Sự biểu thị của LDA khá đơn giản. Nó bao gồm các tính chất thống kê của dữ liệu của bạn, được tính cho mỗi lớp. Đối với một biến đầu vào duy nhất, nó bao gồm: 
Giá trị nhàng nhàng cho mỗi lớp. 
Phương sai được tính trên tất tật các lớp. 

 


Dự đoán được thực hành bằng cách tính giá trị phân biệt cho mỗi lớp và dự đoán cho lớp đó có giá trị lớn nhất. Kĩ thuật giả định rằng dữ liệu có một phân bố Gaussian (bell curve), do đó tốt hơn là bạn nên loại bỏ các giá trị ngoại vi khỏi dữ liệu của bạn trước. Đây là một phương pháp đơn giản và mạnh mẽ để phân loại các vấn đề mô hình dự báo. 

4. Classification and regression trees – Cây phân loại và hồi quy 

Decision trees là một loại thuật toán quan yếu cho mô hình tiên lượng machine learning. 

Sự trình diễn của mô hình decision tree là một cây nhị phân. Đây là cây nhị phân của bạn từ các thuật toán và cấu trúc dữ liệu, không có gì quá chuộng. Mỗi node đại diện cho một biến đầu vào độc nhất vô nhị (x) và một điểm phân chia trên biến đó (giả thử biến đó là số). 

 


Các node lá của cây chứa một biến đầu ra (y) được dùng để dự đoán. Các tiên lượng được thực hiện bằng cách đi trên các nhánh của cây cho đến khi đến một node lá và đưa ra lớp giá trị tại node lá đó. 

Cây có thể học rất nhanh và có thể dùng để dự đoán rất nhanh. Chúng thường chính xác cho nhiều loại vấn đề và dữ liệu của bạn không cần bất kỳ sự chuẩn bị đặc biệt nào. 

5. Naive Bayes 

Naive Bayes là một thuật toán đơn giản nhưng mạnh mẽ về mô hình tiên lượng. 

Mô hình bao gồm hai loại xác suất có thể được tính trực tiếp từ dữ liệu của bạn: 

1) Xác suất của mỗi lớp; 

2) Xác suất có điều kiện cho mỗi lớp với mỗi giá trị x. 

Sau khi tính, mô hình xác suất có thể được sử dụng để đưa ra dự đoán cho dữ liệu mới bằng Định lý Bayes. Khi dữ liệu của bạn có giá trị thực, giả tỉ một phân phối Gaussian (bell curve) khá phổ biến nên bạn có thể dễ dàng ước tính được các xác suất này. 

 


Naive Bayes được gọi là naive vì nó giả thiết rằng mỗi biến đầu vào là độc lập. Đây là một giả định mạnh mẽ và không thực tại đối với dữ liệu thực, tuy nhiên, kĩ thuật này rất hiệu quả trên một khuôn khổ rộng lớn với các vấn đề phức tạp. 
K – Nearest Neighbors – KNN 

Thuật toán KNN rất đơn giản và rất hiệu quả. Mô hình đại diện cho KNN là thảy dữ liệu tập huấn. Đơn giản phải không? 

Dự đoán được thực hiện cho một điểm dữ liệu mới bằng cách độ phê duyệt toàn bộ tập đào tạo cho hầu hết các ví dụ K giống nhau (láng giềng) và tóm lược biến đầu ra cho các ví dụ K. Đối với các vấn đề hồi quy, đây có thể là biến đầu ra làng nhàng, đối với các vấn đề phân loại, đây có thể là mode (hoặc phổ quát nhất) của lớp. 

Bí quyết là làm thế nào để xác định sự giống nhau giữa các trường hợp dữ liệu. Kĩ thuật đơn giản nhất nếu các tính chất của bạn có cùng kích cỡ (ví dụ cả thảy đều là inch) là sử dụng khoảng cách Euclide, một con số bạn có thể tính hạnh trực tiếp dựa trên sự dị biệt giữa mỗi biến đầu vào. 

 


KNN có thể yêu cầu rất nhiều bộ nhớ hoặc không gian để lưu trữ tất dữ liệu, nhưng chỉ thực hiện tâm tính (hoặc học) khi một dự báo là cấp thiết, chỉ vừa đúng lúc. Bạn cũng có thể cập nhật và tổ chức các bài tập đào tạo theo thời gian để giữ các dự đoán xác thực. 

Ý tưởng về khoảng cách hoặc độ gần có thể bị phá vỡ với các quy mô rất cao (rất nhiều biến đầu vào) có thể ảnh hưởng thụ động đến hiệu suất của thuật toán đối với vấn đề của bạn. Đây được gọi là lời nguyền của quy mô. Nó cho thấy bạn chỉ sử dụng những biến đầu vào có liên tưởng nhất đến dự đoán biến đầu ra. 

7. Học Vector Quantization 

Nhược điểm của K- Nearest Neighbors là bạn cần phải giữ nguyên bộ dữ liệu đào tạo của mình. Thuật toán Quantization về Vector (hay LVQ) là một thuật toán mạng thần kinh nhân tạo cho phép bạn chọn có bao nhiêu trường hợp đào tạo để treo lên và tìm hiểu chuẩn xác những trường hợp này sẽ như thế nào. 

 


Sự trình diễn cho LVQ là một tụ hợp các codebook vector. Chúng được chọn lọc tình cờ từ đầu và thích nghi để tóm tắt tốt nhất tập dữ liệu đào tạo qua một số lần lặp của thuật toán. Sau khi học được, các vector mã có thể được sử dụng để tạo ra các dự đoán giống như K- Nearest Neighbors. Các láng giềng tương tự nhất ( ăn nhập với codebook vector nhất ) được tìm thấy bằng cách tính hạnh khoảng cách giữa mỗi vector và tỉ dụ dữ liệu mới. Lớp giá trị hoặc (giá trị thực trong trường hợp hồi quy) cho đơn vị phối hợp tốt nhất sau đó sẽ được trả về như dự đoán. Kết quả tốt nhất đạt được khi bạn đổi thay dữ liệu của mình để có cùng khuôn khổ, chẳng hạn như giữa 0 và 1. 

Nếu bạn phát hiện ra rằng KNN mang lại kết quả tốt trên tập dữ liệu của bạn, hãy thử sử dụng LVQ để giảm đề nghị về bộ nhớ để lưu trữ bít tất tập dữ liệu đào tạo. 

8. Support Vector machines 

Support vector machines có lẽ là một trong những thuật toán machine learning phổ quát nhất và được nói về nhiều nhất. 

Một hyperplane là một đường phân chia không gian biến đầu vào. Trong SVM, một hyperplance được chọn để phân tách tốt nhất các điểm trong không gian các biến đầu vào theo lớp của chúng, hoặc là lớp 0 hoặc lớp 1. Trong hai chiều, bạn có thể hình dong nó như một đường thẳng và giả như rằng toàn bộ các biến đầu vào của chúng ta có thể được tách hoàn toàn bằng dòng này. Thuật toán SVM tìm ra các hệ số dẫn đến sự phân tích tốt nhất của các lớp theo hyperplance. 

 

Khoảng cách giữa hyperplane và điểm dữ liệu gần nhất được gọi là biên. Hyperplane tốt nhất hoặc tối ưu có thể tách riêng hai lớp là dòng có biên lớn nhất. Chỉ những điểm này có liên quan đến việc xác định hyperplane và trong việc xây dựng các điểm phân loại. Những điểm này được gọi là các vector tương trợ. Chúng hỗ trợ hoặc xác định hyperplane. Trong thực tế, một thuật toán tối ưu được sử dụng để tìm các giá trị cho các hệ số tối đa hóa biên.


SVM có thể là một trong những phương pháp phân loại hàng đầu mạnh mẽ nhất và đáng thử trên tập dữ liệu của bạn. 

9. Bagging and Random Forest 

Random Forest là một trong những thuật toán machine learning phổ quát nhất và mạnh nhất. Nó là một loại thuật toán machine learning được gọi là Bootstrap Aggregation hoặc Bagging. 

Bootstrap là một phương pháp thống kê mạnh mẽ để ước tính số lượng từ một mẫu dữ liệu. chả hạn như một giá trị nhàng nhàng. Bạn lấy rất nhiều mẫu dữ liệu của bạn, tính giá trị trung bình, sau đó trung bình vơ các giá trị trung bình của bạn để bạn ước tính tốt hơn giá trị nhàng nhàng thật sự. 

Trong bagging, cách tiếp cận na ná được sử dụng, nhưng thay vì để ước lượng quờ mô hình thống kê, thường là decision trees. Nhiều mẫu dữ liệu đào tạo của bạn được lấy sau đó các mô hình được xây dựng cho mỗi mẫu dữ liệu. Khi bạn cần dự đoán dữ liệu mới, mỗi mô hình sẽ dự đoán và các dự đoán được tính làng nhàng để ước tính tốt hơn giá trị đầu ra thật sự. 

 


Random forest là một sự tinh chỉnh trên phương pháp tiếp cận này, nơi các decision trees được tạo ra để thay vì chọn các điểm phân chia tối ưu, việc phân chia tối ưu được thực hiện bằng cách đưa ra sự ngẫu nhiên. 

Các mô hình được tạo cho mỗi mẫu dữ liệu dị biệt nhiều so với chúng đúng ra phải như thế, tuy nhiên vẫn chính xác theo những cách độc đáo và khác biệt. kết hợp dự đoán của chúng dẫn đến một ước lượng tốt hơn về giá trị đầu ra căn bản. 

Nếu bạn nhận được kết quả tốt với một thuật toán có độ biến thiên cao (như decision trees), bạn thường có thể nhận được kết quả tốt hơn bằng cách bagging thuật toán đó. 

10. Boosting và AdaBoost 

Boosting là một kĩ thuật đồng bộ nhằm cầm cố tạo ra một phương pháp phân loại mạnh từ một số phương pháp phân loại yếu. Điều này được thực hiện bằng cách xây dựng mô hình từ dữ liệu đào tạo, sau đó tạo ra một mô hình thứ hai cố sửa lỗi từ mô hình trước tiên. Các mô hình được thêm vào cho đến khi tập đào tạo được dự đoán hoàn hảo hoặc thêm một số mô hình tối đa. 

AdaBoost là thuật toán boosting thành công trước hết được phát triển để phân loại nhị phân. Đây là điểm khởi đầu tốt nhất để hiểu về boosting. Các phương pháp boosting đương đại xây dựng trên AdaBoost, đáng chú ý nhất là các máy boosting gradient tình cờ. 

 


AdaBoost được dùng với các decision trees ngắn. Sau khi cây trước nhất được tạo ra, hiệu suất của cây trên mỗi trường hợp huấn luyện được sử dụng để đo độ để ý của cây kế tiếp được tạo nên chú ý đến từng trường hợp đào tạo. Dữ liệu đào tạo khó dự đoán sẽ có trọng lượng hơn, trong khi những trường hợp dễ dự đoán có ít trọng lượng hơn. Các mô hình được tạo theo trật tự lần lượt, mỗi lần cập nhật các trọng số trên các trường hợp đào tạo ảnh hưởng đến việc học được thực hành bởi cây kế tiếp trong chuỗi. Sau khi toàn bộ các cây được xây dựng, dự đoán được thực hành cho dữ liệu mới, và hiệu suất của mỗi cây được đo lường bằng cách nó đã được về dữ liệu đào tạo. 

do rất nhiều sự chú ý được đưa ra để sửa sai trái theo thuật toán, điều quan yếu là bạn phải có dữ liệu sạch với các giá trị biên. 

Last Takeaway 

Một câu hỏi tiêu biểu được hỏi bởi những người mới bắt đầu, khi phải đối mặt với rất nhiều thuật toán machine learning, là “Tôi nên sử dụng thuật toán nào?” Câu giải đáp cho câu hỏi đổi thay tùy thuộc vào nhiều nguyên tố, bao gồm: 

1) kích thước, chất lượng và tính chất của dữ liệu; 

2) thời gian tâm tính; 

3) Tính cần kíp của nhiệm vụ; v 

4) Bạn muốn làm gì với dữ liệu. 

Ngay cả một nhà khoa học dữ liệu giàu kinh nghiệm cũng chẳng thể biết được thuật toán nào sẽ thực hiện tốt nhất trước khi thử các thuật toán khác nhau. mặc dầu có nhiều thuật toán machine learning khác, đây là những thuật toán phổ biến nhất. Nếu bạn là một newbie trong mảng machine learning, đây sẽ là một điểm khởi đầu tốt để tìm hiểu. 
 

No comments:

Post a Comment