
SCIENCE - TECHNOLOGY Số 13.2023 ● Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 137
NGHIÊN CỨU MẠNG NƠ-RON TÍCH CHẬP VÀ ỨNG DỤNG XÂY DỰNG HỆ THỐNG HỖ TRỢ COI THI ONLINE CỦA TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
RESEARCH ON CONTINUOUS NEURAL NETWORK AND APPLICATION TO BUILDING AN ONLINE EXAMINATION SUPPORT SYSTEM OF HANOI UNIVERSITY OF INDUSTRY Nguyễn Duy Sơn1,*, Trần Tuấn Anh1, Trần Anh Tuấn2, Ngô Thị Thanh Hoà 3 TÓM TẮT Hệ thống coi thi trực tuyến là một công nghệ giám sát và ki
ểm tra kỹ
thuật số được sử dụng trong quá trình t
ổ chức thi trực tuyến, giúp đảm bảo
tính trung thực và công bằng của quá trình ki
ểm tra. Công việc xây dựng hệ
thống coi thi trực tuyến là một dự án phức tạp, yêu c
ầu kiến thức về công
nghệ thông tin, bảo mật, giao diện người dùng, tích hợp hệ thống, và nhi
ều
yếu tố khác. Công việc này có thể bao gồm các tính năng như vi
ệc xác thực
danh tính của thí sinh, giám sát hình ảnh hoặc video của thí sinh trong su
ốt
quá trình thi, theo dõi hoạt động trên máy tính c
ủa thí sinh để phát hiện dấu
hiệu gian lận hoặc vi phạm quy định thi, và bảo mật dữ liệu của bài thi. Đ
ể
xây dựng đề tài này chúng tôi nghiên c
ứu một số thuật toán nhận dạng khuôn
mặt và cài đặt chương trình nhận dạng khuôn mặt trên ảnh thẻ sinh vi
ên cùng
với sinh viên đang cầm thẻ, dùng thuật toán CNN với sự giúp đỡ của thư vi
ện
Keras và ngôn ngữ lập trình Python. Từ khóa: Hệ thống nhận dạng khuôn mặt, mạng neural nhân tạo. ABSTRACT The online
proctoring system is a digital monitoring and testing
technology used in the process of organizing online exams, ensuring the
integrity and fairness of the assessment process. Building an online proctoring
system is a complex project that requires knowledg
e of information
technology, security, user interface design, system integration and various
other factors. This task may include features such as authenticating the identity
of candidates, monitoring candidates’ image or videos throughout the
examination
process, tracking activities on candidates’ computers to detect
signs of cheating or violations of examination regulations and securing the
exam data. To build this project, we researched several face recognition
algorithms and implemented a face recogniti
on program on student ID card
images using the CNN algorithm with the help of the Keras library and the
Python programming language. Keywords: Face recognition system, artificial neural network. 1Lớp Kỹ thuật phần mềm 01- K16, Khoa CNTT, Trường Đại học Công nghiệp Hà N
ội
2Lớp Kỹ thuật phần mềm 01- K14, Khoa CNTT, Trường Đại học Công nghiệp Hà Nội3Khoa CNTT, Trường Đại học Công nghiệp Hà Nội *Email: nguyenduyson28072003@gmail.com 1. GIỚI THIỆU Hệ thống coi thi trực tuyến là một giải pháp số dùng để tổ chức thi trực tuyến nhằm giám sát và xác thực tính trung thực của quá trình kiểm tra. Hệ thống này sử dụng các công nghệ khác nhau như nhận dạng khuôn mặt, giám sát video, chia sẻ màn hình và theo dõi hoạt động trên máy tính của thí sinh để phát hiện bất kỳ dấu hiệu gian lận hoặc vi phạm quy định thi nào. Một số tính năng chính của hệ thống coi thi trực tuyến có thể bao gồm: Xác thực danh tính sử dụng nhận dạng khuôn mặt, quét thẻ ID hoặc các phương pháp khác để xác thực danh tính của thí sinh trước khi bắt đầu thi. Có nhiều nghiên cứu liên quan đến hệ thống coi thi trực tuyến, trong đó tập trung vào các lĩnh vực như nhận dạng khuôn mặt, giám sát video, giám sát hành vi của thí sinh, chia sẻ màn hình, bảo mật dữ liệu và các công nghệ khác liên quan đến quá trình tổ chức thi trực tuyến. Ngoài ra, còn nhiều nghiên cứu khác liên quan đến hệ thống coi thi trực tuyến trong các lĩnh vực khác như bảo mật dữ liệu, giao diện người dùng, tích hợp hệ thống, và các yếu tố khác. 2. PHƯƠNG PHÁP 2.1. Tổng quan về mạng neural nhân tạo - Khái niệm mạng neural nhân Mạng neural nhân tạo (Artificial Neural Network - ANN) là một mô hình tính toán được lấy cảm hứng từ cấu trúc và hoạt động của hệ thần kinh sinh học. Nó được sử dụng để mô phỏng và giải quyết các bài toán phức tạp trong lĩnh vực trí tuệ nhân tạo. Một mạng neural nhân tạo bao gồm một số lượng lớn các đơn vị tính toán gọi là neuron, được tổ chức thành các lớp. Các lớp gồm lớp đầu vào (input layer), các lớp ẩn (hidden layers), và lớp đầu ra (output layer). Mỗi neuron trong lớp nhận đầu vào từ các neuron trong lớp trước đó, tính toán và truyền kết quả đến các neuron trong lớp tiếp theo. Quá trình huấn luyện mạng neural nhân tạo thường bao gồm hai giai đoạn chính: forward propagation và backward

CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC ● Số 13.2023
138
KHOA H
ỌC
propagation. Trong giai đoạn forward propagation, dữ liệu được đưa vào mạng và truyền qua các lớp, kết quả dự đoán được tính toán ở lớp đầu ra. Trong giai đoạn backward propagation, sai số giữa đầu ra dự đoán và đầu ra thực tế được tính toán và truyền ngược lại qua mạng để điều chỉnh các trọng số liên kết giữa các neuron. Quá trình này được thực hiện thông qua thuật toán lan truyền ngược (backpropagation), với mục tiêu là tối thiểu hóa hàm mất mát (loss function) để tăng độ chính xác của mạng. Hình 1. Cấu tạo cơ bản của neural nhân tạo Đầu ra ŷ của Mạng nơ ron 2 lớp đơn giản như sau: Hình 2. Biểu đồ quá trình huấn luyện 2.2. Tổng quan về tích chập và mạng neural tích chập CNN Tích chập (Convolution) là một phép toán toán học trong đại số tuyến tính, được sử dụng rộng rãi trong xử lý tín hiệu và thị giác máy tính. Khi áp dụng tích chập lên các dữ liệu đa chiều, nó có khả năng trích xuất thông tin cục bộ và tạo ra các biểu diễn đặc trưng. Mạng neural tích chập (Convolutional Neural Network - CNN) là một loại kiến trúc mạng neural được thiết kế đặc biệt cho việc xử lý dữ liệu có cấu trúc, như hình ảnh và video. CNN sử dụng lớp tích chập để tự động học các bộ lọc hoặc kernel nhằm trích xuất các đặc trưng từ dữ liệu đầu vào. Cấu trúc chính của một CNN bao gồm các lớp sau: - Lớp đầu vào (Input layer): Nhận dữ liệu đầu vào, thường là các hình ảnh. - Lớp tích chập (Convolutional layer): Áp dụng các bộ lọc (kernel) để tạo ra các feature map, mỗi feature map tương ứng với một đặc trưng cụ thể trong dữ liệu. - Lớp pooling (Pooling layer): Thực hiện downsampling (thu nhỏ kích thước) của feature map để giảm số lượng thông tin, giúp giảm chi phí tính toán và làm giảm overfitting. - Lớp kích hoạt (Activation layer): Áp dụng một hàm kích hoạt phi tuyến tính (thường là ReLU) lên feature map để tạo độ phi tuyến tính và khả năng học các đặc trưng phức tạp. - Lớp đầy đủ kết nối (Fully Connected layer): Một hoặc nhiều lớp kết nối đầy đủ được sử dụng để kết hợp các đặc trưng đã trích xuất và thực hiện phân loại. - Lớp đầu ra (Output layer): Lớp cuối cùng thực hiện phân loại hoặc dự đoán kết quả dựa trên đầu vào đã được xử lý. Hình 3. Cấu trúc chính của một CNN Trong quá trình huấn luyện, CNN sử dụng thuật toán lan truyền ngược (backpropagation) để điều chỉnh các trọng số của mạng và tối thiểu hóa hàm mất mát. CNN đã đạt được thành công đáng kể trong nhiều nhiệm vụ thị giác máy tính, bao gồm nhận dạng vật thể trong hình ảnh, nhận dạng khuôn mặt 3. THỰC NGHIỆM 3.1. Thu thập ảnh đầu vào Mỗi người dùng sẽ cần sử dụng hệ thống thu thập khuôn mặt, sau khi đưa vào camera qua các góc nhìn khác nhau, hệ thống tự động thu thập hình ảnh là các khuôn mặt của người dùng (chính diện, bên trái, bên phải, nhìn lên, nhìn xuống) để có được các đặc trưng khác nhau và các hình ảnh này được chuyển vào database của hệ thống. 3.2. Tối ưu lỗi và huấn luyện dữ liệu Ở giai đoạn này hệ thống sẽ được tối ưu hoá. Sử dụng model Sequential(). Trong model Sequential cũng có sẵn hàm tối ưu sử dụng các phương thức tối ưu. Thiết lập Early Stopping, lớp này sẽ giúp ngừng huấn luyện khi tỉ lệ nhận dạng sai không còn cải thiện. Thiết lập Reduce IROn Plateau, lớp này sẽ giúp giảm tỷ lệ học tập khi sự cải thiện là không đáng kể. Gọi hàm fit() để bắt đầu huấn luyện với dữ liệu train là train generator, test là val generator. Tập dữ liệu này được tạo bằng cách sử dụng lớp ImageDataGenerator đã được thêm ở phần trước.

SCIENCE - TECHNOLOGY Số 13.2023 ● Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 139
3.3. Thiết kế mạng neural 3.3.1. Quy trình lựa chọn tham số cho mạng neural Để lựa chọn tham số cho mạng neural, thông thường ta sẽ thực hiện quá trình khảo sát các yếu tố sau: - Sử dụng bao nhiêu lớp tích chập? - Kích thước của lớp fully connected là bao nhiêu? - Dropout bao nhiêu phần trăm là phù hợp? - Sử dụng optimizer nào là tốt nhất? Qua quá trình khảo sát hết các yếu tố đã đưa ra thì ta sẽ chọn được bộ tham số đạt thời gian tối ưu và độ chính xác tốt nhất cho cấu trúc nhận dạng khuôn mặt. 3.3.2. Thực thi quá trình lựa chọn tham số Quá trình lựa chọn cấu trúc của mạng neural tích chập CNN trong khuôn khổ luận văn này được thực hiện theo cách là xác định số lượng feature trong mạng CNN và khảo sát 3 trường hợp với giá trị khác nhau là 32, 64 và 128. Các tham số còn lại được lựa chọn ban đầu theo thông số dưới đây và bộ optimizer được sử dụng là Adam. 3.3.3. Khảo sát lựa chọn tham số Ở giai đoạn này chúng ta sẽ khảo sát từng tham đã lựa chọn: number_ of_ features, batch_size, dropout CNN, dropout Dense, bộ optimizer. Ta được kết quả tổng hợp sau khi khảo sát giá trị của number_of_features ở bảng 1. Bảng 1. Tổng hợp các lần khảo sát của number_of_features Lượt thực hiện number_of_featuresSố lần epochs ms/step Độ chính xác xác thực 1 32 30 218ms/step 0,9807 2 64 38 218ms/step 0,9841 3 128 30 331ms/step 0,9811 Sau quá trình khảo sát huấn luyện ta chọn ra được giá trị tốt nhất của number_of_features là 32 với thời gian nhỏ nhất là 218, số lần epochs là 30 và giá trị chính xác đạt tốt nhất là 0,9807. Bảng 2. Tổng hợp số lượng khảo sát của batch_size Lượt thực hiện batch_size Số lần epochs ms/step Độ chính xác
xác thực 1 32 30 218ms/step 0,9807 2 64 68 152ms/step 0,9870 3 128 50 307ms/step 0,9880 Ở lần khảo sát quá trình huấn luyện này ta chọn ra được giá trị tốt nhất của batch_size bằng 32 với thời gian nhở nhất, số lần epochs ít nhất và giá trị chính xác đạt tốt nhất. Bảng 3. Tổng hợp số lượng khảo sát của drop_out_CNN Lượt thực hiện drop_out_CNN Số lần epochs ms/step Độ chính xác xác thực 1 0,2 43 163ms/step 0,9762 2 0,3 69 99ms/step 0,9793 3 0,4 69 111ms/step 0,9651 Cuối cùng khi khảo sát hết tất cả các giá trị của drop_out_CNN đã lựa chọn thì giá trị đạt 0,3 là đưa ra được kết quả tối ưu nhất Bảng 4. Tổng hợp số lượng khảo sát của drop_out_Dense Lượt thực hiện drop_out_Dense
Số lần epochs ms/step Độ chính xác xác thực 1 0,3 57 102ms/step 0,9850 2 0,4 57 74ms/step 0,9772 3 0,5 63 67ms/step 0,9739 Thực hiện quá trình huấn luyện giữ nguyên các tham số khác, chi thay đổi tham số của droput_Dense ta được kết quả như bảng 4.4. Sau khi khảo sát giá trị của dropout_Dense đạt 0,3 đưa ra kết quả có thời gian tối ưu và độ chính xác tốt nhất Bảng 5. Tổng hợp số lượng khảo sát của bộ optimizer Lượt thực hiện Optimizer Số lần epochs ms/step Độ chính xác xác thực 1 sgd 90 69ms/step 0,9783 2 Adam 57 102ms/step 0,9850 Sau khi khảo sát giá trị của bộ optimizer, optimizer được chọn cho mạng CNN là Adam với số lần epochs ít nhất, độ chính xác tốt nhất. Nhóm nghiên cứu tiến hành quá trình khảo sát để chọn ra bộ tham số tốt nhất cho ứng dụng nhận dạng khuôn mặt người trên Keras - một trong các thư viện của ngôn ngữ lập trình Python. Từ quá trình khảo sát lựa chọn tham số tới quy trình thực hiện lựa chọn tham số nhằm đạt được yêu cầu đưa ra. Kết quả cho thấy, đã chọn ra được bộ tham số tốt nhất với các giá trị nums_feature bằng 32, batch_size bằng 32, giá trị của dropout_CNN bằng 0,3, dropout_Dense bằng 0,3 và optimizer là Adam với các điều kiện ràng buộc đưa ra được thời gian huấn luyện ngắn nhất đạt được là 102ms/step và độ chính xác tốt nhất là trên 98% đã được theo yêu cầu đã đặt ra. Hình 4. Kết quả mô hình Với sự lựa chọn các tham số, số epochs để tốt nhất là khi mà accuracy và validation_accuracy có giá trị xấp xỉ bằng nhau. Training data đang tăng nhưng validation data tăng

CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC ● Số 13.2023
140
KHOA H
ỌC
lên một mức rồi không tăng tiếp chứng tỏ mô hình đã lựa chọn chưa thực sự là mô hình tối ưu. Để lựa chọn mô hình tối ưu thì về nguyên tắc trong đồ thị của kết quả khảo sát đường accuracy của dữ liệu train và accuracy của dữ liệu validation phải luôn bám sát nhau cũng tăng lên đỏ mới là mô hình chuẩn nhưng để khảo sát đưa ra được mô hình chuẩn ta cần phải thay đổi rất nhiều về cấu trúc. Nhóm nghiên cứu đã lựa chọn bộ tham số đã lựa chọn trên và được kết quả như hình 4. 4. KẾT LUẬN Mạng neural tích chập CNN là một mô hình mạng neural được sử dụng nhiều cơ sở lý thuyết. Chúng tôi đã xây dựng được quy trình để lựa chọn được cấu trúc của mạng neural, đã triển khai được một mạng neural thử nghiệm và đạt được độ chính xác nhận diện trung bình trên 99%. Kết quả rất khả thi trong việc ứng dụng và phòng tránh gian lận thi cử trong “hệ thống thi online Trường Đại học Công nghiệp Hà Nội”. Và trong tương lai, nhóm tác giả sẽ phát triển hệ thống lớn hơn phục vụ cho hiệu quả cao nhất, thích nghi với mọi sự thay đổi của xã hội. TÀI LIỆU THAM KHẢO [1]. Nguyễn Phương Nga, Trần Hùng Cường, 2021. Giáo trình Trí tuệ nhân tạo. Nhà xuất bản Thống kê. [2]. Nguyễn Thị Len, 2014. Đề xuất phương pháp nhận dạng mặt người và ứng dụng chống gian lận trong thi cử. Luận văn thạc sĩ, Học viện Công nghệ Bưu chính Viễn thông. [3]. M. S. V. Ashwini B. Akkawar, 2015. Review And Comparative Study of Face Recognition Using Different Neural Networking algorithm. International Journal of Engineering Research and General Science, 3, 2, Part 2, 479-484. [4]. Ostawal Prachi Satish, P.G.Salunke, 2014. A Survey on Face Recognition and Facial Expression Identification. International Journal Of Engineering And Computer Science, 3, 12 9524-9527 [5]. Joshi Practeek, 2017. Artificial intelligence with python a comprehensive guide to building intelligence apps for python beginners and developers. Packt Publishing. [6]. Stuart Russell, Peter Norvig, 2020. Artificial Intelligence: A Modern Approach. 4th Edition, Pearson. [7]. M. G. Kresimir Delac, 2007. PCA and LDA based Neural Networks for Human Face Recognition. in Face Recognition, Vienna, Austria, I-Tech, 94-106

