Bài viết này sẽ giới thiệu những khóa học giúp cải thiện kỹ năng về phát triển Deep Learning, phù hợp cho những người có mong muốn trở thành chuyên gia về lĩnh vực này. 

Các khóa học sẽ được sắp xếp theo trình tự học, giúp bạn hiểu về DL theo một cách có hệ thống hơn.

1. Cơ bản về Deep Learning

Khóa học này sẽ giúp bạn hiểu những kiến thức cơ bản, trọng tâm, cách thức hoạt động của Deep Learning, cũng như các mô hình DL.

Module 1 sẽ giới thiệu về Deep Learning, giải đáp các câu hỏi: Tại sao lại chọn Deep Learning?, Mạng nơ-ron là gì?, 3 lý do để đi vào DL, cách lựa chọn mạng DL, cũng như đi sâu vào một vấn đề muôn thuở: mất mát đạo hàm (Vanishing Gradient).

Module 2 nhắc tới các mô hình Deep Learning, giúp bạn hiểu về Restricted Boltzmann Machines, Deep Belief Nets (mạng niềm tin sâu), Convolutional Networks (mạng tích chập), và Recurrent Nets (mạng hồi quy).

Module 3 sẽ tập trung vào các mô hình Deep Learning tăng cường, giúp bạn học về Autoencoders, Recursive Neural Tensor Nets, và các Use case Deep Learning.

Module 4 sẽ nói về các nền tảng Deep Learning và thư viện phần mềm. Qua module này, bạn sẽ biết về khái niệm cho nền tảng và thư viện Deep Learning, cũng như hiểu về Theano, Caffe, và TensorFlow.

Khóa học này không bao gồm thực hành, nhưng bạn có thể sử dụng PowerAI để hiểu rõ hơn về các thư viện Deep Learning. PowerAI được xây dựng trên hệ thống của IBM, có tác dụng đẩy nhanh tốc độ của Deep Learning và AI.

Cụ thể hơn, đây là một nền tảng phần mềm thay đổi được quy mô, giúp tăng tốc độ xử lý của Deep Learning và AI cho cả cá nhân lẫn doanh nghiệp. Đồng thời, nền tảng này có hỗ trợ các thư viện Machine Learning và các phụ thuộc khác như Tensorflow, Caffe, Torch, và Theano3.

Bạn có thể tham dự khóa học tại đây.

2. Giới thiệu về TensorFlow cho Deep Learning

Về cơ bản, đây là một khóa học bao hàm những khái niệm Deep Learning từ đơn giản nhất tới những khái niệm mới hơn và phức tạp hơn, phù hợp cho các nhà phát triển phần mềm.

Khóa học được giảng dạy bởi Udacity. Thông qua khóa học, bạn sẽ học được cách xây dựng các ứng dụng Deep Learning với TensorFlow và cách khai triển chúng.

Được phát triển bởi đội ngũ TensorFlow và Udacity, khóa học là một cơ hội cho các nhà phát triển ứng dụng được thực sự trải nghiệm Deep Learning, thông qua việc xây dựng các hệ thống phân loại hình ảnh và một số mô hình Deep Learning khác.

Ngoài ra, bạn cũng có thể áp dụng những mô hình TensorFlow vào thực tiễn, cụ thể là trên các thiết bị di động, trình duyệt, hay trên đám mây. Khóa học cũng sẽ cho phép thử nghiệm các kỹ thuật và thuật toán nâng cao lên những bộ dữ liệu lớn.

Sau khóa học, bạn sẽ có đủ mọi kỹ năng cần thiết cho việc tự tạo ra những ứng dụng AI.

Giảng viên của khóa học là Magnus Hyttsten (Developer Advocate, Google), Juan Delgado (Content Developer, Udacity), và Paige Bailey (Developer Advocate, Google).

Bạn có thể tham dự khóa học tại đây.

3. Deep Learning với TensorFlow

Khóa học này sẽ đi sâu vào những khái niệm chính, sử dụng các kiến thức học được từ 2 khóa học trên.

TensorFlow là một trong những công cụ Deep Learning hữu dụng nhất, và thông qua khóa học này, bạn sẽ không chỉ dừng ở việc xây dựng ứng dụng với TensorFlow, mà còn học được cách sử dụng nó để giải quyết những vấn đề phức tạp hơn.

Trong khi các mạng nơ-ron truyền thống thường gồm một lưới nông với 1 input, 1 lớp ẩn, và 1 lớp output, thì các mạng Deep Learning lại “sâu” hơn, có nhiều lớp ẩn hơn.

Chính vì vậy, các mạng này có khả năng phát hiện được các cấu trúc ẩn trong các bộ dữ liệu không cấu trúc và nhãn hiệu như hình ảnh, âm thanh, và văn bản – những dạng dữ liệu phổ biến nhất thế giới.

TensorFlow cũng là một trong những thư viện tốt nhất cho việc ứng dụng Deep Learning, đồng thời là một thư viện phần mềm cho việc diễn giải và xử lý số liệu toán học, thông qua việc sử dụng các sơ đồ luồng dữ liệu.

