sơ khai Autoencoder là gì? - Đoàn kết.AI
Kết nối với chúng tôi
Lớp học AI:

AI 101

Autoencoder là gì?

mm
cập nhật on

Nếu bạn đã đọc về các kỹ thuật học không giám sát trước đây, bạn có thể đã gặp thuật ngữ “tự động mã hóa”. Bộ mã hóa tự động là một trong những cách chính mà các mô hình học tập không giám sát được phát triển. Tuy nhiên, bộ mã hóa tự động chính xác là gì?

Tóm lại, bộ mã hóa tự động hoạt động bằng cách lấy dữ liệu, nén và mã hóa dữ liệu, sau đó tái tạo lại dữ liệu từ biểu diễn mã hóa. Mô hình được đào tạo cho đến khi tổn thất được giảm thiểu và dữ liệu được tái tạo càng gần càng tốt. Thông qua quá trình này, bộ mã hóa tự động có thể tìm hiểu các tính năng quan trọng của dữ liệu. Mặc dù đó là định nghĩa nhanh về bộ mã hóa tự động, nhưng sẽ hữu ích nếu xem xét kỹ hơn về bộ mã hóa tự động và hiểu rõ hơn về cách chúng hoạt động. Bài viết này sẽ cố gắng làm sáng tỏ các bộ mã hóa tự động, giải thích kiến ​​trúc của bộ mã hóa tự động và các ứng dụng của chúng.

Autoencoder là gì?

Tự động mã hóa là mạng lưới thần kinh. Mạng nơ-ron bao gồm nhiều lớp và khía cạnh xác định của bộ mã hóa tự động là các lớp đầu vào chứa chính xác nhiều thông tin như lớp đầu ra. Lý do lớp đầu vào và lớp đầu ra có cùng số lượng đơn vị là do bộ mã hóa tự động nhằm sao chép dữ liệu đầu vào. Nó xuất ra một bản sao của dữ liệu sau khi phân tích và xây dựng lại nó theo cách không giám sát.

Dữ liệu di chuyển qua bộ mã hóa tự động không chỉ được ánh xạ trực tiếp từ đầu vào sang đầu ra, nghĩa là mạng không chỉ sao chép dữ liệu đầu vào. Có ba thành phần đối với bộ mã hóa tự động: phần mã hóa (đầu vào) nén dữ liệu, thành phần xử lý dữ liệu nén (hoặc cổ chai) và phần giải mã (đầu ra). Khi dữ liệu được đưa vào bộ mã hóa tự động, dữ liệu sẽ được mã hóa và sau đó được nén xuống kích thước nhỏ hơn. Sau đó, mạng được đào tạo trên dữ liệu được mã hóa/nén và nó tạo ra bản giải trí của dữ liệu đó.

Vậy tại sao bạn lại muốn đào tạo một mạng để chỉ tái tạo lại dữ liệu được cung cấp cho nó? Lý do là mạng học "bản chất" hoặc các tính năng quan trọng nhất của dữ liệu đầu vào. Sau khi bạn đã đào tạo mạng, một mô hình có thể được tạo để tổng hợp dữ liệu tương tự, với việc thêm hoặc bớt các tính năng mục tiêu nhất định. Chẳng hạn, bạn có thể đào tạo bộ mã hóa tự động trên các hình ảnh có hạt và sau đó sử dụng mô hình đã được đào tạo để loại bỏ hạt/nhiễu khỏi hình ảnh.

Kiến trúc bộ mã hóa tự động

Hãy xem kiến trúc của một autoencoder. Chúng ta sẽ thảo luận về kiến ​​trúc chính của bộ mã hóa tự động tại đây. Có những biến thể về kiến ​​trúc chung này mà chúng ta sẽ thảo luận trong phần bên dưới.

Ảnh: Michela Massi qua Wikimedia Commons,(https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)

Như đã đề cập trước đó, bộ mã hóa tự động về cơ bản có thể được chia thành ba thành phần khác nhau: bộ mã hóa, nút cổ chai và bộ giải mã.

