MẠNG NÔNG THÔN CÁCH MẠNG (CNN)
Kết nối với chúng tôi

Tìm kiếm theo chiều dọc Plato

Dữ Liệu Lớn.

MẠNG NÔNG THÔN CÁCH MẠNG (CNN)

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu. Để hiểu về mạng Nơ-ron hợp pháp, trước tiên chúng ta cần biết Học sâu là gì? Học sâu là một lĩnh vực mới nổi của Học máy; nghĩa là, nó là một tập hợp con của Học máy, nơi học tập diễn ra từ các ví dụ hoặc kinh nghiệm trong quá khứ với sự trợ giúp của […]

Các bài viết MẠNG NÔNG THÔN CÁCH MẠNG (CNN) xuất hiện đầu tiên trên Phân tích Vidhya.

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu.

Để hiểu về mạng Nơ-ron hợp pháp, trước tiên chúng ta cần biết Học sâu là gì?

Học sâu là một lĩnh vực mới nổi của Học máy; nghĩa là, nó là một tập hợp con của Học máy, nơi học tập xảy ra từ các ví dụ hoặc kinh nghiệm trong quá khứ với sự trợ giúp của 'Mạng lưới thần kinh nhân tạo'.

Deep Learning sử dụng mạng nơ-ron sâu, trong đó từ 'sâu' biểu thị sự hiện diện của nhiều hơn 1 hoặc 2 lớp ẩn ngoài lớp đầu vào và đầu ra.

Mạng nơron nhân tạo là gì?

Mạng nơ-ron nhân tạo được tạo thành từ các nơ-ron, là đơn vị xử lý cốt lõi của mạng. Để hiểu rõ hơn, hãy tham khảo sơ đồ dưới đây:

Trong sơ đồ đã cho, trước tiên, chúng ta có 'TẦNG ĐẦU VÀO ', nơi các tế bào thần kinh được nuôi dưỡng bằng các quan sát huấn luyện. Sau đó, ở giữa là 'TẦNG LƯU TRỮ'thực hiện hầu hết các tính toán theo yêu cầu của mạng chúng tôi. Cuối cùng, 'TẦNG ĐẦU RA'dự đoán kết quả cuối cùng được trích xuất từ ​​hai lớp trước đó.

MẠNG NỀN TẢNG CÁCH MẠNG

nguồn: researchgate.net

Mạng nơ-ron này hoạt động như thế nào?

  • Ví dụ: nếu một hình ảnh được chuyển làm đầu vào, với các pixel NXN, thì mỗi pixel được cung cấp làm đầu vào cho mỗi nơ-ron của lớp đầu tiên.
  • Tế bào thần kinh của một lớp được kết nối với các lớp sau thông qua 'kênh'.
  • Mỗi kênh này được gán một giá trị số gọi là 'trọng số'.
  • Các đầu vào (x1, x2, …… xn) được nhân với trọng số tương ứng của chúng và tổng của chúng được gửi đến các nơ-ron trong lớp ẩn.
  • Mỗi nơ-ron này được liên kết với một giá trị số được gọi là 'Bias', được thêm vào tổng đầu vào.
  • Giá trị này sau đó được chuyển qua một hàm ngưỡng được gọi là 'Hàm kích hoạt', xác định xem liệu nơ-ron cụ thể có được kích hoạt hay không.
  • Tế bào thần kinh được kích hoạt sẽ truyền dữ liệu đến các tế bào thần kinh của lớp tiếp theo qua các kênh.
  • Do đó, dữ liệu được truyền qua mạng và nơ-ron có giá trị cao nhất sẽ xác định đầu ra.
  • Đầu ra = f (sigma w i*xi) + Bias, trong đó f là hàm kích hoạt.

Các loại mạng thần kinh sâu:

  • Mạng lưới thần kinh nhân tạo
  • Perceptron nhiều lớp
  • Mạng thần kinh tái diễn
  • Mạng thần kinh chuyển đổi

MẠNG NÔNG THÔN CÁCH MẠNG (CNN):

