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ó.
-
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”.
-
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.
Biểu đồ bias - variance. Nguồn towardsdatascience.com
Hai ý chính của hình trên cần làm rõ ở đây:
-
Bias là lỗi trên tập huấn luyện.
-
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
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 $$
Biểu đồ variance. Nguồn towardsdatascience.com
Tradeoff giữa bias và variance
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.
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 đó.
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/
Comments