THẢO LUẬN

Chào bạn, mình là Đức, tác giả của bài báo trên. Trước tiên, cảm ơn bạn đã quan tâm và tìm hiểu về nghiên cứu của mình. Mình rất vui vì bạn đã có những chia sẻ và nhận xét thẳng thắn, do đó mình muốn trao đổi và làm rõ một số phần sau:

  1. "mô hình chưa có sự ổn định, nhóm tác giả phải huấn luyện mô hình 5 lần và lấy trung bình kết quả, do đó khá khó reproduce lại kết quả SOTA": việc các mô hình học sâu có kết quả khác nhau ở những lần train khác nhau (dù cùng 1 config) không phải chuyện hiếm, do đó việc mình huấn luyện 5 lần và đánh giá dựa trên kết quả trung bình là hợp lý và khách quan vì không bị phụ thuộc vào lần train nào. Từ bảng 1 mục 3 bạn trình bày ở trên, có thể quan sát thấy mô hình của mình có độ lệch chuẩn thấp nhất tức kết quả giữa các lần huấn luyện ít có sự biến động nhất so với các mô hình khác. Về việc reproduce lại kết quả, nếu bạn có gặp khó khăn gì có thể trao đổi lại với mình, mình rất sẵn lòng khi có thời gian.
  2. "mô hình chi train 20 epoch, không augmentation như các bài nghiên cứu khác thường làm", "thông thường thì 20 epoch là chưa đủ cho mô hình segmentation hội tụ": mình nghĩ việc đánh giá 20 epoch là chưa đủ có phần chủ quan vì số epoch ngoài phụ thuộc vào độ phức tạp của mô hình, thuật toán tối ưu thì còn phụ thuộc vào kích thước bộ dữ liệu. Trong các bộ dữ liệu mình sử dụng để đánh giá, bộ lớn nhất là Kvasir cũng chỉ có 1000 ảnh và thí nghiệm mình sử dụng nhiều mẫu huấn luyện nhất là 1450 mẫu (thí nghiệm 1). Một ví dụ khác là mô hình PraNet cũng chỉ mất 20 epoch để hội tụ trên thí nghiệm 1 mình trình bày trong bài, bạn có thể tham khảo ở đây:
    . Về phần augment, thông thường việc augment sẽ cải thiện kết quả vì giúp mô hình quan sát nhiều kiểu dữ liệu hơn, tăng tính khái quát hóa. Ở đây mình không sử dụng vì muốn so sánh một cách công bằng với các mô hình PraNet, HarDNet, TransFuse, ... họ đều không augment mà thay vào đó chỉ sử dụng kỹ thuật multi-scale training. Ở đây mình chủ ý so sánh hiệu quả giữa các kiến trúc và không muốn kỹ thuật training ảnh hưởng quá nhiều tới sự so sánh này. Best regards!
+2

Keycap mới thôi b chứ tiền đâu mà mua bàn phím mới 😦

0
thg 8 25, 2022 2:57 CH

Bài viết dễ hiểu đối với mình. Good!

+1
thg 8 25, 2022 11:40 SA

Cảm ơn bạn nhé!

0
thg 8 25, 2022 11:37 SA

cảm ơn tác giả đã dành nhiều t/g để viết series này. rất dễ hiểu. Mặc dù mình cũng làm việc với k8s vài năm rồi nhưng vẫn thích đọc để học hỏi những kiến thức hay ho từ các bạn.

0

Cảm ơn bạn! Nếu thấy hay cho mình xin 1 upvote vào bài viết nhé!

0
thg 8 25, 2022 9:01 SA

Cảm ơn sự đóng góp rất chi tiết của bạn nhé 😄. Đây là những kiến thức cần đọc kỹ nếu muốn hiểu sâu hơn về Javascript hay nói riêng về var, let, const. Chúc bạn có một ngày làm việc năng suất!

0
thg 8 25, 2022 8:57 SA

tks

0

Thanks bác, bài viết quá hay và giúp ích rất nhiều cho dự án của tôi.👍️

0
thg 8 25, 2022 8:38 SA

Nói riêng về scope thì có 2 điểm mà mình nghĩ bạn có thể bổ sung thêm nếu trọng tâm của bài viết là chi tiết hóa đặc trưng của var, let, const, chứ không phải là bài viết mang tính chất giới thiệu tổng quan.

  • Các biến không được khai báo mà sử dụng trong scope của các hàm sẽ tự động được khai báo ngầm định bằng var ở scope global.
  • Các biến được khai báo bằng letconst trong block scope sẽ tạo ra các phiên bản instance cho mỗi lần block đó được thực thi. Cụ thể là nếu sử dụng một vòng lặp như trong ví dụ dưới đây thì JS Engine sẽ tạo ra các instance khác nhau cho mỗi giá trị có trong mảng.
for (const word of ["zero", "one", "two"]) {
   setTimeout(() => console.log(word), 1000);
}

Trong trường hợp này, các lệnh in ra console được đặt trễ 1 giây và ở thời điểm thực thi thì mỗi lệnh in được gắn với một instance riêng của word do đó nên kết quả sẽ là mỗi từ có trong mảng đều được in ra console.

Tuy nhiên nếu như sử dụng var thay cho vị trí của const trong code ví dụ ở trên thì kết quả sẽ sẽ chỉ có duy nhất từ "two" được in ra 3 lần. Lý do ở đây là do var không tạo ra instance riêng cho mỗi lần block được thực thi nên ở thời điểm các lệnh in được thực hiện sẽ đều trỏ tới instance duy nhất đã lặp tới vòng cuối cùng và đang giữ giá trị "two".

0
thg 8 25, 2022 8:30 SA

tks

0

paper chất. tác giả là một người nghiên cứu có tiếng. việc khác biệt giữa các lần huấn luyên là bình thường, quan trọng khác biệt ntn thôi

0
thg 8 25, 2022 8:10 SA

tks

0
thg 8 25, 2022 7:41 SA

tks

0

em thấy set type: "module" trong package.json thì vẫn chạy code es6 được, vậy có cần dùng babel nữa không a?

0

mua bàn phím mới thôi bạn =)).

0
thg 8 25, 2022 4:39 SA

bài viết hay quá anh ạ. mong anh ra tiếp phần 2 ❤️

0
thg 8 25, 2022 4:38 SA

tuyet voi +10

0
thg 8 25, 2022 4:13 SA

Bài viết hay lắm a! Dễ hiểu 😃)

+1
thg 8 25, 2022 4:05 SA

Sẽ có trường hợp 1 User có nhiều quyền (Admin, Member,...) và thực hiện request với quyền Member thì sao?

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí