Những thuật toán học máy thông dụng nhất bạn nên biết

Khi kỹ năng và kiến thức của bạn về học máy ngày càng tăng, thì số lượng những thuật toán học máy cũng tăng theo. Bài viết này sẽ đề cập đến những thuật toán học máy thường được sử dụng trong cộng đồng khoa học dữ liệu .

Trong bài sẽ có một số thuật toán học máy được giải thích cặn kẽ hơn những thuật toán khác để bài viết ngắn gọn. Sẽ không có quá nhiều hàm lượng toán học trong bài viết để những người không có nhiều kiến thức toán có thể theo. Có thể xem bài viết là một bản tóm tắt ngắn gọn về từng tính năng và một số đặc điểm chính của các thuật toán.

Chúng ta sẽ mở màn với 1 số ít thuật toán học máy cơ bản và sau đó đi sâu vào một số ít thuật toán mới như CatBoost, Gradient Boost và XGBoost .

Hồi quy tuyến tính

Hồi quy tuyến tính (Linear Regression) là một trong những thuật toán học máy cơ bản nhất được sử dụng để mô hình hóa mối quan hệ giữa một biến phụ thuộc và một hoặc nhiều biến độc lập. Nói một cách đơn giản hơn, nó liên quan đến việc tìm ‘dòng phù hợp nhất’ (Line of best fit) đại diện cho hai hoặc nhiều biến.

Đường tương thích nhất được tìm thấy bằng cách giảm thiểu khoảng cách bình phương giữa những điểm và đường tương thích nhất – điều này được gọi là giảm thiểu tổng những phần dư bình phương ( sum of squared residual ). Phần dư chỉ đơn thuần bằng giá trị Dự kiến trừ đi giá trị thực .thuật toán học máy Linear RegressionTrong trường hợp nó chưa có ý nghĩa, hãy xem xét hình ảnh trên. So sánh đường màu xanh lá cây tương thích nhất với đường màu đỏ, hãy chú ý quan tâm xem những đường thẳng đứng ( phần dư ) của đường màu xanh lá cây lớn hơn nhiều so với đường màu đỏ như thế nào. Điều này có ý nghĩa vì đường màu xanh lá cây nằm rất xa những điểm nên nó trọn vẹn không phải là sự bộc lộ tài liệu tốt !Nếu bạn muốn khám phá thêm về toán học đằng sau hồi quy tuyến tính, hoàn toàn có thể khởi đầu với lời lý giải của Brilliant .

Hồi quy logistic

Hồi quy logistic ( Logistic regression ) tựa như như hồi quy tuyến tính nhưng được sử dụng để quy mô hóa Phần Trăm của 1 số ít hiệu quả rời rạc, nổi bật là hai. Thoạt nhìn, hồi quy logistic nghe có vẻ như phức tạp hơn nhiều so với hồi quy tuyến tính, nhưng thực sự chỉ có một bước bổ trợ .Đầu tiên, bạn tính điểm bằng cách sử dụng một phương trình tựa như như phương trình cho đường tương thích nhất cho hồi quy tuyến tính .

Bước bổ trợ là phân phối điểm số mà bạn đã giám sát trước đó trong hàm sigmoid bên dưới để bạn nhận được Xác Suất đổi lại. Xác suất này sau đó hoàn toàn có thể được quy đổi thành đầu ra nhị phân, 1 hoặc 0 .

Để tìm trọng số của phương trình khởi đầu để tính điểm, những giải pháp như giảm độ dốc hoặc năng lực xảy ra tối đa được sử dụng. Vì nó nằm ngoài khoanh vùng phạm vi của bài viết này nên tất cả chúng ta sẽ không đi vào cụ thể, nhưng như vậy cũng đủ giúp bạn hiểu nó hoạt động giải trí như thế nào !

K-Nearest Neighbors

Thuật toán học máy K-Nearest Neighbors

K-nearest neighbors là một ý tưởng đơn giản. Đầu tiên, bạn bắt đầu với dữ liệu đã được phân loại (tức là các điểm dữ liệu màu đỏ và xanh lam). Sau đó, khi bạn thêm một điểm dữ liệu mới, bạn phân loại nó bằng cách xem các điểm được phân loại gần k nhất. Lớp nào nhận được nhiều phiếu bầu nhất sẽ quyết định điểm mới được xếp vào loại nào.

