Cnn deep learning là gì

Convolutional Neural Network [CNNs – Mạng nơ-ron tích chập] là một trong những mô hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay.

Bạn đang xem: Convolutional neural network là gì

Như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động.

CNN đượ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: Tinh Trùng Có Màu Gì Là Tốt, Tinh Trùng Màu Gì Là Bình Thường

Convolutional là gì?

Là một cửa sổ trượt [Sliding Windows] trên một ma trận như mô tả hình dưới:


2 lớp cuối cùng của các kết nối trong mạng là một lớp đầy đủ kết nối [fully connected layer] . Lớp này nối mọi nơron từ lớp max pooled tới mọi nơron của tầng ra.

Cách chọn tham số cho CNN

Số các convolution layer: càng nhiều các convolution layer thì performance càng được cải thiện. Sau khoảng 3 hoặc 4 layer, các tác động được giảm một cách đáng kểFilter size: thường filter theo size 5×5 hoặc 3×3Pooling size: thường là 2×2 hoặc 4×4 cho ảnh đầu vào lớnCách cuối cùng là thực hiện nhiều lần việc train test để chọn ra được param tốt nhất.

Tham Khảo:

Bạn có biết các nhà nghiên cứu đang liên tục làm việc để huấn luyện máy móc suy nghĩ như con người và chúng cũng đang thành công không? Cơ bản đằng sau điều này là Neuron Network. Bạn sẽ nghiên cứu cách mạng nơ-ron phức tạp đã trở thành xương sống của ngành trí tuệ nhân tạo và cách CNN định hình các ngành công nghiệp trong tương lai.

Các bài viết liên quan:

Machine learning có nhiều thuật toán chịu trách nhiệm truyền thông tin cho hệ thống. Có rất nhiều ứng dụng của Machine learning. Một trong những ứng dụng đó là của thị giác máy tính. Mục tiêu nhận dạng khuôn mặt và các hình ảnh khác được thực hiện tốt với sự trợ giúp của một loại mạng nơ-ron đặc biệt được gọi là Convolutional Neural Networks [CNN]. Trong blog này, chúng ta sẽ thấy hoạt động đằng sau những CNN này cũng như lịch sử và ứng dụng của chúng.

CNN [Convolutional Neural Networks] là gì?

Convolutional Neural Networks là một loại Thuật toán Deep learning lấy hình ảnh làm đầu vào và tìm hiểu các tính năng khác nhau của hình ảnh thông qua các bộ lọc. Điều này cho phép họ tìm hiểu các đối tượng quan trọng có trong hình ảnh, cho phép họ phân biệt hình ảnh này với hình ảnh kia. 

Ví dụ: CNN sẽ tìm hiểu các đặc điểm cụ thể của mèo để phân biệt với chó để khi chúng ta cung cấp thông tin đầu vào của chó và mèo, nó có thể dễ dàng phân biệt giữa chúng. Một tính năng quan trọng của Convolutional Neural Networks khiến nó trở nên khác biệt với các thuật toán Machine learning khác là khả năng tự xử lý trước dữ liệu. Do đó, bạn có thể không tốn nhiều tài nguyên trong việc xử lý trước dữ liệu. Trong quá trình khởi động, các bộ lọc có thể yêu cầu kỹ thuật thủ công nhưng với sự tiến bộ trong quá trình đào tạo, chúng có thể thích ứng với các tính năng đã học và phát triển các bộ lọc của riêng mình. Do đó, CNN liên tục phát triển với sự tăng trưởng về dữ liệu.

Xem thêm Các ứng dụng của Machine Learning trong thực tế

Bây giờ, sau khi biết CNN là gì, hãy chuyển sang hoạt động của CNN.

Làm thế nào để Convolutional Neural Networks hoạt động?

CNN có hiệu suất tương tự như các Neuron Network được kết nối đầy đủ thông thường. Các CNN này có các trọng số có thể học hỏi từ đầu vào và độ chệch. Mọi nơ-ron được kết nối trong mạng đều nhận được đầu vào và thực hiện một sản phẩm chấm trên đó. Điều này tiến hành theo kiểu phi tuyến tính. Có một chức năng điểm số có thể phân biệt ở cuối. Hàm này bao gồm các điểm số mà chúng ta thu được từ các lớp khác nhau của mạng nơ-ron. Cuối cùng, một hàm mất mát ở cuối để đánh giá hiệu suất của mô hình. Mạng nơ-ron tích chập khác với Mạng nơ-ron tiêu chuẩn ở chỗ có một giả định rõ ràng về đầu vào là một hình ảnh.