Phần bộ mã hóa của bộ mã hóa tự động thường là một mạng được kết nối chặt chẽ, chuyển tiếp. Mục đích của các lớp mã hóa là lấy dữ liệu đầu vào và nén nó thành một biểu diễn không gian tiềm ẩn, tạo ra một biểu diễn mới của dữ liệu đã giảm kích thước.

Các lớp mã hoặc nút cổ chai xử lý biểu diễn nén của dữ liệu. Mã thắt cổ chai được thiết kế cẩn thận để xác định các phần có liên quan nhất của dữ liệu được quan sát hoặc nói cách khác là các tính năng của dữ liệu quan trọng nhất để tái tạo dữ liệu. Mục tiêu ở đây là xác định khía cạnh nào của dữ liệu cần được bảo tồn và khía cạnh nào có thể bị loại bỏ. Mã tắc nghẽn cần phải cân bằng hai cân nhắc khác nhau: kích thước biểu diễn (mức độ nhỏ gọn của biểu diễn) và mức độ phù hợp của biến/tính năng. Nút cổ chai thực hiện kích hoạt theo yếu tố dựa trên trọng số và độ lệch của mạng. Lớp thắt cổ chai đôi khi còn được gọi là biểu diễn tiềm ẩn hoặc các biến tiềm ẩn.

Lớp giải mã chịu trách nhiệm lấy dữ liệu đã nén và chuyển đổi nó trở lại thành một biểu diễn có cùng kích thước với dữ liệu gốc, không bị thay đổi. Quá trình chuyển đổi được thực hiện với biểu diễn không gian tiềm ẩn được tạo bởi bộ mã hóa.

Kiến trúc cơ bản nhất của bộ mã hóa tự động là kiến ​​trúc chuyển tiếp nguồn cấp dữ liệu, với cấu trúc giống như một tri giác lớp đơn được sử dụng trong tri giác nhiều lớp. Giống như các mạng thần kinh chuyển tiếp nguồn cấp dữ liệu thông thường, bộ mã hóa tự động được đào tạo thông qua việc sử dụng lan truyền ngược.

Các thuộc tính của Autoencoder

Có nhiều loại bộ mã hóa tự động khác nhau, nhưng tất cả chúng đều có các thuộc tính nhất định hợp nhất chúng.

Bộ mã hóa tự động học tự động. Chúng không yêu cầu nhãn và nếu được cung cấp đủ dữ liệu, thật dễ dàng để bộ mã hóa tự động đạt được hiệu suất cao trên một loại dữ liệu đầu vào cụ thể.

Autoencoders là dữ liệu cụ thể. Điều này có nghĩa là họ chỉ có thể nén dữ liệu rất giống với dữ liệu mà bộ mã hóa tự động đã được đào tạo. Bộ mã hóa tự động cũng bị mất dữ liệu, nghĩa là đầu ra của mô hình sẽ bị giảm chất lượng so với dữ liệu đầu vào.

Khi thiết kế bộ mã hóa tự động, các kỹ sư máy học cần chú ý đến bốn siêu tham số mô hình khác nhau: kích thước mã, số lớp, nút trên mỗi lớp và chức năng mất.

Kích thước mã quyết định có bao nhiêu nút bắt đầu phần giữa của mạng và ít nút hơn sẽ nén dữ liệu nhiều hơn. Trong bộ mã hóa tự động sâu, mặc dù số lượng lớp có thể là bất kỳ số nào mà kỹ sư cho là phù hợp, nhưng số lượng nút trong một lớp sẽ giảm khi bộ mã hóa tiếp tục. Trong khi đó, điều ngược lại đúng với bộ giải mã, nghĩa là số nút trên mỗi lớp sẽ tăng lên khi các lớp của bộ giải mã tiếp cận lớp cuối cùng. Cuối cùng, hàm mất mát của bộ mã hóa tự động thường là entropy chéo nhị phân hoặc lỗi bình phương trung bình. Entropy chéo nhị phân phù hợp với các trường hợp giá trị đầu vào của dữ liệu nằm trong phạm vi 0 – 1.