Trong trường hợp này, nếu tất cả chúng ta đặt k = 1, tất cả chúng ta hoàn toàn có thể thấy rằng điểm gần nhất tiên phong với mẫu màu xám là một điểm tài liệu màu đỏ. Do đó, điểm sẽ được phân loại là màu đỏ .Một điều cần chú ý quan tâm là nếu giá trị của k được đặt quá thấp, nó hoàn toàn có thể bị ngoại lệ. Mặt khác, nếu giá trị của k được đặt quá cao thì nó hoàn toàn có thể bỏ lỡ những lớp chỉ có một vài mẫu .

Naive Bayes

Naive Bayes là một thuật toán phân loại. Điều này có nghĩa là Naive Bayes được sử dụng khi biến đầu ra là rời rạc .Naive Bayes có vẻ như là một thuật toán khó vì nó nhu yếu kỹ năng và kiến thức toán học sơ bộ về Tỷ Lệ có điều kiện kèm theo và Định lý Bayes, nhưng đó là một khái niệm cực kỳ đơn thuần và “ ngây thơ ”. Chúng ta hãy xem lý giải về thuật toán này bằng một ví dụ :thuật toán học máy Naive BayesGiả sử tất cả chúng ta có tài liệu nguồn vào về những đặc thù của thời tiết ( triển vọng – outlook, nhiệt độ – temperature, nhiệt độ – Humidity, gió – Windy ) và liệu bạn có chơi gôn hay không ( tức là cột sau cuối ) .Điều mà Naive Bayes làm về cơ bản là so sánh tỷ suất giữa mỗi biến nguồn vào và những hạng mục trong biến đầu ra. Điều này hoàn toàn có thể được hiển thị trong bảng dưới đây .

Lấy một ví dụ trong bảng trên để bạn hiểu, trong phần nhiệt độ, trời nóng trong hai ngày trong số chín ngày bạn chơi gôn ( tức là có ) .Theo thuật ngữ toán học, bạn hoàn toàn có thể viết giá trị này là Tỷ Lệ trời nóng khi bạn chơi gôn. Kí hiệu toán học là P. ( hot | yes ). Đây được gọi là Xác Suất có điều kiện kèm theo và là điều thiết yếu để hiểu phần còn lại của những gì sắp xem sau đây .

Sau khi có được điều này, bạn có thể dự đoán liệu mình có chơi gôn hay không với bất kỳ sự kết hợp nào của các đặc điểm thời tiết.
Hãy tưởng tượng rằng chúng ta có một ngày mới với những đặc điểm sau:

  • Triển vọng: nắng
  • Nhiệt độ: ôn hòa
  • Độ ẩm: bình thường
  • Windy: không (false)

Đầu tiên, chúng tôi sẽ tính Phần Trăm bạn sẽ chơi gôn với X, P. ( yes | X ), tiếp theo là Tỷ Lệ bạn sẽ không chơi gôn với X, P. ( no | X ) .Sử dụng biểu đồ trên, tất cả chúng ta hoàn toàn có thể nhận được thông tin sau :

Bây giờ tất cả chúng ta hoàn toàn có thể chỉ cần nhập thông tin này vào công thức sau :

Tương tự, bạn sẽ hoàn thành xong trình tự những bước tựa như cho P. ( no | X ) .

Vì P. ( yes | X ) > P ( no | X ), nên bạn hoàn toàn có thể Dự kiến rằng người này sẽ chơi gôn với điều kiện kèm theo là trời nắng, nhiệt độ ôn hòa, nhiệt độ thông thường và không có gió .Đây là thực chất của Naive Bayes !

Support Vector Machines

thuật toán học máy Support Vector Machines

Support Vector Machine là một kỹ thuật phân loại có giám sát có thể khá phức tạp nhưng khá trực quan ở cấp độ cơ bản nhất. Vì lợi ích của bài viết này, chúng ta sẽ mô tả nó ở mức khá cao (high level).

Giả sử rằng có hai lớp dữ liệu. Support Vector Machine sẽ tìm một siêu phẳng (hyperplane) hoặc ranh giới giữa hai lớp dữ liệu để tối đa hóa lề (margin) giữa hai lớp (xem ở trên). Có nhiều mặt phẳng có thể tách hai lớp, nhưng chỉ một mặt phẳng có thể tối đa hóa lề hoặc khoảng cách giữa các lớp.

Nếu bạn muốn tìm hiểu và khám phá về toán học đằng sau những thuật toán Support Vector Machines, hãy xem loạt bài viết này. ( tiếng Anh ) hoặc tại đây ( tiếng Việt )

Decision Tree

thuật toán học máy Decision Tree

Random Forest

