Kiến Trúc Tổng Quát Của Một Ann

ảnh. Kết quả không phải lúc nào cũng tuyệt vời. Thị giác máy tính (computer vision) là lợi ích chính của deep learning. Thị giác máy tính sử dụng deep learning hiện nay đã ngang ngửa với con người trong nhiều nhiệm vụ nhận dạng hình ảnh.

Facebook đã thành công lớn trong việc nhận dạng khuôn mặt trong các bức ảnh bằng cách sử dụng deep learning. Nó không chỉ là một cải tiến nhỏ nhặt, mà là một sự thay đổi xu hướng: "Khi được hỏi liệu hai bức ảnh lạ mặt trên là cùng một người, thì con người sẽ mất 97.53% thời gian. Phần mềm mới được phát triển bởi các nhà nghiên cứu tại Facebook có thể đạt được 97,25% trong cùng một thử thách, bất kể sự thay đổi ánh sáng nào hay liệu người trong ảnh có trực tiếp đối mặt với camera hay không."


Nhận dạng giọng nói là một lĩnh vực khác chịu ảnh hưởng sâu sắc của deep learning. Ngôn ngữ nói chuyện thực sự quá rộng và mơ hồ. Google đang sử dụng deep learning để quản lý năng lượng tại trung tâm dữ liệu của công ty. Họ đã cắt giảm nhu cầu năng lượng làm mát khoảng 40%. Điều đó làm tăng thêm 15% hiệu suất sử dụng điện cho công ty và hàng trăm triệu đô la tiền tiết kiệm.


Illustration Tagger. Phiên bản thực của Illustration2Vec, ứng dụng này có thể gắn thẻ một hình ảnh có đánh giá an toàn, có vấn đề hoặc rõ ràng, bản quyền, và phân loại chung để biết được nhiều thứ hơn về hình ảnh. DeepFilter là một ứng dụng chuyển đổi phong cách giúp áp dụng bộ lọc nghệ thuật cho hình ảnh.


Ứng dụng phân loại độ tuổi (age classification) sử dụng tính năng nhận diện khuôn mặt để xác định độ tuổi của người trong bức ảnh. Places365 Classifier sử dụng dữ liệu CNN có sẵn và dựa trên Places: An Image Database for Deep Scene

Understanding B. Zhou, et al., 2016 để xác định vị trí cụ thể trong các hình ảnh, chẳng hạn như sân, hiệu thuốc, phòng khách sạn, sông băng, núi, etc. Cuối cùng, InceptionNet, một phiên bản thực của Google's InceptionNet sử dụng TensorFlow. Phải cần một hình ảnh (như một chiếc xe hơi) và cho ra 5 mô hình dự đoán tốt nhất có liên quan đến hình ảnh.


Có thể bạn quan tâm!

Xem toàn bộ 76 trang tài liệu này.

Một Số Dự Án Deep Learning Công Khai


Các deep learning được tiếp cận bởi một số dự án được mở công khai. Một số công nghệ phổ biến nhất bao gồm, nhưng không giới hạn ở đó, Deeplearning4j (DL4j), Theano, Torch, TensorFlow và Caffe. Các yếu tố quyết định để sử dụng dựa vào mục tiêu được nhắm tới, liệu chúng có ở cấp thấp, thông dụng hoặc là ứng dụng tập trung không. Dưới đây là tổng quan về mỗi loại:


DL4J:


Dựa trên JVM Distrubted

Tích hợp với Hadoop và Spark


Theano:


Rất phổ biến trong Academia Mức độ tương đối thấp

Tương tác với Python và Numpy


Torch:


Dựa trên Lua


Phiên bản trong nhà được sử dụng bởi Facebook và Twitter Bao gồm các mô hình được đào tạo

TensorFlow:


Phiên bản tiếp theo của Google sau Theano Tương tác với Python và Numpy

Khá phổ biến


