Distillation là gì

  -  
1. Có mang về knowledge distillation

Knowledge distillation được reviews bởi Geoffrey Hinton vào năm 2015 là một trong những phương pháp thuộc chúng ta transfer learning. Thuật toán lấy ý tưởng phát minh chính từ quá trình học tập ở tín đồ khi mà kỹ năng và kiến thức được truyền đạt tự giảng viên bao gồm hiểu biết giỏi hơn tới fan học có thiếu hiểu biết hơn. Trong kỹ thuật knowledge distillation thì một model to hơn sẽ đóng vai trò là teacher nhằm mục tiêu chuyển giao kiến thức và kỹ năng sang model nhỏ dại hơn vào vai trò là student.

Bạn đang xem: Distillation là gì

*

Áp dụng knowledge distillation có thể tạo nâng cấp đáng kể những tác vụ trên cả NLP và computer vision với cùng một lớp mô hình. Trong khi nó còn khiến cho tạo ra đầy đủ mô hình nhỏ dại nhưng độ chính xác cao hơn ban sơ nhằm thực thi trên các thiết bị cấu hình yếu.

2. Quy trình distillation

Quá trình distillation sẽ bao gồm các bước:

Huấn luyện teacher: Teacher được huấn luyện trên một tập dữ liệu đã được labeled. Bộ tài liệu này thường có size vừa đủ để teacher network học được tổng quát những trường hợp. Sau khoản thời gian teacher vẫn đủ giỏi (giả sử đạt 95% accuracy), bọn họ sử dụng teacher để đào tạo và giảng dạy student. Rõ ràng cách giảng dạy student sẽ thế nào ? Các bạn có thể xem ở phần thực hành.

Huấn luyện student: quy trình này đã sử dụng gợi ý từ teacher để nâng cấp student. Nếu giảng dạy theo phương thức thông thường xuyên thì student sẽ vận dụng hàm loss function dạng cross-entropy dạng như sau:

Ở đây $C$ là con số classes.

Cross-entropy giúp đo lường sự đối sánh tương quan giữa phân phối tỷ lệ dự báo $mathbfp$ và ground-truth $mathbfq$ ($mathbfq$ là một trong one-hot véc tơ có giá trị 1 tại index trùng cùng với ground-truth). Kim chỉ nam tối thiểu hoá loss function cũng đó là làm mang lại phân phối tỷ lệ dự báo với ground-truth giống nhau nhất.

Để củng nắm dự báo của student, vào hàm loss function, dự báo từ teacher sẽ tiến hành sử dụng để sửa chữa thay thế cho ground-truth. Tức là chúng ta sẽ huấn luyện sao để cho phân phối phần trăm dự báo của student ngay gần với teacher nhất. Điều này cũng tương tự như khi bạn được giáo viên cung cấp đáp án đến một bài bác thi trắc nghiệm, các bạn sẽ càng tốt nếu giải đáp mà các bạn làm gần cạnh với giải đáp mà giáo viên cung ứng nhất.

Như vậy distillation loss tại quan sát $mathbfx_i$ sẽ sở hữu dạng:

Với $mathbfq_it$ là phân phối tỷ lệ của dự đoán từ teacher cùng $mathbfq_is$ là phân phối xác suất dự báo trường đoản cú student tại quan gần kề thứ $i$.

Cách thay đổi này còn làm cho vấn đề học không biến thành cứng nhắc do giúp dấn thức được sự khác biệt giữa các bức ảnh thuộc về và một nhãn. Ráng thể, thuộc là nhãn dog nhưng một số trong những bức hình ảnh có thể tương đương dog hơn hoặc ít giống như dog rộng (VD: phần lớn loài chó gồm lông xù tương đương mèo). Thay do đều được gán nhãn là 1 thì bức như thể hơn vẫn có xác suất cao hơn so với ảnh ít tương đương hơn.

*

Hình 1: Dog like a cat.

Ngoài ra ở một trong những quan gần cạnh thì công dụng dự báo trường đoản cú teacher tương đối là thô cứng. Xác suất dự báo của class trùng với grounth-truth siêu gần 1 với các tỷ lệ còn lại tiệm cận 0. Điều đó mang đến việc vận dụng dự báo từ bỏ teacher không khác nhiều so với việc bọn họ áp dụng ngay trưng bày ground-truth vào loss function. Bởi vì thế, Geoffrey Hinton đã đề xuất một cách thức mới nhằm mục đích tạo ra một phân phối tỷ lệ soft logit mượt hơn. Đó là một trong những phép biến đổi giúp mang lại các xác suất lớn không thật gần 1 và các xác suất nhỏ không tiệm cận 0. Ví dụ điển hình ta gồm một phân phối phần trăm $<0.99, 0, 0, 0.01>$ thì thông qua cách thức này có thể chuyển thành phân phối xác suất mới $<0.65, 0.1 , 0.1, 0.15>$ chẳng hạn. Vấn đề này đang được chứng tỏ trên thực nghiệm là góp cho quá trình học tạo nên mô hình tốt hơn.

Phương pháp biến đổi xác suất được gọi là temperature scale.

2.1. Temperature scale

Đây là một phương thức calibration score tạo cho softmax score trở yêu cầu smoothing hơn. Cầm thể, trả sử ta có một phân phối phần trăm dựa bên trên hàm softmax của véc tơ input đầu vào $mathbfx = (x_1, x_2, dots , x_C)$ như sau:

Trong kia $C in mathbbN$ là số lượng classes output.Khi vận dụng calibration phần trăm theo thông số temperature scale $T$ ta vẫn thu được xác suất mới là:

với $forall i=overline1,C$

Xác suất new $e_i’$ có cách gọi khác là softmax temperature được đề suất vì Geoffrey Hinton vào 2015. Trong bí quyết của $e_i’$, $T$ thường xuyên được lựa chọn là một giá trị từ 1 tới 5. Trường thích hợp $T=1$ thì $mathbfe=mathbfe’$ và đấy là giá trị softmax thông thường.

Khi $T$ càng béo thì quý giá của phân phối phần trăm softmax temperature $mathbfe’$ đang càng smoothing rộng so với $mathbfe$. Thật vậy, để xác thực điều này, bên dưới chúng ta cùng khởi chế tạo ra một véc tơ logit score $mathbfx$ ngẫu nhiên. Visualize để so sánh phân phối tỷ lệ trước và sau khoản thời gian calibration với $T=2$.


12345678910111213141516171819202122232425262728293031import numpy as npimport matplotlib.pyplot as plt# Initialize random probability distributionx = np.random.rand(5)x = x/np.sum(x)def softmax(x): score = np.exp(x)/np.sum(np.exp(x)) return scoredef softmax_scale(x, temp): x = score_scale = softmax(x) return score_scalescore_1 = softmax(x)score_2 = softmax_scale(x, 2)def _plot_line(score1, score2): assert len(score1) == len(score2) classes = np.arange(len(score1)) plt.figure(figsize=(10, 6)) plt.plot(classes, score1, label="Softmax Score") plt.plot(classes, score2, label = "Softmax Temperature Score") # plt.ylim(<0, 1>) plt.legend() plt.title("Softmax distribution score") plt.show()_plot_line(score_1, score_2)

*

Ta nhận ra đường màu xanh lá cây của Softmax Temperature khi áp dụng calibration smoothing hơn so cùng với đường màu xanh dương của Softmax Score. Lắp thêm tự về độ phệ của tỷ lệ của các phần tử không biến hóa ở cả nhì distribution nên sau khi calibration không ảnh hưởng tới dự đoán nhãn.

Tại sao áp dụng calibration lại giúp tạo thành một chuỗi smoothing hơn? tại sao chính đó là hệ số temperature đã làm sút phương sai của triển lẵm xác suất. Thiệt vậy, ta sẽ chứng minh rằng phương không nên của phân phối tỷ lệ $mathbfe$ sẽ to hơn $mathbfe’$.

Xem thêm: Lawyer Là Gì, Nghĩa Của Từ Lawyer, Lawyers Là Gì