Trong đó, các node sẽ đại diện cho các phương trình toán học, còn các cạnh lại biểu thị cho các phiên dữ liệu đa chiều (tensor) chảy giữa nhiều node. Vốn được tạo ra bởi Google để sử dụng trong Machine Learning, phương thức này hiện nay đã trở nên phổ biến trong phát triển giải pháp Deep Learning.

Thông qua khóa học, bạn sẽ học về những khái niệm cơ bản của TensorFlow, cũng như những cơ chế, tính năng, và kỹ thuật của công cụ này.

Mở đầu khóa học là một ví dụ “Hello World” đơn giản, sau đó đi sâu vào ứng dụng của TensorFlow trong phân tích hồi quy, phân loại, và hạn chế lỗi.

Các khái niệm này sau đó sẽ được ứng dụng trong Deep Learning, truyền ngược TensorFlow, và trong tùy chỉnh các weight và bias trong huấn luyện mạng nơ-ron.

Ngoài ra, các kiến thức về Kiến trúc sâu như mạng tích chập, mạng hồi quy, và autoencoder cũng sẽ được nhắc tới trong khóa học.

Khóa học được giảng dạy bởi Saeed Aghabozorgi, nhà khoa học dữ liệu tại IBM, chuyên về phát triển các ứng dụng cho xử lý dữ liệu của doanh nghiệp.

Ông cũng  là một nhà nghiên cứu và Data Mining, chuyên về phát triển các phương thức phân tích nâng cao như Learning, Machine Learning, và mô hình hóa thống kê trên các bộ dữ liệu lớn.

Bạn có thể tham dự khóa học tại đây.

4. Khóa học về mạng nơ-ron của Hugo Larochelle

Đây là một khóa học được ưa thích bởi phương thức giảng dạy hay cũng như các bài tập đa dạng, tập trung vào mạng nơ-ron – một khía cạnh quan trọng của Deep Learning.

Khóa học này thuộc trình độ cao học, trong đó hướng dẫn các kiến thức về mạng nơ-ron cơ bản, cũng như một số chủ đề nâng cao hơn, cụ thể là:

  • Deep learning.
  • Trường điều kiện ngẫu nhiên.
  • Restricted Boltzmann Machines.
  • Mã hóa mật độ thấp (Sparse Coding).
  • Mạng tích chập.
  • Biểu diễn word lên không gian vector (Vector Word Representation).
  • Và nhiều chủ đề khác.

Khóa học trực thuộc Đại học Sherbrooke và được giảng dạy bởi Hugo Larochelle.

Trong mục nội dung của khóa học sẽ có những đường link dẫn tới các video khái niệm khác nhau và tài liệu tham khảo. Khóa học được chia thành nhiều mục nhỏ, với thời lượng tương đương một tuần học.

Còn mục đánh giá của khóa học sẽ bao gồm 3 bài tập lập trình bằng Python, giúp người học có thể luyện tập và thực hành các kiến thức đã học.

Bạn có thể tham dự khóa học tại đây.

5. Mạng nơ-ron tích chập cho nhận diện thị giác

Trọng tâm của khóa học này là cách sử dụng các mạng nơ-ron tích chập (Convolutional Neural Network – CNN) trong các vấn đề về thị giác máy tính, đồng thời đi sâu vào cơ chế hoạt động của những mạng này. Ngoài ra, khóa học cũng giảng dạy về việc phân loại và nhận diện hình ảnh,  giới thiệu các ứng dụng nâng cao về mô hình tổng hợp và học sâu tăng cường (Deep Reinforcement Learning).

Hiện nay, thị giác máy tính đã được ứng dụng rộng rãi trong xã hội, hiện diện qua các tác vụ như tìm kiếm, hiểu ảnh, ứng dụng, làm bản đồ, drone, xe tự lái, hay thậm chí là trong y tế.

Và nền tảng cho các ứng dụng trên chính là nhận diện thị giác, bao gồm phân loại, địa phương hóa, và phát hiện hình ảnh. Tới nay, với những phát triển tiên tiến về mạng nơ-ron (bao gồm Deep Learning), hiệu quả của các hệ thống nhận diện thị giác đã được cải thiện đáng kế.

Khóa học này sẽ đi sâu vào các kiến trúc Deep Learning, tập trung vào các mô hình end-to-end cho nhận diện thị giác, đặc biệt là trong phân loại hình ảnh.

Và thông qua khóa học kéo dài 10 tuần này, bạn sẽ học được cách ứng dụng, huấn luyện, và debug các mạng nơ-ron riêng, đồng thời hiểu sâu thêm về các nghiên cứu trong lĩnh vực nhận diện hình ảnh.

Bài tập cuối khóa học sẽ yêu cầu học viên phải huấn luyện một mạng nơ-ron tích chập đa tham số, rồi ứng dụng nó lên bộ dữ liệu phân loại hình ảnh lớn nhất – ImageNet.