Có thể hơi chậm đối với một số loại vấn đề nhất định


Caffe:


Không dùng cho mục đích chung. Tập trung vào các vấn đề về thị giác máy tính

Hoạt động trong C++ và rất nhanh Có một giao diện Python

2.3 Giới thiệu Mạng Neuron


Mạng Neuron nhân tạo (Artificial Neural Network- ANN) là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các Neuron được gắn kết để xử lý thông tin. ANN giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data).

Kết hợp chặt chẽ với logic mờ, mạng neuron nhân tạo đã tạo nên cuộc cách mạng thực sự trong việc thông minh hóa và vạn năng hóa các bộ điều khiển kỹ thuật cao cho cả hiện nay và trong tương lai. Ví dụ như ứng dụng tự động điều khiển hệ thống lái tàu, hệ thống dự báo sự cố,…

Mạng neuron dựa trên việc mô phỏng cấp thấp hệ thống neuron sinh học. Trong tương lai với sự phát triển mô phỏng neuron sinh học, chúng ta có thể có loại máy tính thông minh thật sự.

Các ứng dụng của mạng Neuron được sử dụng trong rất nhiều lĩnh vực như điện, điện tử, kinh tế, quân sự,… để giải quyết các bài toán có độ phức tạp và đòi hỏi có độ chính xác cao như điều khiển tự động, khai phá dữ liệu, nhận dạng,…

Kiến trúc chung của một mạng neuron nhân tạo gồm 3 thành phần đó là: Input Layer, Hidden Layer và Output Layer (Xem Hình).

Hình 2 3 Kiến trúc tổng quát của một ANN Trong đó lớp ẩn Hidden Layer gồm 1

Hình 2.3 Kiến trúc tổng quát của một ANN


