Học sâugiáo trình tự học
Chương 1425 phút đọc

14Câu hỏi phỏng vấn#

14.1Cách trình bày câu trả lời#

Phần lớn câu hỏi phỏng vấn về mô hình và kiến trúc có dạng "vì sao X". Một câu trả lời tốt thường đi qua ba bước. Đầu tiên là vấn đề mà X giải quyết: không có X thì điều gì hỏng. Tiếp theo là cơ chế: X giải quyết vấn đề đó bằng cách nào, tốt nhất bằng một công thức ngắn hoặc một con số. Cuối cùng là giới hạn: X tốn kém ở đâu, và khi nào nó không còn tác dụng. Bước cuối thường là chỗ phân biệt người hiểu với người chỉ nhớ.

Các câu trả lời mẫu dưới đây dẫn số liệu từ các thí nghiệm của giáo trình. Khi phỏng vấn không cần nhớ chính xác từng con số, nhưng cần nắm độ lớn và chiều của hiệu ứng.

14.2Học máy cổ điển và mạng nơ-ron#

Câu hỏi: Giải thích phân rã độ chệch – phương sai.

Trả lời

Sai số bình phương kỳ vọng tại một điểm tách thành độ chệch², phương sai và nhiễu, với kỳ vọng lấy trên các tập huấn luyện có thể rút ra. Độ chệch là sai lệch có hệ thống do họ hàm quá hẹp; phương sai là mức dự đoán thay đổi khi đổi tập huấn luyện; nhiễu không giảm được. Giá trị thực tế của phân rã là phân biệt hai tình huống cần xử lý ngược nhau. Ở Mục 2.3, đa thức bậc 1 có độ chệch² chiếm 74% sai số, nên thêm dữ liệu không giúp gì; đa thức bậc 12 có phương sai gấp khoảng 1 900 lần độ chệch², nên thêm dữ liệu là cách sửa đúng.

Câu hỏi: Vì sao mạng nơ-ron cần hàm kích hoạt phi tuyến?

Trả lời

Vì hợp của các phép biến đổi affine vẫn là một phép biến đổi affine: W2(W1x+b1)+b2=(W2W1)x+(W2b1+b2)W_2(W_1 x + b_1) + b_2 = (W_2 W_1)x + (W_2 b_1 + b_2). Không có hàm phi tuyến thì mạng bao nhiêu lớp cũng tương đương một lớp tuyến tính. Ví dụ đơn giản nhất là hàm XOR: không mô hình tuyến tính nào biểu diễn được, nhưng hai đơn vị ReLU ở lớp ẩn là đủ.

Câu hỏi: Mạng sâu hay mạng rộng?

Trả lời

Định lý xấp xỉ phổ quát nói mạng một lớp ẩn đủ rộng biểu diễn được mọi hàm liên tục, nhưng chỉ khẳng định sự tồn tại, không cho biết cần bao nhiêu đơn vị. Có những hàm mà mạng sâu biểu diễn với ít tham số hơn theo cấp số mũ. Ở Mục 4.4, hàm răng cưa 2k2^k đoạn biểu diễn được bằng mạng kk lớp với 6k6k tham số, trong khi mạng một lớp ẩn cần ít nhất 2k−12^k - 1 đơn vị; với k=7k = 7 là 42 so với 386 tham số. Đổi lại, mạng sâu khó tối ưu hơn, cần khởi tạo đúng, chuẩn hoá và kết nối tắt.

Câu hỏi: Rừng ngẫu nhiên hay gradient boosting?

Trả lời

Hai phương pháp tác động vào hai thành phần khác nhau của sai số. Rừng ngẫu nhiên lấy trung bình các cây sâu huấn luyện độc lập, nên giảm phương sai; thêm cây không gây overfitting, dễ chỉnh và dễ song song hoá. Gradient boosting cộng dần các cây nông, mỗi cây sửa phần sai của các cây trước, nên giảm độ chệch; thường chính xác hơn khi chỉnh tốt, nhưng nhạy với tốc độ học và số cây, và có thể overfitting nếu không dừng sớm. Ở Mục 3.4, bagging giảm phương sai của một cây sâu 8 đi một nửa, còn boosting 100 cây sâu 2 cho tổng sai số thấp nhất.

