Deep learning | Deep Learning cơ bản
 

Tag: Deep learning

Ý 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.


Ở những bài trước mình đã giới thiệu về mô hình Recurrent Neural Network (RNN) cho bài toán dữ liệu dạng chuỗi. Tuy nhiên RNN chỉ có short term memory và bị vanishing gradient. Tiếp đó mình đã giới thiệu về Long short term memory (LSTM) có cả short term memory và long term memory, hơn thế nữa tránh được vaninishing gradient. Bài này mình sẽ viết về ứng dụng của LSTM cho ứng dụng image captioning.


RNN có thể mang thông tin từ các layer trước đến các layer sau, nhưng thực tế là thông tin chỉ mang được qua một số lượng state nhất định, sau đó thì sẽ bị vanishing gradient, hay nói cách khác là model chỉ học được từ các state gần nó => short term memory.
Cùng thử lấy ví dụ về short-term memory nhé. Bài toán là dự đoán từ tiếp theo trong đoạn văn. Đoạn đầu tiên “Mặt trời mọc ở hướng …”, ta có thể chỉ sử dụng các từ trước trong câu để đoán là đông. Tuy nhiên, với đoạn, “Tôi là người Việt Nam. Tôi đang sống ở nước ngoài. Tôi có thể nói trôi chảy tiếng …” thì rõ ràng là chỉ sử dụng từ trong câu đấy hoặc câu trước là không thể dự đoán được từ cần điền là Việt. Ta cần các thông tin từ state ở trước đó rất xa => cần long term memory điều mà RNN không làm được => Cần một mô hình mới để giải quyết vấn đề này => Long short term memory (LSTM) ra đời.


Deep learning có 2 mô hình lớn là Convolutional Neural Network (CNN) cho bài toán có input là ảnh và Recurrent neural network (RNN) cho bài toán dữ liệu dạng chuỗi (sequence). Mình đã giới thiệu về Convolutional Neural Network (CNN) và các ứng dụng của deep learning trong computer vision bao gồm: classification, object detection, segmentation. Có thể nói là tương đối đầy đủ các dạng bài toán liên quan đến CNN. Bài này mình sẽ giới thiệu về RNN.


Bài trước mình đã giới thiệu về object detection, đi tìm các bounding box quanh các đối tượng trong ảnh và sau đó phân loại các bounding box. Tuy nhiên là các bounding box thì không biểu thị được đúng hình dạng của đối tượng và có nhiều nhiễu ở trong bounding box đấy ví dụ như trong bounding box màu đỏ có cả một phần của cây thông cũng như cái gối. => Image segmentation ra đời để chia ảnh thành nhiều vùng khác nhau hay tìm được đúng hình dạng của các đối tượng.


Bài này mình tổng hợp một số kĩ thuật để train model tốt hơn, cũng như một số khái niệm bạn sẽ gặp khi làm việc với deep learning. Đầu tiên mình nói về tầm quan trọng của vectorization, tiếp mình sẽ nói về kĩ thuật mini-batch gradient descent với lượng dữ liệu lớn. Sau đó mình nói về bias, variance, cách đánh giá bias-variance trong model và một số biện pháp để giải quyết vấn đề high bias, high variance. Mình có giải thích về kĩ thuật dropout để tránh overfitting. Phần cuối mình nói về vanishing và exploding gradient, cũng như giới thiệu một số hàm activation function phổ biến và cách chọn hàm activation.


Bài trước đã giới thiệu về thư viện keras và dùng keras để xây dựng mô hình convolutional neural network (CNN) cho bài toán phân loại ảnh. Bài này sẽ dùng mô hình CNN để dự đoán các giá trị thực và áp dụng cho bài toán ô tô tự lái.


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