Lưu ngay các thuật toán deep learning [Đầy Đủ Nhất 2023]

AI – Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể hơn là Machine Learning/Deep Learning (Máy Học/Học sâu) nổi lên một cách nhanh chóng, chúng được nhiều người quan tâm và tìm hiểu. Nó được ứng dụng trong kinh tế, giáo dục, y khoa cho đến những công việc nhà, giải trí hay thậm chí là trong quân sự. Deep learning đang ngày càng cho thấy một tương lai đầy hứa hẹn.

1. Deep Learning là gì?

Theo wikipedia:

Deep learning được bắt nguồn từ thuật toán Neural network vốn xuất phát chỉ là một ngành nhỏ của machine learning. Deep Learning là một chi của ngành máy học dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều biến đổi phi tuyến.

Deep Learning đã giúp máy tính thực thi những việc tưởng chừng như không thể vào 15 năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng tác văn, phim, ảnh, âm nhạc.

Ví dụ 1: Tại sao bạn biết một bức ảnh là ảnh con mèo hay ảnh con chó? Đối với bạn, việc định nghĩa điều này vô cùng đơn giản (Ví dụ: Tai mèo nhọn, mỏ chó thì dài ra, …), tuy nhiên, bạn lại rất khó khăn để biểu diễn những thứ này dưới các dòng lệnh của máy tính. Nhưng nhờ vào Deep Learning thì vấn đề đó được giải quyết một cách cụ thể.

Deep learning là một phần của Machine Learning, một ngành rất rộng và nặng về toán, gồm rất nhiều thuật toán và mỗi thuật toán có ứng dụng riêng tùy vào bài toán:

  •  Linear Regression
  • Logistic Regresstion
  • Decision Tree and Random Forest
  • Naive Bayes
  • Support Vector Machines
  • K-Nearest Neighbors
  • Principal component analysis (PCA)
  • Neural network
  • …..

2. Vậy Deep Learning hoạt động ra sao ?

Deep Learning là một phương pháp của Học máy. Nó cho phép chúng ta huấn luyện một AI có thể dự đoán được các đầu ra dựa vào một tập các đầu vào. Cả hai phương pháp có giám sát và không giám sát đều có thể sử dụng để huấn luyện.

Machine Learning là quá trình dạy máy tính thực hiện một nhiệm vụ, thay vì lập trình nó làm thế nào để thực hiện nhiệm vụ đó từng bước một.

Khi kết thúc đào tạo, một hệ thống Machine Learning sẽ có thể đưa ra dự đoán chính xác khi được cung cấp dữ liệu.

Như ở ví dụ 1 mình đã nêu ở trên thì chúng ta hoàn toàn có thể giải quyết chúng nhờ vào Deep Learning. Để dạy máy tính nhận diện hình ảnh một con mèo thì chúng ta sẽ lập trình ra nhiều lớp trong mạng thần kinh nhân tạo, mỗi lớp có khả năng xác định một đặc điểm cụ thể của con mèo như râu, vuốt, chân,… rồi cho máy xem hàng ngàn bức ảnh mèo (chỉ ra rằng “Đây là con mèo”) cùng hàng ngàn bức ảnh không phải mèo (chỉ ra rằng “đây không phải mèo”).

Ví dụ 2: Chúng ta muốn dạy xe tự động cách qua đường và xử lí các tình huống khi tham gia giao thông.

Chẳng hạn nếu muốn dạy xe hơi cách băng qua đường, theo cách truyền thống bạn sẽ đưa cho nó một loạt quy tắc hướng dẫn cách nhìn trái phải hay đợi xe và người đi qua,… Thế nhưng nếu trong Machine Learning nói chung và Deep Learning nói riêng, bạn sẽ cho máy tính xem 10.000 video quay cảnh người ta băng qua đường an toàn và 10.000 video quay cảnh ai đó bị xe đâm để nó tự học theo.

3. Khi nào thì bạn nên sử dụng Deep Learning

