Hai khái niệm quan trọng giúp tăng độ chính xác của các mô hình trong machine learning

- Phạm Duy Tùng
Việc huấn luyên mô hình máy học có thể sẽ gây ra cho bạn một chút khó khăn nếu bạn không hiểu những thứ bạn dang làm là đúng hay sai. Trong hầu hết các trường hợp, các mô hình học máy là các "hộp đen"

Việc huấn luyên mô hình máy học có thể sẽ gây ra cho bạn một chút khó khăn nếu bạn không hiểu những thứ bạn dang làm là đúng hay sai. Trong hầu hết các trường hợp, các mô hình học máy là các “hộp đen”, chúng ta chỉ có thể “nhìn thấy” dữ liệu đầu vào và độ chính xác mà mô hình trả ra. Chúng ta không biết bên trong nó đang làm cái gì. Việc hiểu lý do tại sao mô hình cho ra kết quả tệ hại là chìa khóa cho cái “cách” mà bạn cải tiến nó.

  1. Tìm hiểu lý do “tại sao” mô hình cho ra kết quả tệ hại bằng cách “xác định bias và variance”.

  2. Tìm hiểu “cách” cải tiến mô hình bằng việc thực hiện “giảm bias và variance”.

Xác định bias và variance

Trước hết, chúng ta hãy bắt đầu nói về lỗi. Lỗi là phần không chính xác của mô hình trên tập test.

$$ error = 1 - testing accuracy $$

Nếu mô hình đạt độ chính xác là 86% trên tập test, điều đó đồng nghĩa với độ lỗi là 14%. Trong 14% đó bao gồm bias và variance.

Hình ảnh Biểu đồ bias - variance. Nguồn towardsdatascience.com

Hai ý chính của hình trên cần làm rõ ở đây:

  1. Bias là lỗi trên tập huấn luyện.

  2. Variance là gap giữa độ chính xác trên tập train và độ chính xác trên tập test.

Bạn hãy hình thật kỹ vào hình ở trên, nhìn đi nhìn lại 2, 3 lần. Nhắm mắt lại và nghiền ngẫm thật kỹ hai ý chính mình vừa đề cập ở trên.

Bias

Bias mô tả khả năng học của mô hình. Giá trị bias lớn đồng nghĩa với việc mô hình cần phải học nhiều hơn nữa từ tập huấn luyện.

Nếu mô hình có độ chính xác 90% trên tập train, điều đó đồng nghĩa với việc bạn có 10% bias. Bias cũng được chia làm 2 nhóm, nhóm bias có thể tránh được (avoidable bias) và nhóm bias không thể tránh được (unavoidable bias).

$$ bias = 1 - trainning accuracy $$

Unavoidable bias

Unavoidable bias hay còn được sử dụng dưới tên là optimal error rate. Đây là giới hạn trên của mô hình. Trong một số bài toán, ví dụ như là bài toán dự đoán giá chứng khoán, chúng ta - con người - không thể dự đoán chính xác 100%. Do đó, trong điều kiện lý tưởng nhất, tại một thời điểm nào đó, mô hình của chúng ta vẫn cứ trả ra kết quả sai.

Nếu bạn quyết định rằng mô hình có độ sai ít nhất là 4%. Nghĩa là chúng ta có 4% unavoidable bias.

Avoidable bias

Khác với optimal error rate và trainning error. Độ lỗi này xảy ra khi mô hình chúng ta chưa đủ độ tới. Chúng ta hoàn toàn có thể cái tiến mô hình này để giảm độ lỗi này về mức 0, v

Hình ảnh Biểu đồ bias - variance. Nguồn towardsdatascience.com

Bạn hãy để ý kỹ phần bias ở hình trên. Bias được chia làm 2 phần. Ở trên phần nét đứt là Unavoidable bias. Nó là điểm tới hạn của mô hình. Việc cần làm của chúng ta là huấn luyện, cải tiến mô hình, để cho đường trainning accuracy màu đỏ tiến sát với đường nét đứt.

Variance

Variance ý nghĩa của nó là mô tả mức độ tổng quát hóa của mô hình của bạn đối với dữ liệu mà nó chưa được huấn luyện. Và định nghĩa của nó là phần sai lệch giữa độ chính xác trên tập huấn luyện và độ chính xác tên tập test.

$$ Variance = trainning accuracy - testing accuracy $$

Hình ảnh Biểu đồ variance. Nguồn towardsdatascience.com

Tradeoff giữa bias và variance

Hình ảnh Sự đánh đổi giữa bias và variace. Nguồn towardsdatascience.com

Mình nghĩ hình trên đủ nói lên tất cả ý mình muốn nói. Khi mô hình cảng trở nên phức tạp, thì bias sẽ giảm, nhưng mức độ tổng quát hóa cũng giảm theo (đồng nghĩa với việc variace sẽ tăng).

Cách giảm bias và variance

Cách giảm bias