Câu hỏi: Vì sao cây quyết định không cần chuẩn hoá đặc trưng?

Trả lời

Vì mỗi phép chia có dạng xj≤tx_j \le t chỉ phụ thuộc thứ tự các giá trị của đặc trưng. Mọi phép biến đổi đơn điệu, như chuẩn hoá hay lấy logarit, giữ nguyên thứ tự, nên không đổi tập các phép chia có thể có và không đổi cây. Mạng nơ-ron, hồi quy logistic, SVM và k-NN thì nhạy với thang đo.

14.3Huấn luyện mạng sâu#

Câu hỏi: Vì sao có gradient tiêu biến, và xử lý thế nào?

Trả lời

Gradient qua LL lớp là tích của LL ma trận Jacobi; nếu mỗi lớp nhân độ lớn với một hệ số lệch khỏi 1, tích co về 0 hoặc tăng vọt theo hàm mũ. Ở Mục 6.3, cùng một mạng 40 lớp, chỉ đổi hệ số khởi tạo từ 0,5 sang 2,0 làm gradient ở lớp đầu thay đổi từ 10−1810^{-18} tới 10610^{6}. Ba cách xử lý bổ sung cho nhau: khởi tạo đúng phương sai (He cho ReLU), chuẩn hoá, và kết nối tắt. Kết nối tắt một mình làm gradient bùng nổ (2,4×1082{,}4 \times 10^8 sau 40 lớp) vì mỗi lớp cộng thêm vào tín hiệu một lượng cùng cỡ; phải kết hợp với chuẩn hoá trong nhánh (tỉ lệ 2,22), đúng như cấu hình pre-LN của Transformer.

Câu hỏi: Hệ số 2 trong khởi tạo He đến từ đâu?

Trả lời

Từ ReLU. Với zz đối xứng quanh 0, E[ReLU⁡(z)2]=12Var⁡(z)\mathbb{E}[\operatorname{ReLU}(z)^2] = \tfrac12 \operatorname{Var}(z) vì ReLU đặt một nửa phân phối bằng 0. Muốn phương sai giữ nguyên qua lớp thì ninσW2⋅12=1n_{\text{in}}\sigma_W^2 \cdot \tfrac12 = 1, tức σW2=2/nin\sigma_W^2 = 2/n_{\text{in}}. Với tanh, gần tuyến tính quanh 0, không có hệ số này và dùng khởi tạo Xavier.

Câu hỏi: BatchNorm khác LayerNorm thế nào? Vì sao Transformer dùng LayerNorm?

Trả lời

BatchNorm tính trung bình và phương sai trên các mẫu trong lô, riêng cho từng đặc trưng; LayerNorm tính trên các đặc trưng của một mẫu. Transformer dùng LayerNorm vì ba lý do: các chuỗi trong lô có độ dài khác nhau và có phần đệm; BatchNorm dùng thống kê của lô khi huấn luyện nhưng trung bình trượt khi suy luận, gây sai lệch khi sinh từng token; và BatchNorm làm dự đoán của một mẫu phụ thuộc các mẫu khác trong lô. RMSNorm bỏ bước trừ trung bình, rẻ hơn và chất lượng tương đương, nên được nhiều mô hình ngôn ngữ dùng.

Câu hỏi: Adam khác SGD thế nào? Hiệu chỉnh độ chệch trong Adam để làm gì?

Trả lời

Adam giữ trung bình trượt của gradient (mm) và của bình phương gradient (vv), chia mm cho v\sqrt v, nên mỗi tham số có bước đi riêng và ít nhạy với tốc độ học hơn SGD. Vì m0=0m_0 = 0, ta có E[mt]=(1−β1t) E[g]\mathbb{E}[m_t] = (1 - \beta_1^t)\,\mathbb{E}[g], tức mtm_t là ước lượng chệch về 0 ở các bước đầu; chia cho 1−β1t1 - \beta_1^t cho ước lượng không chệch, và tương tự với vv. Đổi lại, Adam cần hai trạng thái cho mỗi tham số: với mô hình 7 tỉ tham số là 56 GB ở FP32. AdamW tách weight decay khỏi gradient, vì với Adam thường, thành phần phạt bị chia cho v\sqrt v và tham số có gradient lớn lại bị phạt ít hơn.

