23 Bài toán nhận dạng mẫu sử dụng CNN bậc hai làm bộ nhớ liên kết

Một phần của tài liệu Phát triển mạng nơron tế bào đa tương tác và khả năng ứng dụng (Trang 96)

Trong bài toán này, tác giả sử dụng CNN bậc hai đại diện làm bộ nhớ liên kết Các mạng bậc cao hơn cũng có thế áp dụng tương tự

a) Phát biểu bài toán

- Giả sử có 3 mẫu người (Men Pattern) gọi tắt là mẫu gồm Y1, Y2, Y3 mỗi mẫu với 81 đặc điểm để nhận dạng như: Mắt hai mí, mũi cao, tay dài, chân dài, giọng nói trong, mặt trái xoan, môi trái tim, tóc đen, da vàng , các mẫu được mã hóa bằng 1 Ngược lại (Ví dụ: Mũi không cao là -1, và có 81 đặc trưng kiểu như vậy cho mạng nơron được mô tả như sau:

- Cho 3 mẫu tương ứng với:

Y y11 y12 y13 y79 y80 y81 Mẫu 1 (Pattern 1) Yb111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 T Mẫu 2 (Pattern 2) Yb22-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 T Mẫu 3 (Pattern 3) Yb33-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 T b) Bài toán đặt ra

Trường hợp 1: Thể hiện 3 mẫu đó được nhớ trong ma trận trọng số

A(i,j;k,l;m,n)

Trường hợp 2 Giả sử có 1 trong 3 người có các đặc điểm như các mẫu hoặc

Y1 hoặc Y2 hoặc Y3 được đưa vào mạng nơron CNN bậc hai Nếu quả thực

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

A( j, j; k, l; m, n) là bộ nhớ thì mạng CNN bậc hai phải gọi ra được người đó đã được nhớ trong A(i,j;k,l;m,n) Đây là quá trình gọi lại (Recall)

Trường hợp 3 Thử nghiệm 1 mẫu nào đó sai 1 bit, 2 bit, 3 bit tức là đối tượng người đó biến dạng từ 1 sang -1 (Ví dụ: Mũi cao do bị thay đổi thành mũi thấp vì lý do nào đó) thì CNN có nhận ra người đó không?

c) Giải bài toán

Trường hợp 1: Tính bộ nhớ A(i,j;k,l,m,n) đã được giải như (3 2 2 1)

Trường hợp 2: Theo (3 9), với

p Th h TT mn

Bước 1 Khởi tạo giá trị

Bước 2 Nhập giá các đặc điểm của mẫu Y1 vào bộ nhớ CNN bậc hai được tính theo công thức X 1 AY 1

Bước 3 Gọi giá trị được lưu trữ trong ma trận nhớ A( j, j; k, l; m, n) CNN Bước 4 Tính giá trị trạng thái X1

Bước 5 Tính Y1* theo hàm dấu đầu ra của CNN Bước 6 In kết quả X 1kl,mn = A( j, j; k, l; m, n) Y1= =[13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203 13203]T

Trong đó A( j, j; k, l; m, n) là ma trận trọng số được CNN bậc 2 nhớ sau mỗi lần học

 

A(i, j;k,l;m,n)=Ykl klhh Y Y Ymn h1

