1. Trang chủ
  2. » Thể loại khác

ĐỒ ÁN THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG ỨNG DỤNG MẠNG CONVOLUTIONAL NEURAL NETWORK TRONG NHẬN DẠNG HỆ THỐNG ĐIỀU KHIỂN. TS. Nguyễn Hoài Nam

20 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 721,77 KB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG oOo ĐỒ ÁN THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG ỨNG DỤNG MẠNG CONVOLUTIONAL NEURAL NETWORK TRONG NHẬN DẠNG HỆ THỐNG ĐIỀU KHIỂN Giáo viên hướng dẫn : TS Nguyễn Hoài Nam Sinh viên thực : Dương Bá Hải Đăng – 20141016 Đỗ Sơn Lâm – 20142474 Đinh Trung Kiên – 20142385 Mục lục I.LÝ THUYẾT 1.1 Giới thiệu mạng neural 1.2.Giới thiệu mạng Convolutional Neural Network 1.2.1 Định nghĩa 1.2.2.Convolution (tích chập) 1.2.3.Cấu trúc mạng CNN II ỨNG DỤNG MẠNG CNN VÀO NHẬN DẠNG HỆ THỐNG TRONG ĐIỀU KHIỂN 12 2.1.Training data .12 2.2.Huấn luyện mạng CNN: 13 2.3.Kết trình training 16 III.KẾT LUẬN .19 References 20 I LÝ THUYẾT 1.1 Giới thiệu mạng neural Định nghĩa: Mạng nơron nhân tạo, Artificial Neural Network (ANN) mơ hình xử lý thơng tin theo cách thức xử lý thông tin hệ nơron sinh học Nó tạo nên từ số lượng lớn phần tử (nơron) kết nối với thông qua liên kết (trọng số liên kết) làm việc thể thống để giải vấn đề cụ thể Một mạng nơron nhân tạo cấu hình cho ứng dụng cụ thể (nhận dạng mẫu, phân loại liệu) thơng qua q trình học từ tập mẫu huấn luyện Về chất học q trình hiệu chỉnh trọng số liên kết nơron -Cấu trúc mạng Neural nhân tạo Các thành phần mạng Neural bao gồm: + Tập đầu vào: Là tín hiệu vào (input signals) nơron, tín hiệu thường đưa vào dạng vector R chiều + Tập liên kết: Mỗi liên kết thể trọng số liên kết – Synaptic weight Trọng số liên kết tín hiệu vào thứ j với nơron k thường kí hiệu w kj Thơng thường, trọng số khởi tạo cách ngẫu nhiên thời điểm khởi tạo mạng cập nhật liên tục trình học mạng + Bộ tổng (Summing function): Thường dùng để tính tổng tích đầu vào n với trọng số liên kết + Ngưỡng (cịn gọi độ lệch - bias): Ngưỡng b thường đưa vào thành phần hàm truyền + Hàm truyền f (Transfer function): Hàm f dùng để giới hạn phạm vi đầu nơron Nó nhận đầu vào kết hàm tổng ngưỡng + Đầu a: Là tín hiệu đầu nơron, với nơron có tối đa đầu Hàm truyền Tên hàm Mơ tả tốn học Ứng dụng a = hardlim(n) 0 n  a 1 n  Mạng Perceptron a = purelin(n) an Mạng Adaline 1  e n Mạng nhiều lớp, thuật toán lan truyền ngược a = tansig(n) en  e n a  n n e e Mạng nhiều lớp, thuật toán lan truyền ngược a = poslin(n) 0 n  a n n  Mạng Hamming a = satlins(n) 1 n  1  a   n 1  n  1 n 1  Mạng Hopfield a = logsig(n) a Xét mặt toán học , cấu trúc mạng neuron biểu diễn biểu thức sau: a  f (Wp  b)  w1,1   p1  w  p  1,2  2  Trong p  ;W    :   :       pR   w1, R  Như nơron nhân tạo nhận tín hiệu đầu vào, xử lý (nhân tín hiệu với trọng số liên kết, tính tổng tích thu đƣợc gửi kết tới hàm truyền), cho tín hiệu đầu ( kết hàm truyền) -Một số loại mạng neuron: + Mạng perceptron: Có thể giải tốn phân loại với đường biên tuyến tính + Mạng nhiều lớp (mở rộng mạng perceptron): Có thể giải tốn phân loại bất kỳ, xấp xỉ hàm phi tuyến + Mạng neuron động: Nhận dạng điều khiển hệ thống động học phi tuyến + Mạng nhớ: ứng dụng để phân loại mẫu(chữ viết,ảnh) + Mạng Adaline: ứng dụng lọc thích nghi + Mạng RBF: ứng dụng xấp xỉ hàm, phân loại mẫu 1.2 Giới thiệu mạng Convolutional Neural Network 1.2.1 Định nghĩa Những năm gần đây, ta chứng kiến nhiều thành tựu vượt bậc ngành Thị giác máy tính (Computer Vision) Các hệ thống xử lý ảnh lớn Facebook, Google hay Amazon đưa vào sản phẩm chức thông minh nhận diện khuôn mặt người dùng, phát triển xe tự lái hay drone giao hàng tự động Với phát triển phần cứng mạnh mẽ cho phép tính tốn song song hàng tỉ phép tính, tạo tiền đề cho Mạng nơ-ron tích chập trở nên phổ biến đóng vai trị quan trọng phát triển trí tuệ nhân tạo nói chung xử lý ảnh nói riêng Một ứng dụng quan trọng mạng nơ-ron tích chập cho phép máy tính có khả “nhìn” “phân tích”, nói cách dễ hiểu, Convnets sử dụng để nhận dạng hình ảnh cách đưa qua nhiều layer với lọc tích chập để sau có điểm số nhận dạng đối tượng CNN lấy cảm hứng từ vỏ não thị giác Mỗi nhìn thấy đó, loạt lớp tế bào thần kinh kích hoạt, lớp thần kinh phát tập hợp đặc trưng đường thẳng, cạnh, màu sắc,v.v.v đối tượng lớp thần kinh cao phát đặc trưng phức tạp để nhận thấy Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) mơ hình Deep Learning tiên tiến giúp cho xây dựng hệ thống thông minh với độ xác cao Trong đồ án này, trình bày Convolution (tích chập) ý tưởng mơ hình CNNs phân lớp ảnh áp dụng toán nhận dạng hệ thống (Image Classification) 1.2.2 Convolution (tích chập) Tích chập sử dụng xử lý tín hiệu số (Signal processing) Nhờ vào nguyên lý biến đổi thông tin, nhà khoa học áp dụng kĩ thuật vào xử lý ảnh video số Để dễ hình dung, ta xem tích chập cửa sổ trượt (sliding window) áp đặt lên ma trận Ta theo dõi chế tích chập qua hình minh họa bên Các convolutional layer có parameter(kernel) học để tự điều chỉnh lấy thơng tin xác mà khơng cần chọn feature Trong hình ảnh ví dụ trên, ma trận bên trái hình ảnh trắng đen số hóa Ma trận có kích thước 5x5 điểm ảnh có giá trị giao điểm dịng cột Convolution hay tích chập nhân phần tử ma trận Sliding Window hay gọi kernel, filter feature detect ma trận có kích thước nhỏ ví dụ 3x3 Convolution hay tích chập nhân phần tử bên ma trận 3x3 với ma trận bên trái Kết ma trận gọi Convoled feature sinh từ việc nhận ma trận Filter với ma trận ảnh 5x5 bên trái 1.2.3 Cấu trúc mạng CNN Mạng CNN tập hợp lớp Convolution chồng lên sử dụng hàm nonlinear activation ReLU pooling (Subsampling layer) để kích hoạt trọng số node Mỗi lớp sau thơng qua hàm kích hoạt tạo thông tin trừu tượng cho lớp Mỗi lớp sau thơng qua hàm kích hoạt tạo thông tin trừu tượng cho lớp Trong mơ hình mạng truyền thẳng (feedforward neural network) neural đầu vào (input node) cho neural đầu lớp Mơ hình gọi mạng kết nối đầy đủ (fully connected layer) hay mạng tồn vẹn (affine layer) Cịn mơ hình CNNs ngược lại Các layer liên kết với thông qua chế convolution Layer kết convolution từ layer trước đó, nhờ mà ta có kết nối cục Như neuron lớp sinh từ kết filter áp đặt lên vùng ảnh cục neuron trước a) Image input layer Lớp Image input layer định dạng kích thước ảnh đầu vào mạng CNN Sử dụng hàm imageInputLayer function Kích thước ảnh tương ứng với chiều cao, chiều rộng , kênh màu ảnh Ở kích thước ảnh đầu vào [96x96x3] tương ứng với kích thước ảnh 96 pixels x 96 pixel với kênh màu tức ảnh màu b) Convolutional Layer + Một lớp Convolutional bao gồm neurons kết nối feature map ảnh đầu vào đầu lớp trước Lớp tìm hiểu feature mảng nhỏ (filter a pixels x a pixels) quét ảnh đầu vào Kích thước filter chỉnh sửa để phù hợp với kích thước ảnh đầu vào sử dụng hàm filterSize + Trong vùng, kết nối học trọng số neuron ẩn học bias sử dụng hàm trainNetwork Mỗi vùng gọi trường tiếp nhận cục Filter di chuyển dọc từ trái sang phải từ xuống dọc theo ảnh đầu vào Bước di chuyển gọi Stride Vì số lượng vùng qt áp đặt thơng qua filterSize Stride + Số trọng số sử dụng cho filter h*w*c chiều dài, rộng, số kênh màu filter.Số filter quết định số kênh đầu lớp convolutional + Khi filter dọc theo ảnh sử dụng trọng số bias cố định tạo feature map Vì số feature maps (M) lớp convolutional với số filters Mỗi feature map có trọng số bias riêng Vậy tổng số thông số lớp convolutional ((h*w*c+1)*Number of filters) bias=1 + Kích thước đầu ra( chiều dài rộng) lớp convolutional tính theo cơng thức: Output size= (input size-filter size+2*Padding)/Stride +1 Trong input size, filter size kích thước đầu vào filter, Stride bước nhảy filter, Padding số hang cột thêm vào rìa ảnh đầu vào để điều chỉnh kích thước ảnh đầu Output size phải số nguyên dương để đảm bảo tất phần ảnh xét đến lớp convolutional + Số lượng neurons lớp convolutional: Tổng số neurons (Map size* Number of Filters) Trong Map size chiều dài*rộng output size c) Batch Normalization Layer Lớp Batch Normalization sử dụng lớp convolutional hàm nonlinear activation ReLU để tang tốc độ huấn luyện giảm độ nhạy cảm Để tạo lớp Batch Normalization sử dụng hàm batchNormalizationLayer d) ReLU Layer Lớp ReLU làm cho với thành phần đầu vào mà giá trị nhỏ đặt x x  f ( x)   0 x  ReLU chứng minh giúp cho việc training Deep Networks nhanh nhiều Sự tăng tốc cho ReLU tính tốn gần tức thời gradient tính cực nhanh với gradient đầu vào lớn 0, đầu vào nhỏ Loại bỏ giá trị âm đầu vào set Tạo lớp ReLU sử dụng hàm reluLayer e) Max-Pooling Layer Mục đích pooling đơn giản, làm giảm số hyperparameter mà ta cần phải tính tốn, từ giảm thời gian tính tốn, tránh overfitting Loại pooling ta thường gặp max pooling, lấy giá trị lớn pooling window Pooling hoạt động gần giống với convolution, có cửa sổ trượt gọi pooling window, cửa sổ trượt qua giá trị ma trận liệu đầu vào (thường feature map convolutional layer), chọn giá trị từ gía trị nằm cửa sổ trượt (với max pooling ta lấy giá trị lớn nhất).Thường lớp ta chọn pooling window trượt dọc theo đầu vào mà khơng bị trùng Có nghĩa bước nhảy kích thước window.Nếu đầu vào lớp Pooling h x h pooling window t x t đầu lớp pooling kênh convolutional h/x x h/x Ta sử dụng pooling window trượt tương tự filter lớp convolutional output size giống với công thức: (inputsize  poolingwindow   Padding ) Stride Sử dụng hàm maxPooling2dLayer f) Fully connected Layer Thường sau lớp Conv+Pooling lớp Fully connected, layer để tập hợp tất feature layer mà học lớp trước, chuyển đổi liệu từ 3-D, 2-D thành 1-D, tức vector Lớp cuối tổng hợp tất feature để nhận dạng loại ảnh Số neuron layer phụ thuộc vào số output mà ta muốn tìm Giả sử với tập liêu ta xét chẳng hạn, ta có tập 10 đối tượng Vậy output có số neurons 10 Để tạo lớp fully Connected dung hàm fullyConnectedLayer g) Output Layer Softmax and Classification Layers: - Softmax function: ar  P  cr x,   P  x, cr  P  cr   exp  zr  x,    P  x, c  P  c   exp  z  x,   k j j 1 j k j 1 j Với  P  cr x,   1,  P  c j x,   k j 1 Với input x, P  cr x,   thể xác xuất để input rơi vào class r biết tham số mơ hình Hình vẽ thể hàm softmax dạng neural network 10 - Classification layer thường sau softmax layer Ở lớp giá trị từ hàm softmax lấy định cho input vào k classes việc sử dụng hàm entropy: n k E     tij ln y j  xi ,  i 1 j 1 Trong tij số mẫu i thuộc class j, y j  xi ,  đầu mẫu i lấy từ hàm softmax 11 II ỨNG DỤNG MẠNG CNN VÀO NHẬN DẠNG HỆ THỐNG TRONG ĐIỀU KHIỂN 2.1 Dữ liệu huấn luyện - Dữ liệu training ảnh đáp ứng đầu đối tượng có đầu vào hàm Step 1  t  T 0 t  T Function : uT (t )   Ở ta chọn T=500 đủ lớn để tín hiệu đạt gần giá trị t vô - Các mẫu bao gồm: Khâu tích phân bậc nhất: G(s)  k  Ts Khâu quán tính bậc hai: G ( s)  k (1  T1s )(1  T2 s ) T1  T2 Khâu dao động bậc hai: G(s)  k  2DTs  T s  D 1 Khâu quán tính bậc ba: G ( s)  k (1  T1s)(1  T2 s)(1  T3s) Khâu dao động bậc ba: G ( s)  k (1  DTs  T s )(T3 s  1) T1  T2  T3  D 1 Và khâu có thêm thành phần trễ - Ảnh tín hiệu thu tín hiệu vào hệ thống hàm step function xử lý lại: + Thời gian mô 2T với đồ thị nửa thời gian T cuối vẽ ngược lại với nửa thời gian T đầu + Sau đồ thị thu gọn theo trục từ dải ban đầu dải [0,1] 12 + Ảnh sau export dạng ‘png’ với kích thước 96x96x3 - Dữ liệu mẫu tạo cho thư mục 2500 ảnh mẫu 2.2 Huấn luyện mạng CNN: + Ta sử dụng mạng neural bao gồm 15 lớp neurons : - layers = [ - imageInputLayer([96 96 3]) - convolution2dLayer(6,32,'Padding',0,'Stride',2) - batchNormalizationLayer - reluLayer - maxPooling2dLayer(2,'Stride',2) - convolution2dLayer(4,16,'Padding',0,'Stride',2) - batchNormalizationLayer - reluLayer - maxPooling2dLayer(2,'Stride',2) - convolution2dLayer(2,8,'Padding',1) - batchNormalizationLayer - reluLayer - fullyConnectedLayer(10) - softmaxLayer - classificationLayer]; + Dữ liệu đầu vào ảnh 96 pixels x 96 pixels x 3(ảnh màu) + Lớp convolutional thứ convolution2dLayer(6,32,'Padding',0,'Stride',2) với 32 filters kích thước 6x6 , bước nhảy quét Stride=2 không thêm Padding -Như số trọng số filter 6x6x3=108 Số feature map = 32 Tổng số trọng số lớp convolutional (6    1)  32  3456 - Output size (inputsize  filtersize   Padding ) (96    0) 1    46 Stride ảnh đầu 46x46x3 13 - Số neurons lớp convolutional 46  46  32  67712 neurons - Tiếp theo lớp batchNormalizationLayer reluLayer để tăng tốc độ train loại bỏ trọng số âm - Sử dụng hàm maxPooling2dLayer(2,'Stride',2) lớp quét ảnh với filter kích thước 2x2 bước nhảy để tránh bị trùng Sau trọng số vùng bị quét lấy trọng số lớn Đầu lớp kênh lớp convolutional 23x23 + Tương tự với lớp convolutional thứ ta có: convolution2dLayer(4,16,'Padding',0,'Stride',1) - Đầu vào có kích thước 23x23 - Số filters 16, filter size 4x4, bước nhảy không thêm Padding - Số trọng số filter = 4x4x3=48, Tổng số trọng số = (4x4x3+1)x16=784 - Output size= (23    0)   20 - Số neurons = 20x20x16=6400 - Đầu sau lớp maxpooling 10x10 + Lớp convolutional cuối cùng: convolution2dLayer(2,8,'Padding',0, 'Stride',1) - Đầu vào có kích thước 10x10 - Số filters 8, filter size 2x2, bước nhảy không thêm Padding - Số trọng số filter = 2x2x3=12, Tổng số trọng số =(12+1)x8=104 - Output size = - Số neurons = 9x9x8=648 - Lớp fullyConnectedLayer(10) bao gồm 10 neurons với số loại mẫu cần phân loại  Dữ liệu đầu vào loại 2500 ảnh chia 75% cho việc training 25% test với số epochs max 20, tốc độ học 10^-3 options = trainingOptions('sgdm', 'MaxEpochs',60, 'InitialLearnRate',1e-3, 'ValidationData',imdsValidation, 'ValidationFrequency',30, 14 'Verbose',false, 'Plots','training-progress'); 15 2.3 Kết trình huấn luyện 16 Ta thấy độ xác mạng neural đạt 93.17% sau 20 epochs huấn luyện Các classes để phân loại bao gồm: -First-Order System -First-Order System with delay -Overdamped Second-Order System -Overdamped Second-Order System with delay -Underdamped Second-Order System -Underdamped Second-Order System with delay -Third-Order System -Third-Order System with delay -Fluctuated Third-Order System -Fluctuated Third-Order System with delay Một số mẫu đưa vào mạng neural vừa huấn luyện để kiểm tra: 17 18 III KẾT LUẬN - Nhận xét: Mạng neural nhận dạng tốt hệ thống Nhưng đối tượng có thêm thành phần trễ delay khó nhận dạng - Hướng phát triển : Dựa vào mạng neural nhận ta xác định dạng hàm truyền đối tượng Từ xác định thơng số hàm truyền đối tượng cách dễ dàng 19 Tài liệu tham khảo Mark Hudson Beale, M T (n.d.) Neural Network Toolbox™ User's Guide T.Hagan, M (n.d.) Neural Network Design 20

Ngày đăng: 06/06/2023, 23:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w