Mục lục [Ẩn]
Convolutional Neural Network (CNN) đang là một trong những câu hỏi được tìm kiếm nhiều nhất hiện nay. Nếu bạn đang có ý định muốn thử sức trong lĩnh vực này thì đừng bỏ qua những kiến thức mà Nhân Hòa chia sẻ trong bài viết sau đây.
1. Convolutional Neural Network (CNN) là gì?
Convolutional Neural Network hay còn được viết tắt là CNN, trong tiếng Việt được gọi là mạng nơ-ron tích chập, là một trong những mô hình Deep Learning tiên tiến và hiện đại nhất hiện nay. Nhờ có CNN mà chúng ta có thể dễ dàng tạo dựng hệ thống mạng thông minh và có độ chính xác cao.
Convolutional Neural Network (CNN) là gì?
Convolutional Neural Network được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh. Để tìm hiểu tại sao thuật toán này được sử dụng rộng rãi cho việc nhận dạng (detection), chúng ta hãy cùng tìm hiểu về thuật toán này.
>>> Xem thêm: Các trang mạng xã hội lớn nhất - Digital marketing hiệu quả cao
2. Convolutional là gì?
Là một cửa sổ trượt (Sliding Windows) trên một ma trận mô tả như hình
Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy ra những thông tin chính xác nhất mà không cần chọn các feature.
Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa. Ma trận có kích thước 5×5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột.
Convolution hay tích chập là nhân từng phần tử trong ma trận 3. Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ như trong ví dụ trên là 3×3.
Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3×3 với ma trận bên trái. Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5×5 bên trái.
3. Cấu trúc của Convolutional Neural Network
Mạng CNN gồm nhiều lớp Convolution chồng lên nhau, sử dụng các hàm và tanh để kích hoạt các trọng số. Mỗi một lớp sau khi được kích hoạt sẽ cho ra kết quả trừu tượng cho các lớp tiếp theo. Mỗi layer kế tiếp chính là thể hiện kết quả của layer trước đó.
Thông qua quá trình training, các lớp layer CNN tự động học các giá trị được thể hiện qua các lớp filter.
Có 2 điều cần quan tâm ở mô hình CNN là tính bất biến và tính kết hợp. Trong trường hợp, cùng một đối tượng mà chiếu theo những góc khác nhau thì sẽ cho độ chính xác có sự bị ảnh hưởng.
Đối với phép dịch chuyển, quay và co dãn sẽ sử dụng pooling layer để sử dụng làm bất biến các tính chất kia. Vì vậy mà CNN đưa ra kết quả có độ chính xác cao ở các mô hình.
Cấu trúc của Convolutional Neural Network
Cấu trúc cơ bản của CNN gồm 3 phần chính: Local receptive field, shared weights and bias, pooling
- Local receptive field
Hay còn gọi là các trường cục bộ. Tác dụng của lớp này chính là nó giúp chúng ta tách lọc các dữ liệu, thông tin của ảnh và chọn được những vùng ảnh có giá trị sử dụng nhất
Tiếng Việt có nghĩa là Trọng số chia sẻ. Làm giảm tối đa số lượng các tham số là tác dụng chính của yếu tố này trong mạng CNN hiện nay. Bởi trong mỗi convolution có những feature map khác nhau, mỗi feature map lại giúp detect một vài feature trong ảnh
- Pooling layer
Lớp tổng hợp. Đây gần như là lớp cuối cùng trước khi cho ra kết quả. Vì vậy, để có được kết quả dễ hiểu và dễ dùng nhất thì pooling layer sẽ có tác dụng làm đơn giản hóa thông tin đầu ra.Tức là, sau khi hoàn tất các quá trình tính toán và quét các lớp thì sẽ đi đến pooling layer để giảm lược bớt những thông tin không cần thiết, sau đó cho ra kết quả mà chúng ta mong muốn
>>> Xem thêm: 14+ Plugin chia sẻ mạng xã hội Wordpress miễn phí
4. Nên lựa chọn tham số Convolutional Neural Network như thế nào?
Để lựa chọn được tham số phù hợp nhất cho CNN bạn cần chú ý đến các thông số như: filter size, pooling size, số convolution và việc train test
- Convolution test
Nếu lớp này có số lượng nhiều thì chương trình chạy của bạn lại càng được cải thiện. Sử dụng các layer với số lượng lớn có thể dẫn đến tác động được giảm một cách đáng kể. Thường chỉ sau 3-4 layer là bạn sẽ đạt được kết quả như mong muốn
- Filter size
Thông thường các filter size đều có kích thước là 3*3 hoặc 5*5
Nên lựa chọn tham số Convolutional Neural Network như thế nào?
- Pooling size
Với các hình ảnh thông thường thì bạn cần sử dụng kích thước 2*2. Tuy nhiên, nếu đầu vào có hình ảnh lớn hơn bạn nên sử dụng filter size 4*4
- Train test
Bạn cần thực hiện train test nhiều lần, như vậy mới cho ra được các parameter tốt nhất
Nhìn chung, thuật toán Convolutional Neural Network đem đến cho người dùng một mô hình chất lượng. Dù bản chất của nó không phải là một thuật toán quá đơn giản nhưng nó đem lại hiệu quả cao cho người dùng.
Tuy nhiên, đây là thuật toán khá khó hiểu và cần một khoảng thời gian nhất định để có thể ứng dụng nó một cách chính xác nhất.
>>> Xem thêm: Thuật toán Google peguin – chim cánh cụt
5. Kết luận
Bài viết này đã giúp bạn hiểu rõ hơn về thuật ngữ Convolutional Neural Network là gì. Dù bản chất CNN là một thuật toán đơn giản nhưng nó tạo ra cho người dùng hình ảnh đạt mức độ hài lòng cao. Đừng quên truy cập website nhanhoa.com để đọc những bài blog chia sẻ hữu ích khác nhé!
+ Fanpage: https://www.facebook.com/nhanhoacom
+ Chỉ đường: https://g.page/nhanhoacom
+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html
————————————————————
CÔNG TY TNHH PHẦN MỀM NHÂN HÒA
Hotline: 1900 6680
Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội
Tel: (024) 7308 6680 – Email: sales@nhanhoa.com
Chi nhánh TP. Hồ Chí Minh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM
Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com
Chi nhánh Vinh - Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An
Tel: 0915221384 – Email: contact@nhanhoa.com