Sách Deep Learning cơ bản
Giới thiệu
Hồi đầu năm 2019, khi nghiên cứu ứng dụng về Deep Learning trong ngành Y, mình nhận ra là mặc dù bản thân mình là kỹ sư có khả năng lập trình Deep Learning nhưng lại thiếu kiến thức chuyên môn ngành Y để phát triển ứng dụng chuyên sâu. Ngược lại, các bác sĩ hiểu được các vấn đề chuyên môn thì lại thiếu các kỹ năng lập trình cần thiết.
Thế nên mình quyết định viết loạt bài viết này để giới thiệu các kiến thức cơ bản về Deep Learning cũng như các ứng dụng của nó để mọi người có kiến thức chuyên môn, có dữ liệu trong các ngành khác như y tế, ngân hàng, nông nghiệp,… có thể tự áp dụng được Deep Learning trong lĩnh vực của họ.
Thêm vào đó mình muốn cung cấp một nền tảng về toán và Deep Learning cơ bản cho các bạn học sinh, sinh viên có thể làm được ứng dụng và đào sâu nghiên cứu về deep learning trong môi trường học thuật.
Vì hướng mình nhiều độc giả với các background khác nhau nên khi viết mình giải thích toán chi tiết nhưng đơn giản và dễ hiểu. Bên cạnh đó mình cũng có các bài ứng dụng Deep Learning trong thực tế xen kẽ giữa các nội dung lý thuyết để bạn đọc dễ tiếp thu hơn.
Cuối cùng, hy vọng qua cuốn sách, bạn đọc có được những kiến thức cơ bản về Deep Learning và thấy được các ứng dụng của nó. Để rồi áp dụng các ý tưởng vào start-up, công ty để có các ứng dụng hay, thiết thực cho xã hội. Bên cạnh đó mong rằng cuấn sách là bệ phóng cho các bạn sinh viên Việt Nam nghiên cứu thêm về Deep Learning để có các nghiên cứu, thuật toán mới.
Điểm mới so với blog
Sách Deep Learning cơ bản được tổng hợp từ series deep learning cơ bản từ trên blog của mình. Tuy nhiên nội dung sách được biên soạn cẩn thận hơn so với blog ở các phần sau:
- Hướng dẫn cài đặt và sử dụng môi trường Anaconda cũng như google colab cho người mới dùng dễ sử dụng hơn.
- Kiến thức về Python cơ bản.
- Phần bài tập sau mỗi chương để bạn đọc vận dụng các kiến thức đã học.
- Nội dung mỗi bài được chỉnh sửa cẩn thận hơn.
Thông điệp
Từ những ngày đầu tiên viết blog mình luôn quan niệm “chia sẻ là để học hỏi” thế nên “kiến thức là để cho đi”. Cuốn sách này được chia sẻ miễn phí tới bạn đọc với thông điệp:
“Vì một cộng đồng AI Việt Nam phát triển bền vững”
Tuy nhiên, nếu bạn thấy nội dung trên blog, sách “Deep Learning cơ bản” hữu ích cũng như ủng hộ các bài viết sắp tới của mình và muốn đóng góp cho blog. Bạn có thể ủng hộ theo hướng dẫn sau.
Nội dung sách
Chương I, mình giới thiệu về cách cài đặt môi trường với Anaconda để chạy code Python cơ bản. Ngoài ra mình cũng hướng dẫn sử dụng Google Colab, với GPU Tesla K80 được Google cung cấp miễn phí. Nên bạn đọc có thể train model online thay vì sử dụng máy tính, laptop cá nhân.
Chương II, mình đề cập đến Machine Learning cơ bản với hai thuật toán Linear Regerssion và Logistic Regression. Đồng thời mình giới thiệu về thuật toán Gradient descent, rất quan trọng trong Deep Learning. Bên cạnh đó mình giới thiệu các kiến thức Toán cơ bản như: phép toán với ma trận, biểu diễn bài toán dạng ma trận,…
Chương III, mình giới thiệu về bài toán Neural Network cũng chính là xương sống của Deep Learning và thuật toán Backpropagation để giải bài toán này. Ngoài ra, để hiểu rõ bản chất của Neural Network nên mình cũng hướng dẫn mọi người code từ đầu Neural Network và Backpropagation bằng Python trong chương này.
Chương IV, mình đề cập tới Convolutional Neural Network (CNN) cho bài toán có xử lý ảnh. Sau đó giới thiệu về thư viện Keras và ứng dụng CNN cho bài toán phân loại ảnh với bộ dữ liệu chữ số viết tay (MNIST). Cuối chương mình giới thiệu về ứng dụng thực tế của CNN cho bài toán ô tô tự lái.
Chương V, mình giới thiệu một số tips trong Deep Learning như transfer learning, data augmentation, mini-batch gradient descent, dropout, non-linear activation, … để tăng độ hiệu quả của mô hình.
Chương VI, tiếp nối ý tưởng từ chương IV, mình đề cập đến hai bài toán lớn của Deep Learning trong Computer Vision. Đó là bài toán về Object Detection và Image Segmentation. Bên cạnh đó mình có hướng dẫn các bước làm bài toán detect biển số xe máy.
Chương VII, mình giới thiệu về thuật toán Recurrent Neural Network (RNN) cho bài toán dữ liệu dạng chuỗi và mô hình cải tiến của nó là Long Short Term Memory (LSTM). Sau đó mình hướng dẫn mọi người áp dụng mô hình LSTM cho bài toán thêm mô tả cho ảnh. Cuối cùng mình giới thiệu mạng sequence to sequence (seq2seq) cho bài toán dịch cùng cơ chế attention.
Chương cuối mình giới thiệu về mạng generative adversarial networks (GAN) với một số mô hình GAN như deep convolutional GAN (DCGAN), conditional GAN (cGAN).
Tái bản lần thứ hai
Trong quá trình đi dạy và đi làm mình thấy rất nhiều câu hỏi hay về machine learning, deep learning như: L1 và L2 loss khác nhau thế nào, tại sao L1 tốt cho outliers,… Nên mình cập nhật sách để cập nhật các kiến thức cho bạn đọc. Thêm vào đó, qua quá trình dạy mình sẽ sửa sách theo hướng giải thích các kiến thức đơn giản, dễ hiểu hơn cho bạn đọc. Bên cạnh đó, sách vẫn còn những lỗi nhỏ nên mình muốn sửa và cập nhật. Các thay đổi trong lần tái bản thứ hai:
- Thêm chương GAN.
- Viết bài sequence to sequence và attention.
- Viết bài hướng dẫn dùng yolo để detect biển số xe.
- Thêm phần visualize CNN.
- So sánh các loss function cho linear regression.
- Giải linear regression bằng đại số tuyến tính.
- Viết lại phần python cơ bản.
- Thêm phần word embedding.
- Thêm phần batch normalization.
- Hướng dẫn lưu model trong machine learning dùng numpy.
- Đọc soát lại và sửa nội dung các phần trong sách.
Tải sách
Bạn đọc tải sách ở đây.
Vì đây là bản đầu tiên của cuốn sách nên mọi người có nhận xét, góp ý, phản ánh xin gửi về mail nttuan8.com@gmail.com
Xin cảm ơn mọi người rất nhiều!