Tải bản đầy đủ (.pdf) (16 trang)

BÀI tập lớn môn TRÍ TUỆ NHÂN tạo – 7080122 02 đề tài xây DỰNG mô HÌNH máy học tập

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (685.36 KB, 16 trang )

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
BỘ MƠN TRÍ TUỆ NHÂN TẠO
----------***----------

BÀI TẬP LỚN
MƠN TRÍ TUỆ NHÂN TẠO – 7080122-02

Đề tài:
XÂY DỰNG MƠ HÌNH MÁY HỌC TẬP
Cán bộ giảng dạy
GV. Trần Trường Giang

Sinh viên thực hiện
Nguyễn Đức Nam-1921050411

HÀ NỘI-2022


<ND1>: Mô tả về dự án
Tên dự án: Hệ thống nhận diện ngơn ngữ ký hiệu tay
Mục đích: Xây dựng một hệ thống nhận dạng bàn tay để đoán ra
các ký tự mà người khuyết tật muốn nói trong thời gian thực.
Trong bài này tôi thiết kế hệ thông nhận diện số đếm bằng tay từ
1 đến 10 trong bảng thủ ngữ sau:

Hình 1 – Bảng số đếm bằng tay
Mơ hình Máy Học Tập: Xây dựng mơ hình học sâu sử dụng mạng nơron tổ hợp tích chập – Convolution Neural Network
Môi trường dự án: Python virtual environment - Môi trường lập trình ảo
Python
Ngơn ngữ: Python
Bộ thư viện: Tensorflow, Keras


IDE: Visual Studio Code
Tạo mơi trường lập trình ảo: Tại terminal cho thư mục chưa project thực
hiện câu lệnh “py –m venv venv” để tạo mơi trường lập trình ảo “venv”
cho ngôn ngữ Python phiên bản hiện dùng. Các thư viện sử dụng liên quan
đều được cài trong môi trường này.


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 2 – Mơi trường lập trình ảo Python
<ND2>: Mơ tả về quá trình tạo dữ liệu huấn luyện
Viết file “gesture_data.py” với mục đích tạo dữ liệu huấn luyện như sau:
Tạo thư mục “data” chứa thư mục “train” và “test”: Thực hiện
kiểm tra xem đã tồn tại thưc mục “data” hay chưa, nếu đã tồn tại in ra
màn hình thơng báo “The directory containing the data already exists”.
Nếu chưa tồn tại, tiến hành tạo thư mục “data”, bên trong tạo 2 thư mục
con “train” và “test”. Bên trong mỗi thư mục con tạo 10 thư mục chứa
ảnh cho huấn luyện mơ hình. Kết quả thu được như hình dưới

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 3 – Tạo các thư mục chứa dữ liệu huấn luyện

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


Hình 4 – Thư mục chưa dữ liệu huấn luyện
Thu thập hình ảnh ký hiệu tay của từng số đếm (từ 1 đến 10) bằng
camera máy tính, lưu hình ảnh thu được vào thư mục cùng tên tương ứng:
Thiết kế vòng lặp thu thập dữ liệu cho tập [“train”, “test”], với mỗi tập
thực hiện vòng lặp thu thập dữ liệu cho từng folder từ 1 đến 10 của mỗi
tập. Thu thập 300 ảnh với mỗi ký hiệu đối với tập “train” và 100 ảnh đối
với tập “test”.

Hình 5 – Vịng lặp thu thập dữ liệu
Đầu tiên cần xác định nền (back ground) của ảnh, qua đó giúp máy
tính nhận dạng được hình ảnh tay khi đưa vào. Xác định nền của ảnh
trong 60 frame đầu tiên. Việc xác định nền chỉ cần làm 1 lần duy nhất
trong vòng lặp lấy ảnh cho số 1 của tập “train”. Đối với các lần tiếp theo
sẽ lấy 60 frame đó là thời gian nghỉ để chuẩn bị cho việc thu thập số tiếp
theo.

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 6 – Giao diện nhận dạng nền
Việc xác nhận nền là cơ sở để thu thập ảnh, giúp máy tính tính tốn
được hình ảnh thu được với mỗi frame khi đưa tay vào nhận diện. Cần
giữ máy ảnh cố định trong suốt quá trình thu thập dữ liệu.
File “gesture_data.py” được thiết kế thu thập toàn bộ dữ liệu
“train”, “test” cho 10 số trong một lần chạy duy nhất, có 1 khoảng nghỉ
60 frame cho mỗi chuyển đổi giữa các số để người thực hiện có thời
gian định hình ký hiệu tay.


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 7 – Thu thập dữ liệu
Trong quá trình thu thập dữ liệu cần điều kiện đủ sáng, hình ảnh
thu được sẽ sắc nét hơn.
<ND3>: Mơ tả q trình huấn luyện
Viết file “gesture_training.py” với mục đích huấn luyện mơ hình
như sau:
Hình ảnh đưa vào huấn luyện được resize về kích thước 64x64, chia
mỗi bath gồm 10 ảnh.
Mơ hình học sâu mạng nơ-ron tổ hợp tích chập được xây dựng như
sau:

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 8 – Xây dựng kiến trúc mơ hình học sâu

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 9 – Kiến trúc mơ hình học sâu

Do việc thu thập lại data không được tối ưu, nên sử dụng model
cũng không đạt được Accyracy cao, vậy nên em đã viết lại kiến trúc mơ
hình học sâu như trên. Mơ hình được xây dựng theo ý tưởng của mơ
hình VGG16, 2 lớp Conv2D + 1 lớp Pooling. Do hạn chế cấu hình máy

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

tính cịn yếu, khơng đáp ứng đủ nhu cầu training model với lượng layer
cao và các kỹ thuật khác như áp dụng Batch Normalization, Skip
Connection,...
Huấn luyện mơ hình trong khoảng 10 phút đạt kết quả như sau:

Hình 10 – Đồ thị hàm loss và hàm accuracy

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 11 – Confusion matrix

Hình 12 – Quá trình huấn luyện
Trong q trình huấn luyện mơ hình, thơng số quan trọng nhất cần
quan sát là loss, val_loss, accuracy, val_accuracy và lr. Learning rate sẽ
thay đổi nhằm mục đích mơ hình học tốt nhất có thể.
Từ hình 12 cho thấy việc ánh xạ của mơ hình từ X sang y đã được


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

thực hiện tốt, nói cách khác model đã có thể hiểu được các ký hiệu tay
có trong tập “train” ứng với con số này đang được thể hiện. Tuy nhiên
val_accuracy hay chính là Accuracy của tập “test” chưa được cao. Điều
này sẽ tiếp tục được thảo luận trong phần tiếp theo.
<ND4>: Mơ tả q trình chạy mơ hình đã được huấn luyện (chạy chương
trình nào, mơ hình đã được huấn luyện được lưu vào tệp tin có tên là gì)
Viết file “gesture_model.py” với mục đích sử dụng mơ hình đã được huấn
luyện vào sử dụng thực tế như sau:
Mơ hình đã được huấn luyện được lưu vào tệp tin có tên là
“BTL_CNN_model.h5”.
<ND5>: Viết những nhận xét của riêng bạn về q trình huấn luyện mơ
hình Máy Học Tập (viết nếu bạn huấn luyện được mơ hình, ngược lại
khơng cần viết)
Để mơ hình hoạt động tốt việc tạo dữ liệu là vơ cùng quan trọng.
Dữ liệu có đúng, chính xác, đa dạng thì mơ hình mới có thể học tập và
thực hành chính xác được.
Trong q trình huấn luyện mơ hình, giới hạn phần cứng ảnh
hưởng nhiều đến việc viết mô hình học sâu, cần sử dụng GPU với dung
lượng bộ nhớ cao giúp chạy được mơ hình lớn, tốc độ cao, cải thiện
được kết quả bài tốn.
Nhìn chung mơ hình được huấn luyện đã nhận diện được ký hiệu tay
cho các con số, tuy nhiên mơ hình dễ nhận diện nhầm các số khi đưa tay
khơng đúng góc nhìn của camera. Điều này lý giải do lượng dữ liệu đưa
vào học chưa được tường minh, cử chỉ tay khi tạo dữ liệu chưa được dứt
khoát, dễ gây hiểu nhầm, đồng thời dữ liệu chưa được phái sinh như lật,

