You are on page 1of 14

CNN

đầu vào: tensor 3 chiều

Ví dụ 1 bức ảnh: kích thước 224


Thì cnn chuyển đổi thành các khối hộp bămgf 1 phép biến đổi nào đó của giá trị bên trong cái
hộp (matrix 3 chiều/ tensor). thấy hình dáng độ lớn nhưng bên trong là các số.
Sau cuối cùng là 1 vector: 4096 -> đầu ra là 1 vector có 1000 giá trị
Vecto hay matrix hay tensor thì cũng là dạng kahcs nhau của tensor.
nếu tensor 1 chiều -> còn lại 1 ma trận
tensor 2,3… -> 1 ma trận

bước 1: lớp tích chập


đang từ 32, chiều sâu 3 mà thành 28x28, sâu 6
cái phép biến đổi nào? Dùng 6 filters (bộ lọc), mỗi kernel có độ lớn (size) 5x5
để dc 6 layers thì cần 6 filters
Stride: tham số cần định nghĩa

Đây là 1 phép tích chập, mà mày xanh dương laf input, 2D (1 layers). Stride S=1 nghĩa là mở rộng
hình ảnh ban đầu theo mỗi chiều 1 pixel
Filter 3x3: dùng 1 ô vuông độ lớn 3x3 đi dọc cái hình ảnh đã đc mở rộng -> sẽ tính toán dc giá trị
đầu ra màu xanh lá đậm hơn.
mỗi lần dịch stride (bước nhảy 1) thì ghi vào ô tiếp theo giá trị
no padding, stride = 2 -> output = 2 x2

mỗi 1 padding và stride thì output có độ lớn khác nhau

Ví dụ: cta đg qtam ô ở input thì dùng filter nhìn vào input và đưa ra kết quả ở output
Convolution ở đây là phép toán bên phải, ta lấy tích các ô tương ứng xong cộng lại -> tích vô
hướng hai vector, bằng độ dài vector tứ nhất và vector t2, nhân với góc. Góc =0 -> cos =1, góc
=90 -> cos =0, hai vector ngược chiều nhau cos180 =-1.
nếu biểu thức cho giá trị dương (output), vector giống nhau, càng âm càng ngược nhau (là cái -8
trong ảnh)
bộ lọc có tác dụng lọc bức tranh giống nhau hay không và đưa ra đầu ra

nếu chọn filter trên (-1 -2 -1)… (bỏ trống hàng giữa)
 Bộ lọc chuyên phát hiện ra nét ngang, output sinh ra là nét ngang dc tô lên
nếu chọn filter dưới (-1 0 1)
 Bộ lọc chuyên phát hiện ra nét dọc, output sinh ra là nét dọc (thân con chó, cánh cửa, …)
Ý nghĩa của phép convolution
Nó hđ bằng cách :
W tương ứng nhân với vị trí pixel tương ứng
B là để chỉ nếu tổng này lớn hơn 10 hay không, thì cho wixi -10 > 0 hay không
nếu 3d thì sao?
lấy filter cho lớp 1 + lớp 2 + lớp 3

Công thức tính đầu ra là bao nhiêu dựa trên padding và stride -> tính O như công thức
I: độ lớn bức tranh ban đầu

Convolution -> đi tìm template, khuôn mẫu xuát hiện trong hình
Filter chọn như nào?
số filter rất nhiều, mà lại cần tốt nhất. -> bảo mạng noron học và tìm ra filter tốt nhất

nếu ta có bộ lọc, đầu ra sẽ là ảnh,


nếu lớp có nh tầng, thì lớp đầu là lớp sát nhất với ảnh

bước 2: giảm chiều rộng và cao của tensor


max pool -> 1156 max là 6 2478 thì max là 8. … (ngoài ra còn lấy giá trị trung bình cuqr bộ 2x2 ->
tạo thành 1 ô)
pooling là phép biến đổi gỉam số chiều của tensor
nếu ra hiểu convolution là đi tìm filter -> filter tìm ra tính chất bức tranh
bộ lọc có kích thước, muốn nhìn tổn thể thì tăng size filter hoặc giảm độ lớn bức tranh ban đầu
pooling là phép tìm hình ảnh tổng quát để k cần tăng size filter mà vẫn tìm ra dc tính chất bằng
cách zoom nhỏ ảnh lại để nhìn rộng hơn
Ví dụ làm pooling, thì bức tranh k còn nhiều tham số, nhưng sẽ hợp nhất lại, chỉ nhìn vào
maximum => nói chung bức tranh này là có con đường, cây, và nhà…
Và máy sẽ nhận biết bức tranh bên phải dễ hơn nhiều

bước tiếp theo: ba function này có sẵn, mà không cần viết lại, chỉ cần sử dụng
mục đích: nắn các kết quả đầu ra rơi vào khoảng nào đấy
Ví dụ output có thể kết quả ko thể kiếm soát dc nếu dùng filter theo cthuc wixi + b -> nén nó
đầu ra giữa 0 và 1 -> activation làm điều đó
Ví dụ bằng -8 thì sigmoid lên giá trị -8 thì kết quả gần như bằng 0
Or ReLu -> thì vẫn là -8 là 0 nếu lớn hơn 0 sẽ giữ nguyên

Layers: có nghĩa là thêm vào mạng nơ ron thay đổi tensor


Ta dc tensor kết quả tính toán qua layers này thì thay đổi giá trị mà không thay đổi kích thước
ReLu có nh thành tích nhất, tốt nhất trong hình ảnh? Vì nó đơn giản tính toán đạo hàm, mà đạo
hàm relu =0 x<0, =1 khi x>0

Example of deep learning

Output
Only have 3 values
Input: pictize size h1,w1,c1
Convolution: N,K,S, 0 padding P
Output: H2,w2, c2

6 layers => c2 = 6

In case of activation layer, there's no change in dimension because you are changing only the
values inside.

64: kernel
Using max pooling
? transformation: 22 layers
Full connected layer: ??
Why you look at picture you say that what is it?
So if it's a more than 18 or 20 millions of of rein coefficients operation parameters, is it very
hard to interpret or to explain why?
explain why our network it's making this decision or not.>????

Please try to read again and during the do it again the the the slides to understand what is
convolutions, how it works, how the rare and you layer works and what is bowling and go back
to the previous lecture to understand how this part is so and how to change and the output into
the probability.


Billy Tom Herrmann 2023T033
And could you again explain it's at at some point you said that we we get 16 million parameters
in the example before, could you explain that again?
Dense:
16 millition is the product of 4096* 4096because it full connected players
CNN: 3 part
Feature extraction, classification, probabilistic distribution

TA implement CNNN

You might also like