Convolutional Neural Network là gì? Cách chọn tham số cho Convolutional Neural Network chuẩn chỉnh

Xuất phát từ mô hình Deep Learning, Convolutional Neural Network được xem là hệ thống thuật toán có độ chính xác rất cao. Hiện nay, Convolutional Neural Network được sử dụng rộng rãi trong việc nhận dạng hình ảnh, khuôn mặt cực kỳ thông minh, linh hoạt. Vậy Convolutional Neural Network là gì? Hãy cùng Tino Group tìm hiểu ngay bài viết dưới đây nhé!

Đôi nét về Convolutional Neural Network

Convolutional Neural Network là gì?

Convolutional Neural Network (CNN hoặc ConvNet) được tạm dịch là: Mạng nơ ron tích tụ. Đây được xem là một trong những mô hình của Deep Learning – tập hợp các thuật toán để có 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ý cấu trúc phức tạp. Hiểu đơn giản, CNN là một lớp của mạng nơ-ron sâu, được áp dụng phổ biến nhất để phân tích hình ảnh trực quan.

convolutional-neural-network-la-giHiện tại, tất cả chúng ta chưa có định nghĩa một cách đúng mực nhất về thuật toán CNN. Mạng CNN được phong cách thiết kế với mục tiêu giải quyết và xử lý tài liệu trải qua nhiều lớp mảng. Ngoài ra, CNN hoàn toàn có thể giúp bạn tạo ra được mạng lưới hệ thống mưu trí, phản ứng với độ đúng mực khá cao .

Ví dụ: Bạn có thể sử dụng loại mạng thần kinh này trong các ứng dụng như: nhận dạng hình ảnh, nhận dạng khuôn mặt và hiện tại đã được đưa vào các nền tảng Facebook, Google,…

So với những mạng nơ ron thường thì, mạng CNN nhận nguồn vào là một mảng hai chiều và hoạt động giải trí trực tiếp trên hình ảnh thay vì tập trung chuyên sâu trích xuất tính năng mà bạn thường thấy ở những mạng nơ ron khác .

Feature là gì?

Feature được dịch theo nghĩa tiếng Việt là đặc thù. Khi sử dụng thuật toán CNN so sánh hình ảnh theo từng mảnh, mỗi mảnh đó được gọi là Feature .
Mỗi Feature được xem như một hình ảnh mini hay gọi là những mảng hai chiều nhỏ. Các Feature được khớp với những góc nhìn chung trong bức ảnh đó. Nghĩa là Feature sẽ tương ứng với góc nhìn nào đó của hình ảnh và chúng sẽ khớp lại với nhau .

Convolutional là gì?

Convolutional được hiểu là tích chập. Xét về cơ bản, khi xem một hình ảnh mới, thuật toán CNN sẽ không nhận ra được nó ở vị trí nào, những Feature sẽ khớp với nhau ở đâu ?
Chính vì thế, Convolutional sẽ thử chúng với toàn bộ những vị trí khác nhau và tạo thành một bộ lọc gọi là Filter. Quá trình này được thực thi trải qua phần toán nơ ron tích chập .
convolutional-neural-network-la-gi

Convolutional Neural Network có mấy lớp cơ bản?

#1. Convolutional Layer

Trong ba lớp của Convolutional Neural Network, Convolutional Layer được xem là lớp có vai trò quan trọng nhất. Bởi vì Convolutional Layer sẽ đại diện thay mặt CNN thực thi mọi phép toán .
Khi nhắc đến lớp Convolutional Layer, tất cả chúng ta cần làm rõ một số ít khái niệm đó là : Filter Map, Stride, Padding, Feature Map .

Filter Map

Nếu như ANN liên kết với từng Pixel của hình ảnh nguồn vào thì CNN được sử dụng những Filter để áp vào những vùng của hình ảnh. Những Filter Map này hoàn toàn có thể xem là một ma trận 3 chiều, gồm có những số lượng và những số lượng chính là Parameter .

Stride

Trong Convolutional Neural Network, Stride được hiểu là khi tất cả chúng ta di dời Filter Map theo Pixel và dựa vào giá trị từ trái sang phải. Stride đơn thuần là biểu lộ sự di dời này .

Padding

Padding chính là những giá trị 0 được thêm vào lớp Input .

Feature Map

Đây là tác dụng hiển thị sau mỗi lần Filter Map quét qua Input. Cứ mỗi lần quét như vậy, bạn sẽ thấy sự Open của quy trình thống kê giám sát được xảy ra .

#2. Pooling Layer

Khi đầu vào quá lớn, những lớp Pooling Layer sẽ được di dời vào giữa những lớp Convolutional Layer nhằm mục đích giảm những Parameter .
Pooling Layer được biết đến với hai loại phổ cập là : Max Pooling và Average Pooling .
Tại Pooling Layer, khi bạn sử dụng lớp Max Pooling thì số lượng Parameter hoàn toàn có thể sẽ giảm đi. Vì vậy, Convolutional Neural Network sẽ Open nhiều lớp Filter Map, mỗi Filter Map đó sẽ cho ra một Max Pooling khác nhau .
convolutional-neural-network-la-gi

#3. Relu Layer

Đây chính là một hàm kích hoạt trong Neural Network. Chúng ta hoàn toàn có thể biết đến hàm kích hoạt này với một tên gọi khác là Activation Function. Nhiệm vụ chính của hàm kích hoạt là mô phỏng lại những Neuron có tỷ suất truyền xung qua Axon. Trong đó, hàm kích hoạt sẽ gồm có những hàm cơ bản như : Sigmoid, Tanh, Relu, Leaky Relu, Maxout .
Hiện nay, hàm Relu đang được sử dụng khá thông dụng và thông dụng. Đặc biệt, Relu chiếm hữu những ưu điểm điển hình nổi bật như : tương hỗ giám sát nhanh nên rất được ưu thích sử dụng trong việc huấn luyện và đào tạo những mạng Neuron .
Khi sử dụng Relu, bạn cần quan tâm đến việc tùy chỉnh những Learning Rate và theo dõi Dead Unit. Lớp Relu Layer này được sử dụng sau khi Filter Map được thống kê giám sát ra và vận dụng hàm Relu lên tổng thể những giá trị trên Filter Map .

#4. Fully Connected Layer

Fully Connected Layer thường sử dụng để đưa ra những hiệu quả .

Ví dụ: Sau khi các lớp Convolutional Layer và Pooling Layer nhận được các ảnh đã truyền qua chúng, bạn sẽ thu được kết quả là Model đã đọc được khá nhiều thông tin về ảnh. Do đó, để có thể liên kết các đặc điểm này lại và cho ra Output, bạn cần dùng đến Fully Connected Layer.

Bên cạnh đó, khi có được những tài liệu về hình ảnh, Fully Connected Layer sẽ quy đổi chúng thành những mục có phân loại chất lượng. Tương tự như kiểu chia chúng thành những phiếu bầu và nhìn nhận để chọn ra hình ảnh đạt chất lượng tốt nhất. Dù vậy, quy trình này không được coi là quy trình dân chủ nên rất ít sử dụng .

Cấu trúc của Convolutional Neural Network

Mạng Convolutional Neural Network là tập hợp nhiều lớp Convolutional chồng lên nhau, sử dụng những hàm Nonlinear Activation và tanh để kích hoạt những trọng số trong những node. Ở mỗi lớp CNN, sau khi được những hàm kích hoạt sẽ tạo ra những thông tin trừu tượng hơn cho những lớp tiếp theo. Mỗi Layer kết tiếp sẽ là tác dụng Convolution từ Layer trước đó nên tất cả chúng ta có được những liên kết cục bộ .
Thông qua quy trình huấn luyện và đào tạo mạng, những lớp Layer CNN tự động học những giá trị được bộc lộ qua những lớp Filter .

Ví dụ: Trong tác vụ phân lớp ảnh, CNNs sẽ cố gắng tìm kiếm những thông số tối ưu cho các Filter tương ứng theo một thứ tự: Raw Pixel => Edges => Shapes => Facial => High – level Features. Layer cuối cùng được dùng để phân lớp ảnh.

Tại quy mô CNN, bạn cần quan tâm đến hai góc nhìn là : Location Invariance ( tính không bao giờ thay đổi ) và Compositionality ( tính tích hợp ). Nếu cùng một đối tượng người dùng được chiếu theo những góc nhìn khác nhau ( Translation, Rotation, Scaling ) thì tính đúng mực của thuật toán sẽ bị tác động ảnh hưởng đáng kể .
convolutional-neural-network-la-gi

Những phép dịch chuyển, quay hoặc co dãn sẽ được sử dụng Pooling Layer làm bất biến các tính chất kia. Do vậy, CNN đưa ra kết quả có độ chính xác khá cao trong các mô hình.

CNN có cấu trúc cơ bản gồm ba phần chính là : Local Receptive Field, Shared Weights And Bias và Pooling .

Local Receptive Field

Local Receptive Field, tạm dịch : trường tiếp đón cục bộ. Đây được xem là lớp giúp bạn hoàn toàn có thể tách lọc những tài 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

Shared Weights, tạm dịch : trọng số san sẻ. Chức năng chính của lớp này là tương hỗ bạn làm giảm tối đa số lượng những tham số trong mạng CNN. Vì trong mỗi Convolution sẽ gồm 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

Pooling Layer, tạm dịch : lớp tổng hợp. Đây được xem gần như là lớp ở đầu cuối trước khi đưa ra tác dụng trong CNN. Chính cho nên vì thế, để có được hiệu quả dễ hiểu và dễ sử dụng nhất thì Pooling Layer có trách nhiệm làm đơn giản hóa những thông tin đầu ra. Nghĩa là, sau khi hoàn thành xong quy trình thống kê giám sát và quét những lớp thì sẽ đi đến Pooling Layer nhằm mục đích lượt bớt những không tin không thiết yếu và cho ra tác dụng mà tất cả chúng ta đang cần .

