Chủ đề 3: Huấn luyện mô hình trong PyTorch
Exam info
- Subject
- Học sâu ứng dụng
- Exam type
- University
- Questions
- 50
- Duration
- 120 min
- Answers
- ✓ With explanations
Questions (50)
- Q 1.
Trong hồi quy logistic một lớp, đầu ra của
nn.Linearvà hàm được áp dụng sau đó có ý nghĩa nào?- A.
Giá trị số thực bất kỳ; hàm kích hoạt đồng nhất.
- B.
Logit ; hàm sigmoid biến nó thành xác suất .
- C.
Nhãn cứng 0 hoặc 1; hàm bậc thang.
- D.
Logit; hàm softmax dùng cho bài toán đa lớp.
- A.
- Q 2.
Nếu logit của một mẫu là , xác suất sigmoid tương ứng xấp xỉ bằng bao nhiêu?
- A.
- B.
- C.
- D.
- A.
- Q 3.
Theo quy ước dự đoán trong bài, nếu xác suất đúng bằng thì nhãn dự đoán là gì?
- A.
Lớp 1 vì xác suất không nhỏ hơn một nửa.
- B.
Lớp 0 vì chỉ trường hợp mới được gán lớp 1.
- C.
Một nhãn được chọn ngẫu nhiên.
- D.
Không thể dự đoán vì mô hình không có đủ thông tin.
- A.
- Q 4.
Miền giá trị và giới hạn của hàm sigmoid trong mô hình logistic là gì?
- A.
và hai đầu 0, 1 đều có thể đạt chính xác.
- B.
; khi âm lớn, tiến tới 0, và khi dương lớn, tiến tới 1.
- C.
và sigmoid là hàm giảm.
- D.
và sigmoid nghịch biến.
- A.
- Q 5.
Đạo hàmm của sigmoid đạt giá trị lớn nhất bằng bao nhiêu và tại logit nào?
- A.
Lớn nhất bằng 1 tại mọi điểm.
- B.
Lớn nhất bằng 0 tại .
- C.
Lớn nhất bằng tại .
- D.
Lớn nhất bằng khi tiến tới dương vô hạn.
- A.
- Q 6.
Mô hình nào trong ba mô hình một lớp dùng sigmoid và diễn giải đầu ra là xác suất lớp 1?
- A.
Hồi quy tuyến tính.
- B.
Perceptron.
- C.
Hồi quy logistic.
- D.
Cả ba mô hình đều dùng cùng một hàm kích hoạt.
- A.
- Q 7.
Với dữ liệu không tách được bằng một đường thẳng, vì sao hồi quy logistic thường phù hợp hơn Perceptron để huấn luyện bằng gradient?
- A.
Sigmoid làm cho đường biên trở thành đường cong phi tuyến.
- B.
Sigmoid khả vi, còn binary cross-entropy lồi theo tham số và vẫn cung cấp gradient hữu ích.
- C.
Binary cross-entropy trùng hoàn toàn với độ chính xác phân loại.
- D.
Perceptron không tạo được bất kỳ gradient nào trong khi logistic luôn tạo đường biên tuyến tính.
- A.
- Q 8.
Hai mẫu có các cặp và . Binary cross-entropy trung bình trên lô bằng xấp xỉ bao nhiêu?
- A.
- B.
- C.
- D.
- A.
- Q 9.
Nếu mô hình luôn xuất xác suất cho mọi mẫu, loss trên mỗi mẫu bất kể nhãn thật là bao nhiêu?
- A.
- B.
- C.
- D.
- A.
- Q 10.
Vì sao không nên tối ưu trực tiếp độ chính xác phân loại bằng gradient descent?
- A.
Độ chính xác không phụ thuộc vào xác suất dự đoán.
- B.
Độ chính xác là hàm hằng từng khúc và có gradient bằng không gần như mọi nơi.
- C.
Độ chính xác luôn không xác định vì nhãn thật là số nguyên.
- D.
Độ chính xác không thể được tính trên tập huấn luyện.
- A.
- Q 11.
Nếu xác suất mô hình cho lớp 1 là , xác suất Bernoulli của nhãn quan sát tương ứng với đặc trưng là gì?
- A.
- B.
- C.
- D.
- A.
- Q 12.
Cho , , và . Hãy tính logit, xác suất và loss của một mẫu.
- A.
, , .
- B.
, , .
- C.
, , .
- D.
, , .
- A.
- Q 13.
Trong đồ thị tính toán của hồi quy logistic, những nút nào được coi là tham số cần học và được cập nhật trong huấn luyện?
- A.
Các nút dữ liệu đầu vào và nhãn thật.
- B.
Các trọng số và bias.
- C.
Các giá trị trung gian của tổng, logit và xác suất.
- D.
Mọi nút trên đồ thị.
- A.
- Q 14.
Sau khi áp dụng quy tắc chuỗi qua binary cross-entropy và sigmoid, đạo hàm của loss theo logit đơn giản hóa thành gì?
- A.
- B.
- C.
- D.
- A.
- Q 15.
Với một mẫu có , và , gradient của loss theo trọng số thứ nhất là bao nhiêu?
- A.
- B.
- C.
- D.
- A.
- Q 16.
Một trọng số hiện có giá trị , gradient của nó là và tốc độ học là . Sau một bước SGD, trọng số mới bằng bao nhiêu?
- A.
- B.
- C.
- D.
- A.
- Q 17.
Với một lô có ma trận đặc trưng kích thước lô nhân số đặc trưng, gradient trung bình của trọng số là biểu thức nào?
- A.
- B.
- C.
- D.
$$X^T a$$$ không trừ nhãn và không chia trung bình.
- A.
- Q 18.
Một epoch có 8 mẫu và minibatch SGD dùng kích thước lô 3. Có bao nhiêu lần cập nhật tham số trong epoch và lô cuối chứa bao nhiêu mẫu?
- A.
Một lần cập nhật; lô cuối có 8 mẫu.
- B.
Hai lần cập nhật; lô cuối có 4 mẫu.
- C.
Ba lần cập nhật; lô cuối có 2 mẫu.
- D.
Tám lần cập nhật; lô cuối có 1 mẫu.
- A.
- Q 19.
Tập huấn luyện có 1097 mẫu, dùng
batch_size=10. Mỗi epoch có bao nhiêu iteration, lô cuối có bao nhiêu mẫu và 5 epoch cập nhật tham số bao nhiêu lần?- A.
110 iteration; lô cuối 7 mẫu; tổng cộng 550 lần cập nhật.
- B.
109 iteration; lô cuối 10 mẫu; tổng cộng 545 lần cập nhật.
- C.
1100 iteration; lô cuối 7 mẫu; tổng cộng 5500 lần cập nhật.
- D.
1097 iteration; lô cuối 3 mẫu; tổng cộng 5485 lần cập nhật.
- A.
- Q 20.
Một tập huấn luyện có 100 mẫu,
batch_size=32và không dùngdrop_last. Mỗi epoch có bao nhiêu lô để đi qua toàn bộ dữ liệu?- A.
4 lô; ba lô đầu có 32 mẫu và lô cuối có 4 mẫu.
- B.
3 lô; mỗi lô cuối phải có 32 mẫu.
- C.
100 lô vì mỗi epoch luôn có một lô cho mỗi mẫu.
- D.
32 lô vì số lô bằng kích thước lô.
- A.
- Q 21.
Lý do minibatch SGD được dùng phổ biến là gì?
- A.
Luôn cho gradient chính xác như gradient trên toàn bộ tập dữ liệu.
- B.
Không cần chia sẻ siêu tham số kích thước lô với người dùng.
- C.
Cân bằng gradient ít nhiễu hơn SGD từng mẫu, cập nhật nhiều hơn gradient descent toàn bộ và tận dụng tốt phép toán ma trận.
- D.
Loại bỏ hoàn toàn nhu cầu chọn tốc độ học.
- A.
- Q 22.
Trong PyTorch, thay đổi
batch_sizecủaDataLoaderảnh hưởng đến thuật toán cập nhật như thế nào?- A.
Mọi giá trị đều luôn tương đương minibatch SGD.
- B.
Kích thước lô bằng 1 là SGD thuần túy; bằng toàn bộ số mẫu là gradient descent; giá trị ở giữa là minibatch SGD.
- C.
Kích thước lô thay đổi hàm kích hoạt sigmoid thành hàm bậc thang.
- D.
Kích thước lô quyết định số tham số của
nn.Linear.
- A.
- Q 23.
Khi dữ liệu đã được chuẩn hóa và mã huấn luyện không thay đổi, loss tăng mạnh rồi trở thành
NaNsau vài iteration thường gợi ý điều gì?- A.
Tốc độ học quá nhỏ.
- B.
Tốc độ học quá lớn.
- C.
Số epoch chưa đủ lớn.
- D.
Kích thước lô bằng 1 luôn gây phân kỳ.
- A.
- Q 24.
Cách phù hợp để chọn tốc độ học và kích thước lô là gì?
- A.
Dùng trực tiếp tập kiểm tra để thử mọi cấu hình rồi báo cáo cấu hình tốt nhất.
- B.
Tự động cập nhật các giá trị này trong mỗi lần tính gradient.
- C.
Chỉ dùng độ chính xác trên tập huấn luyện để chọn.
- D.
Thử nhiều cấu hình và so sánh trên tập kiểm định riêng, sau đó chỉ đánh giá lại bằng tập kiểm tra ở cuối.
- A.
- Q 25.
Cơ chế autograd của PyTorch thực hiện lan truyền ngược theo cách nào?
- A.
Phải viết thủ công một hàm
backward()riêng cho từng lớp. - B.
Chỉ tính gradient của đầu vào, không tính gradient của tham số.
- C.
Đi ngược đồ thị từ loss, nhân các đạo hàm cục bộ và lưu gradient cho các tensor lá cần học.
- D.
Chỉ hoạt động sau khi toàn bộ mô hình được chuyển sang chế độ dự đoán.
- A.
- Q 26.
Khi tự tạo trọng số và bias bằng tensor thường để huấn luyện thủ công, cần thiết lập gì?
- A.
Đặt mọi tensor trung gian, kể cả loss, thành tensor lá.
- B.
Đặt
requires_grad=Truecho các tensor tham số cần học. - C.
Đặt
requires_grad=Falsecho loss trước khi gọibackward(). - D.
Không cần cờ nào nếu trước đó đã gọi
torch.manual_seed().
- A.
- Q 27.
Sau khi gọi
loss.backward(), thuộc tính.gradcủa tensor trung gian không phải tensor lá, chẳng hạn logitz, mặc định có giá trị nào?- A.
None. - B.
Luôn bằng gradient của loss.
- C.
Luôn bằng không.
- D.
Bằng giá trị của tensor đó trước lan truyền ngược.
- A.
- Q 28.
Nếu cùng một lô cho gradient trọng số là và gọi
backward()hai lần mà không xóa gradient, giá trị.gradsau lần thứ hai là bao nhiêu?- A.
- B.
- C.
- D.
- A.
- Q 29.
Thứ tự nào là đúng cho một iteration huấn luyện chuẩn trong PyTorch?
- A.
zero_grad(),step(),model(x), tính loss,backward(). - B.
model(x), tính loss,zero_grad(),backward(),step(). - C.
backward(),model(x),zero_grad(), tính loss,step(). - D.
Tính loss,
step(),model(x),zero_grad(),backward().
- A.
- Q 30.
Điều gì xảy ra nếu gọi
optimizer.zero_grad()ngay sauloss.backward()và trướcoptimizer.step()?- A.
Gradient vừa tính được lưu thêm vào bộ nhớ đệm.
- B.
Gradient được trung bình thêm với gradient của các tham số khác.
- C.
Chỉ các bias được xóa trong khi trọng số được giữ nguyên.
- D.
Gradient cần thiết bị xóa trước khi bộ tối ưu cập nhật, nên tham số gần như không học trong iteration đó.
- A.
- Q 31.
Khi nào nên dùng
with torch.no_grad():trong phần huấn luyện hoặc đánh giá?- A.
Khi chỉ dự đoán, đánh giá hoặc cập nhật tham số thủ công và không cần ghi đồ thị.
- B.
Khi cần tính gradient của loss từ các tham số mô hình.
- C.
Khi khai báo một lớp kế thừa
nn.Module. - D.
Khi cố định số ngẫu nhiên để khởi tạo mô hình.
- A.
- Q 32.
Phương thức nào phù hợp nhất để lấy giá trị loss vô hướng làm số Python để ghi vào nhật ký?
- A.
Gọi trực tiếp
forward()trên loss. - B.
Dùng
.grad_fnđể chuyển tensor thành số. - C.
Gọi
.item()trên loss có một phần tử. - D.
Gọi
.backward()để chuyển loss thành số.
- A.
- Q 33.
Vì sao trong một lớp kế thừa
nn.Module, lớp con nhưself.linearcần được gán vào thuộc tính của đối tượng?- A.
Để mọi layer luôn trả về xác suất sigmoid.
- B.
Để PyTorch đăng ký tham số của lớp con và biết chúng cần được huấn luyện.
- C.
Để tự động chọn số epoch và tốc độ học.
- D.
Để biến mọi phép toán thành phép nhân ma trận.
- A.
- Q 34.
Một lớp
nn.Linear(5, 1)có hình dạng tham số và tổng số tham số học được như thế nào?- A.
Trọng số hình dạng
[5, 1], bias hình dạng[5], tổng cộng 6 tham số. - B.
Trọng số hình dạng
[1, 5], không có bias, tổng cộng 5 tham số. - C.
Trọng số hình dạng
[5, 1], bias hình dạng[1], tổng cộng 2 tensor. - D.
Trọng số hình dạng
[1, 5], bias hình dạng[1], tổng cộng 6 tham số.
- A.
- Q 35.
Nếu mô hình logistic có 2 đặc trưng và nhận một lô 3 mẫu, đầu ra có hình dạng nào và mô hình có bao nhiêu tham số học được?
- A.
Đầu ra
[3, 1]; mô hình có 3 tham số gồm 2 trọng số và 1 bias. - B.
Đầu ra
[1, 3]; mô hình có 3 tham số. - C.
Đầu ra
[3, 1]; mô hình có 6 tham số. - D.
Đầu ra
[3]; mô hình có 4 tham số.
- A.
- Q 36.
Khi dùng
F.binary_cross_entropy(probas, targets), hai tensor đầu vào cần đáp ứng điều kiện nào?- A.
Chỉ cần cùng tổng số phần tử, không cần cùng hình dạng.
- B.
Nhãn phải là tensor số nguyên
int64. - C.
Chúng có cùng hình dạng; nhãn là số thực và tương thích kiểu với xác suất.
- D.
Xác suất phải được làm tròn thành nhãn trước khi tính loss.
- A.
- Q 37.
Khi dùng
F.binary_cross_entropy_with_logits(logits, targets), mô hình nên trả về đầu ra nào?- A.
Nhãn 0 hoặc 1 đã qua ngưỡng.
- B.
Logit chưa đưa qua sigmoid.
- C.
Giá trị xác suất đã làm tròn theo số chữ số thập phân.
- D.
Gradient của loss đối với trọng số.
- A.
- Q 38.
Vai trò chính của
optimizer.step()trong PyTorch là gì?- A.
Tính lại loss trên toàn bộ tập dữ liệu.
- B.
Khởi tạo lại các trọng số về giá trị ngẫu nhiên.
- C.
Xóa đồ thị tính toán để giải phóng bộ nhớ.
- D.
Dùng gradient đang lưu và tốc độ học để cập nhật các tham số theo hướng giảm loss.
- A.
- Q 39.
Sự phân công đúng giữa
DatasetvàDataLoaderlà gì?- A.
Datasetđịnh nghĩa cách truy cập từng mẫu;DataLoaderđịnh nghĩa cách gom mẫu thành lô. - B.
Datasetchỉ định nghĩa kích thước lô, cònDataLoaderchứa toàn bộ nhãn. - C.
Datasetcập nhật trọng số vàDataLoadertính gradient. - D.
DataLoadertự chọn tốc độ học vàDatasettự tính binary cross-entropy.
- A.
- Q 40.
Vì sao nên dùng
shuffle=TruechoDataLoadercủa tập huấn luyện?- A.
Để mọi lô chỉ chứa một nhãn duy nhất.
- B.
Để không cần chia tập kiểm định.
- C.
Để tránh các lô tuần tự chỉ chứa một lớp, giúp gradient đa dạng và ổn định hơn.
- D.
Để thay đổi số tham số của mô hình sau mỗi epoch.
- A.
- Q 41.
Loss từng lô hơi lên xuống trong khi xu hướng chung của các epoch là giảm. Nhận định nào hợp lý nhất?
- A.
Mô hình chắc chắn đã gặp lỗi gradient cộng dồn.
- B.
Các lô chứa các mẫu khác nhau nên gradient và loss từng lô có tính nhiễu.
- C.
Phải bật
shuffle=Falseđể loss luôn giảm trên từng lô. - D.
Phải thay BCE bằng độ chính xác để đường loss phẳng hơn.
- A.
- Q 42.
Khi đánh giá một mô hình phân loại nhị phân đã huấn luyện xong, cách làm nào phù hợp nhất?
- A.
Giữ
model.train()và cho autograd ghi đồ thị trong toàn bộ quá trình đánh giá. - B.
Dùng
model.eval()nhưng vẫn giữ đồ thị đồng thời áp dụng sigmoid trực tiếp cho nhãn. - C.
Dùng
model.train(), không có ngữ cảnhno_grad()và so sánh trực tiếp loss với nhãn. - D.
Dùng
model.eval()vàtorch.no_grad(), lấy xác suất, đổi thành nhãn theo ngưỡng rồi so sánh với nhãn thật.
- A.
- Q 43.
Vai trò đúng của ba tập huấn luyện, kiểm định và kiểm tra là gì?
- A.
Huấn luyện cập nhật tham số; kiểm định dùng chọn siêu tham số; kiểm tra dùng báo cáo cuối.
- B.
Cả ba tập đều liên tục cập nhật trọng số để tăng độ chính xác.
- C.
Tập kiểm định dùng cập nhật tham số còn tập kiểm tra dùng chọn tốc độ học.
- D.
Tập kiểm tra có thể được dùng thường xuyên để tinh chỉnh từng trọng số.
- A.
- Q 44.
Một giá trị đặc trưng bằng 12 được chuẩn hóa z-score bằng tham số tập huấn luyện và . Giá trị sau chuẩn hóa là bao nhiêu?
- A.
- B.
- C.
- D.
- A.
- Q 45.
Cho giá trị một đặc trưng là 8, giá trị nhỏ nhất trên tập tham chiếu là 4 và giá trị lớn nhất là 12. Chuẩn hóa min-max cho giá trị 8 là bao nhiêu?
- A.
- B.
- C.
- D.
- A.
- Q 46.
So với min-max, chuẩn hóa z-score thường có ưu điểm nào trong bài toán mạng nơ-ron?
- A.
Bảo đảm mọi giá trị chuẩn hóa nằm trong đoạn từ 0 đến 1.
- B.
Không cần lưu trung bình và độ lệch chuẩn sau khi đã chuẩn hóa.
- C.
Tạo dữ liệu có tâm bằng 0 và thường ít nhạy với giá trị ngoại lai hơn min-max.
- D.
Làm biên quyết định của logistic trở thành đường cong.
- A.
- Q 47.
Cách chuẩn hóa nào tránh được hiện tượng rò rỉ dữ liệu khi chuẩn hóa z-score?
- A.
Tính trung bình và độ lệch chuẩn riêng trên từng tập kiểm định và kiểm tra.
- B.
Tính tham số trên toàn bộ dữ liệu trước khi tách tập.
- C.
Tính lại tham số trên từng lô kiểm tra trước mỗi lần dự đoán.
- D.
Chỉ tính tham số trên tập huấn luyện, lưu lại và dùng cùng tham số đó cho mọi tập và dữ liệu mới.
- A.
- Q 48.
Vì sao một đặc trưng có độ lớn rất lớn có thể gây khó học khi dùng cùng một tốc độ học cho mọi trọng số?
- A.
Vì gradient theo trọng số có dạng , nên đặc trưng lớn tạo bước cập nhật rất lớn.
- B.
Vì sigmoid tự động chia đặc trưng lớn cho số đầu ra.
- C.
Vì BCE chỉ nhận đặc trưng trong đoạn từ 0 đến 1.
- D.
Vì số lần cập nhật phải bằng số mẫu có giá trị đặc trưng lớn nhất.
- A.
- Q 49.
Cần thay đổi những phần nào để chuyển mô hình logistic phân loại nhị phân thành mô hình hồi quy tuyến tính?
- A.
Thay
nn.Linearbằng một lớp sigmoid và giữ nguyên BCE. - B.
Chỉ đổi tên lớp mô hình nhưng giữ nguyên sigmoid, BCE và độ chính xác.
- C.
Bỏ sigmoid khỏi đầu ra, đổi BCE thành MSE và dùng thước đo sai số thay cho độ chính xác.
- D.
Không thể chuyển đổi vì
nn.Linearchỉ dùng cho phân loại.
- A.
- Q 50.
Loss vẫn đứng gần 0.693 sau 50 epoch. Bước chẩn đoán nào là hợp lý nhất?
- A.
Ngay lập tức thay BCE bằng độ chính xác và tăng số epoch lên 5000.
- B.
Kiểm tra cặp đặc trưng–nhãn, kiểm tra optimizer có nhận tham số của mô hình hiện tại, xác nhận gradient khác không, tham số thay đổi sau
step()và đúng thứ tự năm bước. - C.
Chuẩn hóa riêng từng lô kiểm tra trước khi dự đoán và tăng kích thước lô lên toàn bộ tập.
- D.
Chỉ cần gọi
torch.manual_seed()thêm nhiều lần trước mỗi epoch.
- A.
Answers and explanations are in mode.