Top 9 kĩ thuật Deep Learning phổ biến nhất dành cho người mới tìm hiểu
Thịnh Văn Hạnh 30/05/2023 1314 Lượt xem Chia sẻ bài viết
Deep Learning là một nhánh của Machine Learning. Ở những bài viết trước, BKNS đã gửi tới người đọc những kiến thức tổng quan nhất về Deep Learning, vai trò, ứng dụng của nó trong đời sống. Để kiến thức đó được sâu sắc và toàn diện hơn, với bài này, BKNS gửi tới bạn đọc top 9 kĩ thuật Deep learning phổ biến nhất dành cho những ai muốn tìm hiểu tổng quan về nó. Cùng tham khảo ngay bên dưới nhé.
Tóm Tắt Bài Viết
- 0.1 1. Mạng nơ-ron cổ điển
- 0.2 2. Mạng nơ-ron tích chập (CNN)
- 0.3 Quá trình xây dựng mô hình đi qua ba giai đoạn chính:
- 0.4 3. Mạng nơ-ron hồi quy (RNN)
- 0.5 RNN có hai thiết kế chính
- 0.6 RNN có thể được áp dụng vào các dạng bài toán sau
- 0.7 4. Mạng sinh đối nghịch (GAN)
- 0.8 5. Boltzmann machine
- 0.9 6. Học tăng cường sâu
- 0.10 7. Autoencoder
- 0.11 8. Backpropagation
- 0.12 9. Gradient Descent
- 1 Kết luận
1. Mạng nơ-ron cổ điển
Mạng nơ-ron cổ điển sử dụng kiến trúc mạng kết nối đầy đủ, thông thường xây dựng từ các perceptron đa tầng, nhằm phân loại các dữ liệu. Perceptron là một thuật toán đơn giản dùng để tìm ranh giới siêu phẳng cho bài toán phân lớp nhị phân. Fran Rosenblatt đã thiết kế mạng nơ-ron cổ điển vào năm 1958, và phương pháp này chủ yếu được áp dụng trong các bài toán phân lớp nhị phân. Có ba loại hàm thường được sử dụng trong mô hình này:
a. Hàm tuyến tính.
b. Hàm phi tuyến, bao gồm sigmoid, tanh và ReLU (Rectified Linear Unit).
Kiến trúc mạng nơ-ron cổ điển đơn giản và phù hợp nhất với các dữ liệu có cấu trúc bảng hoặc các bài toán phân loại và hồi quy với đầu vào là giá trị số thực.
2. Mạng nơ-ron tích chập (CNN)
Convolutional Neural Network (CNN) là một kiến trúc Neural Network tiên tiến, được phát triển để giải quyết các bài toán phức tạp, đặc biệt là trong lĩnh vực xử lý hình ảnh.
Tích chập là một khái niệm trong xử lý tín hiệu số, sử dụng phép tích chập với bộ lọc để biến đổi thông tin đầu vào và tạo ra một tín hiệu mới. Quá trình này loại bỏ các đặc trưng không quan trọng và giữ lại những đặc trưng quan trọng và hữu ích nhất.
Mô hình CNN bao gồm input layer, output layer và thêm một sampling layer để hạn chế số lượng nơ-ron trong các layer tương ứng.
Quá trình xây dựng mô hình đi qua ba giai đoạn chính:
1. Quá trình tích chập (convolution): Áp dụng tích chập giữa ma trận đầu vào và bộ lọc để tạo ra các đơn vị trong một tầng mới. Quá trình này thường được thực hiện ở phần đầu của mạng và kết hợp với hàm kích hoạt ReLU. Mục tiêu của tầng này là trích xuất đặc trưng hai chiều.
2. Quá trình tổng hợp (max pooling): Giảm kích thước ma trận đầu vào bằng cách chọn một giá trị đại diện cho mỗi vùng không gian mà bộ lọc đi qua, giữ nguyên các đường nét chính của ảnh nhưng giảm kích thước tổng thể.
3. Quá trình kết nối hoàn toàn (fully connected): Sau khi đã giảm kích thước đến một mức độ hợp lý, ma trận được làm phẳng thành một vector và sử dụng kết nối hoàn toàn giữa các tầng. Tầng kết nối hoàn toàn cuối cùng (fully connected layer) có số đơn vị bằng số lớp.
Mạng CNN có các ứng dụng phổ biến như nhận diện, phân tích và phân loại hình ảnh, phân tích video, xử lý ngôn ngữ tự nhiên và nhiều ứng dụng khác.
3. Mạng nơ-ron hồi quy (RNN)
Trong lĩnh vực xử lý ngôn ngữ tự nhiên, Recurrent Neural Network (RNN) là một thuật toán được đánh giá cao. Trong các mô hình mạng nơ-ron truyền thống, đầu vào và đầu ra được xử lý độc lập với nhau. Tuy nhiên, RNN thực hiện cùng một tác vụ cho tất cả các phần tử trong một chuỗi dữ liệu, và đầu ra phụ thuộc vào cả quá trình tính toán trước đó. Điều này cho phép mạng RNN ghi nhớ thông tin từ các phép tính trước đó.
RNN có hai thiết kế chính
- LSTM (Long Short-Term Memory): Được sử dụng để dự đoán dữ liệu chuỗi thời gian. LSTM có khả năng xóa hoặc thêm thông tin vào bộ nhớ dài hạn (long-term memory) thông qua các cổng (gates) như Input, Output và Forget.
- Gated RNN: Đây cũng là một thiết kế phổ biến trong việc dự đoán dữ liệu chuỗi thời gian. Gated RNN có hai cổng chính là Update và Reset.
RNN có thể được áp dụng vào các dạng bài toán sau
- One to one: Một đầu vào tương ứng với một đầu ra duy nhất, ví dụ như bài toán phân loại hình ảnh.
- One to many: Một đầu vào tương ứng với nhiều đầu ra chuỗi, phổ biến trong các bài toán đặt chú thích (captioning) cho ảnh.
- Many to one: Nhiều đầu vào nhưng chỉ có một đầu ra, ví dụ như bài toán phân loại cảm xúc.
- Many to many: Nhiều đầu vào và nhiều đầu ra, ví dụ như bài toán phân loại video.
Mạng RNN mang lại khả năng xử lý dữ liệu chuỗi tự nhiên một cách hiệu quả và đã được áp dụng thành công trong nhiều ứng dụng.
4. Mạng sinh đối nghịch (GAN)
Generative Adversarial Networks (GAN) là một lớp mô hình được thiết kế nhằm tạo ra dữ liệu giả mà có đặc điểm tương tự dữ liệu thực. Tên của mạng này xuất phát từ kiến trúc gồm hai mạng có mục tiêu đối nghịch nhau: Generator và Discriminator. Trong đó, Generator học cách tạo ra dữ liệu giả để đánh lừa mô hình Discriminator, trong khi Discriminator học cách phân biệt giữa dữ liệu giả và dữ liệu thật. Qua quá trình huấn luyện, cả hai mô hình này cùng cải thiện khả năng của mình.
GAN có nhiều ứng dụng phổ biến, bao gồm:
a. Tạo khuôn mặt người: GAN có thể được sử dụng để tạo ra hình ảnh khuôn mặt người mới, có thể tổng hợp các đặc điểm từ nhiều hình ảnh khác nhau.
b. Thay đổi độ tuổi khuôn mặt: GAN có thể được sử dụng để biến đổi độ tuổi của một khuôn mặt, từ việc tạo ra hình ảnh trẻ hơn đến hình ảnh già hơn.
c. Sinh ảnh vật thể: GAN có thể được sử dụng để tạo ra ảnh vật thể, như tạo ra hình ảnh của các loài động vật chưa từng tồn tại.
d. Tạo nhân vật hoạt hình: GAN có thể được sử dụng để tạo ra nhân vật hoạt hình mới, với các đặc điểm và nét vẽ độc đáo.
GAN đã mang lại nhiều tiềm năng trong việc tạo ra dữ liệu giả chất lượng cao và đã được áp dụng thành công trong nhiều lĩnh vực khác nhau.
5. Boltzmann machine
Mạng Boltzmann (Boltzmann machine) là một mô hình mạng không có hướng xác định, trong đó các node của mạng được kết nối với nhau thành một vòng tròn. Mô hình này thường được sử dụng để tạo ra các tham số cho mạng. Các ứng dụng phổ biến của mạng này bao gồm giám sát hệ thống và xây dựng hệ thống khuyến nghị nhị phân.
6. Học tăng cường sâu
Deep Reinforcement Learning là quá trình mà các tác tử (agent) tương tác với môi trường để thay đổi trạng thái của chính nó và đạt được mục tiêu. Trong quá trình này, các tác tử có khả năng quan sát môi trường và thực hiện hành động phù hợp để tối đa hóa phần thưởng hoặc điểm số.
Mô hình Deep Reinforcement Learning bao gồm một input layer, output layer và nhiều hidden layer khác. Trạng thái của môi trường được đưa vào input layer. Qua quá trình huấn luyện liên tục, mô hình học cách dự đoán điểm số hoặc phần thưởng sau mỗi hành động được thực hiện trong từng trạng thái cụ thể.
Deep Reinforcement Learning được ứng dụng chủ yếu trong nhiều lĩnh vực như game cờ vua, poker, xe tự lái, robot và nhiều ứng dụng khác.
7. Autoencoder
Autoencoder là một trong những kỹ thuật Deep Learning phổ biến nhất hiện nay, có khả năng học các biểu diễn của dữ liệu đầu vào mà không cần nhãn, hay nói cách khác thì mạng này có khả năng học không giám sát (unsupervised learning).
Một số loại autoencoder chính bao gồm:
- Sparse (thưa): Số lượng hidden layer lớn hơn số lượng input layer nhằm hạn chế hiện tượng quá khớp (overfitting). Phương pháp này giới hạn hàm mất mát và ngăn không cho autoencoder lạm dụng tất cả các node có trong mạng.
- Denoising (lọc nhiễu): Một phiên bản input được chuyển thành 0 ngẫu nhiên.
- Contractive: Bổ sung hệ số phạt vào hàm mất mát để hạn chế overfitting trong trường hợp số lượng hidden layer lớn hơn input layer.
- Stacked: Xếp chồng nhiều hidden layer lên nhau để tạo thành một mạng autoencoder.
Ứng dụng phổ biến của nó bao gồm phát hiện đặc trưng, xây dựng hệ thống khuyến nghị, bổ sung đặc trưng cho tập dữ liệu,…
8. Backpropagation
Backpropagation (lan truyền ngược) là một kỹ thuật quan trọng trong mạng nơ-ron. Nó cho phép tính toán gradient ngược từ layer cuối cùng đến layer đầu tiên của mạng. Quá trình này bắt đầu bằng việc mạng phân tích các tham số và điều chỉnh chúng thông qua hàm mất mát. Sau đó, giá trị lỗi được tính toán sẽ được lan truyền ngược lại để điều chỉnh các tham số một cách phù hợp.
9. Gradient Descent
Trong Deep Learning và tối ưu hoá, việc tìm giá trị nhỏ nhất hoặc lớn nhất của một hàm số là một thách thức phức tạp, và thường khó có thể đạt được nghiệm tối ưu toàn cục. Thay vào đó, chúng ta thường tìm những điểm cực tiểu địa phương, có thể coi là các nghiệm gần đúng cho bài toán.
Các điểm cực tiểu địa phương được xác định toán học bằng việc giải phương trình đạo hàm bằng 0. Tuy nhiên, trong Machine Learning và Deep Learning, việc giải phương trình đạo hàm bằng 0 là một nhiệm vụ khó khăn. Một phương pháp phổ biến để tiếp cận vấn đề là bắt đầu từ một điểm khởi đầu và sử dụng phép lặp để di chuyển dần tới điểm cần tìm. Phương pháp này được gọi là gradient descent và được áp dụng rộng rãi trong quá trình tối ưu.
Với sự phát triển của mạng nơ-ron hiện đại, việc sử dụng thuật toán lan truyền ngược (backpropagation) trong gradient descent đã giúp tăng tốc quá trình tối ưu hàng triệu lần so với các phương pháp truyền thống.
Kết luận
Trên đây là tổng quát về kỹ thuật Deep Learning, và 9 kỹ thuật phổ biến nhất cho những người mới tiếp cận và tìm hiểu. Hy vọng những kiến thức này sẽ cung cấp đến bạn những thông tin hữu ích nhất cho các ứng dụng thực tế.
Đừng quên theo dõi BKNS thường xuyên để cập nhật thêm nhiều thông tin hữu ích khác.
Tham khảo thêm các bài viết khác: