TÍCH CHẬP LÀ GÌ

  -  

Giờ bọn họ đã hiểu biện pháp các tầng tích chập hoạt động trên định hướng,hãy coi chúng vận động vào thực tiễn như thế nào. Dựa vào phát minh mạngnơ-ron tích chập là phong cách xây dựng công dụng để mày mò cấu tạo của dữ liệuảnh, Shop chúng tôi vẫn đã sử dụng các loại tài liệu này khi rước ví dụ.Bạn sẽ xem: Tích chập

6.2.1. Toán tử Tương quan tiền Chéo¶

Nhỏng ta vẫn biết, tầng tích chập là cái tên bao gồm phần không đúng mực, vìphép toán thù cơ mà bọn chúng màn biểu diễn là phxay tương quan chéo (crosscorrelation). Trong một tầng tích chập, một mảng đầu vào và một mảnghạt nhân tương quan được phối kết hợp để tạo thành mảng áp ra output bởi phnghiền toánđối sánh tương quan chéo. Hãy trong thời điểm tạm thời làm lơ chiều kênh với coi phép toán nàyhoạt động ra sao cùng với dữ liệu với trình diễn ẩn hai phía. TrongFig. 6.2.1, nguồn vào là một trong những mảng hai phía với chiều dài3 cùng chiều rộng lớn 3. Ta kí hiệu kích cỡ của mảng là (3 imes 3)hoặc ((3), (3)). Chiều lâu năm với chiều rộng của phân tử nhân hồ hết là2. Crúc ý rằng vào xã hội nghiên cứu học sâu, mảng này còn có thểđược hotline là phân tử nhân tích chập, bộ lọc xuất xắc solo thuần là trọng sốcủa tầng. Kích thước của hành lang cửa số phân tử nhân là chiều lâu năm và chiều rộng lớn củahạt nhân (sinh sống đó là (2 imes 2)).

Bạn đang xem: Tích chập là gì


*

Fig. 6.2.1 Phxay đối sánh tương quan chéo hai chiều. Các phần được sơn màu sắc là phần tử đầutiên của áp ra output cùng với các bộ phận của mảng nguồn vào cùng mảng hạtnhân được sử dụng trong phnghiền toán:(0 imes0+1 imes1+3 imes2+4 imes3=19).¶

Trong phép tương quan chéo hai chiều, ta ban đầu với cửa sổ tích chậpđể ở địa chỉ góc trên bên trái của mảng nguồn vào cùng dịch rời cửa ngõ sổnày từ trái quý phái đề nghị cùng tự bên trên xuống bên dưới. lúc hành lang cửa số tích chập đượcđẩy cho tới một địa chỉ khăng khăng, mảng con nguồn vào phía trong hành lang cửa số đó vàmảng hạt nhân được nhân theo từng phần tử, rồi kế tiếp ta mang tổng cácthành phần trong mảng hiệu quả để có được một giá trị số vô phía độc nhất vô nhị.Giá trị này được ghi vào mảng cổng output tại vị trí tương ứng. Tại đây, mảngáp ra output tất cả chiều dài 2 và chiều rộng 2, cùng với bốn bộ phận được xem bằngphxay tương quan chéo cánh nhị chiều:

(6.2.1)¶

Lưu ý rằng theo từng trục, size cổng output nhỏ tuổi hơn một chút so vớinguồn vào. Bởi bởi phân tử nhân bao gồm chiều nhiều năm cùng chiều rộng lớn hơn một, ta chỉrất có thể tính độ đối sánh tương quan chéo đến đông đảo địa chỉ cơ mà làm việc kia hạt nhân nằmhoàn toàn bên trong hình họa, kích cỡ đầu ra output được tính bằng cách đem đầuvào (H imes W) trừ size của cục lọc tích chập(h imes w) bằng ((H-h+1) imes (W-w+1)). Điều này xảy rabởi ta bắt buộc đủ không gian để ‘dịch chuyển’ phân tử nhân tích chập qua tnóng hình(sau này ta đã xem làm cho cầm cố như thế nào để hoàn toàn có thể không thay đổi size bằng cáchđệm những số không vào xung quanh biên của hình hình ảnh làm thế nào để cho gồm đủ khônggian nhằm dịch rời phân tử nhân). Tiếp nối, ta thiết kế quá trình làm việc trênvào hàm corr2d. Hàm này thừa nhận mảng đầu vào X với mảng hạt nhânK và trả về mảng Áp sạc ra Y.

from mxnet import autograd, np, npxfrom mxnet.gluon import nnnpx.set_np()# Saved in the hijadobravodomain authority.com package for later usedef corr2d(X, K): """Compute 2D cross-correlation.""" h, w = K.shape Y = np.zeros((X.shape - h + 1, X.shape - w + 1)) for i in range(Y.shape): for j in range(Y.shape): Y = (X * K).sum() return YTa hoàn toàn có thể xây cất mảng nguồn vào X và mảng phân tử nhân K như hìnhbên trên nhằm soát sổ lại công dụng của bí quyết lập trình phép tân oán tương quanchéo cánh hai chiều vừa rồi.

6.2.2. Tầng Tích chập¶

Tầng tích chập tiến hành phxay toán thù đối sánh tương quan chéo cánh thân đầu vào với hạtnhân, tiếp đến thêm vào đó một hệ số điều chỉnh để có được Áp sạc ra. Hai thamsố của tầng tích chập là hạt nhân và thông số kiểm soát và điều chỉnh. Khi giảng dạy môhình chứa những tầng tích chập, ta thường khởi tạo thành hạt nhân bỗng dưng,y hệt như biện pháp ta có tác dụng với tầng liên kết không thiếu thốn.

Bây giờ ta đang sẵn sàng chuẩn bị thiết kế một tầng tích chập hai phía dựa vàohàm corr2d ta vừa quan niệm nghỉ ngơi bên trên. Trong hàm khởi tạo__init__, ta knhì báo nhị tmê mẩn số của quy mô weight vàbias. Hàm tính lượt truyền xuôi forward Hotline hàm corr2d vàcộng thêm hệ số kiểm soát và điều chỉnh. Cũng như thể giải pháp Điện thoại tư vấn phép đối sánh chéo(h imes w), ta cũng hotline những tầng tích chập là phxay tích chập(h imes w).

class Conv2D(nn.Block): def __init__(self, kernel_size, **kwargs): super(Conv2 chiều, self).__init__(**kwargs) self.weight = self.params.get('weight', shape=kernel_size) self.bias = self.params.get('bias', shape=(1,)) def forward(self, x): return corr2d(x, self.weight.data()) + self.bias.data()

6.2.3. Phát hiện Biên của Vật thể trong Ảnh¶

Hãy quan tiền gần cạnh một ứng dụng đơn giản dễ dàng của tầng tích chập: vạc hiện đườngbiên của một đồ dùng thể trong một bức ảnh bằng cách xác định vị trí cácđiểm hình họa biến hóa. Đầu tiên, ta dựng một ‘bức ảnh’ tất cả form size là(6 imes 8) điểm ảnh. Bốn cột chính giữa gồm màu sắc Black (quý giá 0) với cáccột còn lại gồm màu trắng (cực hiếm 1).

Xem thêm: Xin Đừng Lặng Im Ai Sáng Tác

array(, , , , , >)Sau kia, ta sinh sản một hạt nhân K tất cả độ cao bằng (1) với chiềurộng lớn bằng (2). khi thực hiện phnghiền tương quan chéo với đầu vào, nếuhai phần tử cạnh nhau theo chiều ngang có giá trị như là nhau thì đầu ravẫn bằng 0, còn sót lại Áp sạc ra sẽ khác ko.Ta sẽ chuẩn bị triển khai phép đối sánh tương quan chéo cánh cùng với các đối số X (đầuvào) và K (phân tử nhân). Bạn rất có thể thấy rằng những địa chỉ biên White đổithành Black có giá trị 1, còn những địa điểm biên Black đổi thành trắng bao gồm giátrị -1. Các vị trí còn sót lại của áp ra output có mức giá trị 0.array(, , , , , >)Bây giờ hãy vận dụng hạt nhân này mang lại chuyển vị của ma trận điểm hình ảnh. Nhưmong rằng, giá trị tương quan chéo cánh bởi ko. Hạt nhân K chỉ bao gồm thểphạt hiện nay biên dọc.array(, , , , , , , >)

6.2.4. Học một Sở lọc¶

Việc xây đắp cỗ phân phát hiện tại biên bởi sai phân hữu hạn thìtương đối Gọn gàng giả dụ ta biết chính xác đây là hầu hết gì đề xuất làm. Tuy nhiên,khi xét tới các bộ lọc to hơn với những tầng tích chập liên tục, vấn đề chỉđịnh đúng chuẩn mỗi cỗ lọc đề nghị làm cái gi một bí quyết bằng tay thủ công là bất khả thi.