Câu hỏi: Kết nối tắt giải quyết vấn đề gì?

Trả lời

Vấn đề suy thoái: trên CIFAR-10, mạng thường 56 lớp có sai số huấn luyện cao hơn mạng 20 lớp. Đây là vấn đề tối ưu, không phải overfitting, vì mạng sâu hơn biểu diễn được mọi thứ mạng nông biểu diễn được. Kết nối tắt h=x+F(x)h = x + F(x) làm ánh xạ đồng nhất dễ biểu diễn và cho gradient một đường đi không qua ma trận trọng số nào, vì Jacobi là I+∂F/∂xI + \partial F/\partial x. Kết nối tắt cần đi kèm chuẩn hoá mới ổn định.

Câu hỏi: Dropout hoạt động thế nào, và vì sao ít dùng khi tiền huấn luyện mô hình ngôn ngữ lớn?

Trả lời

Khi huấn luyện, mỗi đơn vị bị tắt với xác suất pp và các đơn vị còn lại được chia cho 1−p1 - p; khi suy luận dùng mọi đơn vị. Mạng đầy đủ xấp xỉ trung bình của rất nhiều mạng con, nên dropout giảm phương sai tương tự bagging. Khi tiền huấn luyện trên kho dữ liệu cực lớn, mỗi mẫu thường chỉ được thấy một lần nên overfitting không phải vấn đề chính, và một số mô hình như PaLM không dùng dropout. Dropout vẫn hữu ích khi tinh chỉnh trên tập nhỏ.

14.4Transformer#

Câu hỏi: Giải thích attention.

Trả lời

Attention là phép tra cứu mềm, khả vi: mỗi vị trí tạo một truy vấn, so với khoá của mọi vị trí bằng tích vô hướng, chuẩn hoá các điểm số bằng softmax, rồi lấy trung bình có trọng số của các giá trị: softmax⁡(QK⊤/dk)V\operatorname{softmax}(QK^\top/\sqrt{d_k})V. Trong một khối Transformer, attention là thành phần duy nhất kết hợp thông tin giữa các vị trí; FFN xử lý từng vị trí độc lập.

Câu hỏi: Vì sao chia điểm số cho dk\sqrt{d_k}?

Trả lời

Nếu các thành phần của qq và kk độc lập, trung bình 0, phương sai 1 thì q⋅kq \cdot k có phương sai dkd_k. Điểm số lớn đẩy softmax về gần one-hot, nơi đạo hàm pi(δij−pj)p_i(\delta_{ij} - p_j) gần bằng 0. Chia cho dk\sqrt{d_k} đưa phương sai về 1 với mọi dkd_k. Ở Mục 9.2, với dk=1 024d_k = 1\,024 và 64 khoá, không chia thì entropy của attention chỉ còn 0,118 nat so với tối đa 4,159, trọng số lớn nhất trung bình 0,953; có chia thì entropy giữ quanh 3,68 với mọi dkd_k.

Câu hỏi: Attention nhiều đầu mang lại gì?

Trả lời

Không mang lại thêm khả năng tính toán: mỗi đầu hẹp đi hh lần nên tổng số tham số và số phép tính gần như bằng attention một đầu ở đủ số chiều. Nó cho phép mô hình cùng lúc theo dõi nhiều loại quan hệ khác nhau ở những vị trí khác nhau, điều mà một phép lấy trung bình duy nhất sẽ trộn lẫn. Các đầu có mức độ dư thừa nhất định: nhiều đầu có thể bỏ đi sau khi huấn luyện mà chất lượng giảm ít, và đó là cơ sở của MQA, GQA.

Câu hỏi: Vì sao Transformer thay thế RNN?

Trả lời

Không phải vì ít phép tính hơn: một lớp self-attention tốn O(T2d)O(T^2 d), một lớp RNN tốn O(Td2)O(Td^2). Lý do là số bước tuần tự: RNN cần O(T)O(T) bước không song song hoá được, self-attention cần O(1)O(1). Thêm vào đó, đường đi giữa hai vị trí bất kỳ trong self-attention dài O(1)O(1) thay vì O(T)O(T), nên gradient nối hai token cách xa không phải qua hàng trăm phép nhân. Khi huấn luyện với mặt nạ nhân quả, một lượt xuôi tính được dự đoán cho mọi vị trí của chuỗi cùng lúc.