Các loại bộ mã hóa tự động

Như đã đề cập ở trên, tồn tại các biến thể trên kiến ​​trúc bộ mã hóa tự động cổ điển. Hãy xem xét các kiến ​​trúc bộ mã hóa tự động khác nhau.

Thưa thớt

Ảnh: Michela Massi qua Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)

Mặc dù bộ mã hóa tự động thường có nút cổ chai nén dữ liệu thông qua việc giảm các nút, bộ mã hóa tự động thưa thớts là một thay thế cho định dạng hoạt động điển hình đó. Trong một mạng thưa thớt, các lớp ẩn duy trì kích thước giống như các lớp mã hóa và giải mã. Thay vào đó, các kích hoạt trong một lớp nhất định sẽ bị phạt, thiết lập nó để hàm mất mát nắm bắt tốt hơn các tính năng thống kê của dữ liệu đầu vào. Nói cách khác, trong khi các lớp ẩn của bộ mã hóa tự động thưa thớt có nhiều đơn vị hơn bộ mã hóa tự động truyền thống, thì chỉ một tỷ lệ phần trăm nhất định trong số chúng hoạt động tại bất kỳ thời điểm nào. Các chức năng kích hoạt có tác động mạnh nhất được giữ nguyên và các chức năng khác bị bỏ qua và ràng buộc này giúp mạng chỉ xác định các tính năng nổi bật nhất của dữ liệu đầu vào.

hợp đồng

Bộ mã hóa tự động hợp đồng được thiết kế để có khả năng phục hồi trước các biến thể nhỏ trong dữ liệu, duy trì sự thể hiện nhất quán của dữ liệu. Điều này được thực hiện bằng cách áp dụng một hình phạt cho hàm mất mát. Kỹ thuật chuẩn hóa này dựa trên định mức Frobenius của ma trận Jacobian để kích hoạt bộ mã hóa đầu vào. Hiệu quả của kỹ thuật chính quy hóa này là mô hình buộc phải xây dựng một mã hóa trong đó các đầu vào tương tự sẽ có các mã hóa tương tự.

Convolutional

Bộ mã hóa tự động tích chập mã hóa dữ liệu đầu vào bằng cách chia dữ liệu thành các phần phụ và sau đó chuyển đổi các phần phụ này thành các tín hiệu đơn giản được tổng hợp lại với nhau để tạo ra một biểu diễn dữ liệu mới. Tương tự như mạng thần kinh tích chập, bộ mã hóa tự động tích chập chuyên học dữ liệu hình ảnh và nó sử dụng bộ lọc được di chuyển trên toàn bộ phần hình ảnh theo từng phần. Các mã hóa do lớp mã hóa tạo ra có thể được sử dụng để tái tạo lại hình ảnh, phản chiếu hình ảnh hoặc sửa đổi hình học của hình ảnh. Sau khi mạng đã học được các bộ lọc, chúng có thể được sử dụng trên bất kỳ đầu vào đủ tương tự nào để trích xuất các đặc điểm của hình ảnh.

Giảm nhiễu

Ảnh: MAL qua Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)

Tự động khử nhiễu đưa nhiễu vào mã hóa, dẫn đến mã hóa là phiên bản bị hỏng của dữ liệu đầu vào ban đầu. Phiên bản dữ liệu bị hỏng này được sử dụng để đào tạo mô hình, nhưng hàm mất mát so sánh các giá trị đầu ra với đầu vào ban đầu chứ không phải đầu vào bị hỏng. Mục tiêu là mạng sẽ có thể tái tạo phiên bản gốc, không bị hỏng của hình ảnh. Bằng cách so sánh dữ liệu bị hỏng với dữ liệu gốc, mạng sẽ biết được tính năng nào của dữ liệu là quan trọng nhất và tính năng nào không quan trọng/lỗi. Nói cách khác, để một mô hình khử nhiễu ảnh bị hỏng, nó phải trích xuất các tính năng quan trọng của dữ liệu ảnh.

Đa dạng