Khi dữ liệu của bạn phần lớn không có cấu trúc và bạn có rất nhiều dữ liệu.

Các thuật toán Deep Learning có thể lấy dữ liệu lộn xộn và không có nhãn rộng rãi – chẳng hạn như video, hình ảnh, bản ghi âm thanh và văn bản – và áp đặt đủ thứ tự cho dữ liệu đó để đưa ra dự đoán hữu ích, xây dựng hệ thống phân cấp các tính năng tạo nên con chó hoặc con mèo một hình ảnh hoặc âm thanh tạo thành một từ trong lời nói.

Deep Learning ngày càng được nhiều người biết đến và nó những bước đột phá vô cùng to lớn. Những đột phá to lớn này là việc thiết kế ra những trợ lý ảo bằng giọng nói, các hệ thống xe tự lái hay sử dụng vào thiết kế đồ họa, phân tích tình hình giao thông của thành phố, cho đến phát triển các nguyên liệu mới giúp robot thấu hiểu thế giới xung quanh hơn. Xu hướng về Robot và Deep Learning đang được nhiều công ty công nghệ lớn chú trọng đầu tư và phát triển.

Việc Deep Learning phát triển tạo nên sự chủ động trong mọi việc, con người dần có thể điều khiển cuộc sống của mình. Cùng điểm qua các hình thức mà việc học sâu mang lại.

  • Ứng dụng xe tự động
  • Trợ lý ảo Siri/Alexa,…
  • Mô phỏng và nhận diện hình ảnh: Một trong những ứng dụng của chúng ở mảng này mà ta bắt gặp nhiều nhất là Facebook, nó có thể tự động gắn thẻ chính bạn và bạn bè của bạn.

4. Lộ trình học Deep Learning cho người mới bắt đầu:

Yêu cầu cơ bản cho người muốn học về Deep Learning

  • Kiến thức về toán: đại số tuyến tính, giải tích, xác suất thống kê, lý thuyết đồ thị
  • Kiến thức về lập trình: Hàm, vòng lặp.
  • Cập nhật những kiến thức mới liên tục.

Sau đây là lộ trình mà mình đang hướng tới:

  • Python cơ bản: Cách dùng array, matrix, numpy trong python
  • Các bài toán trong Machine Learning và Deep Learning: Linear Regression, SVM, Perceptron Learning, biết được đầu vào, đầu ra. Lúc nào dùng classification? Lúc nào dùng regression?
  • Học dùng thư viện sklearn. Mình nghĩ chỉ cần với sklearn thì bạn có thể đã làm được 70-80% các bài toán của ML rồi. Trừ khi data quá lớn thì có thể nghĩ đến DL. Mình suggest thêm 1 nguồn mình thấy khá đầy đủ trên Kaggle: Kaggle
  • Học model DL như CNN, RNN, LSTM. Cái này thì nhiều, mình nghĩ bạn có thể tìm đến các khóa của Stanford về Computer Vision hay NLP đều có. Framework thì có thể lựa Tensorflow, Keras (trên nền Tensorflow) hoặc Pytorch đều được.
  • Học xử lý data bằng Pandas và analysis bằng Matplot hay Seaborn.
  • Xong rồi thì tìm bài toán hay challenge nào đó làm thử thôi. Quan trọng là học đi đôi với hành. Làm nhiều sẽ quen tay.

Tổng kết:

Deep Learning cực kỳ mạnh mẽ nhưng nó khó, những vấn đề mình nêu trong bài viết này chỉ là phần ngọn mà thôi.

Trên đây là những tổng quan về Deep Learning mà những gì mình học hỏi được. Còn rất nhiều khái niệm, các ứng dụng thực tiễn, các thuật toán chưa được nhắc tới trong bài viết này. Mình không thể trình bày tất cả trong một bài viết. Hi vọng với bài viết ở phần tiếp theo sẽ giúp các bạn phần nào hiểu rõ hơn về Deep Learning thông qua các thuật toán.