Bây tiếng ta hãy coi liệu rất có thể học tập một cỗ lọc có chức năng tạo nên YtừX chỉ với những cặp (đầu vào, đầu ra) hay là không. Trước tiên bọn chúng taxuất bản một tầng tích chập và khởi chế tác một mảng bỗng dưng có tác dụng bộ lọc.Tiếp theo, trong những lần lặp, ta vẫn sử dụng bình phương không nên số nhằm sosánh Y cùng áp ra output của tầng tích chập, tiếp đến tính tân oán gradient đểupdate trọng số. Để đơn giản dễ dàng, vào tầng tích chập này, ta sẽ vứt quathông số điều chỉnh.

Trước trên đây ta đã tự thi công lớp Conv2D. Tuy nhiên, bởi vì ta sử dụng cácphxay gán một trong những phần tử, Gluon đã chạm mặt một trong những trở ngại lúc tính gradient.Ttốt vào đó, ta sử dụng lớp Conv2D bao gồm sẵn của Gluon như sau.

# Construct a convolutional layer with 1 output channel# (channels will be introduced in the following section)# and a kernel array shape of (1, 2)conv2d = nn.Conv2D(1, kernel_size=(1, 2))conv2d.initialize()# The two-dimensional convolutional layer uses four-dimensional input and# output in the format of (example, channel, height, width), where the batch# kích cỡ (number of examples in the batch) và the number of channels are both 1X = X.reshape(1, 1, 6, 8)Y = Y.reshape(1, 1, 6, 7)for i in range(10): with autograd.record(): Y_hat = conv2d(X) l = (Y_hat - Y) ** 2 l.backward() # For the sake of simpliđô thị, we ignore the bias here conv2d.weight.data() -= 3e-2 * conv2d.weight.grad() if (i + 1) % 2 == 0: print('batch %d, loss %.3f' % (i + 1, l.sum()))cũng có thể thấy không nên số đang giảm sút còn khá nhỏ sau 10 lần lặp. Bây tiếng hãycoi mảng cỗ thanh lọc đang học được.

conv2d.weight.data().reshape(1, 2)array(>)Thật vậy, mảng bộ lọc học tập được hết sức ngay sát cùng với mảng cỗ thanh lọc K mà lại ta tựkhái niệm trước đó.

Xem thêm: Gợi Ý 19 Trò Chơi Trên Xe Du Lịch (Tập 15): 10 Trò Chơi Hoạt Náo Trên Xe

6.2.5. Tương quan Chéo cùng Tích chập¶

6.2.6. Tóm tắt¶

Về cơ bản, phần tính tân oán của tầng tích chập hai phía là phxay tươngquan liêu chéo hai phía. Ở dạng đơn giản dễ dàng độc nhất vô nhị, phnghiền đối sánh tương quan chéo cánh thaotác trên tài liệu đầu vào hai phía và cỗ thanh lọc, tiếp nối thêm vào đó hệ sốkiểm soát và điều chỉnh.Chúng ta rất có thể kiến tạo cỗ thanh lọc để vạc hiện những biên vào hình ảnh.Chúng ta hoàn toàn có thể học tập các tmê mẩn số của bộ thanh lọc từ dữ liệu.

6.2.7. Bài tập¶

Xây dựng hình ảnh X cùng với các cạnh chéo.Điều gì xảy ra nếu như bạn vận dụng cỗ lọc K lên nó?Điều gì xẩy ra nếu như khách hàng đưa vị X?Điều gì xẩy ra nếu như khách hàng chuyển vị K?khi thử tự động hóa tìm kiếm gradient mang đến lớp Conv2D nhưng ta vẫn tạo, bạnthấy các loại thông tin lỗi nào?Làm rứa như thế nào nhằm các bạn biểu diễn một phép tính tương quan chéo như là mộtphxay nhân ma trận bằng phương pháp biến đổi các mảng nguồn vào cùng mảng cỗ lọc?Hãy xây dựng bằng tay một số bộ thanh lọc sau.Bộ thanh lọc để tính đạo hàm bậc nhì có dạng như vậy nào?Bộ thanh lọc của tân oán tử Laplace là gì?Bộ lọc của phép tích phân là gì?Kích thước về tối tgọi của cục thanh lọc để sở hữu được đạo hàm bậc (d)là bao nhiêu?

6.2.9. Những người thực hiện¶

Bản dịch trong trang này được tiến hành bởi:

Đoàn Võ Duy ThanhNguyễn Văn CườngLê Khắc Hồng PhúcPhạm Hồng VinhLý Phi LongPhạm Minch ĐứcTrần Yến Thy