Câu hỏi: Vì sao cần mã hoá vị trí, và RoPE hoạt động thế nào?

Trả lời

Self-attention không có khái niệm thứ tự: hoán vị các token đầu vào thì đầu ra chỉ hoán vị theo, nên "chó cắn người" và "người cắn chó" cho cùng một tập biểu diễn. RoPE quay từng cặp chiều của truy vấn và khoá một góc tỉ lệ với vị trí, với tần số θi=10000−2i/d\theta_i = 10000^{-2i/d}. Vì phép quay trực giao, ⟨Rmq,Rnk⟩=⟨q,Rn−mk⟩\langle R_m q, R_n k\rangle = \langle q, R_{n-m}k\rangle: điểm số chỉ phụ thuộc khoảng cách tương đối. Ở Mục 10.3, các cặp vị trí (5,2)(5, 2), (105,102)(105, 102) và (500,497)(500, 497) cho cùng giá trị 6,851342. RoPE không thêm tham số, chỉ tác động lên QQ và KK, và cho phép mở rộng ngữ cảnh sau huấn luyện bằng cách co giãn góc quay.

Câu hỏi: GQA là gì, và vì sao được dùng?

Trả lời

Nhiều đầu truy vấn dùng chung một cặp khoá và giá trị, nên KV cache giảm đúng theo tỉ số số đầu truy vấn trên số đầu khoá–giá trị. Với mô hình cỡ 70B, ngữ cảnh 4 096 token, 8 chuỗi, FP16: MHA với 64 đầu cần 80 GiB KV cache, GQA với 8 đầu cần 10 GiB. GQA là quyết định vì bộ nhớ và băng thông khi suy luận; chất lượng gần MHA nhưng không tốt hơn.

Câu hỏi: Vì sao dffd_{\text{ff}} của nhiều mô hình mới không bằng 4d4d?

Trả lời

Vì FFN dạng SwiGLU có ba ma trận thay vì hai. Để giữ số tham số và số phép tính, số chiều ẩn giảm còn 23⋅4d=83d\tfrac23 \cdot 4d = \tfrac83 d. Với Llama 2 7B, 83⋅4 096≈10 923\tfrac83 \cdot 4\,096 \approx 10\,923, làm tròn lên bội của 256 được 11 008, đúng giá trị trong cấu hình.

Câu hỏi: Encoder, decoder và encoder–decoder khác nhau thế nào?

Trả lời

Encoder dùng attention hai chiều, tiền huấn luyện bằng cách đoán token bị che, cho biểu diễn tốt cho phân loại và tìm kiếm (BERT). Decoder dùng mặt nạ nhân quả, tiền huấn luyện bằng cách đoán token tiếp theo, dùng để sinh văn bản (GPT và gần như mọi mô hình ngôn ngữ lớn hiện nay). Encoder–decoder đọc đầu vào hai chiều rồi sinh đầu ra có cross-attention tới đầu vào, phù hợp với dịch máy và tóm tắt (T5).

Câu hỏi: FlashAttention làm gì?

Trả lời

Tính chính xác attention mà không lưu ma trận T×TT \times T trong bộ nhớ chính của GPU: chia QQ, KK, VV thành khối nằm vừa bộ nhớ trên chip, tính softmax theo từng khối bằng softmax trực tuyến, và tính lại ở lượt ngược. Bộ nhớ cho attention tăng tuyến tính theo TT thay vì bậc hai, và thời gian giảm vì ít truy cập bộ nhớ. Số phép tính vẫn là O(T2)O(T^2).

Câu hỏi: Nhiệt độ, top-kk và top-pp khác nhau thế nào?

Trả lời

