Tích chập hiểu đơn giản là nhân đa thức – Nguyễn Đức Mùi

1. Giới thiệu

Khi học xử lý tín hiệu, điều khiển hay thị giác máy tính, nhiều người thường thấy phép tích chập (convolution) với những công thức khá dài và khó nhớ. Tuy nhiên, nếu bỏ qua cách viết bằng tổng hay tích phân, thì có một cách hiểu rất trực quan:

Tích chập thực chất chính là phép nhân đa thức.

Ý tưởng này đúng không chỉ với tín hiệu một chiều mà còn mở rộng sang ảnh hai chiều, dữ liệu ba chiều và thậm chí dữ liệu nhiều chiều.

Nói cách khác, thay vì nhớ công thức tích chập, ta chỉ cần nhớ cách nhân hai đa thức, còn công thức tích chập sẽ tự xuất hiện.


2. Trường hợp 1D

Giả sử có hai tín hiệu

x = [1 2 3]h = [4 5]

Ta coi chúng là hệ số của hai đa thức

X(z) = 1 + 2z + 3z²H(z) = 4 + 5z

Bây giờ chỉ việc nhân hai đa thức như học phổ thông.

Bước 1

1 × (4 + 5z)= 4 + 5z

Bước 2

2z × (4 + 5z)= 8z + 10z²

Bước 3

3z² × (4 + 5z)= 12z² + 15z³

Cộng tất cả lại

4+ (5+8)z+ (10+12)z²+15z³

thu được

4 + 13z + 22z² + 15z³

Do đó hệ số là

[4 13 22 15]

Đây cũng chính là kết quả của

conv([1 2 3],[4 5])

Như vậy

Tích chập 1D chính là phép nhân hai đa thức một biến.


3. Tại sao công thức tích chập lại xuất hiện?

Giả sử

X(z)=x0+x1z+x2z²+...
H(z)=h0+h1z+h2z²+...

Khi nhân hai đa thức, hệ số của z² sẽ được tạo bởi

x0·h2+x1·h1+x2·h0

Hệ số của z³ sẽ được tạo bởi

x0·h3+x1·h2+x2·h1+x3·h0

Nếu viết tổng quát thì chính là

yk = Σ xi h(k-i)

Đây chính là công thức tích chập trong sách giáo khoa.

Nói cách khác,

Công thức tích chập không phải tự nhiên sinh ra. Nó chính là quy tắc cộng các hệ số khi nhân hai đa thức.


4. Trường hợp 2D

Bây giờ xét ma trận

A =1 23 4

Ta coi mỗi phần tử là hệ số của đa thức hai biến.

A(x,y)= 1+2y+3x+4xy

Trong đó

  • x biểu diễn theo hàng
  • y biểu diễn theo cột

Giả sử

B =5 6

tương ứng với

B(x,y)=5+6y

Bây giờ ta vẫn nhân đa thức như bình thường.

(1+2y+3x+4xy)(5+6y)

Ta được

5+16y+12y²+15x+38xy+24xy²

Nếu sắp các hệ số theo đúng vị trí của x và y thì thu được

5   16   1215  38   24

Đây chính là kết quả của

conv2(A,B)

Điều đáng chú ý là

Không có phép toán mới nào cả.

Ta chỉ đang nhân đa thức, nhưng thay vì có một biến, giờ có hai biến.


5. Minh họa trực quan cho 2D

Trong 1D

1 +2z +3z²

ta dùng

z

để biểu diễn vị trí.

Trong 2D ta cần hai hướng

x  → hàngy  → cột

Do đó

1 23 4

được viết thành

1+2y+3x+4xy

Ta thấy

1      → góc trên trái2y     → dịch sang phải3x     → dịch xuống dưới4xy    → vừa xuống vừa sang phải

Như vậy mỗi phần tử của ma trận tương ứng với một đơn thức.


6. Trường hợp 3D

Giả sử có tensor

A(i,j,k)

Thay vì hai biến, bây giờ ta dùng ba biến

xyz

Một phần tử

A(2,1,3)

sẽ tương ứng với

x²yz³

Toàn bộ tensor sẽ trở thành một đa thức ba biến.

Ví dụ

A(:,:,1)=1 2
A(:,:,2)=3 4

được viết thành

1+2y+3z+4yz

Nếu

B(:,:,1)5 6

thì

B=5+6y

Khi nhân

(1+2y+3z+4yz)(5+6y)

ta thu được đúng các hệ số của phép

convn(A,B)

Điểm khác duy nhất là

  • 1D dùng một biến
  • 2D dùng hai biến
  • 3D dùng ba biến

Nhưng bản chất vẫn chỉ là nhân đa thức.


7. Tổng quát N chiều

Nếu dữ liệu có N chiều thì ta dùng N biến

x1,x2,...,xN

Mỗi phần tử của tensor sẽ tương ứng với một đơn thức

x1^i1 x2^i2 ... xN^iN

Sau đó chỉ việc nhân hai đa thức nhiều biến.

Các hệ số sau khi nhân chính là kết quả của phép tích chập N chiều.

Hotline: 039.2266.928
Khóa học Toefl
Phone now