Làm thế nào để 12 CNN của Krizhevsky có được 253.440 tế bào thần kinh ở lớp đầu tiên?


24

Trong Alex Krizhevsky, et al. Phân loại Imagenet với các mạng nơ ron tích chập sâu, chúng liệt kê số lượng tế bào thần kinh trong mỗi lớp (xem sơ đồ bên dưới).

Đầu vào của mạng là 150,528 chiều, và số lượng tế bào thần kinh trong các lớp còn lại của mạng được đưa ra bởi 253,440 Thay186,624 Chuyện64,896 Cách64,896

CNN

Chế độ xem 3D

Số lượng tế bào thần kinh cho tất cả các lớp sau lớp đầu tiên là rõ ràng. Một cách đơn giản để tính toán các nơ-ron là chỉ cần nhân ba chiều của lớp đó ( planes X width X height):

  • Lớp 2: 27x27x128 * 2 = 186,624
  • Lớp 3: 13x13x192 * 2 = 64,896
  • v.v.

Tuy nhiên, nhìn vào lớp đầu tiên:

  • Lớp 1: 55x55x48 * 2 = 290400

Lưu ý rằng điều này không 253,440 được quy định trong bài báo!

Tính kích thước đầu ra

Cách khác để tính toán tenxơ đầu ra của tích chập là:

Nếu hình ảnh đầu vào là một tenxơ 3D nInputPlane x height x width, kích thước hình ảnh đầu ra sẽ nOutputPlane x owidth x oheightở nơi

owidth = (width - kW) / dW + 1

oheight = (height - kH) / dH + 1 .

(từ Tài liệu tiến hóa SpatialConvolution )

Hình ảnh đầu vào là:

  • nInputPlane = 3
  • height = 224
  • width = 224

Và lớp chập là:

  • nOutputPlane = 96
  • kW = 11
  • kH = 11
  • dW = 4
  • dW = 4

(ví dụ kích thước hạt nhân 11, sải chân 4)

Cắm vào những số chúng tôi nhận được:

owidth = (224 - 11) / 4 + 1 = 54 oheight = (224 - 11) / 4 + 1 = 54

Vì vậy, chúng tôi thiếu một 55x55kích thước mà chúng tôi cần để khớp với giấy. Chúng có thể là phần đệm (nhưng cuda-convnet2mô hình đặt rõ ràng phần đệm thành 0)

Nếu chúng ta lấy 54kích thước kích thước, chúng ta sẽ có 96x54x54 = 279,936các nơ-ron - vẫn còn quá nhiều.

Vì vậy, câu hỏi của tôi là:

Làm thế nào để họ có được 253.440 tế bào thần kinh cho lớp chập đầu tiên? Tôi đang thiếu gì?


Bạn đã bao giờ giải quyết điều này? Chỉ cần có tính mô phạm với các tính toán của bạn: owidth và oheight thực sự sẽ là 54,25. Tôi đã cố gắng tìm ra điều này và bước đầu tiên đã chia 253440 tế bào thần kinh được cho là 96 bộ lọc, tạo ra 2640 tế bào thần kinh cho mỗi bộ lọc. Đây không phải là một số vuông. Vì vậy, hoặc cả hai chúng tôi có một sự hiểu lầm ở đây, hoặc có thể có một sai lầm của các tác giả ... Bạn đã liên hệ với họ?
andera

cùng với tôi, điều này rất khó hiểu với tôi btw có đúng là đầu vào là 224x224x3 không? tôi nghĩ nó phải là 227x227x3. chúng ta hãy xem nếu chúng ta có 227x227, 5 ô ở bên trái đầu tiên và 5 ô ở bên phải cuối cùng không thể là trung tâm của tích chập hạt nhân với kích thước 11x11. Vì vậy, trung tâm đầu tiên của kernel là ô (6,6) và trung tâm cuối cùng của kernel ở hàng đầu tiên là cell (6x222). Với stride-4, chúng ta sẽ nhận được trung tâm của kernel trên hàng thứ sáu là: ô trên cột: 6,10,14, ..., 222 và công thức đơn giản cho trung tâm của kernel-k nằm trên cột = 6+ (k -1) * 4 sao cho cột 222 là trung tâm thứ k = (222-6) / 4 +1 = 55.