Xem thêm Cách học Machine Learning hiệu quả- 7 bước học Machine learning

CNN hoạt động như thế nào

Giả định này giúp kiến ​​trúc định nghĩa theo cách thực tế hơn. Ví dụ, không giống như sự sắp xếp tuyến tính của các nơ-ron trong một mạng nơ-ron đơn giản. Những tế bào thần kinh này có cấu trúc tổng thể gồm ba chiều – Chiều dài, Chiều rộng và Chiều cao. Ví dụ: Kiến trúc của Convolutional Neural Networks như sau:

INPUT – Như đã thảo luận ở trên, một hình ảnh điển hình trong dữ liệu CIFAR 10 sẽ chứa hình ảnh nếu kích thước 32x32x3 trong đó độ sâu biểu thị số kênh [RGB] trong hình ảnh.

CONV LAYER – chịu trách nhiệm tính toán kết quả dấu chấm giữa trọng số của nơ-ron và vùng của hình ảnh đầu vào có chung kết nối.

Lớp thứ ba bao gồm RELU dành cho việc áp dụng chức năng chấm kết quả của chúng ta. Kích thước của kết quả này không thay đổi.

Lớp POOL thứ tư sẽ lấy mẫu giảm kích thước không gian của hình ảnh, tức là chiều rộng và chiều cao.

Lớp quan trọng nhất trong kiến ​​trúc của CNN là Lớp Convolutions. Thành phần thiết yếu của lớp CONV bao gồm một bộ lọc có thể học được. Khi chuyển tiếp diễn ra, chúng ta thực hiện trượt trên từng bộ lọc theo chiều rộng cũng như chiều sâu của khối lượng đầu vào và cuối cùng chúng ta tính toán giá trị chấm. Sản phẩm chấm này cuối cùng sẽ dẫn đến một map kích hoạt 2 chiều, cung cấp cho chúng ta phản hồi của bộ lọc ở mọi vị trí không gian.

Sau đó, mạng sẽ tìm hiểu các bộ lọc khác nhau đi kèm với các đặc điểm trực quan như cạnh hoặc các đốm màu trong lớp đầu tiên và tạo ra một chiếc lược mật giống như một mẫu ở lớp cao hơn của mạng.

Xem thêm Machine Learning trong SEO -kỹ thuật tương lai 2021

Ví dụ cách hoạt động của CNN

Nói chung, một mạng nơ-ron hợp hiến có ba lớp. Và chúng tôi hiểu từng lớp một với sự trợ giúp của ví dụ về trình phân loại. Với nó, nó có thể phân loại một hình ảnh của một X và O. Vì vậy, với trường hợp, chúng tôi sẽ hiểu tất cả bốn lớp.

Mạng thần kinh chuyển đổi có các lớp sau:

  • Convolutional
  • ReLU Layer
  • Pooling
  • Fully Connected Layer

Có một số trường hợp phức tạp hơn khi X có thể biểu diễn ở bốn dạng này cũng như ở bên phải, vì vậy đây không là gì khác ngoài tác động của các hình ảnh bị biến dạng. Ở đây, có nhiều bản trình bày của X và O. Điều này làm cho máy tính khó nhận ra. Nhưng mục tiêu là nếu tín hiệu đầu vào trông giống như các hình ảnh trước đó mà nó đã thấy trước đây, thì tín hiệu tham chiếu “hình ảnh” sẽ được đối sánh với tín hiệu đầu vào. Tín hiệu đầu ra kết quả sau đó được chuyển sang lớp tiếp theo. Hãy xem xét sơ đồ được hiển thị bên dưới:

Máy tính hiểu một hình ảnh bằng cách sử dụng các số ở mỗi pixel.

Trong ví dụ của chúng tôi, chúng tôi đã xem xét rằng một pixel màu xanh lam sẽ có giá trị 1 và một pixel màu trắng sẽ có giá trị -1. Đây là cách chúng tôi đã triển khai để phân biệt các pixel trong phân loại nhị phân chính.

Khi chúng tôi sử dụng các kỹ thuật tiêu chuẩn để so sánh hai hình ảnh này, một là hình ảnh phù hợp của X và một hình ảnh khác là hình ảnh méo mó của X. Chúng tôi nhận thấy rằng máy tính không thể phân loại hình ảnh bị biến dạng của X. Nó đang so sánh với hình ảnh phù hợp. đại diện của X. Vì vậy, khi chúng tôi thêm các giá trị pixel của cả hai hình ảnh này, chúng tôi nhận được một cái gì đó, vì vậy máy tính không thể nhận ra đó có phải là X hay không.