Nhiệt độ chia mọi logit cho τ\tau, nên co giãn cả phân phối mà không loại token nào; top-kk và top-pp cắt bỏ phần đuôi rồi chuẩn hoá lại. Top-kk giữ một số token cố định, còn top-pp giữ tập nhỏ nhất có tổng xác suất đạt pp, nên thích ứng theo mức chắc chắn của mô hình: giữ ít token khi mô hình chắc chắn, nhiều token khi không. Trên phân phối đuôi dài ở Mục 11.3, cần 8 362 token để phủ 90% xác suất; τ=0,7\tau = 0{,}7 vẫn để lại 1 215 token trong vùng đó, còn top-kk với k=40k = 40 chỉ còn 33. Vì hai cơ chế khác nhau nên chúng thường được dùng cùng nhau.

Câu hỏi: Vì sao không dùng beam search để sinh văn bản mở?

Trả lời

Beam search tìm chuỗi có xác suất cao, nhưng văn bản do người viết không có xác suất cao một cách đều đặn. Trên GPT-2 Large, văn bản của người có perplexity 12,38 theo mô hình, còn văn bản của beam search chỉ có 1,48, và 28,94% số đoạn beam search sinh ra rơi vào vòng lặp, so với 0,28% ở văn bản thật (Holtzman và cộng sự, 2020). Beam search vẫn hợp với bài toán có một đáp án đúng như dịch máy, với điểm số được chuẩn hoá theo độ dài để khỏi thiên về câu ngắn.

Câu hỏi: Đặt nhiệt độ bằng 0 thì đầu ra có tất định không?

Trả lời

Chưa chắc. Quy tắc giải mã khi đó là greedy, nhưng phép cộng số thực không có tính kết hợp, và thứ tự cộng trong các kernel phụ thuộc kích thước lô, tức phụ thuộc vào những yêu cầu khác đang được xử lý cùng lúc. Khi hai logit gần bằng nhau, token được chọn có thể đổi. Trong thí nghiệm của He (2025), 1 000 lần gọi cùng một câu lệnh cho 80 kết quả khác nhau; chỉ khi dùng các kernel không phụ thuộc kích thước lô, cả 1 000 kết quả mới giống hệt nhau.

Câu hỏi: Giải mã suy đoán tăng tốc mà vẫn giữ đúng phân phối của mô hình lớn bằng cách nào?

Trả lời

Một mô hình nhỏ đề xuất γ\gamma token, rồi mô hình lớn kiểm tra tất cả trong một lượt xuôi. Token xx được nhận với xác suất min⁡(1, p(x)/q(x))\min(1,\ p(x)/q(x)), và khi bị từ chối thì được lấy mẫu lại từ phần dư max⁡(0, p−q)\max(0,\ p - q) đã chuẩn hoá; quy tắc này bảo đảm đầu ra có đúng phân phối pp của mô hình lớn. Với tỉ lệ chấp nhận α\alpha, mỗi lượt xuôi của mô hình lớn sinh trung bình (1−αγ+1)/(1−α)(1 - \alpha^{\gamma+1})/(1 - \alpha) token, khoảng 3,36 khi α=0,8\alpha = 0{,}8 và γ=4\gamma = 4. Mức tăng tốc đo được thường là 2 đến 3 lần, vì mô hình nhỏ cũng tốn thời gian.

14.5Tính toán tài nguyên#

Câu hỏi: Một Transformer LL lớp, số chiều dd có bao nhiêu tham số?

Trả lời

Khoảng 12Ld212Ld^2 không tính embedding: 4d24d^2 cho WQW_Q, WKW_K, WVW_V, WOW_O và 8d28d^2 cho FFN với dff=4dd_{\text{ff}} = 4d. Cộng VdVd cho embedding từ vựng. FFN chiếm hai phần ba tham số của mỗi khối. Với mô hình nhỏ, embedding chiếm tỉ trọng lớn: 31% ở GPT-2 small. Mục 12.3 kiểm chứng công thức khớp chính xác với GPT-2 và Llama 2.

Câu hỏi: Huấn luyện một mô hình tốn bao nhiêu phép tính?

Trả lời