4
Lưu ý rằng 48 * 48 * 55 * 2 = 253440, vì vậy có thể họ đã mắc lỗi đánh máy khi tính số lượng tế bào thần kinh trong lớp đầu tiên (nhân với 48 thay vì 55).
tsiki


@Fireorms Đây là một cách sử dụng thú vị của thẻ [tham khảo]. Tôi nghĩ rằng chúng tôi chỉ sử dụng nó cho các câu hỏi yêu cầu tham khảo. Nhưng có lẽ tôi đã sai. Bạn có sử dụng nó khác nhau?
amip nói rằng Phục hồi lại

Câu trả lời:


8

Từ ghi chú stanfords trên NN:

Ví dụ thực tế. Krizhevsky và cộng sự. kiến trúc đã chiến thắng thử thách ImageNet năm 2012 được chấp nhận hình ảnh có kích thước [227x227x3]. Trên Lớp Convolutional đầu tiên, nó đã sử dụng các nơ-ron với kích thước trường tiếp nhận F = 11, sải chân S = 4 và không có đệm 0 P = 0. Vì (227 - 11) / 4 + 1 = 55 và do lớp Conv có độ sâu K = 96, nên khối lượng đầu ra của lớp Conv có kích thước [55x55x96]. Mỗi nơ-ron 55 * 55 * 96 trong tập này được kết nối với một vùng có kích thước [11x11x3] trong âm lượng đầu vào. Hơn nữa, tất cả 96 tế bào thần kinh trong mỗi cột độ sâu được kết nối với cùng một khu vực [11x11x3] của đầu vào, nhưng tất nhiên với các trọng lượng khác nhau. Nói một cách thú vị, nếu bạn đọc bài báo thực tế, nó tuyên bố rằng các hình ảnh đầu vào là 224x224, điều này chắc chắn không chính xác bởi vì (224 - 11) / 4 + 1 rõ ràng không phải là một số nguyên. Điều này đã khiến nhiều người nhầm lẫn trong lịch sử của ConvNets và ít ai biết về những gì đã xảy ra. Dự đoán tốt nhất của tôi là Alex đã sử dụng phần đệm thêm 3 pixel mà anh ấy không đề cập đến trong bài báo.

ref: http://cs231n.github.io/convolutional-networks/

Những ghi chú này đi kèm với lớp CS231n của Stanford CS: Mạng lưới thần kinh chuyển đổi để nhận dạng trực quan. Đối với các câu hỏi / mối quan tâm / báo cáo lỗi liên quan đến Justin Johnson liên quan đến bài tập hoặc liên hệ với Andrej Karpathy về các ghi chú khóa học


Có thể cung cấp tín dụng bằng cách đặt tên tác giả của những ghi chú?
Cá bạc

Các tác giả rõ ràng tự tham chiếu trong các ghi chú, xem cs231n.github.io
Bacon

2
Mặc dù chúng được tham chiếu rõ ràng nếu bạn theo liên kết, nhưng trích dẫn cũng xuất hiện ở đây, do đó cũng nên có tín dụng ở đây. Đó là một phần lịch sự, nhưng cũng vì liên kết có thể ngừng hoạt động (ví dụ: nếu tài liệu bị xóa / trả tường / chuyển đến địa chỉ mới). Thật không may, chúng tôi gặp vấn đề nghiêm trọng với "liên kết thối" trên trang web này - trong khi chúng tôi dự định đóng vai trò là kho lưu trữ dài hạn các câu trả lời chất lượng cao cho các câu hỏi thống kê, nhiều câu trả lời cũ của chúng tôi đã bị lỗi thời bởi các liên kết không còn hoạt động . Vì vậy, nói chung sẽ an toàn hơn khi cố gắng đưa ra câu trả lời càng khép kín càng tốt.
Cá bạc

0

Bài viết này thực sự khó hiểu. Trước hết, kích thước đầu vào của hình ảnh không chính xác là 224x224 không cho đầu ra 55. Các nơ-ron đó chỉ đơn giản giống như các pixel được nhóm lại trong một, vì vậy đầu ra là hình ảnh 2D của các giá trị ngẫu nhiên (giá trị nơ-ron). Vì vậy, về cơ bản số lượng tế bào thần kinh = widthxheightxdepth, không có bí mật nào để tìm ra điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.