xoay, thu phóng kích thước để là đa dạng dữ liệu.
Dựa vào các hình 10 11 và 12 có thể nhận thấy mơ hình học tập chưa
tốt. Biện minh cho kết quả này có các lý do như sau:
- Dữ liệu chuẩn bị chưa tốt, số lượng ít, chưa đa dạng
- Mơ hình học tập thiết kế đơn giản, số lượng tham số, lớp chưa
đảm bảo, chưa áp dụng các kỹ thuật tiên tiến
<ND6>: Tìm hiểu về mạng nơ-ron tích chập
Mơ hình đã được huấn luyện theo dữ liệu tự thu thập và mơ hình tự

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

thiết kế.
<ND7>: Trực quan hóa sơ đồ mạng nơ-ron tổ hợp tích chập.

Hình 13 – Xây dựng kiến trúc mạng nơ-ron tổ hợp tích chập

Hình 14 – Sơ đồ mạng nơ-ron tổ hợp tích chập
Filers = [32, 64] thể hiện ở lớp Conv2D đầu tiên xuất hiện có
filter = 32, lần tiếp theo xuất hiện có filter = 64. Tương tự với các
ký hiệu khác
Tham số:
kernel_size(3, 3) – là kích thước của kernel hình vng 3 x3
trong phép tốn tích chập ảnh. Kernel trượt lần lượt theo bước nhảy
strides từ trái qua phải, từ trên xuống dưới và thực hiện phép tích
chập với ảnh như hình 14. Việc lấy size của kernel thích hợp với
mục tiêu của lớp và bài tốn. Tuy nhiên kích thức của kernel phải là
số lẻ để kernel có tâm, việc tích tốn tránh phát sinh các vấn đề khác.


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 15 – Phép tích chập của lớp Conv2D
activation=’relu’ – là 1 hàm kích hoạt f(x) =max(0, x). Có
nhiều hàm kích hoạt khác nhau, mỗi hàm có một ưu điểm nhược
điểm riêng. Từ lâu ta đã biết các hàm như Sigmoid, Sofmax, Tanh…
Hàm ReLU gần đây được sử dụng phổ biến khi huấn luyện các mạng
nơ-ron. ReLU đơn giản lọc các giá trị < 0. Nhìn vào cơng thức chúng
ta dễ dàng hiểu được cách hoạt động của nó. Một số ưu điểm khá
vượt trội của nó so với sigmoid và tanh:
(+) Tốc độ hội tụ nhanh hơn hẳn. ReLU có tốc độ hội tụ nhanh
gấp 6 lần Tanh. Điều này có thể do ReLU khơng bị bão hồ ở 2 đầu
như Sigmoid và Tanh.
(+) Tính tốn nhanh hơn. Tanh và Sigmoid sử dụng hàm exp
và công thức phức tạp hơn ReLU rất nhiều do vậy sẽ tốn nhiều chi
phí hơn để tính tốn.
(-) Tuy nhiên ReLU cũng có một nhược điểm: Với các node
có giá trị nhỏ hơn 0, qua ReLU activation sẽ thành 0, hiện tượng đấy
gọi là “Dying ReLU“. Nếu các node bị chuyển thành 0 thì sẽ khơng
có ý nghĩa với bước linear activation ở lớp tiếp theo và các hệ số
tương ứng từ node đấy cũng khơng được cập nhật với gradient
descent. Từ đó Leaky ReLU ra đời.
(-) Khi learning rate lớn, các trọng số (weights) có thể thay đổi
theo cách làm tất cả nơ-ron dừng việc cập nhật

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap



BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

Hình 16 – Đồ thị hàm ReLU
pool_size(2, 2) – là kích thước của kernel hình vng cạnh 2x2
khi thược hiện phép pooling. Khi kernel di chuyển theo stride sẽ lấy
toàn bộ các giá trị nằm trong phạm phi kích thước của nó và thực
hiện phép pooling tương ứng (max, min, aveg). Như hình dưới là
pooling_size(2,2).

Hình 17 - Pooling
strides=2 – là bước nhảy của kernel như hình 16. Kernel di
chuyển qua 2 pixel 1 lần nhảy từ trái qua phải xong từ trên xuống
dưới.
Sequential() của Keras – là mơ hình tuần tự là đơn giản nhất

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap


BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap

BAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tapBAI.tap.lon.mon.TRI.TUE.NHAN.tao.–.7080122.02.de.tai.xay.DUNG.mo.HINH.may.hoc.tap



×