Trước khi hiểu về Random Forest, có một số ít thuật ngữ mà bạn cần biết :

  • Ensemble learning là một phương pháp mà nhiều thuật toán học được sử dụng kết hợp. Mục đích của việc làm như vậy là nó cho phép bạn đạt được hiệu suất dự đoán cao hơn so với việc bạn sử dụng một thuật toán riêng lẻ.
  • Bootstrap sampling là một phương pháp lấy mẫu sử dụng lấy mẫu ngẫu nhiên có thay thế. Nghe có vẻ phức tạp nhưng nó THỰC SỰ rất đơn giản – hãy đọc thêm về nó ở đây. (bạn có thể phải dùng VPN để vào link này từ Việt Nam)
  • Bagging khi bạn sử dụng tổng hợp các bộ dữ liệu khởi động để đưa ra quyết định – Bạn có thể đọc thêm bài viết cho chủ đề này ở đây.

Bây giờ bạn đã hiểu những thuật ngữ này, hãy đi sâu vào cụ thể .Random Forest là một kỹ thuật học tập tổng hợp được thiết kế xây dựng dựa trên những cây quyết định hành động. Random Forest tương quan đến việc tạo nhiều cây quyết định hành động bằng cách sử dụng tập dữ liệu khởi động của tài liệu gốc và chọn ngẫu nhiên một tập hợp con những biến ở mỗi bước của cây quyết định hành động. Sau đó, quy mô sẽ chọn chính sách ( mode ) của toàn bộ những Dự kiến của mỗi cây quyết định hành động ( bagging ). Mục đích của điều này là gì ? Bằng cách dựa trên quy mô “ đa phần thắng ”, nó làm giảm rủi ro tiềm ẩn mắc lỗi từ một cây riêng không liên quan gì đến nhau .Ví dụ, nếu tất cả chúng ta tạo ra một cây quyết định hành động, cây thứ ba, nó sẽ Dự kiến bằng 0. Nhưng nếu tất cả chúng ta dựa vào chính sách ( mode ) của cả 4 cây quyết định hành động, giá trị Dự kiến sẽ là 1. Đây là sức mạnh của những Random Forest

AdaBoost

AdaBoost, hoặc Adaptive Boost, cũng là một thuật toán tổng hợp sử dụng những chiêu thức bagging và boosting để tăng trưởng một công cụ Dự kiến nâng cao .AdaBoost tựa như như Random Forest theo nghĩa là những Dự kiến được lấy từ nhiều cây quyết định hành động. Tuy nhiên, có ba điểm độc lạ chính làm cho AdaBoost trở nên độc lạ :

Ví dụ về một gốc cây

  1. Đầu tiên, AdaBoost tạo ra một khu rừng gốc cây thay vì cây cối. Gốc là cây chỉ được tạo thành từ một nút và hai lá (như hình trên).
  2. Thứ hai, các gốc cây được tạo ra không có trọng số như nhau trong quyết định cuối cùng (dự đoán cuối cùng). Những gốc cây tạo ra nhiều lỗi hơn sẽ có ít ý nghĩa hơn trong quyết định cuối cùng.
  3. Cuối cùng, thứ tự thực hiện các gốc cây là rất quan trọng, bởi vì mỗi gốc cây nhằm mục đích giảm thiểu các lỗi mà (các) gốc cây trước đó đã mắc phải.

Về thực chất, AdaBoost có cách tiếp cận lặp lại nhiều hơn theo nghĩa là nó tìm cách cải tổ lặp đi lặp lại từ những sai lầm đáng tiếc mà ( những ) gốc trước đó đã mắc phải .Nếu bạn muốn khám phá thêm về toán học cơ bản đằng sau AdaBoost, hãy xem bài viết ‘ Giải thích toán học về AdaBoost trong 5 phút ’

Gradient Boost

Không có gì quá bất ngờ khi Gradient Boost cũng là một thuật toán tổng hợp sử dụng những chiêu thức thôi thúc ( boosting ) để tăng trưởng một công cụ Dự kiến nâng cao. Theo nhiều cách, Gradient Boost tương tự như như AdaBoost, nhưng có một số ít điểm độc lạ chính :

  • Không giống như AdaBoost xây dựng các gốc cây, Gradient Boost xây dựng các cây thường có 8–32 lá.
  • Gradient Boost xem vấn đề tăng cường (boosting problem) là một vấn đề tối ưu hóa, trong đó nó sử dụng một hàm mất mát (loss function) và cố gắng giảm thiểu lỗi. Đây là lý do tại sao nó được gọi là Gradient boost, vì nó được lấy cảm hứng từ sự giảm dần độ dốc (gradient descent).
  • Cuối cùng, cây được sử dụng để dự đoán lượng dư của các mẫu (dự đoán trừ thực tế).

