Tại sao lại chập chững nếu Max Pooling chỉ làm hỏng hình ảnh?


13

Ý tưởng áp dụng các bộ lọc để làm một cái gì đó như xác định các cạnh, là một ý tưởng khá tuyệt vời.

Ví dụ: bạn có thể chụp ảnh số 7. Với một số bộ lọc, bạn có thể kết thúc bằng các hình ảnh được chuyển đổi nhấn mạnh các đặc điểm khác nhau của hình ảnh gốc. Bản gốc 7:

nhập mô tả hình ảnh ở đây

có thể được trải nghiệm bởi mạng như:

nhập mô tả hình ảnh ở đây

Lưu ý cách mỗi hình ảnh đã trích xuất một cạnh khác nhau của 7 bản gốc.

Điều này thật tuyệt, nhưng sau đó, giả sử lớp tiếp theo trong mạng của bạn là lớp Max Pooling.

Câu hỏi của tôi là, nói chung, không phải điều này có vẻ hơi giống như quá mức? Chúng tôi đã rất cẩn thận và cân nhắc với việc xác định các cạnh bằng các bộ lọc - bây giờ, chúng tôi không còn quan tâm đến bất kỳ vấn đề nào nữa, vì chúng tôi đã phá hủy các giá trị pixel! Xin hãy sửa tôi nếu tôi sai, nhưng chúng tôi đã đi từ 25 X 25 đến 2 X 2! Tại sao không đi thẳng đến Max Pooling sau đó, chúng ta sẽ không có cùng một thứ?

Là một phần mở rộng cho câu hỏi của tôi, tôi không thể không tự hỏi điều gì sẽ xảy ra nếu, ngẫu nhiên, mỗi trong số 4 hình vuông đều có một pixel có cùng giá trị tối đa. Chắc chắn đây không phải là một trường hợp hiếm, phải không? Đột nhiên tất cả các hình ảnh đào tạo của bạn trông giống hệt nhau.

Câu trả lời:


15

Tối đa gộp không xuống mẫu hình ảnh. Nó lấy mẫu các tính năng (như các cạnh) mà bạn vừa trích xuất. Điều đó có nghĩa là bạn nhận được nhiều hơn khoảng các cạnh hoặc các tính năng khác. Thường thì đây chỉ là những gì mạng cần để khái quát hóa - để phân loại nó không cần biết có một cạnh dọc chạy từ 10,5 đến 10,20, nhưng có một cạnh dọc khoảng 1/3 từ cạnh trái khoảng 2/3 chiều cao của hình ảnh.

Các loại tính năng khó khăn hơn này vốn đã bao gồm nhiều biến thể hơn trong hình ảnh đầu vào với chi phí rất thấp và việc giảm kích thước của bản đồ tính năng cũng là một hiệu ứng phụ đẹp mắt, giúp mạng nhanh hơn.

Để điều này hoạt động tốt, bạn vẫn cần trích xuất các tính năng để bắt đầu, điều mà nhóm tối đa không làm được, vì vậy lớp chập là cần thiết. Bạn sẽ thấy bạn có thể lấy mẫu hình ảnh gốc (xuống 14x14) thay vì sử dụng lớp tổng hợp tối đa đầu tiên, và bạn vẫn sẽ có được độ chính xác khá hợp lý. Làm thế nào nhiều nhóm để làm, và nơi để thêm các lớp đó là một vấn đề siêu tham số khác khi xây dựng một mạng lưới thần kinh sâu.


5

Chúng ta không thể đi trực tiếp từ lớp đầu vào đến nhóm tối đa vì convolution layerở giữa. Lý do tích chập là để trích xuất các tính năng. Tối đa gộp xuống - lấy mẫu các tính năng đã được trích xuất. Nếu bạn nghĩ rằng có những tính năng bị thiếu do nhảy trực tiếp từ ma trận lớn sang lớp gộp tối đa, bạn có thể thêm nhiều lớp tích chập vào giữa cho đến khi bạn có vẻ hài lòng với kích thước và sau đó thực hiện gộp tối đa vào nó để nó không phải là một quá mức cần thiết.

Tổng hợp tối đa, là một hình thức lấy mẫu xuống được sử dụng để xác định các tính năng quan trọng nhất. Nhưng gộp chung và các kỹ thuật khác cũng có thể được sử dụng. Tôi thường làm việc với văn bản và không hình ảnh. Đối với tôi, các giá trị thường không giống nhau. Nhưng nếu chúng cũng vậy, nó sẽ không tạo ra nhiều khác biệt bởi vì nó chỉ chọn giá trị lớn nhất.

Một sự hiểu biết rất tốt từ wiki -The intuition is that once a feature has been found, its exact location isn't as important as its rough location relative to other features. The function of the pooling layer is to progressively reduce the spatial size of the representation to reduce the amount of parameters and computation in the network, and hence to also control overfitting. It is common to periodically insert a pooling layer in-between successive conv layers in a CNN architecture. The pooling operation provides a form of translation invariance.


Bạn có thể giải thích câu cuối cùng The pooling operation provides a form of translation invariance?
HelloWorld

@StudentT Điều đó có nghĩa là đầu ra của nhóm tối đa sẽ giống nhau nếu tính năng được phát hiện ở bất kỳ đâu trong ảnh. Di chuyển vật trong hình ảnh đang kích hoạt tính năng và một đầu vào khác vào nhóm tối đa sẽ là tối đa nhưng đặt ngoài của nhóm tối đa phải giống nhau.
mrmcgreg

@mrmcgreg Tôi tin rằng điều đó đúng với tổng hợp toàn cầu, không phải tổng hợp tối đa. Nhóm tối đa cung cấp một loại bất biến cho các bản dịch cục bộ trong khu vực nhóm (ví dụ 2x2). Điều này cho phép một số jitter trong các tính năng.
geometrikal

0

Convolution về cơ bản là lọc hình ảnh bằng bộ lọc pixel nhỏ hơn để giảm kích thước của hình ảnh mà không làm mất mối quan hệ giữa các pixel (tham số của mạng), Pooling cũng giảm kích thước không gian bằng cách trích xuất Max, Average hoặc Sum của pixel theo kích thước tuy nhiên, bộ lọc có thể bỏ lỡ tham số quan trọng trong quá trình tích chập đạt được bằng cách không giảm kích thước đáng kể.

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.