Tính Y 1* hay Ykl1 ,mn , ta có: ) sgn(x 1 1 xi, j 0 xi, j 0 1

giá trị 1, tương ứng với

Y (kq)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 T

cho kết quả nhận dạng đúng

Trường hợp 3: Giả sử có 3 mẫu tương ứng với Ybt1 , Ybt2 , Ybt2

Mẫu 1 (Pattern 1) Ybt1-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 T Mẫu 2 (Pattern 2) Ybt2-1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 T Mẫu 3 (Pattern 3) Ybt3-1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 T

Tính với sai số 1 bit: Theo phương trình (3 9) Bước 1 Khởi tạo giá trị

1

tính theo công thức

A(i, j;k,l;m,n)Y

Bước 2 Gọi giá trị được lưu trữ trong ma trận nhớ A( j, j; k, l; n, n) của CNN

y f (xi, j i, j )

Từ kết quả trên cho thấy các kết quả X kl,mn đều > 0 do đó các giá trị của x thu được

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Bước 2 Nhập giá các đặc điểm của mẫu Y , vào bộ nhớ CNN bậc hai được

bậc hai

Bước 3 Tính giá trị trạng thái X 1kl,mn

Bước 4 Tính Ykl1* theo hàm dấu đầu ra của CNN Bước 5 In kết quả

Theo các bước tính được thực hiện trên Matlab cho kết quả như sau: Kết quả mẫu 1 có X 1kl,mn = =[12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 12555 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041 13041] T

Tương tự cách tính ở trên, tác giả tính được kết quả tương ứng với mẫu 2 và mẫu 3: Kết quả mẫu 2 có X kl2 ,mn = = [12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12069 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879 12879]T Tính Ybt2* , ta có: 1 1 xi, j 0 xi, j 0 y f (xi, j ) sgn(xi, j )

Từ kết quả trên cho thấy các kết quả X kl2 ,mn đều dương (>0) do đó các giá trị của x

thu được sẽ là 1, tương ứng với

Y 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

T

cho kết quả nhận dạng đúng với mẫu 1 đã được học Kết quả mẫu 3 có X kl3 ,mn = = [11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 11583 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717 12717]T Trong đó A( j, j; k, l; m, n) là ma trận trọng số của CNN bậc 2 Tính Ybt3* ,  1 xi, j 0 xi, j 0

Từ kết quả trên cho thấy các kết quả X kl3*,mn đều dương (>0) do đó các giá trị của x

thu được sẽ là 1, tương ứng với

Y 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

T

cho kết quả nhận dạng đúng với mẫu 1 đã được học

3 2 3 Kết luận

Mạng có khả năng xử lý lỗi (chịu lỗi tốt) Kết quả cho thấy khả năng nhận mẫu cao hơn nhiều so với các mô hình bộ nhớ liên kết trước đó Theo Michael Negnevitsky (trang 196) [58] dung lượng nhớ liên kết tối đa là:

 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 ta có: y f (xi, j i) sgn, j )(x

Hopfiel = n

4lnn , trong đó n là số phần tử nơron

Với bộ nhớ liên kết CNN do sử dụng đầu vào là 2 chiều nên số bộ nhớ có thể đạt tới:

M max n

2

Như vậy số mẫu nhớ mạng liên kết tăng ở dạng hàm mũ Nếu chúng ta sử dụng CNN bậc 2 số liên kết có thể đạt tới:

M CNNbac2

4ln n

2

Như vậy liên kết bậc cao cho khả năng nhớ mẫu tăng theo hàm mũ

3 3 Mô hình ứng dụng thử nghiệm CNN bậc cao

3 3 1 Mô hình tích hợp CNN bậc hai với STM32 và FPGA

3 3 1 1 Kiến trúc của FPGA

Kiến trúc của FPGA cho phép tích hợp số lượng lớn các phần tử bán dẫn vào 1 vi mạch, là kiến trúc mảng các khối logic Ưu điểm này giúp FPGA có thể chứa nhiều các phần tử logic và phát huy tối đa khả năng lập trình của các phần tử logic và hệ thống mạch kết nối Kến trúc của FPGA được minh họa như sau

Khối Logic lập trình được Khối vào/ra Khối RAM

Hình 3 7 Kiến trúc của FPGA + Khối logic FPGA

max    n2  4ln n CNNChua M max

Phần tử chính của FPGA là các khối logic Khối logic được cấu thành từ LUT và một phần tử nhớ đồng bộ flip-flop Khối logic có thể thực hiện bất kỳ hàm logic nào từ 4 đầu vào Kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop Ngoài 4 đầu vào kể trên LUT còn được hỗ trợ thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó nâng tổng số đầu vào của LUT lên 6 chân Cấu trúc này giúp tăng tốc các bộ số học logic

3 3 1 2 Xử lý ảnh trên nền STM32

Hệ thống thu thập và xử lý ảnh dùng vi điều khiển có sơ đồ khối như hình 3 8

Hình 3 8 Hệ thống thu thập và xử lý ảnh dùng vi điều khiển

Camera số: cảm biến, biến đổi các điểm ảnh (màu hoặc xám) Tốc độ biến đổi nhanh với yêu cầu xử lý theo thời gian thực

Khối kết nối: chuyển đổi (tương thích) giữa camera với vi điều khiển

Vi điều khiển STM32: tạo xung nhịp cơ bản để đồng bộ các tín hiệu (VSYNC and HSYNC) cho camera, thu thập các dữ liệu hình ảnh đưa vào bộ nhớ đệm xuất ra màn hình (hoặc truyền ra các kênh thông tin như: cổng UART của PC, ra kênh Wifi- TCP/IP, v v…)

Màn hình: có nhiệm vụ hiển thị hình ảnh Nếu là luồng video có thể cho các tốc độ cao

STM32 là vi điều khiển do hãng STMicroelectronic sản xuất dựa trên nền tảng lõi vi xử lý ARM Cortex®-M Là một dòng sản phẩm vi xử điều khiển 32 bit kết hợp các ưu điểm về hiệu suất cao, khả năng xử lý thời gian thực, xử lý tín hiệu số, tiêu

thụ ít năng lượng, hoạt động điện áp thấp, trong khi duy trì khả năng tích hợp đầy đủ và dễ dàng phát triển ứng dụng

3 3 1 3 CNN bậc hai trên nền tảng FPGA và STM32

Ảnh đầu vào

Hình 3 9 Sơ đồ hệ thống thu thập xử lý ảnh trên nền tảng FPGA và STM32 Theo cấu trúc của mạng (Hình 3 6), tác giả xây dựng mô hình CNN bậc hai thu thập xử lý ảnh trên nền tảng FPGA và STM32 như (Hình 3 9)

Bước 1 Camera (ma trận 3 3) cảm biến hình ảnh; Bước 2 Chuyển đổi sang ảnh số;

Bước 3 Ghép nối FPGA bộ nhận dạng tín hiệu theo ma trận MiCNNs (tín hiệu được gửi đồng thời từ khối Camera đến FPGA để xử lý);

Bước 4 Ghép nối tín hiệu với STM32;

Bước 5 STM32 xử lý chuyển tín hiệu sang màn hình hiển thị, PC, Wifi; Trong (Hình 3 9), ta có khối 1 là tín hiệu hình ảnh đầu vào của hệ thống Khối 2 là khối Camera CMOS được thiết lập theo cấu trúc của CNN có kích thước (3 3) camera, các camera này thu nhận tín hiệu ảnh gửi về bộ xử lý FPGA (khối 3), bộ xử lý được thiết lập theo cấu trúc của CNN bậc cao được trình bày trong chương 2 Khối này có nhiệm vụ đưa ra tín hiệu có sự ảnh hưởng lớn nhất từ các tín hiệu ở vùng lân cận, sau đó dữ liệu hình ảnh sẽ được sắp xếp lại và đưa vào bộ nhớ tạm thời trước khi đưa đến bộ xử lý STM32 (khối 4)

Tại đây, STM32 nhận dữ liệu hình ảnh được gửi từ FPGA sang và đồng bộ tín hiệu trước khi đưa đến thiết bị xuất dữ liệu như máy tính để lưu trữ hoặc xử lý phục vụ cho các công việc khác qua cổng ghép nối quang hoặc đưa đến màn hình hiển thị

để quan sát hình ảnh được xử lý hoặc phát tín hiệu Wifi để ghép nối với các thiết bị khác như các cơ cấu chấp hành, lưu trữ (khối 5) v v…

Với ứng dụng của CNN bậc 2 trong xử lý ảnh trên nền tảng FPGA kết hợp với STM32 trên cơ sở ứng dụng sự ảnh hưởng đa chiều của mỗi tế bào trung tâm đến các tế bào láng giềng và lân cận hay còn gọi là sự ảnh hưởng trực tiếp theo tỉ lệ ½ (50%) và ¼ (25%) để bù điểm ảnh có tỷ lệ màu tương ứng ở vùng láng giềng và lân cận

- CNN bậc hai trong xử lý ảnh trên nền tảng FPGA kết hợp với STM32 CNN bậc hai được sử dụng ở đây bao gồm cả phần tử mạng bậc nhất và phần tử mạng bậc hai (2 1) chương 2, chi tiết xem bài báo [A 4] công trình khoa học của tác giả

3 3 1 4 Bàn luận và đánh giá

Bài toán thử nghiệm thuật toán CNN bậc hai trên nền tảng FPGA kết hợp với STM32 dựa trên việc áp dụng các hiệu ứng đa chiều của tế bào trung tâm đến các tế bào lân cận theo tỷ lệ ½ (50%) và ¼ (25%) để bù màu tương ứng ở các vùng với láng giềng với r =1 và láng giềng với r =2 Kết quả cho thấy hình ảnh thu thập được bù ảnh từ các láng giềng cho kết quả tốt hơn

3 3 2 Một số ứng dụng khác của CNN bậc cao

3 3 2 1 Ứng dụng CNN bậc hai trong bài toán nuôi trồng

Một thử nghiệm ứng dụng khác của CNN bậc cao là kết hợp với STM32 ARM Cortex MCUs trong nuôi trồng thông minh khép kín chuồng, ao, vườn CNN bậc hai được áp dụng trong xây dựng hệ thống nuôi trồng thông minh trên cơ sở thu thập thông tin tương tác đa chiều: hình ảnh, âm thanh, tiếng động, độ ẩm, mật độ oxy, độ rắn, trọng lượng, mực nước v v…

a) Sơ đồ hệ thống nuôi trồng thông minh