C≈6NDC \approx 6ND: mỗi token tốn khoảng 2N2N FLOP ở lượt xuôi và 4N4N ở lượt ngược, với NN là số tham số không tính embedding. Với Llama 2 7B, N≈6,48N \approx 6{,}48 tỉ và D=2×1012D = 2 \times 10^{12} token, C≈7,8×1022C \approx 7{,}8 \times 10^{22} FLOP. Con số 184 320 giờ-GPU A100 mà Meta công bố ứng với mức sử dụng phần cứng khoảng 37,5%, nằm trong khoảng thông thường 30–50%.

Câu hỏi: MFU là gì, và vì sao cần hỏi nó được đếm thế nào?

Trả lời

MFU (model FLOPs utilization) là tỉ số giữa tốc độ tính hữu ích, tức số phép tính mà mô hình cần theo công thức chia cho thời gian huấn luyện, và tốc độ đỉnh của phần cứng; với mô hình lớn, con số thường từ 30% tới 50%. Nó phụ thuộc vào cách đếm: cùng 184 320 giờ-GPU của Llama 2 7B ứng với MFU 37,5% nếu NN không tính embedding, 39% nếu NN là tổng số tham số, và khoảng 45% nếu cộng thêm phép tính của attention theo quy ước của PaLM. Khi so hiệu suất của hai hệ thống, cần biết mỗi bên đếm những phép tính nào.

Câu hỏi: Khi nào chi phí bậc hai của attention trở thành vấn đề?

Trả lời

Tỉ số giữa phần tính toán của attention và phần còn lại xấp xỉ T/(6d)T/(6d) khi tính đủ ma trận điểm số. Với d=4 096d = 4\,096, attention chỉ chiếm phần chính khi TT vượt khoảng 24 000 token; ở T=4 096T = 4\,096 nó mới bằng 17% phần còn lại. Về bộ nhớ, vấn đề xuất hiện sớm hơn nhiều nếu lưu ma trận attention, nên FlashAttention được dùng rộng rãi.

Câu hỏi: Vì sao hết bộ nhớ khi huấn luyện, và xử lý thế nào?

Trả lời

Bộ nhớ gồm trọng số, gradient và trạng thái bộ tối ưu (khoảng 16 byte mỗi tham số với Adam và độ chính xác hỗn hợp, tức 112 GB cho mô hình 7B), cộng giá trị kích hoạt tỉ lệ với kích thước lô và độ dài chuỗi. Nếu phần tăng theo lô là nguyên nhân, giảm kích thước lô và dùng tích luỹ gradient; tiếp theo là gradient checkpointing (bộ nhớ kích hoạt từ O(L)O(L) xuống O(L)O(\sqrt L), đổi lấy khoảng một lượt xuôi tính lại), FlashAttention, và chia trạng thái bộ tối ưu cho nhiều GPU như ZeRO.

14.6Thị giác máy tính#

Câu hỏi: IoU là gì, và vì sao dùng nó để đánh giá bộ phát hiện?

Trả lời

IoU là diện tích phần giao chia cho diện tích phần hợp của hai hộp, nằm trong khoảng từ 0 tới 1. Nó đo mức trùng khớp mà không phụ thuộc vào kích thước tuyệt đối của đối tượng, nên một ngưỡng như 0,5 dùng được cho cả đối tượng lớn lẫn nhỏ. Cần biết giới hạn của ngưỡng 0,5: một hộp chỉ phủ nửa đối tượng đã đạt IoU 0,5 (Ví dụ 7.2), vì vậy COCO lấy trung bình AP trên các ngưỡng từ 0,5 tới 0,95.

Câu hỏi: NMS hoạt động thế nào, và nó có nhược điểm gì?

Trả lời

Sắp xếp các hộp theo điểm, lấy hộp điểm cao nhất, bỏ các hộp còn lại có IoU với nó vượt ngưỡng, rồi lặp lại. NMS cần thiết vì bộ phát hiện dự đoán trên lưới dày nên một đối tượng có nhiều hộp. Nhược điểm: với các đối tượng đứng sát nhau, hộp đúng của đối tượng thứ hai có thể bị loại vì trùng nhiều với hộp của đối tượng thứ nhất; trong thí nghiệm ở Mục 7.5, NMS làm recall lớn nhất giảm từ 0,928 xuống 0,916. DETR tránh NMS bằng cách ghép một–một giữa dự đoán và hộp thật khi huấn luyện.

