Thực hiện huấn luyện mô hình

Một phần của tài liệu biển báo giao thông sử dụng deep learning (Trang 44 - 51)

3. XÂY DỰNG MÔ HÌNH PHÁT HIỆN BIỂN BÁO GIAO THÔNG

3.4 Thực hiện huấn luyện mô hình

a) Công chun luyn

Google Colab hay Colaboratory là sản phẩm của Google Research cho phép chạy các dòng code python qua trình duyệt nhằm phục vụ các nhu cầu về giáo dục

và nghiên cứu. Google Colab cũng không yêu cầu cài đặt cấu hình cho máy tính mà các tài nguyên CPUs, GPUs, TPUs đều được cung cấp hoàn toàn miễn phí. Tuy nhiên vì tính miễn phí, Google Colab giới hạn thời gian sử dụng trong vòng 12 tiếng.

Trên môi trường Google Colab cũng có cài đặt sẵn một số thư viện dành cho Deep Learning phổ biến như PyTorch, TensorFlow, Keras,OpenCV... Ngoài ra, ưu điểm của Google Colab là có thể kết nối với Google Drive để đọc và lưu dữ liệu nên rất tiện dụng.

Chính vì nhiều ưu điểm như vậy, trong đề tài đồ án của mình, nhóm chúng tôi

sử dụng Google Colab để huấn luyện cho tập dữ liệu của mình.

Hình 3-5. Google Colaboratory

Có nhiều nền tảng Deep Learning hỗ trợ việc huấn luyện mô hình YOLOv4 như Darknet, Tensorflow, PyTorch,… Nhóm chúng em chọn Darknet là nền tảng huấn luyện mô hình trong đề tài này. Darknet là một nền tảng huấn luyện mạng nơ-ron mã nguồn mở được viết bằng ngôn ngữ C và công cụ hỗ trợ tính toán CUDA. Darknet giúp việc huấn luyện YOLOv4 nhanh, dễ cài đặt và hỗ trợ tính toán bằng GPUs.

b) Các kthut sdng trong hun luyn

- Kỹ thuật Early Stopping:

Trong nhiều bài toán Machine Learning, chúng ta cần sử dụng các thuật toán lặp để tìm

Downloaded by ANH LE (bachvan14@gmail.com)

máy

ra nghiệm, ví dụ như Gradient Descent. Nhìn chung, hàm mất mát giảm dần khi số vòng lặp

tăng lên.

Early stopping tức dừng thuật toán trước khi hàm mất mát đạt giá trị quá nhỏ, giúp tránh overfitting.

máy

Khi thực hiện huấn luyện mô hình YOLOv4, ta đã tách tập dữ liệu ban đầu thành các tập Training và Validation. Quá trình huấn luyện sẽ tính toán chỉ số mAP và giá trị hàm mất mát trên cả hai tập dữ liệu này. Khi giá trị hàm mất mát trên tập Validation có xu hướng tăng lên, ta có thể dừng việc huấn luyện mô hình lại và chọn sử dụng trọng số huấn luyện tại điểm dừng lại này. Kỹ thuật này giúp hạn chế hiện tượng Overfitting. Khi huấn luyện YOLOv4, phiên bản tốt nhất của trọng số làm cho

validation error nhỏ nhất sẽ được lưu lại và cập nhật ở file “*-best.weights”. Do đó ta có thể

sử dụng trọng số ở điểm Early Stopping này cho việc dự đoán dữ liệu thực tế.

- Kỹ thuật Learning rate scheduler:

Thông số learning rate quyết định mức độ cập nhật của trọng số dựa vào batch dữ liệu hiện tại.

Learning rate thường được chọn ở khoảng 0.0001 đến 0.01.

Hình 3-6. Ví dvviệc thay đổi giá trleaning rate

Khi bắt đầu huấn luyện, mô hình bắt đầu học với trọng số khởi tạo ngẫu nhiên, do đó learning rate cần được cài đặt ở giá trị lớn. Qua quá trình huấn luyện, mô hình ngày càng tiến gần tới điểm cực tiểu hàm mất mát, do đó learning rate cần được đặt ở giá trị nhỏ hơn

để đạt đến điểm này. Kỹ thuật

thay đổi giá trị của learning rate trong quá trình huấn luyện được gọi là Learning rate scheduler.

Downloaded by ANH LE (bachvan14@gmail.com)

máy

Hình 3-7. Ví dvStep Scheduler

