Quay lại

[Góc chia sẻ] Convolutional neural network là gì? Bạn có biết?

Tác giả: Phương Anh Nguyễn Friday , 11/12/20

Đã 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é!

 
Việc làm IT Phần cứng - mạng

1. Những điều bạn cần biết về Convolutional neural network

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, 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é.

1.1. Bạn hiểu Convolutional neural network là gì?

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,...

Định nghĩa của Convolutional neural network

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.

1.2. Feature

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.

1.3. Thế nào là Convolutional?

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.

Định nghĩa của Convolutional

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.

2. Các lớp cơ bản trong CNN

2.1. Convolutional layer

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.

Các lớp trong Convolutional layer

- 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.

Việc làm it phần mềm

2.2. Pooling layer

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.

2.3. Relu layer

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,...

Cac lớp cơ bản trong CNN

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.

2.4. Fully connected layer

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.

3. Cấu trúc của CNN

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 trong CNN

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.

4. Nên chọn tham số như thế nào cho CNN?

Để 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

Cách chọn tham số trong CNN

- 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 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.

Tìm việc

Từ khóa liên quan

Chuyên mục

Bí quyết viết CV - Tâm sự Nghề nghiệp - Cẩm Nang Tìm Việc - Kỹ Năng Tuyển Dụng - Cẩm nang khởi nghiệp - Kinh nghiệm ứng tuyển việc làm - Kỹ năng ứng xử văn phòng - Quyền lợi người lao động - Bí quyết đào tạo nhân lực - Bí quyết lãnh đạo - Bí quyết làm việc hiệu quả - Bí quyết viết đơn xin nghỉ phép - Bí quyết viết thư xin thôi việc - Cách viết đơn xin việc - Bí quyết thành công trong công việc - Bí quyết tăng lương - Bí quyết tìm việc dành cho sinh viên - Kỹ năng đàm phán lương - Kỹ năng phỏng vấn - Kỹ năng quản trị doanh nghiệp - Kinh nghiệm tìm việc làm tại Hà Nội - Kinh nghiệm tìm việc làm tại Đà Nẵng - Mẹo viết hồ sơ xin việc - Mẹo viết thư xin việc - Chia sẻ kinh nghiệm ngành Kinh doanh - Bán hàng - Định hướng nghề nghiệp - Top việc làm hấp dẫn - Tư vấn nghề nghiệp lao động phổ thông - Tư vấn việc làm Hành chính văn phòng - Tư vấn việc làm ngành Báo chí - Tư vấn tìm việc làm thêm - Tư vấn việc làm ngành Bất động sản - Tư vấn việc làm ngành Công nghệ thông tin - Tư vấn việc làm ngành Du lịch - Tư vấn việc làm ngành Kế toán - Tư vấn việc làm ngành Kỹ thuật - Tư vấn việc làm ngành Sư phạm - Tư vấn việc làm ngành Luật - Tư vấn việc làm thẩm định - Tư vấn việc làm vị trí Content - Tư vấn việc làm ngành Nhà hàng - Khách sạn - Tư vấn việc làm quản lý - Kỹ năng văn phòng - Nghề truyền thống - Các vấn đề về lương - Tư vấn tìm việc làm thời vụ - Cách viết Sơ yếu lý lịch - Cách gửi hồ sơ xin việc - Biểu mẫu phục vụ công việc - Tin tức tổng hợp - Ý tưởng kinh doanh - Chia sẻ kinh nghiệm ngành Marketing - Kinh nghiệm tìm việc làm tại Bình Dương - Kinh nghiệm tìm việc làm tại Hồ Chí Minh - Mẹo viết Thư cảm ơn - Góc Công Sở - Câu chuyện nghề nghiệp - Hoạt động đoàn thể - Tư vấn việc làm Biên - Phiên dịch - Tư vấn việc làm Ngành Nhân Sự - Tư vấn việc làm Ngành Xuất Nhập Khẩu - Logistics - Tư vấn việc làm Ngành Tài Chính - Ngân Hàng - Tư vấn việc làm Ngành Xây Dựng - Tư vấn việc làm Ngành Thiết kế - Mỹ thuật - Tư vấn việc làm Ngành Vận tải - Lái xe - Quản trị nhân lực - Quản trị sản xuất - Cẩm nang kinh doanh - Tư vấn việc làm Ngành Thiết kế - Nội thất - Mô tả công việc ngành Kinh doanh - Mô tả công việc ngành Bán hàng - Mô tả công việc Tư vấn - Chăm sóc khách hàng - Mô tả công việc ngành Tài chính - Ngân hàng - Mô tả công việc ngành Kế toán - Kiểm toán - Mô tả công việc ngành Marketing - PR - Mô tả công việc ngành Nhân sự - Mô tả công việc ngành IT - Công nghệ thông tin - Mô tả công việc ngành Sản xuất - Mô tả công việc ngành Giao nhận - Vận tải - Mô tả công việc Kho vận - Vật tư - Mô tả công việc ngành Xuất nhập khẩu – Logistics - Mô tả công việc ngành Du lịch - Nhà hàng - Khách sạn - Mô tả công việc ngành Hàng không - Mô tả công việc ngành Xây dựng - Mô tả công việc ngành Y tế - Dược - Mô tả công việc Lao động phổ thông - Mô tả công việc ngành Kỹ thuật - Mô tả công việc Nhà nghiên cứu - Mô tả công việc ngành Cơ khí - Chế tạo - Mô tả công việc bộ phận Quản lý hành chính - Mô tả công việc Biên - Phiên dịch - Mô tả công việc ngành Thiết kế - Mô tả công việc ngành Báo chí - Truyền hình - Mô tả công việc ngành Nghệ thuật - Điện ảnh - Mô tả công việc ngành Spa – Làm đẹp – Thể lực - Mô tả công việc ngành Giáo dục - Đào tạo - Mô tả công việc Thực tập sinh - Intern - Mô tả công việc ngành Freelancer - Mô tả công việc Công chức - Viên chức - Mô tả công việc ngành Luật - Pháp lý - Tư vấn việc làm Chăm Sóc Khách Hàng - Tư vấn việc làm Vật Tư - Kho Vận - Hồ sơ doanh nhân - Việc làm theo phường - Danh sách các hoàng đế nổi tiếng - Tài liệu gia sư - Vĩ Nhân Thời Xưa - Chấm Công -