Bộ mã hóa tự động đa dạng hoạt động bằng cách đưa ra các giả định về cách các biến tiềm ẩn của dữ liệu được phân phối. Bộ mã hóa tự động đa dạng tạo ra phân phối xác suất cho các tính năng khác nhau của hình ảnh đào tạo/thuộc tính tiềm ẩn. Khi đào tạo, bộ mã hóa tạo các bản phân phối tiềm ẩn cho các tính năng khác nhau của hình ảnh đầu vào.

 

Vì mô hình học các tính năng hoặc hình ảnh dưới dạng phân phối Gaussian thay vì các giá trị rời rạc nên nó có khả năng được sử dụng để tạo hình ảnh mới. Phân bố Gaussian được lấy mẫu để tạo một vectơ, được đưa vào mạng giải mã, mạng này sẽ hiển thị hình ảnh dựa trên vectơ mẫu này. Về cơ bản, mô hình học các đặc điểm chung của hình ảnh đào tạo và gán cho chúng một số xác suất mà chúng sẽ xảy ra. Sau đó, phân phối xác suất có thể được sử dụng để thiết kế ngược một hình ảnh, tạo ra những hình ảnh mới giống với hình ảnh huấn luyện ban đầu.

Khi đào tạo mạng, dữ liệu được mã hóa được phân tích và mô hình nhận dạng xuất ra hai vectơ, rút ​​ra giá trị trung bình và độ lệch chuẩn của hình ảnh. Một bản phân phối được tạo dựa trên các giá trị này. Điều này được thực hiện cho các trạng thái tiềm ẩn khác nhau. Bộ giải mã sau đó lấy các mẫu ngẫu nhiên từ phân phối tương ứng và sử dụng chúng để tái tạo lại các đầu vào ban đầu cho mạng.

Ứng dụng mã hóa tự động

Bộ mã hóa tự động có thể được sử dụng rộng rãi ứng dụng đa dạng, nhưng chúng thường được sử dụng cho các tác vụ như giảm kích thước, khử nhiễu dữ liệu, trích xuất tính năng, tạo hình ảnh, dự đoán trình tự theo trình tự và hệ thống đề xuất.

Khử nhiễu dữ liệu là việc sử dụng bộ mã hóa tự động để loại bỏ hạt/nhiễu khỏi hình ảnh. Tương tự, bộ mã hóa tự động có thể được sử dụng để sửa chữa các loại hư hỏng hình ảnh khác, chẳng hạn như hình ảnh bị mờ hoặc hình ảnh bị thiếu các phần. Giảm kích thước có thể giúp các mạng dung lượng cao tìm hiểu các tính năng hữu ích của hình ảnh, nghĩa là bộ mã hóa tự động có thể được sử dụng để tăng cường đào tạo các loại mạng thần kinh khác. Điều này cũng đúng với việc sử dụng bộ mã hóa tự động để trích xuất tính năng, vì bộ mã hóa tự động có thể được sử dụng để xác định các tính năng của bộ dữ liệu huấn luyện khác nhằm huấn luyện các mô hình khác.

Về mặt tạo hình ảnh, bộ mã hóa tự động có thể được sử dụng để tạo hình ảnh người giả hoặc nhân vật hoạt hình, có ứng dụng trong thiết kế hệ thống nhận dạng khuôn mặt hoặc tự động hóa một số khía cạnh của hoạt ảnh.

Các mô hình dự đoán trình tự nối tiếp có thể được sử dụng để xác định cấu trúc thời gian của dữ liệu, nghĩa là có thể sử dụng bộ mã hóa tự động để tạo phần tiếp theo ngay cả trong một trình tự. Vì lý do này, một bộ mã hóa tự động có thể được sử dụng để tạo video. Cuối cùng, bộ mã hóa tự động sâu có thể được sử dụng để tạo hệ thống đề xuất bằng cách chọn các mẫu liên quan đến sở thích của người dùng, với bộ mã hóa phân tích dữ liệu tương tác của người dùng và bộ giải mã tạo đề xuất phù hợp với các mẫu đã thiết lập.

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