Convolutional Neural Network là gì? Những điều bạn cần biết về CNN
BÀI LIÊN QUAN
Reinforcement Learning: Bước tiến quan trọng của Trí tuệ nhân tạo?Self-Supervised Learning: Liệu máy móc có thể học như con người?Unsupervised Learning là gì? Ví dụ và so sánh với Supervised LearningConvolutional Neural Network là gì?
Mạng nơ-ron, mạng thần kinh (Neural Network) là một tập con của học máy (Machine Learning) và là trung tâm của các thuật toán học sâu (Deep Learning). Neural Network bao gồm các lớp nút (node), một lớp đầu vào, một hoặc nhiều lớp ẩn và một lớp đầu ra. Mỗi nút kết nối với nút khác có trọng số và ngưỡng liên quan. Nếu đầu ra của bất kỳ nút riêng lẻ nào cao hơn giá trị ngưỡng chỉ định, nút đó sẽ được kích hoạt, gửi dữ liệu đến lớp tiếp theo của mạng.
Có nhiều loại mạng nơ-ron khác nhau và chúng được sử dụng trong các trường hợp và loại dữ liệu khác nhau. Ví dụ: mạng nơ-ron hồi quy (Recurrent Neural Network) thường được sử dụng để xử lý ngôn ngữ tự nhiên (NLP) và nhận dạng giọng nói; trong khi mạng nơ-ron tích chập (Convolutional Neural Network ) đa phần được sử dụng cho các nhiệm vụ phân loại và thị giác máy tính (Computer Vision).
Mạng thần kinh tích chập, tiếng Anh là Convolutional Neural Network, viết tắt là CNN.
Trong học sâu, Convolutional Neural Network là một lớp của mạng thần kinh sâu (Deep Neural Network). Ứng dụng phổ biến nhất của CNN là phân tích hình ảnh trực quan.Trước CNN, các phương pháp trích xuất tính năng để xác định các đối tượng trong ảnh diễn ra một cách thủ công, tốn thời gian.
Tuy nhiên, các mạng thần kinh tích chập hiện cung cấp khả năng mở rộng với các tác vụ nhận dạng đối tượng và phân loại hình ảnh. Chúng tận dụng các nguyên tắc đại số tuyến tính - phép nhân ma trận - để xác định các mẫu trong một hình ảnh. Điền này có nghĩa là Convolutional Neural Network có thể đòi hỏi tính toán và yêu cầu các đơn vị xử lý đồ họa (GPU) để huấn luyện các mô hình.
CNN hoạt động như thế nào?
Mạng thần kinh tích chập được phân biệt với các mạng thần kinh khác nhờ hiệu suất vượt trội của chúng. Convolutional Neural Network có thể xử lý đầu vào là tín hiệu hình ảnh, lời nói và âm thanh, với ba lớp chính:
- Lớp tích chập (Convolutional layer)
- Lớp tổng hợp (Pooling layer)
- Lớp kết nối đầy đủ (Fully-connected (FC) layer)
Lớp tích chập là lớp đầu tiên của mạng tích chập. Theo sau lớp tích chập có thể là các lớp tích chập bổ sung hoặc các lớp tổng hợp. Như dù như thế nào thì lớp FC vẫn là lớp cuối cùng. Các lớp sẽ có độ phức tạp tăng dần và có nhiệm vụ xác định các phần lớn hơn của hình ảnh. Các lớp trước tập trung vào các tính năng đơn giản, chẳng hạn như màu sắc và các cạnh. Khi dữ liệu hình ảnh tiến triển qua các lớp, CNN bắt đầu nhận ra các yếu tố hoặc hình dạng lớn hơn của đối tượng cho đến khi cuối cùng nó xác định được đối tượng.
Lớp tích chập
Lớp tích chập là khối xây dựng cốt lõi của Convolutional Neural Network và là nơi diễn ra phần lớn tính toán. Để hoạt động, lớp này yêu cầu thành phần dữ liệu đầu vào, bộ lọc và bản đồ tính năng.
Quá trình tích chập liên quan đến bộ phát hiện tính năng, còn gọi là hạt nhân (kernel) hoặc bộ lọc, di chuyển qua các trường tiếp nhận của hình ảnh, kiểm tra xem một tính năng có trong hình ảnh hay không.
Qua nhiều lần lặp lại, bộ phát hiện tính năng quét qua toàn bộ hình ảnh. Sau mỗi lần lặp lại, một tích vô hướng được tính toán giữa các pixel đầu vào và bộ lọc. Đầu ra cuối cùng từ chuỗi các dấu chấm được gọi là bản đồ tính năng. Cuối cùng, hình ảnh được chuyển đổi thành các giá trị số trong lớp này, cho phép CNN giải thích hình ảnh và trích xuất các mẫu có liên quan từ nó.
Lớp tổng hợp
Pooling layer tiến hành giảm kích thước, giảm số lượng tham số trong đầu vào. Có hai loại tổng hợp chính:
- Tổng hợp tối đa: Khi bộ lọc di chuyển qua đầu vào, nó sẽ chọn pixel có giá trị lớn nhất để gửi đến mảng đầu ra.
- Tổng hợp trung bình: Khi bộ lọc di chuyển qua đầu vào, nó sẽ tính toán giá trị trung bình trong trường tiếp nhận để gửi đến mảng đầu ra.
Mặc dù rất nhiều thông tin bị mất trong lớp tổng hợp nhưng nó cũng mang lại một số lợi ích cho CNN. Chúng giúp giảm độ phức tạp, nâng cao hiệu quả và hạn chế rủi ro trang bị thừa.
Lớp kết nối đầy đủ
Lớp này thực hiện nhiệm vụ phân loại dựa trên các tính năng được trích xuất thông qua các lớp trước đó và các bộ lọc khác nhau của chúng. Trong khi các lớp tích chập và tổng hợp có xu hướng sử dụng các hàm ReLu, thì các lớp FC thường tận dụng chức năng kích hoạt softmax để phân loại đầu vào một cách thích hợp, tạo ra xác suất từ 0 đến 1.
Các loại mạng thần kinh tích chập
Kunihiko Fukushima và Yann LeCun đã đặt nền móng nghiên cứu cho mạng thần kinh tích chập vào năm 1980 và năm 1989. Nổi tiếng hơn, Yann LeCun đã áp dụng thành công kỹ thuật lan truyền ngược để huấn luyện các mạng nơ-ron xác định và nhận dạng các mẫu trong một loạt mã zip viết tay. Và đỉnh cao nghiên cứu là “LeNet-5” trong những năm 1990. Kể từ đó, một số kiến trúc CNN biến thể đã xuất hiện cùng với việc các bộ dữ liệu mới, chẳng hạn như MNIST và CIFAR-10. Tuy nhiên, LeNet-5 vẫn được gọi là kiến trúc CNN cổ điển. Một số kiến trúc Convolutional Neural Network khác bao gồm:
- AlexNet
- VGGNet
- GoogLeNet
- ResNet
- ZFNet
Convolutional Neural Network và Neural Network: sự khác biệt là gì?
Sự khác biệt giữa Mạng thần kinh tích chập và mạng thần kinh thông thường
Vấn đề lớn nhất với các mạng thần kinh thông thường (Neural Network - NN) là thiếu khả năng mở rộng. Đối với những hình ảnh nhỏ hơn với ít kênh màu hơn, NN thông thường có thể tạo ra kết quả khả quan. Nhưng khi kích thước và độ phức tạp của hình ảnh tăng lên, nhu cầu về sức mạnh tính toán và tài nguyên cũng tăng lên, điều này đòi hỏi phải có một NN lớn hơn và đắt tiền hơn.
Hơn nữa, vấn đề overfitting (hiện tượng mô hình tìm được quá khớp với dữ liệu đào tạo) cũng phát sinh theo thời gian. Sau đó, nó học được tiếng ồn trong dữ liệu, điều này ảnh hưởng đến hiệu suất của nó trên các tập dữ liệu thử nghiệm. Cuối cùng, NN không xác định được các tính năng hoặc mẫu trong tập dữ liệu và chính đối tượng đó.
Ngược lại, CNN sử dụng chia sẻ tham số. Trong mỗi lớp của CNN, mỗi nút kết nối với nút khác. Một CNN cũng có trọng số liên quan; khi bộ lọc của các lớp di chuyển trên hình ảnh, các trọng số vẫn cố định - được gọi là chia sẻ tham số. Điều này làm cho toàn bộ hệ thống CNN ít tính toán chuyên sâu hơn so với hệ thống NN.
Lợi ích của việc sử dụng CNN để học sâu
Học sâu là một tập hợp con của học máy sử dụng mạng thần kinh có ít nhất ba lớp. So với mạng chỉ có một lớp, mạng có nhiều lớp có thể mang lại kết quả chính xác hơn. Cả RNN (Mạng thần kinh hồi quy) và CNN đều được sử dụng trong deep learning, tùy thuộc vào từng ứng dụng.
Đối với các ứng dụng nhận dạng hình ảnh, phân loại hình ảnh và thị giác máy tính (CV) , CNN đặc biệt hữu ích vì chúng cung cấp kết quả có tính chính xác cao, nhất là khi có nhiều dữ liệu. CNN cũng học các tính năng của đối tượng trong các lần lặp lại liên tiếp khi dữ liệu đối tượng di chuyển qua nhiều lớp của CNN. Việc học trực tiếp (và sâu) này giúp loại bỏ nhu cầu trích xuất tính năng thủ công (kỹ thuật tính năng).
CNN có thể được đào tạo cho các nhiệm vụ nhận dạng mới và được xây dựng trên các mạng có sẵn. Những lợi thế này mở ra những cơ hội mới để sử dụng CNN cho các ứng dụng trong thế giới thực mà không làm tăng độ phức tạp hoặc chi phí tính toán.
Như đã đề cập, CNN hiệu quả hơn về mặt tính toán so với NN thông thường vì chúng sử dụng chia sẻ tham số. Các mô hình rất dễ triển khai và có thể chạy trên mọi thiết bị, ngay cả điện thoại thông minh.
CNN và thị giác máy tính
Convolutional Neural Network cung cấp năng lượng cho các tác vụ nhận dạng hình ảnh và thị giác máy tính. Thị giác máy tính là một lĩnh vực trí tuệ nhân tạo (AI) cho phép máy tính và hệ thống lấy thông tin có ý nghĩa từ hình ảnh kỹ thuật số, video và các đầu vào hình ảnh khác, và dựa trên những đầu vào đó, nó có thể thực hiện hành động. Khả năng cung cấp các đề xuất này phân biệt nó với các tác vụ nhận dạng hình ảnh.
Các ứng dụng phổ biến nhất của thị giác máy tính và CNN được sử dụng trong các lĩnh vực như sau:
- Marketing: Các nền tảng truyền thông xã hội cung cấp gợi ý về những người có thể có mặt trong bức ảnh đã được đăng tải, giúp việc gắn thẻ bạn bè trở nên dễ dàng hơn.
- Chăm sóc sức khỏe: CNN có thể kiểm tra hàng nghìn báo cáo trực quan để phát hiện bất kỳ tình trạng bất thường nào ở bệnh nhân, chẳng hạn như sự hiện diện của các tế bào ung thư ác tính.
- Bán lẻ: Tìm kiếm trực quan đã được tích hợp vào một số nền tảng thương mại điện tử, cho phép các thương hiệu đề xuất các sản phẩm thời trang có khả năng thu hút khách hàng.
- Ô tô: Mặc dù thời đại của ô tô không người lái vẫn chưa thực sự xuất hiện, nhưng công nghệ cơ bản đã bắt đầu thâm nhập vào ô tô, cải thiện sự an toàn của người lái và hành khách thông qua các tính năng như phát hiện làn đường.
- Xử lý âm thanh cho trợ lý ảo: CNN trong trợ lý ảo tìm hiểu và phát hiện các từ khóa do người dùng nói, đồng thời xử lý thông tin đầu vào để phản hồi người dùng.
Kết luận
Convolutional Neural Network (CNN) đã đạt được những thành tựu đáng kinh ngạc trên nhiều lĩnh vực khác nhau, bao gồm cả nghiên cứu y học với sự quan tâm ngày càng tăng trong X quang. Mặc dù học sâu đã trở thành một phương pháp thống trị trong nhiều nhiệm vụ phức tạp như phân loại hình ảnh và phát hiện đối tượng, nhưng công nghệ này không phải là thuốc chữa bách bệnh. Làm quen với các khái niệm và ưu điểm chính của mạng thần kinh tích chập cũng như những hạn chế của học sâu là điều cần thiết để tận dụng nghiên cứu X quang với mục tiêu cải thiện hiệu suất của bác sĩ và chăm sóc bệnh nhân.