Trong (Hình 3 10), các khối: thức ăn, nước uống (A); chuồng gà, lợn (gia súc) (B); xử lý chất thải (C); ao, hồ (bể cá) (D); máy bơm hút (E); vườn rau thủy canh hoặc bán thủy canh (dinh dưỡng cho rau là phân cá trong nước ao hồ hoặc bể cá) (F); xử lý nước trước khi trả về ao, hồ (bể cá) (G) Quy trình như (Hình 3 10)

Hình 3 10 Mối quan hệ trong hệ thống nuôi trồng thông minh

- Thức ăn: Dạng hạt, dạng bột, dạng nước, dạng tổng hợp, hạt mềm, hạt rắn, hạt khô, hạt ướt, nước, v v

Hình 3 11 Tính tương tác đa chiều của CNN bậc hai trong hệ thống - Chuồng gia súc: Sạch, bẩn, khô, ướt; loại động vật nuôi v v

-

-

- - -

Xử lý chất thải: Lấy chất thải từ chuồng, xử lý phân loại, lưu trữ, xả cho cá, xác định hàm lượng độc hại tồn dư v v…

Ao, hồ (bể cá): Nước, cá, chất hỗn hợp hòa tan từ phân gia súc, cá và từ nguồn tự nhiên v v…

Công xuất, lượng nước bơm, thời gian bơm, dạng nước xả ở đầu ra, khoảng cách, áp suất, thời gian v v…