Với sự trợ giúp của CNN, chúng tôi chụp các mảng nhỏ trên hình ảnh của mình, vì vậy những mảng hoặc mảng này được gọi là bộ lọc. Chúng tôi đã tìm thấy các đối tượng địa lý thô trùng khớp ở cùng một vị trí trong hai hình ảnh. CNN trở nên tốt hơn với sự tương đồng giữa toàn bộ các sơ đồ đối sánh hình ảnh. Chúng tôi có các bộ lọc này, vì vậy hãy coi bộ lọc đầu tiên này chính xác bằng với đặc điểm của một phần hình ảnh trong các hình ảnh bị biến dạng cũng như đây là một hình ảnh thích hợp.

CNN so sánh từng phần của hình ảnh.

Bằng cách tìm các kết quả trùng khớp thô, ở cùng một vị trí trong hai hình ảnh, CNN có thể nhìn thấy sự giống nhau tốt hơn nhiều so với các sơ đồ đối sánh toàn bộ hình ảnh.

Chúng tôi có ba tính năng hoặc bộ lọc, như được hiển thị bên dưới.

Nhân các giá trị pixel tương ứng

Hoạt động của mạng nơ-ron hợp hiến Hoạt động của mạng nơ-ron hợp pháp

Thêm và chia theo tổng số pixel

Tạo Bản đồ để đưa giá trị của bộ lọc vào vị trí

Để theo dõi đối tượng địa lý nơi chúng tôi tạo bản đồ và đặt một lượng bộ lọc tại vị trí đó.

Trượt Bộ lọc trong suốt Hình ảnh

Bây giờ, sử dụng chức năng tương tự và di chuyển nó đến một vị trí khác và thực hiện lại việc lọc.

Convolution Layer Output

Chúng tôi sẽ chuyển các đối tượng địa lý đến mọi vị trí khác của hình ảnh và sẽ xem các đối tượng địa lý khớp với khu vực đó như thế nào. Cuối cùng, chúng ta sẽ nhận được đầu ra là;

Tương tự, chúng tôi thực hiện cùng một phép chập với mọi bộ lọc khác.

ReLU Layer

Trong lớp này, chúng tôi loại bỏ mọi giá trị âm khỏi các hình ảnh được lọc và thay thế chúng bằng các số không.

Nó đang xảy ra để tránh các giá trị cộng lại với số không.

Rectified Linear unit[ReLU] chỉ kích hoạt một nút nếu đầu vào cao hơn một số lượng nhất định. Trong khi dữ liệu dưới 0, đầu ra bằng 0, nhưng khi thông tin tăng lên trên một ngưỡng. Nó có mối quan hệ tuyến tính với biến phụ thuộc.

Chúng tôi đã xem xét bất kỳ chức năng đơn giản nào với giá trị như đã đề cập ở trên. Vì vậy, hàm chỉ hoạt động nếu biến phụ thuộc nhận được giá trị đó. Ví dụ

, các giá trị sau nhận được.

Loại bỏ các giá trị phủ định

Đầu ra cho một tính năng

Đầu ra cho tất cả các tính năng

Pooling Layer

Trong lớp, chúng tôi thu nhỏ ngăn xếp hình ảnh thành một kích thước nhỏ hơn. Việc gộp chung được thực hiện sau khi đi qua lớp kích hoạt. Chúng tôi thực hiện bằng cách thực hiện 4 bước sau:

  • Chọn một kích thước cửa sổ [thường là 2 hoặc 3]
  • Chọn một sải chân [thường là 2]
  • Đi ngang qua Cửa sổ của bạn trên các hình ảnh đã lọc của bạn
  • Từ mỗi Cửa sổ, lấy giá trị lớn nhất

Hãy để chúng tôi hiểu điều này với một ví dụ. Xem xét thực hiện gộp với kích thước cửa sổ là 2 và sải chân cũng là 2.

Tính giá trị lớn nhất trong mỗi Cửa sổ

Hãy bắt đầu hình ảnh được lọc đầu tiên của chúng tôi. Trong Cửa sổ đầu tiên của chúng tôi, giá trị lớn nhất hoặc cao nhất là 1, vì vậy chúng tôi theo dõi điều đó và di chuyển Cửa sổ hai bước.

Di chuyển cửa sổ trên toàn bộ hình ảnh

Đầu ra sau khi đi qua lớp gộp

Stacking up the layers