Câu hỏi: AP50 và AP@[0,5:0,95] khác nhau thế nào?

Trả lời

AP50 là diện tích dưới đường precision–recall khi một dự đoán được tính là đúng nếu IoU với hộp thật đạt 0,5. AP@[0,5:0,95], thước đo chính của COCO, là trung bình AP trên 10 ngưỡng IoU từ 0,5 tới 0,95, nên thưởng cho việc định vị chính xác. Cùng một bộ phát hiện mô phỏng ở Mục 7.5 có AP50 bằng 0,908 nhưng AP@[0,5:0,95] chỉ bằng 0,569. So sánh hai con số AP chỉ có nghĩa khi chúng cùng quy ước.

Câu hỏi: Vì sao focal loss giúp bộ phát hiện một giai đoạn?

Trả lời

Bộ một giai đoạn đánh giá hàng chục nghìn vị trí mỗi ảnh, phần lớn là nền dễ. Với cross-entropy, tổng mất mát nhỏ của rất nhiều mẫu dễ lấn át mất mát của số ít đối tượng thật. Focal loss nhân thêm hệ số (1−pt)γ(1 - p_t)^{\gamma}: với γ=2\gamma = 2, mẫu đã đúng với xác suất 0,9 chỉ còn 1% trọng số, nên gradient tập trung vào các mẫu khó.

Câu hỏi: U-Net khác một CNN phân loại ở điểm nào?

Trả lời

U-Net có nhánh mã hoá giống CNN phân loại và thêm một nhánh giải mã tăng dần độ phân giải về kích thước ảnh gốc. Ở mỗi mức độ phân giải, nhánh giải mã ghép đặc trưng của nhánh mã hoá cùng mức, để kết hợp thông tin "là gì" của lớp sâu với thông tin "ở đâu" của lớp nông. Nhờ vậy nó cho ra nhãn cho từng điểm ảnh với biên đối tượng chính xác, và học được từ ít ảnh có nhãn nếu tăng cường dữ liệu tốt.

14.7Các câu trả lời chưa đạt#

Câu trả lời Vì sao chưa đạt
"Chia dk\sqrt{d_k} để huấn luyện ổn định." Đúng nhưng chưa đủ. Cần nêu phương sai của tích vô hướng bằng dkd_k và hiện tượng bão hoà của softmax.
"Nhiều đầu attention làm mô hình mạnh hơn." Không nêu được rằng tổng chi phí không đổi và cái nhận được là khả năng theo dõi nhiều loại quan hệ.
"ResNet ra đời để chống overfitting." Sai: nó giải quyết vấn đề suy thoái, tức sai số huấn luyện tăng theo độ sâu.
"Kết nối tắt giải quyết gradient tiêu biến." Chưa đủ: một mình kết nối tắt làm gradient bùng nổ, cần đi kèm chuẩn hoá.
"Mô hình càng nhiều tham số càng overfitting." Đúng khi số tham số nhỏ hơn số điểm dữ liệu; với mô hình nhiều tham số hơn dữ liệu có hiện tượng double descent.
"Cây quyết định cần chuẩn hoá đặc trưng." Sai: cây bất biến với phép biến đổi đơn điệu của từng đặc trưng.
"Adam luôn tốt hơn SGD." Adam hội tụ nhanh hơn và ít phải chỉnh, nhưng SGD với momentum có thể tổng quát hoá tốt hơn trên một số bài toán thị giác.
"Transformer nhanh hơn RNN vì ít phép tính hơn." Sai: self-attention tốn nhiều phép tính hơn khi T>dT > d. Transformer thắng ở số bước tuần tự.
"Mạng nào cũng cần dropout." Nhiều mô hình ngôn ngữ lớn không dùng dropout khi tiền huấn luyện.
"GQA làm tăng chất lượng." GQA giảm chất lượng một chút so với MHA; lý do dùng là KV cache nhỏ hơn.
"Bộ phát hiện này có AP 0,9 nên rất tốt." Phải biết ngưỡng IoU và quy ước tính: cùng một bộ phát hiện có thể có AP50 bằng 0,91 và AP@[0,5:0,95] bằng 0,57 (Mục 7.5).