Nó là một lớp mạng lưới thần kinh sâu chiết xuất các tính năng từ hình ảnh, được đưa ra làm đầu vào, để thực hiện các tác vụ cụ thể như phân loại hình ảnh, nhận dạng khuôn mặt và hệ thống hình ảnh ngữ nghĩa. CNN có một hoặc nhiều lớp tích chập để trích xuất tính năng đơn giản, thực hiện phép toán tích chập (nghĩa là nhân một tập hợp trọng số với đầu vào) trong khi vẫn giữ lại các tính năng quan trọng (thông tin không gian và thời gian) mà không có sự giám sát của con người.

Tại sao chúng ta cần CNN thay vì ANN?

CNN là cần thiết vì nó là một cách quan trọng và chính xác hơn cho các bài toán phân loại hình ảnh. Với Mạng thần kinh nhân tạo, hình ảnh 2D trước tiên sẽ được chuyển đổi thành vectơ 1 chiều trước khi huấn luyện mô hình.

Ngoài ra, với sự gia tăng kích thước của hình ảnh, số lượng thông số huấn luyện sẽ tăng theo cấp số nhân, dẫn đến mất bộ nhớ. Hơn nữa, ANN không thể nắm bắt thông tin tuần tự cần thiết cho dữ liệu trình tự.

Do đó, CNN sẽ luôn là cách được ưu tiên để giải quyết các vấn đề phân loại hình ảnh 2D vì khả năng xử lý hình ảnh dưới dạng dữ liệu, do đó cung cấp độ chính xác cao hơn.

Kiến trúc của CNN:

MẠNG NỀN TẢNG CÁCH MẠNG

nguồn: phương tiện

Ba lớp chính xác định cấu trúc của một mạng nơ-ron tích tụ là:

1)Lớp chuyển đổi:

Đây là lớp đầu tiên của mạng chập, thực hiện việc trích xuất đối tượng địa lý bằng cách trượt bộ lọc qua hình ảnh đầu vào. Đầu ra hoặc tính năng được biến đổi là sản phẩm khôn ngoan của các bộ lọc trong hình ảnh và tổng của chúng cho mọi hành động trượt.

Lớp đầu ra, còn được gọi là bản đồ đặc trưng, ​​tương ứng với các hình ảnh gốc như đường cong, cạnh sắc nét, kết cấu, v.v.

Trong trường hợp mạng có nhiều lớp phức hợp hơn, các lớp ban đầu được dùng để trích xuất các tính năng chung trong khi các phần phức tạp sẽ bị loại bỏ khi mạng trở nên sâu hơn.

Hình ảnh dưới đây cho thấy phép toán tích chập.

Lớp chuyển đổi

nguồn: analyticsindiamag.com

2)Lớp gộp:

Mục đích chính của lớp này là giảm số lượng các tham số có thể truyền đạt được bằng cách giảm kích thước không gian của hình ảnh, do đó giảm chi phí tính toán.

Độ sâu hình ảnh không thay đổi vì quá trình gộp được thực hiện độc lập trên mỗi kích thước độ sâu. Tổng hợp tối đa là phương pháp tổng hợp phổ biến nhất, trong đó phần tử quan trọng nhất được lấy làm đầu vào từ bản đồ đối tượng. Sau đó, Max Pooling được thực hiện để cung cấp hình ảnh đầu ra với kích thước giảm đến mức lớn trong khi vẫn giữ được thông tin cần thiết.

Lớp gộp

nguồn: wiki khoa học máy tính

3) Lớp được kết nối đầy đủ:

Một vài lớp cuối cùng xác định đầu ra là các lớp được kết nối đầy đủ. Đầu ra từ lớp gộp được Làm phẳng thành vectơ một chiều và sau đó được đưa ra làm đầu vào cho lớp được kết nối đầy đủ.

Lớp đầu ra có cùng số lượng tế bào thần kinh với số danh mục mà chúng ta đã có trong bài toán phân loại, do đó liên kết các tính năng với một nhãn cụ thể.

Sau khi quá trình này được gọi là truyền chuyển tiếp, sản lượng được tạo ra được so sánh với quá trình sản xuất thực tế để tạo ra lỗi.

Sau đó, lỗi được gắn thẻ ngược để cập nhật các bộ lọc (trọng số) và giá trị thiên vị. Do đó, một quá trình đào tạo được hoàn thành sau chu kỳ truyền chuyển tiếp và truyền ngược này.

THỰC HIỆN