Cách thức trồng, loại rau, độ ẩm, mực nước, chất dinh dưỡng v v… Lọc, độ sạch của nước v v…

Từ dữ liệu, tác giả xây dựng thành các cụm tương tác đa chiều tương ứng Ví dụ: Ao hồ (D): Có lượng thức ăn nhiều→ xử lý chất thải (C) không xả thêm thức ăn cho cá→ Thức ăn, nước uống (A) điều chỉnh lượng thức ăn, v v… (Hình 3 11) cho thấy quan hệ từ các phần tử láng giềng tạo nên tương tác đa chiều

b) Các bước thực hiện của chương trình hệ thống nuôi trồng thông minh sử dụng HiCNN và STM32

Bước 1 Start (khởi tạo chương trình) Bước 2 Nhận dạng khối chức năng Khối cảm biến, thu

thập dữ liệu Khối kết nối hệ thống thực thi Camera Micro Cảm biến nhiệt độ Cảm biến ánh sang Cảm biến độ ẩm Cảm biến mực nước Cảm biến mưa, gió

Khối xử lý STM32 ARM Cortex MCUs Bơm Micro Đồ ăn, đồ uống Đóng, mở cửa Tắt/mở đèn, quạt Tưới, làm sạch Cảnh bái

Một phần của tài liệu Phát triển mạng nơron tế bào đa tương tác và khả năng ứng dụng (Trang 96)

Tải bản đầy đủ (DOCX)

(141 trang)
w