Trong bài tập này, học viên sẽ phải tập trung vào cách phân tích vấn đề nhận diện hình ảnh, các thuật toán học (như truyền ngược), các kỹ thuật thực tiễn ứng dụng trong huấn luyện và hoàn thiện mạng.

Đa số các tài liệu và thông tin của khóa học được lấy từ thử thách ImageNet.

Nếu đã có kiến thức sẵn về deep learning, bạn sẽ có thể hiểu nội dung của khóa học một cách giản lược thông qua 3 bài giảng chính.

Khóa học này được giảng dạy bởi Li Fei-Fei, một nhà nghiên cứu nổi tiếng trong lĩnh vực thị giác máy tính tại Stanford Vision Lab, đồng thời là trưởng nghiên cứu tại Google.

Trong những năm 2015-2016, khóa học từng được đồng giảng dạy bởi Andrej Karpathy, hiện đang làm tại Tesla. Ngoài ra, khóa học cũng có sự đóng góp từ đầu của Justin Johnson, và sau đó là Serena Yeung trong các năm 2017 và 2018.

Bạn có thể xem các video bài giảng tại đây.

6. Xử lý ngôn ngữ tự nhiên với Deep Learning

Xử lý ngôn ngữ tự nhiên là một trong những ứng dụng quan trọng nhất của Deep Learning, và để thật sự tận dụng được lĩnh vực này, bạn sẽ cần phải biết cách sử dụng và ứng dụng nó vào thực tiễn.

Xử lý ngôn ngữ tự nhiên với Deep Learning là một khóa học được cung cấp bởi Đại học Kỹ thuật Stanford, và được giảng dạy bởi Christopher Manning.

Ông là một Giáo sư thuộc ban Khoa học và Ngôn ngữ Máy tính tại Stanford, với các công trình chủ yếu tập trung vào các hệ thống xử lý và tổng hợp ngôn ngữ tự nhiên vô cùng tinh vi.

Khóa học này sẽ giới thiệu các khái niệm thiết yếu trong xử lý ngôn ngữ tự nhiên, đồng thời chia sẻ các ý tưởng và nghiên cứu mới nhất trong lĩnh vực này.

Thông qua khóa học, học viên sẽ hiểu sâu hơn về các thuật toán xử lý ngôn ngữ, cũng như hiểu hơn về các cơ chế máy tính phía sau các ngôn ngữ tự nhiên này.

Trọng tâm của khóa học nằm ở các phương thức tiếp cận Deep Learning, cụ thể là: áp dụng, huấn luyện, debug, và mở rộng mô hình cho nhiều tác vụ khác nhau. Đồng thời, khóa học  cũng bao gồm các tác vụ xử lý từ, xử lý câu, trả lời câu hỏi, và dịch thuật bằng máy.

Ở bài tập cuối khóa, học viên sẽ phải ứng dụng một mô hình mạng nơ-ron phức tạp để giải quyết một vấn đề NLP quy mô lớn. Để có thể hiểu được khóa học này, bạn sẽ phải hoàn thành các khóa học về vi phân, đại số tuyến tính, và CS124, hoặc CS121/CS221.

Các chủ đề được giảng dạy trong khóa học bao gồm:

  • Các tính chất máy tính của ngôn ngữ tự nhiên.
  • Quan hệ ngữ pháp, trả lời câu hỏi, và dịch thuật bằng máy.
  • Xử lý thông tin ngôn ngữ.
  • Xử lý ngôn từ và ngữ điệu.
  • Các kỹ thuật định lượng hiện đại trong NLP.
  • Mô hình mạng nơ-ron cho các tác vụ hiểu ngôn ngữ.

Bạn có thể xem video bài giảng tại đây.

7. Gia tốc Deep Learning với GPU

Sau khi thành thạo TensorFlow và Deep Learning, bước tiếp theo là huấn luyện các mô hình sử dụng dữ liệu lớn. Và để tránh việc cần dùng tới hàng giờ, hàng ngày, hay thậm chí là hàng tuần cho việc huấn luyện, bạn sẽ cần phải làm gì?

Một gợi ý là sử dụng các phần cứng gia tốc như Tensor Processing Unit (TPU) của Google, hay Nvidia GPU để rút ngắn thời gian sử dụng mạng nơ-ron tích chập.

Các chip này được thiết kế để hỗ trợ quá trình huấn luyện cũng như các hoạt động của hệ thống sau khi hoàn thành huấn luyện, đồng thời rút ngắn thời gian sử dụng cho mục đích huấn luyện.

Tuy nhiên, bạn sẽ khó có thể tải các dữ liệu nhạy cảm lên public cloud, và trong trường hợp này việc phân tích cần được thực hiện tại chỗ. Vì vậy, bạn sẽ cần sử dụng một hệ thống nội bộ, được hỗ trợ bởi GPU như IBM Power Systems với Nvidia GPU, hoặc PowerAI.

FPT TechInsight
Theo Techgrabyte

Tin liên quan: