Connect with us

What is Deep Learning?

AI 101

What is Deep Learning?

mm

Deep learning là một trong những lĩnh vực có ảnh hưởng và phát triển nhanh nhất trong trí tuệ nhân tạo. Tuy nhiên, việc hiểu rõ về deep learning có thể khó khăn vì thuật ngữ deep learning bao gồm nhiều thuật toán và kỹ thuật khác nhau. Deep learning cũng là một phân ngành của học máy nói chung, vì vậy việc hiểu học máy là gì rất quan trọng để hiểu deep learning.

What is Machine Learning?

Deep learning là một phần mở rộng của một số khái niệm bắt nguồn từ học máy, vì vậy chúng ta hãy dành một phút để giải thích học máy là gì.

Nói một cách đơn giản, học máy là một phương pháp cho phép máy tính thực hiện các nhiệm vụ cụ thể mà không cần mã hóa từng dòng của các thuật toán được sử dụng để thực hiện các nhiệm vụ đó. Có nhiều thuật toán học máy khác nhau, nhưng một trong những thuật toán được sử dụng phổ biến nhất là multilayer perceptron. Multilayer perceptron cũng được gọi là mạng nơ-ron, và nó bao gồm một loạt các nút/nơ-ron được liên kết với nhau. Có ba lớp khác nhau trong multilayer perceptron: lớp nhập, lớp ẩn và lớp xuất.

Lớp nhập đưa dữ liệu vào mạng, nơi nó được xử lý bởi các nút ở lớp ẩn. Các nút ở lớp ẩn là các hàm toán học có thể xử lý dữ liệu từ lớp nhập, trích xuất các mẫu liên quan từ dữ liệu nhập. Đây là cách mạng nơ-ron “học”. Mạng nơ-ron được đặt tên từ thực tế là chúng được lấy cảm hứng từ cấu trúc và chức năng của não bộ con người.

Các kết nối giữa các nút trong mạng có giá trị được gọi là trọng số. Những giá trị này cơ bản là các giả định về cách dữ liệu ở một lớp liên quan đến dữ liệu ở lớp tiếp theo. Khi mạng được đào tạo, các trọng số được điều chỉnh, và mục tiêu là các trọng số/giả định về dữ liệu sẽ cuối cùng hội tụ đến các giá trị đại diện chính xác cho các mẫu có ý nghĩa trong dữ liệu.

Các hàm kích hoạt có mặt trong các nút của mạng, và các hàm kích hoạt này biến đổi dữ liệu theo cách phi tuyến, cho phép mạng học các biểu diễn phức tạp của dữ liệu. Các hàm kích hoạt nhân các giá trị nhập với các giá trị trọng số và thêm một thuật ngữ偏.

What is Deep Learning?

Deep learning là thuật ngữ được đặt cho các kiến trúc học máy kết hợp nhiều multilayer perceptron lại với nhau, để không chỉ có một lớp ẩn mà có nhiều lớp ẩn. “Sâu” hơn mạng nơ-ron sâu, mạng có thể học các mẫu phức tạp hơn.

Các mạng sâu gồm các nơ-ron đôi khi được gọi là mạng hoàn toàn kết nối hoặc các lớp hoàn toàn kết nối, ám chỉ đến thực tế là một nơ-ron nhất định duy trì kết nối với tất cả các nơ-ron xung quanh nó. Các mạng hoàn toàn kết nối có thể được kết hợp với các hàm học máy khác để tạo ra các kiến trúc deep learning khác nhau.

Different Types of Deep Learning

Có nhiều kiến trúc deep learning được các nhà nghiên cứu và kỹ sư sử dụng, và mỗi kiến trúc khác nhau có trường hợp sử dụng chuyên biệt.

Convolutional Neural Networks

Convolutional neural networks, hoặc CNNs, là kiến trúc mạng nơ-ron được sử dụng phổ biến trong việc tạo ra các hệ thống tầm nhìn máy tính. Cấu trúc của convolutional neural networks cho phép chúng giải thích dữ liệu hình ảnh, chuyển đổi chúng thành số mà một mạng hoàn toàn kết nối có thể giải thích. Một CNN có bốn thành phần chính:

  • Convolutional layers
  • Subsampling/pooling layers
  • Activation functions
  • Fully connected layers

Các convolutional layers là những gì đưa hình ảnh vào mạng, phân tích hình ảnh và lấy giá trị của các pixel. Subsampling hoặc pooling là nơi các giá trị hình ảnh được chuyển đổi/giảm để đơn giản hóa biểu diễn của hình ảnh và giảm độ nhạy của các bộ lọc hình ảnh với nhiễu. Các hàm kích hoạt kiểm soát cách dữ liệu chảy từ lớp này sang lớp khác, và các lớp hoàn toàn kết nối là những gì phân tích các giá trị đại diện cho hình ảnh và học các mẫu trong những giá trị đó.

RNNs/LSTMs

Recurrent neural networks, hoặc RNNs, được sử dụng phổ biến cho các nhiệm vụ nơi thứ tự của dữ liệu quan trọng, nơi mạng phải học về một chuỗi dữ liệu. RNNs thường được áp dụng cho các vấn đề như xử lý ngôn ngữ tự nhiên, vì thứ tự của các từ quan trọng khi giải mã ý nghĩa của một câu. Phần “recurrent” trong thuật ngữ Recurrent Neural Network đến từ thực tế là đầu ra cho một phần tử nhất định trong một chuỗi phụ thuộc vào tính toán trước đó cũng như tính toán hiện tại. Không giống như các dạng mạng nơ-ron sâu khác, RNNs có “bộ nhớ”, và thông tin được tính toán tại các bước thời gian khác nhau trong chuỗi được sử dụng để tính toán các giá trị cuối cùng.

Có nhiều loại RNNs, bao gồm RNNs hai chiều, chúng lấy các mục tương lai trong chuỗi vào tài khoản, ngoài các mục trước đó, khi tính toán giá trị của một mục. Một loại RNN khác là Long Short-Term Memory, hoặc LSTM, mạng. LSTMs là loại RNN có thể xử lý các chuỗi dữ liệu dài. RNNs thông thường có thể gặp phải vấn đề gọi là “vấn đề gradient nổ”. Vấn đề này xảy ra khi chuỗi dữ liệu nhập trở nên quá dài, nhưng LSTMs có các kỹ thuật để chống lại vấn đề này.

Autoencoders

Hầu hết các kiến trúc deep learning được đề cập cho đến nay được áp dụng cho các vấn đề học có giám sát, chứ không phải các nhiệm vụ học không có giám sát. Autoencoders có thể chuyển đổi dữ liệu không có giám sát thành định dạng có giám sát, cho phép mạng nơ-ron được sử dụng cho vấn đề.

Autoencoders thường được sử dụng để phát hiện các bất thường trong các tập dữ liệu, một ví dụ về học không có giám sát vì bản chất của bất thường không được biết. Các ví dụ về phát hiện bất thường bao gồm phát hiện gian lận cho các tổ chức tài chính. Trong bối cảnh này, mục đích của autoencoder là xác định một baseline của các mẫu thường xuyên trong dữ liệu và xác định các bất thường hoặc các giá trị ngoại lệ.

Cấu trúc của một autoencoder thường đối xứng, với các lớp ẩn được sắp xếp để đầu ra của mạng giống như đầu vào. Bốn loại autoencoder được sử dụng thường xuyên là:

  • Autoencoders thường/đơn giản
  • Autoencoders đa lớp
  • Autoencoders convolutional
  • Autoencoders được điều chỉnh

Autoencoders thường/đơn giản chỉ là mạng nơ-ron với một lớp ẩn, trong khi autoencoders đa lớp là mạng sâu với hơn một lớp ẩn. Autoencoders convolutional sử dụng các lớp convolutional thay vì, hoặc ngoài, các lớp hoàn toàn kết nối. Autoencoders được điều chỉnh sử dụng một loại hàm mất mát cụ thể cho phép mạng nơ-ron thực hiện các chức năng phức tạp hơn, các chức năng ngoài việc chỉ sao chép đầu vào sang đầu ra.

Generative Adversarial Networks

Generative Adversarial Networks (GANs) thực sự là nhiều mạng nơ-ron sâu thay vì chỉ một mạng. Hai mô hình học sâu được đào tạo cùng một lúc, và đầu ra của chúng được cung cấp cho mạng khác. Các mạng đang cạnh tranh với nhau, và vì chúng có quyền truy cập vào dữ liệu đầu ra của nhau, chúng đều học từ dữ liệu đó và cải thiện. Các mạng cơ bản đang chơi một trò chơi giả mạo và phát hiện, nơi mô hình sinh tạo cố gắng tạo ra các thể hiện mới sẽ lừa được mô hình phát hiện/mô hình phân biệt. GANs đã trở nên phổ biến trong lĩnh vực tầm nhìn máy tính.

Deep Learning Summary

Deep learning mở rộng các nguyên tắc của mạng nơ-ron để tạo ra các mô hình tinh vi có thể học các mẫu phức tạp và khái quát hóa các mẫu đó sang các tập dữ liệu trong tương lai. Convolutional neural networks được sử dụng để giải thích hình ảnh, trong khi RNNs/LSTMs được sử dụng để giải thích dữ liệu tuần tự. Autoencoders có thể chuyển đổi các nhiệm vụ học không có giám sát thành nhiệm vụ học có giám sát. Cuối cùng, GANs là nhiều mạng được đào tạo cùng nhau, đặc biệt hữu ích cho các nhiệm vụ tầm nhìn máy tính.

Blogger và lập trình viên với chuyên môn về Machine Learning Deep Learning topics. Daniel hy vọng giúp đỡ người khác sử dụng sức mạnh của AI cho lợi ích xã hội.