- vừa được xem lúc

[Liệu bạn có biết] Bài 1: Cách xác định số hidden layers tối ưu trong Neural Network

0 0 15

Người đăng: NgoHuuGiaHuy

Theo Viblo Asia

Bạn có bao giờ tự hỏi cần bao nhiêu hidden layers cho 1 cái Neural Network? Bởi vì bạn không thể cứ thêm bao nhiêu tùy thích vì nếu vậy sẽ dẫn đến các vấn đề như vanishing gradient hoặc là overfitting, còn nếu thêm ít quá thì model sẽ chưa được tối ưu 1 cách tốt nhất. Chung quy lại là làm sao để xác định số hidden layers cần phải thêm vào cho phù hợp thì ở bài này mình sẽ giới thiệu 1 phương pháp lạ mà quen.

Kiến trúc của ResNet(2015)

Phương pháp mà mình sẽ giới thiệu ngay sau đây cũng là tâm điểm tạo nên sự nổi tiếng và tiếng vang lớn cho ResNet vào năm 2015.

Residual Net

Residual Net chính là phương pháp mà mình sẽ nói trong bài viết này. Trước khi giải thích cách hoạt động của Residual Net thì mình sẽ lấy 1 ví dụ cho các bạn dễ hình dung:

Giả sử các bạn đang lướt internet và thấy 1 đôi giày cực kì ưng và thích nó và đôi giày chỉ có giá 10 đồng và lại còn gần nhà mình nữa thì đây chắc chắn là ý trời muốn mình mua cho bằng được rùi. Thế là các bạn mang theo đúng 10 đồng tới để mua đôi giày này, nhưng khi tới nơi bạn phát hiện rằng đôi giày này đã tăng giá lên thành 12 đồng vì vậy bạn không đủ tiền để mua nhưng bạn thật sự thích đôi giày này cực, thì cách đơn giản nhất là bạn ' QUAY VỀ ' nhà và ' LẤY THÊM ' tiền.

Thì cách hoạt động của Residual Net cũng giống vậy nhưng ngược lại tí là quay về và bỏ bớt.

image.png

Như trong hình các bạn có thể thấy chúng ta muốn gắn thêm 2 cái hidden layers nữa thì lúc này sẽ có 2 trường hợp xảy ra ( giống như đầu bài mình đã đề cập) :

  1. model chưa được tối ưu nên việc gắn thêm 2 layers sẽ giúp tăng performance
  2. model đã tối ưu rồi và việc gắn thêm sẽ dẫn tới vanishing - overfitting

Để giải quyết 2 vấn đề này mô hình ResNet đã tạo nên 1 cái Identity ( hay còn gọi quen thuộc là short cut ) tức là chúng ta cứ thêm hidden layers 1 cách dư thừa đi để phòng trường hợp thiếu, nếu dư thì chúng ta sẽ quay về bỏ bớt ra.

Ở trong hình bạn sẽ thấy có 2 con đường trước khi đi qua ReLu là:

  1. Đi thẳng qua từng hidden layer
  2. đi theo đường cong - Identity ( bỏ qua 2 cái hidden layers ) và tới thẳng ReLu

Và việc xác định con đường nào hợp lí sẽ là công việc của máy tính ( thông qua backward ). Chỉ tạo nên 1 cái Identity ( đơn giản là if chưa optimize --> đi thẳng else ---> đi đường cong ) đã giải quyết được 2 vấn đề mà chúng ta nhức đầu mỗi khi xây dựng 1 model.

Tóm lại: Chúng ta không nhất thiết phải xác định cụ thể cần chính xác bao nhiêu hidden layers là đủ mà việc đó sẽ nhờ máy tính làm dùm. ' Cứ gắn thêm layers đi, nếu không tốt hơn thì đừng làm tồi hơn ' là cách Identity ( short cut) hoạt động.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tấn công và phòng thủ bậc nhất cực mạnh cho các mô hình học máy

tấn công bậc nhất cực mạnh = universal first-order adversary. Update: Bleeding edge của CleverHans đã lên từ 3.1.0 đến 4.

0 0 29

- vừa được xem lúc

[Deep Learning] Key Information Extraction from document using Graph Convolution Network - Bài toán trích rút thông tin từ hóa đơn với Graph Convolution Network

Các nội dung sẽ được đề cập trong bài blog lần này. . Tổng quan về GNN, GCN. Bài toán Key Information Extraction, trích rút thông tin trong văn bản từ ảnh.

0 0 204

- vừa được xem lúc

Trích xuất thông tin bảng biểu cực đơn giản với OpenCV

Trong thời điểm nhà nước đang thúc đẩy mạnh mẽ quá trình chuyển đổi số như hiện nay, Document Understanding nói chung cũng như Table Extraction nói riêng đang trở thành một trong những lĩnh vực được quan tâm phát triển và chú trọng hàng đầu. Vậy Table Extraction là gì? Document Understanding là cái

0 0 216

- vừa được xem lúc

Con đường AI của tôi

Gần đây, khá nhiều bạn nhắn tin hỏi mình những câu hỏi đại loại như: có nên học AI, bắt đầu học AI như nào, làm sao tự học cho đúng, cho nhanh, học không bị nản, lộ trình học AI như nào... Sau nhiều lần trả lời, mình nghĩ rằng nên viết hẳn một bài để trả lời chi tiết hơn, cũng như để các bạn sau này

0 0 137

- vừa được xem lúc

[B5'] Smooth Adversarial Training

Đây là một bài trong series Báo khoa học trong vòng 5 phút. Được viết bởi Xie et. al, John Hopkins University, trong khi đang intern tại Google. Hiện vẫn là preprint do bị reject tại ICLR 2021.

0 0 33

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 124