Lan truyền ngược

Một phần của tài liệu Nhận diện và phân loại các thành phần giao diện của ứng dụng từ ảnh chụp màn hình (Trang 36 - 38)

2 Nền tảng và các cơng trình liên quan

2.15 Lan truyền ngược

Convolutional Neural Network

Có thể thấy rằng, mạng neuron thần kinh cổ điển với các hidden layer là các layer fully connected sẽ thường khơng phù hợp với bài tốn phân loại ảnh. Ngun nhân chính cho việc này có thể kể đến là lớp fully connected đòi hỏi input đầu vào phải ở dạng phẳng (Flatten). Do đó khi huấn luyện mơ hình ta phải có bước biến đổi ảnh thành một danh sách trị số (đối với ảnh RGB thì là từ 0 đến 255). Việc biến đổi như vậy vơ hình chung là ta đã làm mất đi các ý niệm về mặt khơng gian liên quan đến bức ảnh đó. Nói một cách nơm na hơn là FC layer cố gắng "đập bẹp"một tấm ảnh có cấu trúc khơng gian (spatial) thành một danh sách các điểm ảnh (pixel) và xem các pixel này như các đặc trưng độc lập.

Convolutional Neural Network (CNN) hay gọi là mạng neuron tích chập(hình 2.16) là một biến thể của mơ hình ANN, CNN được thiết kế dành riêng cho các bài tốn thị giác máy tính. CNN sử dụng các lớp layer ứng dụng các heuristic đặc thù của bài toán thị giác máy tính để khắc phục các nhược điểm của một mạng neuron cổ điển, từ đó cho ra hiệu suất và độ chính xác cao hơn.

Một mạng CNN bao gồm nhiều lớp (layers), một layer thì lại cấu tạo bởi nhiều nút neuron. Mỗi neuron này là một hàm hợp của hàm kích hoạt phi tuyến và hàm tuyến tính của các tham số và bias có thể học được trong q trình huấn luyện. Tuy nhiên, khác với mạng neuron bình thường, ở tầng hidden mạng CNN có cấu trúc như sau:

• Convolution layer: Tầng convolution là cốt lõi của một mạng CNN. Mỗi tầng convolution (hoặc ngắn gọn là CONV) sẽ bao gồm K bộ lọc có thể học (hay cịn gọi là kernels). Mỗi bộ lọc này cũng là một khối ba chiều với chiều cao và chiều rộng nhỏ (thường là 3x3 và 5x5) nhưng lại có chiều sâu trải dài bằng với chiều sâu của input đầu vào. Q trình forward pass có thể được mô phỏng như là đang trượt các bộ lọc này xung quanh vùng không gian input từ trái qua phải trên xuống dưới, mỗi lần trượt thì thực hiện phép tính nhân từng phân tử (element-wise multiplication) rồi tổng hợp chúng lại và lưu vào một ma trận không gian 2 chiều gọi là activation map.

• Activation (ACT): Kết quả sau khi thực hiện quá trình forward pass ở tầng CONV sẽ được truyền vào một hàm phi tuyến. Trong mạng CNN thì các hàm phi tuyến này thường là RELU, ELU hoặc các biến thể leaky RELU. Tầng activation về bản chất không phải là một tầng đúng nghĩa trong CNN và có thể được gộp với tầng CONV. Tuy nhiên thì ở một số tài liệu người ta vẫn hay viết ACT như một tầng riêng trong kiến trúc để tăng tính tường minh. Vì hàm phi tuyến được thực hiện trên từng phần tử của khối đầu vào nên kích thước của tầng này sẽ bằng với tầng trước đó.

• Pooling layer: lớp này cũng dùng một ma trận lọc để kết hợp thông tin ở tầng trước lại cho ra một ma trận mới biểu diễn thông tin tổng thể cho các đặc trưng của ảnh. Tầng này giúp giảm kích thước ảnh đi khá nhiều. Việc giảm chiều kích thước cũng có tác dụng làm giảm ln số lượng tham số cần phải học trong quá trình huấn luyện cũng như giảm overfitting, đồng thời giảm ln thời gian huấn luyện.

• Fully Connected layer: kết nối mỗi neuron ở tầng này với tất cả neuron ở tầng khác. Lớp này thường được đặt ở cuối hidden layer để tổng hợp thông tin và cho ra output.

Một phần của tài liệu Nhận diện và phân loại các thành phần giao diện của ứng dụng từ ảnh chụp màn hình (Trang 36 - 38)

Tải bản đầy đủ (PDF)

(101 trang)