Các mạng được đào tạo sẵn có các đặc điểm khác nhau như là: độ chính xác, tốc độ và kích thước mạng. Chọn một mạng lưới nói chung là một sự đánh đổi giữa các đặc điểm này. Hình 2.4 so sánh độ chính xác xác thực với thời gian cần thiết để đưa ra dự đoán bằng mạng.
Sau khi quan sát bảng so sánh, báo cáo về các mạng học sâu cùng với tập CSDL thu được thì nhóm chùng em chọn một trong những mạng có tốc độ đào tạo nhanh đó là: Alexnet.
2.2.2. Cấu trúc mạng Alexnet.
AlexNet là một mạng lưới thần kinh phức tạp sâu 8 lớp. Mạng được đào tạo sẵn có thể phân loại hình ảnh thành 1000 loại đối tượng, chẳng hạn như bàn phím, chuột, bút chì và nhiều động vật. Kết quả là, mạng đã học được các đại diện tính năng phong phú cho một loạt các hình ảnh. Mạng có kích thước đầu vào hình ảnh là 227- by-227.
35 AlexNet đã được đào tạo trên hơn một triệu hình ảnh và có thể phân loại hình ảnh thành 1000 loại đối tượng (như bàn phím, cốc cà phê, bút chì và nhiều động vật). Mạng lưới đã học được các đại diện tính năng phong phú cho một loạt các hình ảnh. Mạng lấy một hình ảnh làm đầu vào và xuất nhãn cho đối tượng trong hình ảnh cùng với xác suất cho từng loại đối tượng.
Hình 2.5: Kiến trúc mạng và thơng tin chi tiết về các lớp mạng của mạng Alexnet.
36 - Lớp đầu tiên, lớp đầu vào hình ảnh, u cầu hình ảnh đầu vào có kích thước 227- by-227-by-3, trong đó 3 là số kênh màu.
- Năm lớp ở giữa có chức năng phân tích chia nhỏ ảnh đầu vào để huấn luyện. - Ba lớp cuối cùng của mạng được đào tạo sẵn được cấu hình cho 1000 lớp. Ba lớp này phải được tinh chỉnh cho vấn đề phân loại mới. Trích xuất tất cả các lớp, ngoại trừ ba lớp cuối cùng, từ mạng được đào tạo sẵn
2.3. Các bước thiết kế và ứng dụng mạng Alexnet vào mơ hình.
➢ Bước 1: Truy cập vào “Công cụ học sâu”. Code: deepNetworkDesigner.
➢ Bước 2: Chọn mạng Alexnet.
Hình 2.7: Chọn mạng Alexnet
➢ Bước 3: Thiết lập dữ liệu đầu vào cho chế độ huấn luyện.
Ở bước này, nhóm chúng em chia nhỏ dữ liệu ra thành những tệp riêng như: “chinh_luu_ban_ky”, “chinh_luu_toan_ky”, “chinh_luu_cau”. Bởi vì khi dùng cách
37 này, chúng ta chỉ cần tinh chỉnh đầu ra và đầu vào một mạng được đào tạo sẵn với các bộ dữ liệu nhỏ hơn nhiều so với dữ liệu đào tạo ban đầu.
Giảm dung lượng bộ nhớ máy tính, thời gian mỗi lần thực hiện thao tác huấn luyện.
Dễ dàng cập nhật thêm dữ liệu đầu vào cho ứng dụng.
Hình 2.8: Thiết lập dữ liệu đầu vào.
Chúng ta chọn vào ô Randomize bên phần Validation để chọn ra 30% ngẫu nhiên được lấy từ tập CSDL.
38 ➢ Bước 4: Cài đặt ngõ ra.
39
Hình 2.10: Lớp ngõ ra của mạng Alexnet.
Như vậy chúng ta có thể thấy, mạng Alexnet được thiết lập sẵn đó là: • 4096 ảnh đầu vào.
• 1000 tệp ngõ ra.
Khơng thể huấn luyện được bởi vì khác đầu vào và ngõ ra nên chúng ta cần phải thiết lập lại các thông số này.
Cho nên chúng ta cần tạo và thiết kế lại 2 lớp này như Hình 2.11 và Hình 2.12 bên dưới để có thể huấn luyện mạng học sâu( ở đây nhóm chúng em cài đặt Outputsize = 7 theo như số tệp được đặt trong tệp chinh_lưu_ban_ky).
40
Hình 2.11: Lớp được kểt nối đầy đủ sau khi chỉnh sửa.
41 ➢ Bước 5: Thiết lập thơng số huấn luyện của mạng.
Hình 2.13: Thiết lập thông số huấn luyện.
Nhằm giúp cho việc huấn luyện tốt hơn, chính xác hơn, nhanh hơn, nhóm chúng em thiết lập thông số huấn luyện tại bảng Training Options( Tùy chọn Đào tạo) để đào tạo như sau:
• Đặt InitialLearnRate( tỷ lệ học tập ban đầu) thành một giá trị nhỏ để làm chậm việc học trong các lớp được chuyển giao. Ở đây nhóm chúng em chọn 0,0001.
• Xác định ValidationFrequency( tần số xác thực) sao cho độ chính xác trên dữ liệu xác thực được tính tốn mỗi mảng một lần. Ở đây nhóm chúng em chọn 7 vì có 7 tệp con trong tệp chinh_luu_ban_ky.
• Chỉ định một số lượng nhỏ các mảng. Một mảng là một chu kỳ đào tạo đầy đủ trên toàn bộ tập dữ liệu đào tạo. Đối với học tập chuyển tiếp, chúng ta không cần phải đào tạo trong quá nhiều mảng. Ở đây nhóm chúng em chọn 8 mảng.
• Chỉ định kích thước lơ nhỏ, nghĩa là có bao nhiêu hình ảnh để sử dụng trong mỗi lần lặp lại. Để đảm bảo toàn bộ bộ dữ liệu được sử dụng trong mỗi thời đại, hãy đặt kích thước lơ nhỏ để chia đều số lượng mẫu đào tạo. Ở đây nhóm chúng em chọn 35 vì ở đây có 7 tệp mỗi tệp có 50 ảnh, lấy huấn luyện 70% thì cịn 245 ảnh. Sau đó chúng ta lấy 245
42
Hình 2.14: Q trình huấn luyện chỉnh lưu bán kỳ.
43
Hình 2.16: Q trình huấn luyện chỉnh lưu tồn kỳ.
➢ Bước 6: Lưu dữ liệu đã được huấn luyện.
Tại mục Export( xuất) chúng ta có được 2 mục đó là Generate Code for Training ( Xuất code cho huấn luyện) và Export Trained Network and Results( Xuất thông tin và kết quả của chế độ huấn luyện).
44 Chúng ta có thể chọn mục “Xuất code cho huấn luyện” để kiểm tra và chỉnh sửa code cho chế độ huấn luyện trong trường hợp thay đổi các thông số đầu vào và đầu ra.
Hình 2.18: Xuất code ra file.
Đồng thời ta chọn “Xuất thông tin và kết quả của chế độ huấn luyện” để lưu kết quả đã huấn luyện lại dùng cho công tác nghiên cứu.
Hình 2.19: Xuất kết quả huấn luyện.
Sau khi xuất kết quả ra thì chúng ta thu được dữ liệu trong MATLAB như sau.
45 Chúng ta lưu kết quả đạt được này vào file “CL_ban_ky.mat ” để dùng hỗ trợ cho việc lập trình.
➢ Bước 7: Thiết lập giao diện để sử dụng.
Để xây dựng giao diện như hình 2.19 thì nhóm chúng em thực hiện như sau : • Logo trường và khoa ở hai góc trên cùng.
• Tên đề tài nghiên cứu ở giữa hai logo này.
• Thanh lựa chọn “Chọn mạch nhận diện” để lựa chọn các mạch nhận diện như là : mạch chỉnh lưu bán kỳ, mạch chỉnh lưu cầu, mạch chỉnh lưu toàn kỳ.
• Nút nhấn “Ảnh nhận diện” để chọn ảnh đầu vào cần nhận diện.
• Nút nhấn “Nhận diện” để nhận diện ảnh đầu vào này là loại gì, có chính xác hay khơng, có sai gì khơng. Bên cạnh đó khi chúng ta nhấn vào nút này sẽ xuất ra ảnh sơ đồ nguyên lý của mạch ngay bên dưới để nếu có sai thì chúng ta biết cách để sửa lại cho chính xác.
• Nút nhấn “Close” để đóng ứng dụng lại.
• Sử dụng WORD để tạo file .htm để tạo chú thích tên nhãn dán. Bởi vì tại nơi hiển thị dạng lỗi nếu hiển thị tên tiếng việt dễ bị lỗi, nên nhóm chúng em sử dụng chú thích để người dùng dễ hiểu hơn, chúng ta có thể click vào chọn mục “Tên nhãn dán” để xem chi tiết lỗi.
46
47
48
CHƯƠNG 3. Đánh giá.
3.1. Thử nghiệm ứng dụng trong thực tế.
Ứng dụng nhận dạng lỗi trong mạch chỉnh lưu đã được thử nghiệm thực tế với các loại mạch chỉnh lưu đã được liệt kê khác nhau được nêu ở trên. Nhóm các mạch chỉnh lưu được chọn để xây dựng bộ dữ liệu nhận dạng đều đạt được kết quả với độ chính xác khá cao.
49
3.2. Ưu điểm của đề tài.
➢ Sau khi hoàn thành đề tài nghiên cứu khoa học này, nhóm chúng em đánh giá giao diện dễ sử dụng, khơng tạo sự khó hiểu cho người dùng.
➢ Độ chính xác của mỗi q trình huấn luyện của mạng là 100% nên độ tin cậy cao. ➢ Thời gian nhận diện nhanh chóng.
3.3. Nhược điểm của đề tài.
➢ Người sử dụng quên thay đổi thanh chọn hiển thị mạch chỉnh lưu làm cho sai lệch các lỗi. Bởi vì lỗi của mạch chỉnh lưu này có thể sẽ là đúng của mạch chỉnh lưu khác.
➢ Chưa thể viết dấu tiếng Việt để hiển thị được. Nhưng có chú thích “Tên nhãn dán” nên nhược điểm này khơng ảnh hưởng nhiều đến q trình nhận diện nhiều.
C. KẾT LUẬN VÀ KIẾN NGHỊ.
Đề tài đã nghiên cứu, tìm hiểu bài tốn tự động nhận dạng, tìm kiếm lỗi sai trong mạch chỉnh lưu. Nhóm đã thực hiện phát triển, cài đặt phương án giải quyết cho bài tốn dựa trên sự tìm kiếm, thống kê các hướng tiếp cận đã được công bố qua rất nhiều bài báo, cơng trình khoa học trên thế giới, tiếp cận được nền công nghệ máy về phương pháp lẫn cấu trúc của mạng học sâu.
Những kết quả đã đạt được trong quá trình nhận diện lỗi như sau:
- Hoàn thiện xây dựng bộ cơ sở dữ liệu ảnh phục vụ huấn luyện nhận dạng cho ba mạch chỉnh lưu thơng dụng trong phịng thực hành D302, với số lượng ảnh gốc trong mỗi mạch chỉnh lưu dao động từ 250 – 400 ảnh.
- Cài đặt và tinh chỉnh một mạng nơ-ron tích chập đã được huấn luyện trước, ứng dụng vào bài toán nhận dạng lỗi trong mạch chỉnh lưu. Đồng thời xây dựng hệ thống tự động nhận dạng lỗi trong mạch chỉnh lưu dễ sử dụng kết hợp với độ chính xác cao trên máy tính.
Thực nghiệm với bộ dữ liệu test và trong thực tế đã cho kết quả khá tốt, nguyên nhân chính là do phạm vi số lượng mạng chỉnh lưu được thu gọn lại ứng dụng cho phịng thực hành khơng được tính là nhiều nếu so sánh với số lượng mạch chỉnh lưu đang có hiện nay
50 tại Việt Nam nói riêng và cả thế giới nói chung. Hệ thống tự động nhận dạng lỗi trong mạch chỉnh lưu cịn có nhiều thiếu sót cần được cải thiện nhiều hơn về mặt chất lượng của bộ CSDL ảnh huấn luyện cũng như độ chính xác và tốc độ vận hành trong mỗi lần nhận diện. Trong tương lai, để có thể cải thiện độ chính xác của mơ hình nhận dạng, nhóm đề tài đề xuất cài đặt thử nghiệm và đánh giá các loại mơ hình mạng Học sâu đã được huấn luyện trước, đặc biệt là các mạng đã đạt được kết quả cao trong cuộc thi Nhận dạng ảnh quy mô lớn do ImageNet tổ chức thường niên như: ZF Net (2013), VGG Net (2014), GoogleNet và Microsoft ResNet (2015)… Và đặc biệt nếu có thể thì nên phát triển theo hướng code trên Python thay vì Matlab để giảm nhẹ về mặt dung lượng cần có để sử dụng chương tình này.
51
Tài liệu tham khảo.
1. www.mathworks.com 2. www.wikipedia.org
3. Giáo trình Điện tử cơ bản – Trần Thu Hà (Chủ biên).
4. Giáo trình Thực tập Điện tử - Trương Thị Bích Nga (Chủ biên). 5. Văn kiện Nghị quyết Đại hội Đảng toàn quốc lần thứ XIII.
Chương trình máy tính.
➢ Code xử lý nút “Ảnh đầu vào”. global I;
% Tao khoang trong
set(handles.edit1,'string',''); % Lay anh dau vao
[Filename,Pathname]=uigetfile({'*.*';'*.jpg';'*.png'},'File
Select');
% Lay duong dan file image
fullfile=strcat(Pathname,Filename);
%hien thi image len axes + dieu chinh kich thuoc dau vao a=imread(fullfile); I = imresize(a, [227 227]); axes(handles.axes1); imshow(I); ➢ Code xử lý nút “Nhận diện”. global I; luachon = get(handles.luachon,'value');
52 switch luachon
case 2 % CL ban ky % Ket qua nhan duoc
net = load('CL_ban_ky.mat');
[YPred,probs] = classify(net.trainedNetwork_1,I); imshow(I)
% Xuat ra man hinh
set(handles.edit1,'string',YPred); axes(handles.axes2)
imshow('C:\matlab_NCKH\CL_ban_ky.png')
set(handles.edit2,'string','So do nguyen ly mach'); case 3 % CL cau
% Ket qua nhan duoc
net = load('CL_cau.mat');
[YPred,probs] = classify(net.trainedNetwork_2,I); imshow(I)
% Xuat ra man hinh
set(handles.edit1,'string',YPred); axes(handles.axes2)
imshow('C:\matlab_NCKH\CL_cau.png')
set(handles.edit2,'string','So do nguyen ly mach'); case 4 % CL toan ky
53 net = load('CL_toan_ky.mat');
[YPred,probs] = classify(net.trainedNetwork_3,I); imshow(I)
% Xuat ra man hinh
set(handles.edit1,'string',YPred); axes(handles.axes2)
imshow('C:\matlab_NCKH\CL_toan_ky.png')
set(handles.edit2,'string','So do nguyen ly mach'); end
➢ Code xử lý nút “Close”.
answer = questdlg('Do you want to close?', ... 'Close', ... 'Yes','No','No'); switch answer case 'Yes' close; case 'No' end
➢ Chèn “Tên nhãn dán” vào giao diện. web tên.htm