Như đã nói ở phần trên, bias được chia thành 2 nhóm là Avoidable bias và unavoidable bias. Chúng ta không thể nào giảm Avoidable bias, nhưng chúng ta có thể giảm unavoidable bias bằng một trong các cách sau.

Tăng kích thước mô hình

Việc tăng kích thước mô hình là một trong những cách làm giảm avoidable bias. Mô hình càng lớn thì có càng nhiều tham số phải điều chỉnh. Có nhiều tham sos đồng nghĩa với việc mô hình sẽ học được nhiều mối quan hệ phức tạp hơn. Chúng ta có thể tăng kích thước mô hình bằng cách thêm nhiều layer hơn nữa, hoặc thêm nhiều node hơn nữa cho mỗi layer.

Giảm Regulation

Việc giảm regulation cũng giúp mô hình tăng độ chính xác trên tập huấn luyên. Tuy nhiên, nếu chúng ta giảm regularization quá đà, mô hình sẽ không đạt được mức độ tổng quát hóa, và làm tăng variance. Đây là ví dụ dễ thấy nhất nhất về sự đánh đổi giữa bias và variance.

Hình ảnh Giảm Regulation . Nguồn towardsdatascience.com

Thay đổi kiến trúc mô hình

Việc thay đổi kiến trúc mô hình cũng có thể giúp chúng ta đạt được độ chính xác cao hơn.

Một số mục có thể thay đổi:

  • Thay đổi activation function ( ví dụ tanh, ReLU, sigmoid, LeakyReLU)

  • Thay đổi loại mô hình (ANN, CNN, RNN, KNNKNN, …)

  • Thay đổi các tham số (learning rate, image size, …)

  • Thay đổi thuật toán tối ưu (Adam, SGD, RMSprop, …)

Thêm đặc trưng mới

Việc thêm đặc trưng mới giúp chúng ta cung cấp cho mô hình nhiều thông tin hơn. Chúng ta có thể thực hiện điều này thông qua kỹ thuật feature engineering.

Giảm variance

Thêm nhiều dữ liệu

Thêm dữ liệu là cách đơn giản nhất, thường gặp nhất để tăng độ chính xác của mô hình trong trường hợp mô hình huấn luyện của chúng ta bị hight variance. Hiệu quả của việc thêm nhiều dữ liệu vào mô hình đã được đề cập ở bài báo có tựa đề là The Unreasonable Effectiveness of Recurrent Neural Networks của Andrej Karpathy (link: http://karpathy.github.io/2015/05/21/rnn-effectiveness/). Việc thêm dữ liệu thường không ảnh hưởng đến độ lỗi bias, giúp làm giảm variance, nên đây là cách thường được sử dụng nhất.

Tăng Regularization

Việc tăng Regularization giúp mô hình chống overfitting. Qua đó giúp giảm variance, và tăng bias :(. Một só cách Regularization hot ở thời điểm hiện lại là dropout ( với biến thể là Monte Carlo Dropout), BatchNorm…

Giảm kích thước mô hình

Việc giảm kích thước mô hình giúp cho chúng ta giảm overfitting trên tập train. Mục tiêu của Việc này làm giảm khả năng liên kết những pattern của dữ liệu. Bởi vậy, mục tiêu của nó hoàn toàn tương tự như tăng Regularization. Trong thực tế, chúng ta thường sử dụng tăng thêm Regularization hơn là giảm kích thước mô hình để chống variace.

Lựa chọn đặc trưng (feature selection)

Giảm chiều dữ liệu, bằng cách bỏ đi các đặc trưng thừa, giúp giảm nhiễu, là cách thường được sử dụng để giảm variace. Chúng ta có thể sử dụng PCA (Principal Component Analysis) để lọc ra các đặc trưng tốt hoặc kết hợp chúng với nhau để tạo các đặc trưng tốt hơn.

Bức tranh tổng quát

Sau tất cả, chúng ta sẽ xây dựng được một bức tranh tổng quan về lỗi chúng ta đang mắc phải là gì và chúng ta nên làm gì để giảm độ lỗi đó.

Hình ảnh Tổng quan . Nguồn towardsdatascience.com

Tổng kết

  • Reducing Bias

    • Increase model size

    • Reduce regularization

    • Change model architecture

    • Add features

  • Reducing Variance

    • Add More data

    • Decrease model size

    • Add regularization

    • Feature selection

Cảm ơn các bạn đã quan tâm và theo dõi bài viết, hẹn gặp bạn ở các bài viết tiếp theo.

Bài viết được lược dịch từ link https://towardsdatascience.com/two-important-machine-learning-concepts-to-improve-every-model-62fd058916b

Nguồn tự liệu từ bài viết được sử dụng trong cuốn sách Machine Learning Yearning của Andrew Ng. Các bạn có thể search theo từ khóa trên hoặc đăng ký trên site http://deeplearning.net/


Bài viết khác
comments powered by Disqus