Bây giờ, hãy triển khai CNN bằng cách lấy một ví dụ về việc phân loại một hình ảnh là một con chó hoặc con mèo. Tập dữ liệu có thể được tải xuống từ https://www.kaggle.com/c/dogs-vs-cats/data

#importing các thư viện cần thiết

nhập cv2 import os nhập numpy dưới dạng np nhập gấu trúc dưới dạng pd nhập sklearn nhập keras từ keras.models nhập tensorflow nhập tuần tự dưới dạng tf từ keras.preprocessing.image import ImageDataGenerator #Data Preprocessing train_datagen = ImageDataGenerator (rescale = 1./255, shear_range = 0.2, zoom_range = 0.2, ngang_flip = True) train_generator = train_datagen.flow_from_directory (r "C: dog vs catstrain", target_size = (64,64), batch_size = 32, class_mode = 'binary') test_datagen = ImageDataGenerator (rescale = 1 ./255) validation_generator = test_datagen.flow_from_directory (r "C: dog vs catstest", target_size = (64,64), batch_size = 32, class_mode = 'binary') ## Xây dựng Mô hình CNN #initialize mô hình cnn = tf .keras.models.Sequential () #Convolution cnn.add (tf.keras.layers.Conv2D (bộ lọc = 32, kernel_size = 3, kích hoạt = 'relu', input_shape = [64,64,3])) #Pooling cnn .add (tf.keras.layers.MaxPool2D (pool_size = 2, strides = 2)) # Thêm một lớp Convolution nữa cnn.add (tf.keras.layers.Conv2D (bộ lọc = 32 3, kernel_size = 2, activation = 'relu')) # Thêm một lớp Pooling Layer cnn.add (tf.keras.layers.MaxPool2D (pool_size = 2, strides = 128)) #Flatening cnn.add (tf.keras. layer.Flatten ()) #Full Connection Layer cnn.add (tf.keras.layers.Dense (units = 128, activation = 'relu')) #Full Connection Layer cnn.add (tf.keras.layers.Dense (units = XNUMX, kích hoạt = 'relu')) # biên dịch mô hình cnn.compile (tối ưu hóa = 'adam', loss = 'binary_crossentropy', metrics = ['precision']) cnn.summary ()
MẠNG NỀN TẢNG CÁCH MẠNG

Kết quả ở trên cho thấy số lượng tham số có thể đào tạo là 813,217, có thể được giảm bớt bằng cách thêm nhiều lớp phức hợp và gộp hơn. Với việc tăng số lớp, các tính năng được trích xuất sẽ cụ thể hơn.

cnn.fit (x = train_generator, validation_data = validation_generator, epochs = 25)
MẠNG NỀN TẢNG CÁCH MẠNG

Do đó, chúng tôi nhận được độ chính xác lên đến 90%, có thể tăng thêm nữa bằng cách thêm nhiều lớp hơn trước khi lớp được kết nối hoàn toàn.

Chúng tôi đã thực hiện 25 kỷ nguyên; bạn có thể tăng thêm số lượng kỷ nguyên để đào tạo mô hình của mình.

Đọc thêm các bài viết trên của chúng tôi Blog của chúng tôi..

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả. 

Được Viết Bởi

Luồng liên quan

Blockchain

Cựu nghị sĩ Singapore, Calvin Cheng, thành lập công ty đầu tư mã thông báo không thể thay thế (NFT) và mã thông báo của người hâm mộ được quản lý đầu tiên ở Dubai. Cơ quan quản lý tài sản ảo Dubai ...

Dữ Liệu Lớn.

Amazon QuickSight là một dịch vụ thông minh kinh doanh (BI) có khả năng mở rộng, không máy chủ, có thể nhúng, học máy (ML) được xây dựng cho đám mây hỗ trợ liên kết nhận dạng trong cả ...

Dữ Liệu Lớn.

Amazon QuickSight là một dịch vụ thông minh kinh doanh (BI) có khả năng mở rộng, không máy chủ, có thể nhúng, học máy (ML) được xây dựng cho đám mây hỗ trợ liên kết nhận dạng trong cả ...

Dữ Liệu Lớn.

Amazon QuickSight là một dịch vụ thông minh kinh doanh (BI) có khả năng mở rộng, không máy chủ, có thể nhúng, học máy (ML) được xây dựng cho đám mây hỗ trợ liên kết nhận dạng trong cả ...