Để có được khung thời gian trong một hình ảnh, chúng ta đang ở đây với ma trận 4 × 4 từ ma trận 7 × 7 sau khi chuyển đầu vào qua 3 lớp – Convolution, ReLU và Pooling như hình dưới đây:

chúng tôi giảm hình ảnh từ 4 × 4 thành một cái gì đó nhỏ hơn? Chúng tôi cần thực hiện 3 hoạt động trong lần lặp sau lần chuyển đầu tiên. Vì vậy, sau lần vượt qua thứ hai, chúng tôi đã đến ma trận 2 × 2, như hình dưới đây:

Lớp cuối cùng trong mạng được kết nối đầy đủ, có nghĩa là các nơ-ron của các lớp trước được kết nối với mọi nơ-ron trong các lớp tiếp theo.

Điều này bắt chước lý luận cấp cao, nơi tất cả các con đường có thể có từ đầu vào đến đầu ra đều được xem xét.

Sau đó, lấy hình ảnh đã thu nhỏ và đưa vào danh sách duy nhất, vì vậy chúng ta có sau khi chuyển qua hai lớp chập và gộp và sau đó chuyển đổi nó thành một tệp duy nhất hoặc một vectơ.

Chúng tôi lấy Giá trị 1 đầu tiên, sau đó chúng tôi lấy lại 0,55, chúng tôi lấy 0,55 sau đó chúng tôi thi lại 1. Sau đó chúng tôi lấy 1 rồi lấy 0,55, sau đó chúng tôi lấy 1 rồi 0,55 và 0,55 rồi lại lấy lại 0,55 lấy 0,55, 1, 1, và 0,55. Vì vậy, đây không là gì ngoài một vectơ. Lớp được kết nối đầy đủ là lớp cuối cùng, nơi diễn ra sự phân loại. Ở đây, chúng tôi lấy các hình ảnh đã lọc và thu nhỏ của chúng tôi và đưa chúng vào một danh sách duy nhất như được hiển thị bên dưới.

Output

Khi chúng tôi đưa vào, ‘X’ và ‘0’. Sau đó, sẽ có một số phần tử trong vector sẽ cao. Hãy xem xét hình ảnh bên dưới, như chúng ta có thể thấy đối với ‘X’ có các phần tử hàng đầu khác nhau, và tương tự, đối với “O”, chúng tôi có các phần tử cao khác nhau.

Có những giá trị cụ thể trong danh sách của tôi, cao và nếu chúng tôi lặp lại toàn bộ quy trình mà chúng tôi đã thảo luận cho các chi phí riêng lẻ khác nhau. Cái nào sẽ cao hơn, vì vậy với một X chúng ta có giá trị vectơ thứ 1, 4, 5, 10 và phần tử thứ 11 là cao hơn. Và đối với O, chúng ta có vectơ phần tử thứ 2, 3, 9 và 12 cao hơn. Bây giờ chúng ta biết liệu chúng ta có một hình ảnh đầu vào có giá trị vectơ phần tử thứ 1, 4, 5, 10 và 11 cao hay không. Tương tự, chúng ta có thể phân loại nó thành X nếu hình ảnh đầu vào của chúng ta có một danh sách có giá trị vectơ phần tử thứ 2 thứ 3 thứ 9 và thứ 12 cao để chúng ta có thể sắp xếp nó

Sau đó, các giá trị thứ nhất, thứ 4, thứ 5, thứ 10 và thứ 11 là cao và chúng ta có thể phân loại hình ảnh thành ‘x.’ Khái niệm này cũng tương tự đối với các bảng chữ cái khác – khi các giá trị nhất định được sắp xếp theo cách của chúng, chúng có thể được ánh xạ thành một chữ cái thực tế hoặc một số mà chúng tôi yêu cầu

So sánh Vectơ đầu vào với X

