QML guide #2: Project
Ở phần này, mình sẽ đi sau vào Quantum machine learning (QML) một xíu, chúng ta sẽ làm quen với model khá phổ biến: CNN và phiên bản nâng cấp Quantum CNN/ Quanvolutional NN.
1. Lý thuyết về CNN
Các khái niệm cần nắm về CNN:
- CNN được dùng ở đâu?
- Input, output của CNN là gì?
- Các thành phần trong CNN: convolutional layer, neural layer, fully connected layer.
- Thủ tục sử dụng CNN: bao gồm thu thập / chuẩn bị dataset, training / validation model và testing model.
- Tìm hiểu về gradient và các cập nhật weight trên model.
- Các thành phần phụ trong thủ tục: tìm hiểu ít nhất hai optimizer (SGD, Adam), Drop-out, Batch normalization, Initalize weight strategy.
- Một số kiến trúc CNN (từ dễ đến khó): Lenet $\rightarrow$ VGG $\rightarrow$ Resnet.
Bài tập:
- Sử dụng Python/Keras để implement Lenet và VGG-16 (chỉ sử dụng những thành phần cơ bản có sẵn như $Conv2D, Flatten, Dense$)
- Tiến hành train/test trên hai tập dữ liệu MNIST và CIFAR10, mỗi tập chỉ lấy 1000 item, trong đó 100 item được dùng để test.
- Thu thập số liệu sau khi đánh giá bao gồm: loss value, accuracy, precision, recall, f1-score, confusion matrx.
___
2. Lý thuyết về Quatum CNN
Các khái niệm cần nắm:
- Các tính gradient trên parameterized quantum circuit (parameter-shift rule). Đọc các nguồn [1][2][3].
- Entangled topology: chain-topology, alternating-topology, all-to-all-topology
- Entangled quantum state: GHZ và W.
- Mô hình Quantum CNN: định nghĩa, cách implement các thành phần convolutional, fully connected.
Bài tập:
- Implement mô hình Quantum CNN from scratch.
Hướng dẫn quy trình thí nghiệm:
B1. Học cách sử dụng terminal để gọi thực thi file.
B2. Tổ chức code thành danh sách các hàm và lớp. Sử dụng jupyter notebook *.ipynb để kiểm thử tính chính xác của code mình viết nhanh hơn.
B3. Sau khi đảm bảo hàm / lớp chính xác, tổ chức chúng vào các file *.py để dễ debug.
B4. Nhớ lưu các kết quả thí nghiệm bằng hình ảnh (sử dụng matplotlib) hoặc file csv (sử dụng numpy / pandas).
B5. Commit code lên repository Github để lưu lại toàn bộ lịch sử.
Tham khảo
[1] https://arxiv.org/abs/1811.11184 [2] https://pennylane.ai/qml/glossary/parameter_shift [3] File PDF được yêu cầu
Tác giả
Vũ Tuấn Hải - Monadotory