Pytorch | Deep Learning cơ bản
 

Category: Pytorch

Những bài trước mình đã học cách xây dựng và train deep learning model bằng Pytorch. Tuy nhiên, khi train xong model mình cần lưu được model đã train, để sau có thể dùng để dự đoán hoặc tiếp tục train mà không cần train lại từ đầu. Bài này mình sẽ hướng dẫn lưu model trong Pytorch.


Bài này mình sẽ hướng dẫn sử dụng transfer learning trong Pytorch. Trước khi bắt đầu mọi người nên xem lại các kiến thức về transfer learning ở đây. Phần đầu mình sẽ hướng dẫn sử dụng pre-trained model để dự đoán, phần sau mình sẽ hướng dẫn fine-tune model.


Neural Network với Pytorch

Pytorch hỗ trợ thư viện torch.nn để xây dựng neural network. Nó bao gồm các khối cần thiết để xây dựng nên 1 mạng neural network hoàn chỉnh. Mỗi layer trong mạng gọi là một module và được kế thừa từ nn.Module. Mỗi module sẽ có thuộc tính Parameter (ví dụ W, b trong Linear Regression) để được tối ưu trong quá trình mô hình học.


Các bước trong bài toán Machine Learning

Thông thường ở 1 bài toán về Deep Learning sẽ có các bước:

  • Visualize dữ liệu.
  • Preprocess dữ liệu.
  • Chọn model cho bài toán.
  • Tạo loss function.
  • Tối ưu loss function để tìm tham số của model bằng thuật toán gradient descent.

Ở thuật toán gradient descent, mình cần tính đạo hàm của loss function (L) với các tham số của model. Ở mô hình neural network, sẽ tính đạo hàm L với các tham số qua thuật toán backpropagation.

Phần này khá phức tạp, nên đa phần khi mọi người dùng các framework về DL, thì các thư viện sẽ tính đạo hàm giúp mọi người. Ở Pytorch cũng vậy, cơ chế tính đạo hàm trong Pytorch được gọi là Autograd (AUTOMATIC DIFFERENTIATION PACKAGE)


Thông thường các thuật toán Machine Learning (ML), Deep Learning (DL) chỉ xử lý được dữ liệu dạng số thực nên các dữ liệu đưa vào mô hình thường được chuyển về dạng số thực.

Ảnh màu (rgb) được biểu diễn dưới dạng 1 tensor 3 chiều

Biểu diễn ảnh màu

Hay dữ liệu dạng chữ (tôi, yêu, hoa,..) cũng được chuyển về dạng vector trước khi cho vào các mô hình, ví dụ như mô hình word2vec.

The Illustrated Word2vec – Jay Alammar – Visualizing machine learning one  concept at a time.
Mô hình word2vec, nguồn.

Với dữ liệu đầu vào dạng số thì các mô hình ML hay DL sẽ thực hiện các phép tính toán, biến đổi để cho ra được output của mô hình. Vậy nên biểu diễn dữ liệu dạng số thực và các phép tính toán trên số thực đó chính là nền tảng cơ bản cho các mô hình AI.


Ý tưởng và mục đích của loạt bài viết này.

Gần đây mình có làm một vài project về Pytorch nên mình muốn chia sẻ kiến thức tới mọi người. Mình sẽ viết chi tiết từ những phần cơ bản nhất của Pytorch như tensor cho đến phần triển khai model đưa ra sử dụng thực tế cho mọi người (deployment). Để cho những người mới chưa sử dụng Pytorch bao giờ cũng có thể hiểu các kiền thức nền tảng của Pytorch, sau đó xây dựng và phát triển ứng dụng với Pytorch.

Nội dung loạt bài viết.

  • Bài 1: Tensor
  • Bài 2: Autograd
  • Bài 3: Neural Network
  • Bài 4: Dataset, DatasetLoader
  • Bài 5: Convolutional Neural Network
  • Bài 6: Pre-trained network
  • Bài 7: FastAPI
  • Bài 8: Torchserve
  • Bài 9: ONNX, tensorrt, torchscript
  • Bài 10: Pytorch lightning

* Nội dung của loạt bài viết có thể bị thay đổi trong quá trình viết.

Mỗi bài mình sẽ giải thích kĩ lý thuyết một cách dễ hiểu cho mọi người và sẽ có các ứng dụng thực tế đi kèm.


Deep Learning cơ bản ©2024. All Rights Reserved.
Powered by WordPress. Theme by Phoenix Web Solutions