Sau khi quá trình đào tạo được thực hiện xong, toàn bộ quá trình cho cả ‘X’ và ‘O.’ Sau đó, chúng tôi nhận được véc tơ 12 phần tử này, nó có 0,9, 0,65 tất cả các giá trị này, bây giờ làm thế nào để chúng tôi phân loại nó cho dù đó là X hay O. Chúng tôi sẽ so sánh nó với danh sách X và O để chúng tôi có tệp ở phần trước trượt nếu chúng tôi nhận thấy rằng chúng tôi có hai danh sách khác nhau cho X và O. Chúng tôi đang so sánh danh sách hình ảnh đầu vào mới này mà chúng tôi đã có với X và O. Trước tiên, chúng ta hãy so sánh với X bây giờ cũng như đối với X, có một số giá trị nhất định sẽ cao hơn và không có gì khác ngoài giá trị 1, 4, 5, 10 và 11. Vì vậy, chúng ta sẽ tính tổng chúng, và chúng ta có 5 = 1+ 1+ 1+ 1 + 1 lần 1, chúng ta có 5, và chúng ta sẽ tính tổng các giá trị tương ứng của vector hình ảnh của chúng ta. Vì vậy, giá trị đầu tiên là 0,9, sau đó giá trị thứ 4 là 0,87 Giá trị thứ 5 là 0,96 và giá trị thứ 10 là 0,89 và giá trị thứ 11 là 0,94 vì vậy sau khi thực hiện tổng các giá trị này có 4,56 và chia nó cho 5 chúng ta có 0,9.

Chúng tôi đang so sánh vectơ đầu vào với 0.

Và đối với X thì chúng ta cũng thực hiện quá trình tương tự đối với O, chúng ta nhận thấy rằng các giá trị vectơ phần tử thứ 2, thứ 3, thứ 9 và thứ 12 là cao. Vì vậy, khi chúng tôi tính tổng các giá trị này, chúng tôi nhận được 4 và khi chúng tôi thực hiện tổng các giá trị tương ứng của hình ảnh đầu vào của chúng tôi. Chúng tôi có 2,07 và khi chúng tôi chia nó cho 4, chúng tôi có 0,51.

Kết quả

Bây giờ, chúng tôi nhận thấy rằng 0,91 là giá trị cao hơn so với 0,5 vì vậy chúng tôi đã so sánh hình ảnh đầu vào của chúng tôi với các giá trị của X, chúng tôi nhận được giá trị cao hơn rồi đến giá trị mà chúng tôi nhận được sau khi so sánh hình ảnh đầu vào với các giá trị của 4. Vì vậy, hình ảnh đầu vào được phân loại là X.

Cách sử dụng CNN

Các bước:

Ở đây, chúng tôi sẽ huấn luyện mô hình của mình về các loại hình ảnh chó và mèo khác nhau và sau khi huấn luyện xong. Chúng tôi sẽ cung cấp nó sẽ phân loại xem đầu vào là chó hay mèo.

Các ứng dụng của Convolutional Neural Networks

Convolutional Neural Networks hoặc CNN được phát triển để nhận dạng hình ảnh và do đó, hầu hết là trong lĩnh vực thị giác máy tính, nơi chúng được sử dụng để phân loại hình ảnh, phân đoạn chúng và cũng thực hiện bản địa hóa trên hình ảnh.

Video khác với hình ảnh theo nghĩa là chúng có chiều không gian. Mặc dù phức tạp hơn hình ảnh, nhưng chúng ta có thể điều chỉnh các CNN này để phù hợp với các loại đầu vào hình ảnh trực tuyến này. Thông thường, CNN đang trở nên rất phổ biến với các thuật toán khác như LSTM và Boltzmann Machines để tăng hiệu suất xử lý đầu vào video.

Ngoài đầu vào trực quan, CNN cũng đang được sử dụng trong lĩnh vực Xử lý ngôn ngữ tự nhiên để phân tích ngữ nghĩa, mô hình câu, dự đoán cũng như phân loại.

Gần đây hơn, các công ty như Google đã và đang sử dụng CNN cùng với Neuron Network định kỳ và LSTM để nhận dạng giọng nói.

CNNs cũng đang được sử dụng trong việc khám phá thuốc, nơi chúng được chứng minh là một công cụ hiệu quả để xác định sự tương tác giữa các phân tử và protein sinh học để xác định các phương pháp điều trị tiềm năng.

Xem thêm 11 phần mềm machine learning hàng đầu

Kết luận

Như vậy là tổng hợp bài viết mạng nơron. Đây là thuật toán phổ biến và quan trọng nhất để làm việc với dữ liệu hình ảnh. chúng ta đã tìm hiểu cách CNN sử dụng cho một số khu vực khác ngoài dữ liệu hình ảnh để tăng phạm vi ứng dụng của nó. chúng ta cũng đã tìm hiểu cách thức hoạt động của CNN và cách chúng có thể thực hiện nhiều hoạt động khác nhau. Hy vọng bạn thích đọc này. Nếu có bất cứ điều gì bạn muốn hỏi hoặc chia sẻ về Mạng nơ-ron Convolutions, hãy bình luận bên dưới.

Video liên quan

Chủ Đề