Trước tiên ta dựa trên một đẳng thức quan trọng đặc biệt về phương sai:

<egineqnarray extVar(mathbfe) & = và mathbfE(mathbfe^2)-^2 \& = & mathbfE(mathbfe^2)-frac1C^2endeqnarray>

Dòng thứ hai là vày $mathbfE(armathbfe) = frac1C$ cùng với $C$ là số lượng classes.

Như vậy để chứng minh phương không đúng của $mathbfe$ lớn hơn $mathbfe’$ ta qui về bệnh minh:

Đặt:

<egineqnarrayf(mathbfx, T) và riangleq & C~mathbfE(mathbfe^2)\& = & sum_i=1^C ^2 \& = & sum_i=1^C^2endeqnarray>

Trong kia $mathbfx$ là 1 trong véc tơ phân phối tỷ lệ của $C$ classes cùng $T$ là thông số temperature, $T geq 1$.

Để đơn giản hoá, ta áp dụng $sigma(x_i)$ là ký kết hiệu của hàm sigmoid nỗ lực cho công thức $fracexp(x_i)sum_i=1^C exp(x_i)$.

Một đặc thù khá quan trọng đặc biệt của đạo hàm sigmoid:

Như vậy:

<egineqnarrayfracdelta f(mathbfx, T)delta ~ T và = & sum_i=1^Cfracdelta ~ sigma(x_i/T)^2delta ~ T \& = và sum_i=1^Cfracdelta ~ sigma(x_i/T)^2delta ~ sigma(x_i/T)~fracdelta ~ sigma(x_i/T)delta ~ x_i/T~fracdelta ~ x_i/Tdelta ~ T \& = và sum_i=1^C2~sigma(x_i/T)~sigma(x_i/T)~(1-sigma(x_i/T))~fracdelta ~ x_i/Tdelta ~ T \& = & sum_i=1^C2~sigma(x_i/T)^2~(1-sigma(x_i/T))~frac-x_iT^2endeqnarray>

Do $sigma(x_i/T) in (0, 1)$ với $x_i geq 0$ nên

<2~sigma(x_i/T)^2~(1-sigma(x_i/T))~frac-x_iT^2 leq 0, ~ forall x_i, i=overline1,C>

Tức là (fracdelta f(mathbfx, T)delta ~ T leq 0)

Suy là $f(mathbfx, T)$ là một trong những hàm nghịch biến. Vì vậy $f(mathbfx, T) leq f(mathbfx, 1)$, suy ra $mathbfE(mathbfe^2) geq mathbfE(mathbfe’^2)$ kéo theo $ extVar(mathbfe) geq extVar(mathbfe’)$.

Như vậy ta đã minh chứng được rằng việc áp dụng calibration đã khiến cho phương không nên của trưng bày xác suất nhỏ hơn chính vì thế ta có cảm xúc rằng phân phối phần trăm trở bắt buộc smoothing hơn.

Các bạn đã gọi cách chứng tỏ trên của tôi rồi chứ? chúng ta cũng có thể tự tìm ra một cách chứng minh mới cho riêng mình. Phương pháp calibration xác suất theo temperature scale là kỹ năng và kiến thức rất quan trọng đặc biệt cần núm vững. Vì bạn sẽ thường xuyên gặp lại cách thức này ở những thuật toán machine learning khác.

2.2. Distillation loss

Như vậy sau khi áp dụng phương pháp temperature scale thì phân phối tỷ lệ của teacher và student sẽ đổi khác theo hướng mềm hơn. Chúng ta ký hiệu bọn chúng lần lượt là $mathbfq_t’$ cùng $mathbfq_s’$. Distillation loss đã trở thành:

<egineqnarray mathcalL_ extdl(mathbfx_i; mathbfW) và = & mathbfH(mathbfq"_it, mathbfq"_is) \& = & mathbfH(sigma(mathbfz_it; T= au), sigma(mathbfz_is; T= au))endeqnarray>

Với $sigma(mathbfz_i; T= au)$ là ký hiệu của hàm phân phối softmax sau khoản thời gian làm mềm với đầu vào $mathbfz_i$ và thông số temperature scale $T= au$. Index $it$ tương xứng với quan sát thứ $i$ của teacher, giống như $is$ là quan liền kề thứ $i$ của student.

Ngoài ra Geoffrey Hinton cũng thấy trải qua thực nghiệm rằng vấn đề học sẽ tác dụng hơn nếu gồm sự phối kết hợp giữa học tập từ nhãn groud-truth và học từ dự báo của teacher. Vì vậy ông sẽ thêm student loss là 1 trong những hàm cross-entropy thường thì vào distillation loss.

<egineqnarraymathcalL_ extfinal(mathbfx_i; mathbfW) và = và alpha ~ mathcalL_ extstudent(mathbfx_i; mathbfW) & + eta ~ mathcalL_ extdl(mathbfx_i; mathbfW) \ & = & alpha~ mathbfH(mathbfy_i, mathbfq_is) & + eta~ mathbfH(mathbfq"_it, mathbfq"_is) \& = và alpha ~ mathbfH(mathbfy_i, sigma(mathbfz_is; T=1)) & + eta~mathbfH(sigma(mathbfz_it; T= au), sigma(mathbfz_is; T= au))endeqnarray>

$mathbfy_i$ chính là véc tơ one-hot của nhãn ground-truth đối với quan gần kề $i$. Trường vừa lòng $T=1$ sẽ khớp ứng với softmax không vận dụng làm mượt trong student loss.

Thông thường $eta = 1-alpha$, $alpha$ sẽ được lựa chọn là một trong giá trị rất nhỏ so với $eta$ nhằm teacher vào vai trò lớn hơn trong quy trình huấn luyện, ví dụ như $alpha=0.1$. $ au$ được lựa chọn trong khoảng 2 tới 20.

Trong trường hợp được huấn luyện hòa bình thì student loss sẽ chính là hàm cross-entropy không vận dụng temperature scale. đầu ra của dự báo trong trường vừa lòng này nói một cách khác là hard prediction (tức dự đoán không vận dụng calibration theo temperature scale để gia công mềm). Để gọi hơn phương thức huấn luyện distillation bọn họ cùng coi hình bên dưới.

*

Hình 2: Source - knowledge distillation. Teacher và student sẽ được phối hợp trong distillation loss. Phân phối xác suất của nhì models này sẽ được thiết kế mềm theo cùng hệ số temperature scale $T=t$. Vào trường hợp chỉ đào tạo và huấn luyện student chủ quyền thì không có tác dụng mềm bày bán xác suất, mặt khác cross-entropy được tính dựa vào phân phối phần trăm dự báo (hard prediction) với nhãn ground-truth.

Tiếp theo bọn họ cùng thực hành huấn luyện model theo phương thức knowledge distillation.

3. Thực hành

3.1. Khởi chế tác distiller

Để huấn luyện model theo phương thức knowledge distillation bọn họ sẽ bắt buộc khởi tạo class Distiller bao gồm:

model teacher với kích cỡ lớn hơn. Model student cùng với kích thước bé dại hơn. Student sẽ được huấn luyện dựa trên kết quả dự báo từ bỏ teacher. Trong quá trình huấn luyện student thì teacher sẽ tiến hành huấn luyện. Distullation loss: bởi tổng hàm loss function dạng cross-entropy được tính từ tương quan phần trăm giữa đoán trước của student với teacher cùng từ tương quan phần trăm giữa đoán trước của student cùng với ground-truth. Các giá trị tỷ lệ đều được gia công mềm theo temperature scale. Student loss: Hàm loss function khi huấn luyện student một phương pháp độc lập. Không vận dụng temperature scale. Giá trị temperature scale: Tham số dùng để điều chỉnh softmax output. $alpha$: trọng số góp phần của loss student lên total loss.

Xem thêm: Tuổi Mậu Ngọ Sinh Năm 78 Mệnh Gì ? Phong Thủy Người Sinh Năm 1978

Code mẫu được tham khảo từ Keras-distillation.