Cách chọn tham số cho Convolutional Neural Network chuẩn chỉnh

Convolutional Neural Network là thuật toán mang lại cho bạn chất lượng quy mô vô cùng tốt để kiến thiết xây dựng mạng lưới hệ thống một cách mưu trí nhất. Để chọn được những tham số cho Convolutional Neural Network chuẩn nhất, bạn cần quan tâm đến những số lượng ở 4 yếu tố sau : số Convolution Layer, Filter Size, Pooling Size và cách Train Test .
convolutional-neural-network-la-gi

Số Convolution Layer

Lớp số Convolution Layer càng nhiều thì chương trình của bạn chạy càng được cải tổ. Khi sử dụng những Layer với một số lượng lớn, những ảnh hưởng tác động hoàn toàn có thể được giảm một cách đáng kể. Có thể sau 3 đến 4 Layer thì bạn đã có được hiệu quả mong ước .

Filter Size

Phần lớn những Filter Size thường có size là 3 × 3 hoặc 5 × 5

Pooling Size

Đối với những loại ảnh thường thì sẽ có kích cỡ là 2 × 2, tuy nhiên nếu nguồn vào hình ảnh của bạn lớn thì hoàn toàn có thể sử dụng Pooling Size 4 × 4 để bảo vệ chất lượng cho ảnh .

Train Test

Bạn nên thực thi Train Test nhiều lần để so sánh những hiệu quả với nhau. Điều này giúp bạn có được những Parameter tốt nhất .
Về cơ bản, Convolutional Neural Network mang đến cho bạn những quy mô chất lượng cao. Tuy nhiên, để hiểu và sử dụng thuật toán này lại không mấy thuận tiện với tổng thể mọi người, đặc biệt quan trọng là những người mới tiếp xúc với CNN lần đầu .
Hy vọng bài viết này hoàn toàn có thể giúp bạn hiểu rõ hơn về “ Convolutional Neural Network là gì ? ” và cách lựa chọn tham số CNN tương thích. CNN hoàn toàn có thể xem là một trong những thuật toán mưu trí, hiệu suất cao cao được ứng dụng rất nhiều vào những mạng lưới hệ thống giải quyết và xử lý thông tin như nâng cấp cải tiến xe hơi tự điều khiển và tinh chỉnh, giao hàng tự động hóa, … Chúc những bạn có những thưởng thức hữu dụng với thuật toán CNN nhé !

FAQs về Convolutional Neural Network

Áp dụng Convolution vào Layer trong Neural Network có thể xử lý được gì?

Khi vận dụng Convolution vào Layer trong Neural Network, bạn hoàn toàn có thể xử lý yếu tố lượng lớn Parameter nhưng vẫn bảo vệ lấy ra được những đặc trưng của ảnh .

Kernel cho từng Chanel có thể sử dụng tùy ý không?

Kernel cho từng Chanel được Initial bằng những giá trị nào đó. Sau mỗi lần Train, những giá trị này được update lại bằng chiêu thức Backpropagation. Như vậy, những giá trị trong Kernel không quá độc lạ so với những trọng số Weight thường thì, bạn hoàn toàn có thể tính Gradient của nó theo hàm Loss để trừ ra dần .

Tại sao theo sau Convolution Layer lại là Pooling Layer?

Pooling Layer theo sau Convolution Layer với mục tiêu để giảm Size của Matrix. Ví dụ như : khi bạn dùng Max Pooling 2 × 2 thì trong 4 giá trị sẽ chọn giá trị lớn nhất, nghĩa là 4 còn lại 1 .

Tại sao Convolutional Layer thể hiện số Kernel mà không ghi cụ thể từng Kernel?

Hệ số trong CNN sẽ tự học qua quy trình Training. Do đó, bạn không hề biết đơn cử từng Kernel, chỉ hoàn toàn có thể nhận diện sử dụng từng đấy chỉ số Kernel thôi .

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh
    Văn phòng đại diện: 42 Trần Phú, Phường 4, Quận 5, Thành phố Hồ Chí Minh
  • Điện thoại: 0364 333 333
    Tổng đài miễn phí: 1800 6734
  • Email: [email protected]
  • Website: www.tino.org

5/5 – ( 1 bầu chọn )

Source: https://expgg.vn
Category: Thông tin

Total
0
Shares
Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Previous Post

CME là gì? Những điều cần biết về sự ảnh hưởng của CME đến Bitcoin

Next Post

Sàn giao dịch CoinAll là gì? Hướng dẫn đăng ký, sử dụng sàn giao dịch tiền điện tử CoinAll chi tiết nhất

Related Posts