Trong đó, lớp ẩn (Hidden Layer) gồm các Neuron nhận dữ liệu input từ các Neuron ở lớp (Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo. Trong một ANN có thể có nhiều lớp ẩn.

Trong đó các Processing Elements (PE) của ANN gọi là Neuron, mỗi Neuron nhận các dữ liệu vào (Inputs) xử lý chúng và cho ra một kết quả (Output) duy nhất. Kết quả xử lý của một Neuron có thể làm Input cho các Neuron khác.

2.4 Mạng Neuron tích chập


Để máy tính xử lí được các dạng dữ liệu tự nhiên (âm thanh, hình ảnh, cảm giác...) cần phải có một kiến trúc đặc biệt giống như cấu trúc của hệ thần kinh. Với khả năng xử lí tuần tự của máy PC hiện nay cho dù có tốc độ rất cao cũng không thể xử lí kịp thời và không đáp ứng được trong các tác vụ điều khiển. Do vậy, muốn có một hệ xử

lí nhanh, đa luồng cần có một hệ xử lí song song đồng thời của nhiều chíp xử lí như hệ thần kinh của cơ thể sống.


Công nghệ mạng neuron tế bào CNN (Cenllular Neural Networks) đã được các nhà khoa học Mỹ và Hungary phát minh ra vào năm 1988 có tốc độ xử lí của một tế bào là 1012 phép tính/giây, cả hệ có khoảng 16 000 CPU xử lí đồng thời. Đây là bước đột phá về cấu trúc của CNN là các CPU song song được kết nối thành mạng tích hợp trong một chip.


2.4.1 Định nghĩa mạng Neuron tích chập


Những năm gần đây, ta đã chứng kiến được nhiều thành tựu vượt bậc trong ngành Thị giác máy tính (Computer Vision). Các 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.


Convolutional Neural Network (CNNs – Mạng neuron tích chập) là một trong những mô hình Deep Learning tiên tiế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. Trong luận văn này, sẽ trình bày về Convolution (tích chập) cũng như ý tưởng của mô hình CNNs trong phân lớp đối tượng để phát hiện và nhận dạng trái cây trong ảnh màu.


2.4.2 Convolution (tích chập)


Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số ( Signal processing). Nhờ vào nguyên lý biến đổi thông tin, các nhà khoa học đã áp dụng kĩ thuật này vào xử lý ảnh và video số.

Để dễ hình dung, có thể xem tích chập như một cửa sổ trượt (sliding window) áp đặt lên một ma trận. Có thể theo dõi cơ chế của tích chập qua hình minh hoạ bên dưới


Hình 2 4 Mô hình tích chập 2


Hình 2.4 Mô hình tích chập

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/convolution.html


Ma trận bên trái là một bức ảnh đen trắng. Mỗi giá trị của ma trận tương đương với một điểm ảnh (pixel), 0 là màu đen, 1 là màu trắng (nếu là ảnh grayscale thì giá trị biến thiên từ 0 đến 255).


Sliding window còn có tên gọi là kernel, filter hay feature detector. Ở đây, dùng một ma trận filter 3×3 nhân từng thành phần tương ứng (element-wise) với ma trận ảnh bên trái. Giá trị đầu ra do tích của các thành phần này cộng lại. Kết quả của tích chập là một ma trận (convoled feature) sinh ra từ việc trượt ma trận filter và thực hiện tích chập cùng lúc lên toàn bộ ma trận ảnh bên trái.


2.4.3 Mô hình mạng nơ-ron tích chập


Bây giờ, đã biết thế nào là convolution. Vậy CNNs là gì? CNNs chỉ đơn giản gồm một vài layer của convolution kết hợp với các hàm kích hoạt phi tuyến (nonlinear

activation function) như ReLU hay tanh để tạo ra thông tin trừu tượng hơn (abstract/higher-level) cho các leyer tiếp theo.


Trong mô hình Feedforward Neural Network ( mạng nơ-ron truyền thẳng), các layer kết nối trực tiếp với nhau thông qua một trọng số w (weighted vector). Các leyer này còn được gọi là kết nối đầy đủ (fully connected layer) hay affine layer.


Trong mô hình CNNs thì ngược lại. Các layer liên kết được với nhau thông qua cơ chế convolution. Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy mà có được các kết nối cục bộ. Nghĩa là mỗi neuron ở layer tiếp theo sinh ra từ Filter áp đặt tên lên một vùng ảnh cục bộ của neuron layer trước đó.


Mỗi layer như vậy được áp đặt các Filter khác nhau, thông thường có vào trăm đến vài nghìn filter như vậy. Một số layer khác như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu). Tuy nhiên, sẽ không đi sâu vào khái niệm của các layer này.


Trong suốt quá trình huấn luyện, CNNs sẽ tự động học được các thông số cho các filter. Ví dụ trong tác vụ phân lớp ảnh, CNNs sẽ cố gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features. Layer cuối cùng được dùng để phân lớp ảnh.

Hình 2 5 Mô hình mạng neuron tích chập 3


Hình 2.5 Mô hình mạng neuron tích chập

https://www.kdnuggets.com/2016/11/intuitive-explanation-convolutional-neural- networks.html/3


CNNs có tính bất biến và tính kết hợp cục bộ (Location Invariance and Compositionality). Với cùng một đối tượng, nếu đối tượng này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kể. Pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn (scaling).


Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter. Đó là lý do tại sao CNNs cho ra mô hình với độ chính xác rất cao. Cũng giống như cách con người nhận biết các vật thể trong tự nhiên. Phân biệt được một con chó với một con mèo nhờ vào các đặc trưng từ mức độ thấp (có 4 chân, có đuôi) đến mức độ cao (dáng đi, hình thể, màu lông).


2.4.4 Xây dựng mạng Nơ-ron tích chập


Phần này sẽ giới thiệu một trong những mạng sâu được sử dụng rộng rãi đó là mạng tích chập sâu (deep convolutional networks). Bài toán sẽ làm việc cụ thể với

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 18/02/2023