Tác giả: Timviec365.vn
Lần cập nhật gần nhất: ngày 18 tháng 06 năm 2024
Đã bao giờ bạn nghe đến Convolutional neural network? Và liệu bạn có hiểu Convolutional neural network là gì? Đặc điểm của thuật toán này là như thế nào? Ứng dụng của nó trong đời sống thực tiễn ra sao? Hãy cùng Timviec365.vn đi tìm lời giải đáp nhé!
Với những ai không có năng khiếu về công nghệ thông tin, hay các lĩnh vực liên quan đến tin học ứng dụng, khoa học máy tính, khoa học dữ liệu, thuật toán và các phần mềm máy tính thì Convolutional neural network sẽ khá xa lạ với các bạn. Bài viết này sẽ cung cấp những thông tin cơ bản giúp bạn hiểu rõ hơn về thuật toán này nhé.
Không phải ai cũng có thể giải nghĩa chính xác về Convolutional neural network. Nhưng nói một cách đơn giản thì thuật toán Convolutional neural network còn gọi là Mạng nơ ron tích chập, thường được viết tắt là CNN. Đây là một trong những mô hình của Deep Learning (Deep learning là tập hợp các thuật toán để cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp hoặc bằng cách khác). Tác dụng của thuật toán này chính là giúp chúng ta tạo ra được những hệ thống thông minh, có sự phản ứng với độ chính xác cao. Thêm vào đó là khả năng áp dụng được vào đời sống thực tiễn. Ví dụ như Facebook, Google,...đã đưa vào sản phẩm của mình chức năng nhận diện khuôn mặt người dùng,...
Lấy ví dụ đơn giản để giải thích cho khái niệm này. Tức là chúng ta sử dụng CNN để xác định xem hình ảnh đó là gì, tức là nó có thể là cái này hoặc là cái kia. Một điều khó đối với chúng ta chính là việc máy tính chỉ hiểu được các con số mà thôi. Nếu ta đưa hình ảnh vào thì nó sẽ giống như một mảng các điểm ảnh hai chiều và khi so sánh các điểm ảnh không trùng thì sẽ không khớp. Và điều chúng ta muốn là dù bị thay đổi thì ta vẫn có thể biết được hình ảnh đó là gì? Đó chính là lúc ta dùng CNN.
Feature có thể hiểu là đặc điểm. Ở đây, ta thấy CNN so sánh hình ảnh theo từng mảnh, mỗi mảnh đó được gọi là Feature. So với việc khớp các bức ảnh lại với nhau thì CNN làm việc nhìn ra sự tương đồng trong việc tìm kiếm thô các Feature khớp với nhau trong hai hình ảnh tốt hơn.
Mỗi feature được coi như một hình ảnh mini, tức là chúng cũng là những mảng hai chiều nhỏ. Các Feature sẽ được khớp với các khía cạnh chung của bức ảnh đó nghĩa là feature này sẽ tương ứng với khía cạnh nào đó của hình ảnh và chúng sẽ được khớp lại với nhau.
Convolutional ở đây có thể hiểu với ý nghĩa là tích chập. Nói một cách đơn giản thì khi xem một hình ảnh mới, CNN sẽ không biết nó ở vị trí nào, và các Feature sẽ khớp với nhau ở đâu, vì vậy nó thử chúng ở tất cả các vị trí khác nhau.Trong quá trình đó chúng ta tạo thành được một bộ lọc, được gọi là Filter. Và để thực hiện được điều này, chúng ta đã sử dụng phần toán gọi là nơ ron tích chập.
Nếu bạn muốn tính toán được sự khớp của các Feature với mỗi mảnh của hình ảnh thì ta lấy kết quả của phép tính giữa mỗi điểm ảnh trong Feature nhân với giá trị của điểm ảnh tương ứng trong hình ảnh đó. Sau khi có được kết quả của phép tính tùng feature với ảnh đó ta sẽ đem cộng lại hết với nhau rồi chia cho số lượng tất cả các điểm ảnh có trong Feature đó. Nếu các điểm ảnh mà khớp nhau thì sẽ cho kết quả là 1, còn nếu không thì kết qua sẽ là (-1).
Để hoàn tất được quá trình tích chập, chúng ta phải lặp lại hành động trên. Quá trình đó chính là việc ta xếp tất cả các Feature vào tất cả mọi mảnh hình ảnh có thể thực hiện được. Kết quả của quá trình này chính là chúng ta có những hình ảnh đã được lọc, mỗi cái sẽ có filter tương ứng. Có thể nói, quá trình tích chập diễn ra theo từng lớp một và nó được gọi là layer.
Tham khảo ngay: Bật mí vấn đề công nghệ thông tin gồm những chuyên ngành nào?
Có thể nói đây là một lớp cực kỳ quan trọng trong CNN, bởi ở lớp này sẽ thực hiện mọi phép tính toán. Một số khái niệm cần nhắc đến ở Convolutional layer là filter map, stride, padding, feature map.
- Nếu như ANN kết nối với từng pixel của hình ảnh đầu vào thì CNN sử dụng những filter để áp vào những vùng của hình ảnh. Các filter map này chính là một ma trận 3 chiều, trong đó bao gồm những con số và các con số đó chính là parameter.
- Stride ở đây có thể hiểu là khi bạn dịch chuyển filter map theo pixel dựa vào một giá trị từ trái sang phải. Stride đó chính là chỉ sự dịch chuyển này.
- Padding: những giá trị 0 được thêm vào lớp input
- Feature map: thể hiện kết quả mỗi lần filter map quét qua input. Mỗi lần quét như thế sẽ xảy ra quá trình tính toán.
Nếu như đầu vào quá lớn, các lớp pooling layer sẽ được xếp vào giữa các lớp Convolutional layer để làm giảm các parameter.
Pooling layer có 2 loại phổ biến là max pooling và average pooling.
Ở đây, khi sử dụng lớp max pooling thì số lượng parameter giảm đi. Khi đo CNN gồm nhiều lớp filter map, mỗi filter map đó sẽ cho max pooling khác nhau.
Relu layer chính là một hàm kích hoạt trong neural network. Hàm kích hoạt còn được gọi là activation function. Tác dụng chính của hàm kích hoạt này chính là việc mô phỏng các neuron có tỷ lệ truyền xung qua axon. Trong activation function có các hàm cơ bản như: Sigmoid, Tanh, Relu, Leaky relu, Maxout.
Hiện nay, hàm relu đang được sử dụng khá phổ biến và thông dụng. Đặc biệt là trong việc huấn luyện các mạng neuron thì relu có những ưu điểm khá nổi bật. Có thể kể đến như việc tính toán nhanh hơn,...
Khi sử dụng relu đầu tiên thì chúng ta phải chú ý đến việc tùy chỉnh các learning rate và theo dõi dead unit.
Lớp relu layer được sử dụng sau khi mỗi filter map được tính toán ra và áp dụng hàm relu lên tất cả các giá trị của filter map.
Dùng để đưa ra kết quả. Ví dụ, sau khi các lớp Convolutional layer và pooling layer đã nhận được các ảnh đã truyền qua nó, thì lúc đó ta sẽ thu được kết quả là model dã đọc được khá nhiều thông tin về ảnh. Vì vậy, để liên kết các đặc điểm đó lại và cho ra output chúng ta dùng fully connected layer.
ngoài ra, ở fully connected layer, thì khi có được các giữ liệu hình ảnh, chúng sẽ chuyển nó thành các mục có sự phân chia chất lượng. Giống như kiểu chia nó thành các phiếu bầu và sau đó sẽ đánh giá đề bầu cho hình ảnh đạt chất lượng tốt. Mặc dù vậy, quá trình này không được coi là quá trình dân chủ cho lắm.
Xem thêm: Hackathon là gì? Các thông tin liên quan của cuộc thi Hackathon
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ơ 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.
- Shared weights and bias: 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.
Để chọn được tham số cho CNN thì chúng ta cần để ý đến các số lượng của các mục sau: số convolution layer, filter size, pooling size và việc train test.
- Số convolution layer: lớp này càng nhiều thì chương trình chạy càng được cải thiện. Việc sử dụng các layer với số lượng lớn sẽ dẫn đến các tác động có thể được giảm một cách đáng kể. Có thể chỉ sau 3 đến 4 layer thôi cũng đã đạt được kết quả như mong muốn.
- Filter size: thông thường, các filter size sẽ có kích thước là 3x3 hoặc 5x5
- Pooling size: nếu hình ảnh thông thường thì sẽ sử dụng kích thước 2x2, còn nếu đầu vào hình ảnh lớn ta có thể sử dụng 4x4
- Train test: Việc train test nên được thực hiện một cách nhiều lần. Như vậy, sẽ cho ra được các parameter tốt nhất.
Có thể nó, thuật toán Convolutional neural network đêm đến cho ta mô hình có chất lượng rất tốt. Mặc dù, về bản chất, đây là thuật toán không quá đơn giản, nhưng nó cho ra kết quả khá hài lòng. tuy nhiên, không phải ai cũng có thể hiểu được thuật toán này ngay khi mới tiếp xúc với nó.
Mong rằng, bài viết này đã giúp các bạn độc giả hiểu rõ hơn về Convolutional neural network, một thuật toán ứng dụng rất nhiều trong việc áp dụng các hệ thống thông tin xử lý thông minh như phát triển xe hơi tự lái hay giao hàng tự động,...
Nếu bạn yêu thích IT và muốn biết rõ hơn về các công việc trong ngành nghề này, các tin tuyển dụng it hàng đầu thì bạn có thể tra cứu trên website timviec365.vn. Đây là trang web cập nhật những thông tin mới nhất và đầy đủ nhất về việc làm cũng như định hướng các nghề nghiệp tương lai cho bản thân.
Xem thêm: Hackerrank là gì? Những quốc gia sở hữu lập trình viên giỏi hiện nay
Về Timviec365
Dành cho ứng viên
Dành cho nhà tuyển dụng
Việc làm theo khu vực
Việc làm theo ngành nghề
Công ty TNHH MTV JOB365
Nơi cấp: Sở Kế hoạch và Đầu tư tỉnh Hưng Yên
Địa chỉ: Thôn Thị Trung, Xã Đình Dù, huyện Văn Lâm, Hưng Yên.Hotline: 0979.524.615
Liên hệ telegram: @timviec365
Email: timviec365.vn@gmail.com
TẢI APP ĐỂ TÌM VIỆC SIÊU TỐC
App CV365
App JobChat365
Công ty TNHH MTV JOB365
Nơi cấp: Sở Kế hoạch và Đầu tư tỉnh Hưng Yên
Địa chỉ: Thôn Thị Trung, Xã Đình Dù, huyện Văn Lâm, Hưng Yên.Hotline: 0979.524.615
Liên hệ telegram: @timviec365
Email: timviec365.vn@gmail.com
TẢI APP ĐỂ TÌM VIỆC SIÊU TỐC
Tải app để tìm việc siêu tốc Tạo CV đẹp với 365+ mẫu CV xin việc