Chưng cất tri thức

Trong học máy, chưng cất tri thức (knowledge distillation) hay chưng cất mô hình (model distillation) là quá trình chuyển giao tri thức từ mô hình lớn sang mô hình nhỏ hơn. Dù các mô hình lớn (như mạng nơ-ron sâu hoặc tập hợp nhiều mô hình) có khả năng lưu trữ tri thức cao hơn, khả năng này có thể chưa được sử dụng hết. Chi phí tính toán để chạy mô hình vẫn cao ngay cả khi nó chỉ sử dụng một phần nhỏ tri thức. Chưng cất tri thức cho phép chuyển giao kiến thức từ mô hình lớn sang nhỏ mà không làm giảm hiệu quả. Các mô hình nhỏ tốn ít chi phí tính toán hơn, có thể triển khai trên thiết bị phần cứng yếu hơn (như điện thoại di động).

Khái niệm này khác với nén mô hình (model compression) - phương pháp giảm kích thước mô hình lớn mà không cần huấn luyện mô hình mới. Nén mô hình thường giữ nguyên kiến trúc và số lượng tham số, chỉ giảm số bit trên mỗi tham số.

Chưng cất tri thức đã được áp dụng thành công trong nhiều lĩnh vực như phát hiện vật thể, mô hình âm học, và xử lý ngôn ngữ tự nhiên. Gần đây, phương pháp này cũng được áp dụng cho mạng nơ-ron đồ thị xử lý dữ liệu phi lưới.

Phương pháp
Việc chuyển giao tri thức từ mô hình lớn sang nhỏ cần đảm bảo tính hiệu quả. Nếu cả hai mô hình cùng được huấn luyện trên một tập dữ liệu, mô hình nhỏ có thể thiếu khả năng học biểu diễn tri thức cô đọng so với mô hình lớn. Tuy nhiên, thông tin về biểu diễn tri thức được mã hóa trong phân phối giả xác suất (pseudolikelihood) đầu ra. Khi mô hình dự đoán đúng một lớp, nó gán giá trị lớn cho biến đầu ra tương ứng và giá trị nhỏ hơn cho các biến khác. Phân phối giá trị đầu ra cung cấp thông tin về cách mô hình lớn biểu diễn tri thức. Do đó, mục tiêu triển khai mô hình hiệu quả có thể đạt được bằng cách: huấn luyện mô hình lớn trên dữ liệu để khai thác khả năng học biểu diễn tri thức, sau đó chưng cất tri thức này vào mô hình nhỏ thông qua việc huấn luyện nó học đầu ra "mềm" của mô hình lớn. Các mạng sâu của họ được huấn luyện từng lớp thông qua phân tích hồi quy. Các đơn vị ẩn không cần thiết được tỉa bỏ bằng cách sử dụng một tập kiểm định riêng. Các phương pháp nén mạng nơ-ron khác bao gồm Biased Weight Decay và Optimal Brain Damage.

Một ví dụ sớm về chưng cất mạng nơ-ron đã được Jürgen Schmidhuber công bố vào năm 1991, trong lĩnh vực mạng nơ-ron hồi quy (RNN). Vấn đề là dự đoán chuỗi cho các chuỗi dài, tức là học sâu. Nó được giải quyết bởi hai RNN. Một trong số chúng (automatizer) dự đoán chuỗi, và một cái khác (chunker) dự đoán lỗi của automatizer. Đồng thời, automatizer dự đoán trạng thái bên trong của chunker. Sau khi automatizer dự đoán tốt trạng thái bên trong của chunker, nó sẽ bắt đầu sửa lỗi, và cuối cùng chunker trở nên lỗi thời, chỉ còn lại một RNN.

Ý tưởng sử dụng đầu ra của một mạng nơ-ron để huấn luyện một mạng nơ-ron khác cũng được nghiên cứu dưới dạng cấu hình mạng giáo viên-học sinh. Năm 1992, một số bài báo đã nghiên cứu cơ học thống kê của cấu hình giáo viên-học sinh với các máy chuyên gia (committee machine) hoặc cả hai đều là máy riêng biệt.

Việc nén kiến thức của nhiều mô hình vào một mạng nơ-ron duy nhất được gọi là nén mô hình vào năm 2006: nén được thực hiện bằng cách huấn luyện một mô hình nhỏ hơn trên một lượng lớn dữ liệu giả được gán nhãn bởi một tập hợp hiệu suất cao, tối ưu hóa để khớp logit của mô hình nén với logit của tập hợp. Bản in trước về chưng cất tri thức của Geoffrey Hinton và cộng sự (2015)

Tham khảo

Liên kết ngoài
Chưng cất kiến thức trong mạng nơ-ron – Google AI