Học máy tập trung vào việc tạo ra các mô hình dự đoán chính xác. Số liệu đánh giá cung cấp một cách để đánh giá hiệu quả của mô hình, cho phép chúng tôi tinh chỉnh hoặc thậm chí chuyển đổi thuật toán dựa trên kết quả hiệu suất.
Khái niệm "khả năng" là trọng tâm của nhiều số liệu này. Nó đo lường mức độ phù hợp của các dự đoán của mô hình với dữ liệu được quan sát. Do đó, nó đóng vai trò then chốt trong việc đào tạo và đánh giá mô hình.
Ví dụ: một mô hình có khả năng xảy ra cao hơn cho thấy rằng dữ liệu được quan sát có khả năng xảy ra cao hơn theo các giả định của mô hình nhất định.
Các công cụ công nghệ như TensorFlow và PyTorch thường sử dụng các số liệu dựa trên khả năng, đặc biệt là trong các nhiệm vụ như phân loại hoặc dự đoán trình tự. Những công cụ như vậy, được trang bị các chức năng và thư viện phù hợp với các số liệu này, giúp nhiệm vụ đánh giá mô hình trở nên dễ tiếp cận và hiệu quả cao.
Hiểu khả năng xảy ra và các số liệu liên quan của nó là rất quan trọng đối với bất kỳ ai trong lĩnh vực học máy. Nó cho phép chúng ta hình thành cơ sở để đánh giá và cải tiến mô hình.
Dưới đây, chúng ta sẽ xem xét kỹ hơn ba chỉ số đánh giá chính để xem chúng hoạt động như thế nào và có mối liên hệ với nhau trong học máy.
Crossentropy đánh giá sự khác biệt giữa hai nhóm xác suất, thường đặt các mẫu dữ liệu thực cạnh các kết quả dự báo của mô hình. Về mặt toán học, đối với các phân bố p
và q
rời rạc, entropy chéo H(p, q)
được cho bởi:
H(p, q) = -\sum p(x) \log(q(x))
Trong đó \( p(x) \) là xác suất thực sự của một sự kiện x
xảy ra và q(x)
là xác suất ước tính của cùng một sự kiện theo mô hình.
Nó được áp dụng chủ yếu trong các vấn đề phân loại, đặc biệt trong các tình huống mà đầu ra có thể thuộc về nhiều lớp. Nó được sử dụng vì nó cung cấp thước đo rõ ràng về mức độ chênh lệch giữa dự đoán của mô hình và kết quả thực tế. Crossentropy càng thấp thì dự đoán của mô hình càng phù hợp với giá trị thực.
Một số thư viện phần mềm được trang bị để xử lý các tính toán liên quan đến entropy chéo. Đáng chú ý:
tf.nn.softmax_cross_entropy_with_logits
để tính toán trực tiếp entropy chéo cho các vấn đề phân loại.
torch.nn.CrossEntropyLoss
, phù hợp cho các nhiệm vụ phân loại nhiều lớp.
log_loss
. Logloss, viết tắt của mất logarit, đánh giá độ chính xác của bộ phân loại bằng cách xử phạt các phân loại sai. Đối với phân loại nhị phân có nhãn đúng y
và xác suất dự đoán p
, logloss được đưa ra bởi:
L(y, p) = -y \log(p) - (1 - y) \log(1 - p)
Về cơ bản, logloss là entropy chéo giữa các nhãn thực và dự đoán cho các vấn đề phân loại nhị phân. Khi mở rộng sang phân loại nhiều lớp, logloss tổng hợp các giá trị entropy chéo cho mỗi lớp, làm cho hai số liệu có liên quan mật thiết với nhau.
Nó chủ yếu được sử dụng trong các vấn đề phân loại nhị phân và đa lớp. Sức mạnh của nó nằm ở khả năng định lượng độ không chắc chắn của các dự đoán dựa trên mức độ chúng sai lệch so với nhãn thực.
Một mô hình hoàn hảo sẽ có logloss bằng 0, mặc dù trên thực tế, các giá trị có xu hướng lớn hơn giá trị này.
Một loạt các thư viện phần mềm cho phép chúng tôi tính toán logloss:
Scikit-tìm hiểu . Là một thư viện máy học được sử dụng rộng rãi, scikit-learn cung cấp hàm log_loss
, phù hợp với cả kịch bản phân loại nhị phân và nhiều lớp.
TensorFlow và PyTorch. Mặc dù các khung này chủ yếu tập trung vào mạng lưới thần kinh và học sâu, nhưng chúng vốn tính toán logloss khi sử dụng các hàm mất entropy chéo cho các nhiệm vụ phân loại.
LightGBM và XGBoost. Các khung tăng cường độ dốc này, được biết đến với hiệu suất cao trong các cuộc cạnh tranh dữ liệu dạng bảng, cũng chứa các chức năng tính toán logloss, đặc biệt hữu ích khi đánh giá hiệu suất mô hình trong các thách thức phân loại.
Đây là phép đo mức độ phân bố xác suất hoặc mô hình xác suất dự đoán một mẫu tốt như thế nào.
Được cho bởi:
Perplexity(P) = 2^{H(P)}
Trong đó H(P)
là entropy chéo của phân phối P
, độ bối rối thể hiện một cách hiệu quả số lượng lựa chọn trung bình có trọng số mà một mô hình cho rằng nó có tại mỗi điểm quyết định.
Trong bối cảnh của entropy chéo, giá trị entropy chéo cao hơn tương ứng với độ phức tạp cao hơn, cho thấy rằng mô hình có độ không chắc chắn cao hơn về các dự đoán của nó.
Ứng dụng đáng chú ý nhất của Perplexity là trong các mô hình ngôn ngữ, trong đó nó đo lường mức độ mô hình dự đoán một chuỗi từ tốt như thế nào. Một mô hình có độ phức tạp thấp hơn được coi là ưu việt hơn vì nó biểu thị ít hệ số phân nhánh trung bình hơn hoặc nói một cách đơn giản hơn, nó chắc chắn hơn về từ tiếp theo trong một chuỗi.
Ngoài các mô hình ngôn ngữ, độ bối rối cũng có thể là một thước đo phù hợp trong các mô hình xác suất khác trong đó chất lượng dự đoán theo trình tự hoặc phân phối là rất quan trọng.
Một số công cụ và nền tảng hỗ trợ tính toán và giải thích độ phức tạp:
NLTK . Bộ công cụ ngôn ngữ tự nhiên cung cấp các tiện ích để xây dựng các mô hình ngôn ngữ xác suất và tính toán độ phức tạp để đánh giá các mô hình này.
TensorFlow và PyTorch. Đối với các mô hình ngôn ngữ dựa trên deep learning, cả hai khung này đều cung cấp các chức năng để tính toán entropy chéo, sau đó có thể chuyển thành mức độ phức tạp bằng cách sử dụng công thức trên.
Gensim . Hầu hết được biết đến với mô hình hóa chủ đề, Gensim cũng chứa các phương pháp tính toán độ phức tạp, đặc biệt hữu ích khi đánh giá tính mạch lạc của các chủ đề được tạo ra.
Crossentropy, logloss và perplexity đều là các số liệu bắt nguồn từ lý thuyết thông tin và mô hình xác suất. Mục đích chính của chúng là đánh giá chất lượng của các dự đoán, có thể là để phân loại hoặc ước tính phân bố xác suất. Ở một cấp độ cao:
Là một thước đo phổ quát, entropy chéo rất phù hợp cho các bài toán trong đó mục tiêu là xấp xỉ hoặc khớp với một phân bố xác suất cụ thể. Nó tỏa sáng trong các nhiệm vụ phân loại nhiều lớp. Các ví dụ bao gồm phân loại hình ảnh trong đó mỗi hình ảnh có thể thuộc một trong một số danh mục hoặc dự đoán loại bệnh mà bệnh nhân có thể mắc phải dựa trên các triệu chứng của họ.
Được thiết kế riêng cho việc phân loại, logloss trở thành thước đo phù hợp cho các bài toán nhị phân và nhiều lớp, phạt nặng những dự đoán sai tự tin. Sức mạnh của nó nằm ở sự nhạy cảm với những dự đoán xác suất chính xác.
Ví dụ: trong phát hiện thư rác (thư rác hoặc không phải thư rác), dự đoán khách hàng rời bỏ (sẽ rời bỏ hoặc không rời bỏ) hoặc dự đoán liệu một giao dịch nhất định có gian lận hay không.
Cuối cùng, chủ yếu được sử dụng trong mô hình hóa ngôn ngữ, độ bối rối đánh giá mức độ mô hình dự đoán trình tự. Giá trị thấp hơn cho thấy mô hình chắc chắn hơn về các dự đoán tuần tự của nó. Nó có thể được sử dụng cho các tác vụ tạo văn bản, dịch máy hoặc nhận dạng giọng nói, trong đó mô hình dự đoán từ hoặc cụm từ tiếp theo trong một chuỗi.
Mặc dù cả ba số liệu đều liên quan đến việc đánh giá các mô hình xác suất, nhưng khả năng ứng dụng của chúng khác nhau dựa trên bản chất của nhiệm vụ: đối sánh phân phối, phân loại hoặc dự đoán trình tự.
Một chuyên gia máy học có kinh nghiệm sẽ chọn số liệu phù hợp nhất cho nhiệm vụ để đảm bảo đánh giá hiệu suất mô hình mang lại nhiều thông tin nhất.
Nhận biết các sắc thái của các số liệu đánh giá như entropy chéo, logloss và độ phức tạp ảnh hưởng trực tiếp đến việc ra quyết định sáng suốt trong các dự án học máy. Mỗi số liệu này, với các tính năng và cách sử dụng riêng biệt, ảnh hưởng phần lớn đến độ chính xác và độ tin cậy của các mô hình dự đoán.
Trong ML, việc sử dụng các nền tảng như TensorFlow, Scikit-learn và NLTK giúp việc tính toán số liệu dễ dàng hơn và cải thiện việc đánh giá mô hình. Luôn đảm bảo rằng số liệu đã chọn phù hợp với mục tiêu của dự án để có kết quả tốt nhất.
Tất nhiên, việc áp dụng các công cụ nổi tiếng mà bạn quen thuộc là điều dễ dàng, nhưng cuối cùng, việc thực sự hiểu chúng có thể mang lại nhiều lợi ích hơn. Hãy tiếp tục tìm hiểu và chọn số liệu phù hợp cho từng nhiệm vụ bạn phải đối mặt.