máy

Khi thực hiện huấn luyện mô hình YOLOv4 cho bài toán nhận diện biển báo giao thông, kỹ thuật Learning rate scheduler được sử dụng là Steps scheduler với bước giảm là 0.2 và 0.1 tại lần lặp thứ 10000 và 15000. Các thông số này được cài đặt ở file cấu hình mạng YOLOv4 “custom-yolov4- detector.cfg” như hình sau:

Hình 3-8. Cài đặt thông slearning rate scheduler file cu hình mng YOLOv4

- Kỹ thuật Burn-in:

Trên những bộ dữ liệu đơn giản, rất dễ phân biệt, mô hình có thể đối mặt với hiện tượng “early overfit” do những lợi thế ban đầu của dữ liệu là khá lớn. Do đó kỹ thuật burn-

in (warm-up) learning rate sẽ được sử dụng trong trường hợp này. Khi đó, giá trị learning rate sẽ tăng dần từ 0 đến một giá trị cố định trong những lần lặp huấn luyện đầu.

Khi huấn luyện mô hình YOLOv4, giá trị burn-in được cài đặt bằng 1000. Điều này có nghĩa là

learning rate sẽ tăng từ 0 đến 0.001 trong 1000 lần lặp huấn luyện đầu tiên.

c) Cài đặt các thông shun luyn

Có nhiều tham số được sử dụng trong thuật toán YOLOv4 tuy nhiên ở đây chỉ đề cập đến một số tham số quan trọng ảnh hưởng lớn đến quá trình huấn luyện, các tham số còn lại được giữ mặc định theo cấu hình của tác giả.

- Batch size: 32. Batch size là số lượng ảnh được đưa vào mạng huấn luyện trong 1 lần lặp

(iteration). Batch size được chọn phù hợp với khả năng tính toán của GPU.

- Iterations: 24000. Iterations là số lần lặp huấn luyện, tương ứng với số lân cập nhật trọng số.

Giá trị này được tác giả khuyến khích chọn bằng 2000*num_classes = 2000*12 = 24000.

- Learning rate policy: steps, steps: 10000, 15000, scales: 0.2, 0.1. Những thông số này liên quan đến Learning rate scheduler đã được trình bày ở trên, được chọn thông qua quá trình huấn luyện thực tế.

- Input size: 608 x 608 x 3. Input size là kích thước ảnh ngõ vào, được chọn lớn hơn so

Downloaded by ANH LE (bachvan14@gmail.com)

máy

với thông số mặc định (416 x 416 x3) vì nhóm muốn giữ lại các biển báo nhỏ không bị giảm kích thước quá nhiều dẫn đến mất nhiều thông tin.

máy

d) Hun luyn mô hình

Với những kỹ thuật, thông số đã sử dụng kể trên, nhóm em tiến hành huấn luyện mô hình sử dụng Google Colab để huấn luyện YOLOv4 trên nền tảng Deep Learning Darknet. Các bước thực hiện huấn luyện như sau:

- Bước 1: Đăng nhập vào Google Colab, kết nối vào Google Drive và chọn công cụ

hỗ trợ tính toán GPU.

- Bước 2: Tải mã nguồn darknet để huấn luyện mô hình YOLOv4 từ repository https://github.com/roboflow-ai/darknet.git. Tải file trọng số đã pretrain.

- Bước 3: Chạy Makefile để khởi tạo môi trường huấn luyện.

- Bước 4: Chỉnh file config cấu trúc mạng và các tham số liên quan như đã trình bày

ở phần trên.

- Bước 5: Tạo file obj.data chứa thông tin về địa chỉ dữ liệu cũng như nhãn. Bao gồm: + train.txt: chứa đường dẫn đến dữ liệu training

+ val.txt: chứa đường dẫn đến dữ liệu validation

+ obj.names: chứa tên các nhãn

+ backup: đường dẫn folder backup file trọng số

+ classes: số lớp huấn luyện

Hình 3-9. . Ni dung file obj.data (trái) và obj.names (phi)

- Bước 6: Tiến hành huấn luyện.

Mô hình YOLOv4 nhận diện biển báo giao thông được huấn luyện bằng GPU Tesla P100 trong vòng 104 tiếng.

Downloaded by ANH LE (bachvan14@gmail.com)

máy

Một phần của tài liệu biển báo giao thông sử dụng deep learning (Trang 44 - 51)

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

(60 trang)