Mặc dù điểm ở đầu cuối hoàn toàn có thể gây nhầm lẫn, nhưng toàn bộ những gì bạn cần biết là Gradient Boost mở màn bằng cách kiến thiết xây dựng một cây để nỗ lực tương thích với tài liệu và những cây tiếp theo được thiết kế xây dựng nhằm mục đích mục tiêu giảm phần dư ( lỗi ). Nó triển khai điều này bằng cách tập trung chuyên sâu vào những khu vực mà những người học hiện có hoạt động giải trí kém, tương tự như như AdaBoost .

XGBoost

XGBoost là một trong những thuật toán học máy thông dụng và được sử dụng thoáng đãng nhất lúc bấy giờ vì đơn thuần là nó rất can đảm và mạnh mẽ. Nó tương tự như như Gradient Boost nhưng có một vài tính năng bổ trợ làm cho nó mạnh hơn nhiều gồm có …

  • Sự thu nhỏ theo tỷ lệ của các nút lá (cắt tỉa) – được sử dụng để cải thiện tính tổng quát của mô hình
  • Newton Boosting – cung cấp một tuyến đường trực tiếp đến cực tiểu thay vì giảm độ dốc, làm cho nó nhanh hơn nhiều
  • Một tham số ngẫu nhiên bổ sung – giảm mối tương quan giữa các cây, cuối cùng cải thiện sức mạnh của nhóm
  • Unique penalization of trees

Tôi thực sự khuyên bạn nên xem video của StatQues t để hiểu cụ thể hơn về cách thuật toán hoạt động giải trí .

LightGBM

Nếu bạn nghĩ XGBoost là thuật toán học máy tốt nhất hiện có, hãy nghĩ lại. LightGBM là một loại thuật toán thôi thúc khác được chứng tỏ là nhanh hơn và đôi lúc đúng chuẩn hơn XGBoost .Điều làm cho LightGBM trở nên độc lạ là nó sử dụng một kỹ thuật độc lạ được gọi là Lấy mẫu một phía dựa trên Gradient ( GOSS – Gradient-based One-Side Sampling ) để lọc ra những thành viên tài liệu nhằm mục đích tìm ra giá trị phân tách. Điều này khác với XGBoost sử dụng những thuật toán được sắp xếp trước và dựa trên biểu đồ để tìm ra sự phân loại tốt nhất .Đọc thêm về Light GBM và XGBoost tại đây !

CatBoost

CatBoost là một thuật toán khác dựa trên Gradient Descent có 1 số ít độc lạ nhỏ khiến nó trở nên độc lạ :

  • CatBoost triển khai cây đối xứng (symmetric trees) giúp giảm thời gian dự đoán và nó cũng có độ sâu của cây nông hơn theo mặc định (sáu)
  • CatBoost tận dụng các hoán vị ngẫu nhiên tương tự như cách XGBoost có một tham số ngẫu nhiên
  • Tuy nhiên, không giống như XGBoost, CatBoost xử lý các tính năng phân loại một cách thanh lịch hơn, sử dụng các khái niệm như tăng cường theo thứ tự (ordered boosting) và mã hóa phản hồi (response coding)

Nhìn chung, điều làm cho CatBoost trở nên can đảm và mạnh mẽ là nhu yếu về độ trễ thấp, tức là nó nhanh hơn XGBoost khoảng chừng tám lần .Nếu bạn muốn đọc cụ thể hơn về CatBoost, hãy xem bài viết này .

Phần kết

Bây giờ bạn có lẽ rằng đã có ý tưởng sáng tạo tốt hơn về toàn bộ những thuật toán học máy khác nhau .Đừng nản lòng nếu bạn gặp khó khăn vất vả khi hiểu 1 số ít thuật toán sau cuối trong bài, không riêng gì phức tạp hơn mà chúng còn tương đối mới. Vì vậy, hãy theo dõi thêm những tài liệu cụ thể để khám phá sâu hơn về những thuật toán này .Bài của tác giả Terence Shin, Data Scientist | MSc Analytics và MBA student đăng trên towardsdatascience.comImage by Pete Linforth from PixabayLưu ý : bạn hoàn toàn có thể gặp khó khăn vất vả khi truy vấn vào những link đến Medium. Hãy thử dùng VPN nếu bạn không hề truy vấn theo cách thường thì .Bạn nhìn nhận bài viết thế nào ?

Average rating 5 / 5. Vote count : 3No votes so far ! Be the first to rate this post .

ĐÁNH GIÁ post
Bài viết liên quan

Tư vấn miễn phí (24/7) 094 179 2255