zalo
Chat ngay

Glow: Các mô hình sinh sản có thể đảo ngược tốt hơn

Chúng tôi giới thiệu  Glow , một mô hình sinh sản có thể đảo ngược sử dụng phép tích chập 1x1 có thể đảo ngược. Nó mở rộng  trước đó(mở trong cửa sổ mới) công việc(mở trong cửa sổ mới) trên các mô hình tạo có thể đảo ngược và đơn giản hóa kiến ​​trúc. Mô hình của chúng tôi có thể tạo ra hình ảnh có độ phân giải cao thực tế, hỗ trợ lấy mẫu hiệu quả và khám phá các tính năng có thể được sử dụng để thao tác các thuộc tính của dữ liệu. Chúng tôi đang phát hành mã cho mô hình và một công cụ trực quan hóa trực tuyến để mọi người có thể khám phá và xây dựng dựa trên các kết quả này.

  • Tài khoản ChatGPT4 chính hãng giá rẻ tại đây với nhiều ưu đãi hấp dẫn trong ngày hôm nay

Động lực

Thao tác các thuộc tính của hình ảnh của các nhà nghiên cứu Prafulla Dhariwal và Durk Kingma. Mô hình không được cung cấp nhãn thuộc tính tại thời điểm đào tạo, nhưng nó học được một không gian tiềm ẩn trong đó các hướng nhất định tương ứng với các thay đổi trong các thuộc tính như mật độ râu, tuổi, màu tóc, v.v.

Mô hình sinh sản là về việc quan sát dữ liệu, như một tập hợp các hình ảnh khuôn mặt, sau đó học một mô hình về cách dữ liệu này được tạo ra. Học cách ước tính quá trình tạo dữ liệu đòi hỏi phải học  tất cả các cấu trúc  có trong dữ liệu và các mô hình thành công phải có khả năng tổng hợp các đầu ra trông giống với dữ liệu. Các mô hình sinh sản chính xác có ứng dụng rộng rãi, bao gồm  tổng hợp giọng nói(mở trong cửa sổ mới),  phân tích và tổng hợp văn bản(mở trong cửa sổ mới),  học bán giám sát(mở trong cửa sổ mới) và  kiểm soát dựa trên mô hình(mở trong cửa sổ mới). Kỹ thuật chúng tôi đề xuất cũng có thể áp dụng cho những vấn đề đó.

Glow là một loại mô hình sinh sản có thể đảo ngược, còn được gọi là  mô hình sinh sản dựa trên luồng và là phần mở rộng của  NICE(mở trong cửa sổ mới) và  RealNVP (mở trong cửa sổ mới) kỹ thuật. Các mô hình sinh dựa trên luồng cho đến nay đã nhận được ít sự chú ý trong cộng đồng nghiên cứu so với  GAN (mở trong cửa sổ mới) và  VAE (mở trong cửa sổ mới).

Một số ưu điểm của mô hình tạo dòng chảy bao gồm:

+ Suy luận biến tiềm ẩn chính xác và đánh giá log-likelihood. Trong VAE, người ta chỉ có thể suy ra giá trị gần đúng của các biến tiềm ẩn tương ứng với một điểm dữ liệu. GAN không có bộ mã hóa nào để suy ra các biến tiềm ẩn. Trong các mô hình tạo thuận nghịch, điều này có thể được thực hiện chính xác mà không cần xấp xỉ. Điều này không chỉ dẫn đến suy luận chính xác mà còn cho phép tối ưu hóa log-likelihood chính xác của dữ liệu, thay vì giới hạn dưới của nó.

+ Suy luận hiệu quả và tổng hợp hiệu quả. Các mô hình hồi quy tự động, chẳng hạn như  PixelCNN (mở trong cửa sổ mới), cũng có thể đảo ngược, tuy nhiên tổng hợp từ các mô hình như vậy khó song song hóa và thường không hiệu quả trên phần cứng song song. Các mô hình tạo dựa trên luồng như Glow (và RealNVP) hiệu quả để song song hóa cho cả suy luận và tổng hợp.

+ Không gian tiềm ẩn hữu ích cho các tác vụ hạ lưu. Các lớp ẩn của mô hình hồi quy tự động có phân phối biên không xác định, khiến việc thực hiện thao tác dữ liệu hợp lệ trở nên khó khăn hơn nhiều. Trong GAN, các điểm dữ liệu thường không thể được biểu diễn trực tiếp trong không gian tiềm ẩn vì chúng không có bộ mã hóa và có thể không được hỗ trợ đầy đủ về phân phối dữ liệu. Điều này không đúng đối với các mô hình tạo thuận nghịch và VAE, cho phép nhiều ứng dụng khác nhau như nội suy giữa các điểm dữ liệu và sửa đổi có ý nghĩa các điểm dữ liệu hiện có.

+ Tiềm năng đáng kể để tiết kiệm bộ nhớ. Tính toán các gradient trong mạng nơ-ron có thể đảo ngược đòi hỏi một lượng bộ nhớ không đổi thay vì tuyến tính về độ sâu của chúng, như đã giải thích trong  bài báo RevNet (mở trong cửa sổ mới).

Kết quả

Sử dụng các kỹ thuật của mình, chúng tôi đạt được những cải tiến đáng kể về chuẩn mực so với RealNVP, kết quả tốt nhất đã công bố trước đó với các mô hình tạo dựa trên luồng.

Bộ dữ liệu

NVP thực tế

Ánh sáng

CIFAR-10

3,49

3,55

Ảnh 32x32

4.28

4.09

Ảnh 64x64

3,98

3.81

LSUN (phòng ngủ)

2,72

2,38

LSUN (tháp)

2.81

2,46

LSUN (nhà thờ ngoài trời)

3.08

2,67

Hiệu suất định lượng theo số bit trên mỗi chiều được đánh giá trên tập dữ liệu thử nghiệm của nhiều tập dữ liệu khác nhau, cho  mô hình RealNVP (mở trong cửa sổ mới) so với mô hình Glow của chúng tôi.*

Các mô hình Glow có thể tạo ra hình ảnh có độ phân giải cao trông thực tế và có thể thực hiện hiệu quả. Mô hình của chúng tôi mất khoảng 130ms để tạo mẫu 256 x 256 trên GPU NVIDIA 1080 Ti. Giống như  trước (mở trong cửa sổ mới) công việc, chúng tôi thấy rằng việc lấy mẫu từ mô hình nhiệt độ giảm thường tạo ra các mẫu chất lượng cao hơn. Các mẫu trên được lấy bằng cách chia độ lệch chuẩn của các tiềm ẩn theo nhiệt độ 0,7.

Nội suy trong không gian tiềm ẩn

Chúng ta cũng có thể nội suy giữa các khuôn mặt tùy ý, bằng cách sử dụng bộ mã hóa để mã hóa hai hình ảnh và lấy mẫu từ các điểm trung gian. Lưu ý rằng các đầu vào là các khuôn mặt tùy ý chứ không phải các mẫu từ mô hình, do đó cung cấp bằng chứng cho thấy mô hình có hỗ trợ trên toàn bộ phân phối mục tiêu.

Thao tác trong không gian tiềm ẩn

Chúng ta có thể đào tạo một mô hình dựa trên luồng, không có nhãn, và sau đó sử dụng biểu diễn tiềm ẩn đã học cho các tác vụ hạ lưu như thao tác các thuộc tính của đầu vào của bạn. Các thuộc tính ngữ nghĩa này có thể là màu tóc trên khuôn mặt, kiểu hình ảnh, cao độ của âm thanh nhạc hoặc cảm xúc của một câu văn bản. Vì các mô hình dựa trên luồng có bộ mã hóa hoàn hảo, bạn có thể mã hóa các đầu vào và tính toán vectơ tiềm ẩn trung bình của các đầu vào có và không có thuộc tính. Hướng vectơ giữa hai vectơ sau đó có thể được sử dụng để thao tác một đầu vào tùy ý theo hướng thuộc tính đó.

Quá trình trên chỉ cần một lượng dữ liệu được gắn nhãn tương đối nhỏ và có thể được thực hiện sau khi mô hình đã được đào tạo (không cần gắn nhãn trong khi đào tạo).  Trước đó(mở trong cửa sổ mới) công việc (mở trong cửa sổ mới) sử dụng GAN đòi hỏi phải đào tạo một bộ mã hóa riêng biệt.  Các phương pháp tiếp cận (mở trong cửa sổ mới) sử dụng (mở trong cửa sổ mới) VAE chỉ đảm bảo rằng bộ giải mã và bộ mã hóa tương thích với dữ liệu phân phối. Các cách tiếp cận khác liên quan đến việc học trực tiếp hàm biểu diễn phép biến đổi, như  Cycle-GAN (mở trong cửa sổ mới)tuy nhiên chúng cần được đào tạo lại cho mỗi lần chuyển đổi.

Sự đóng góp

Đóng góp chính của chúng tôi và cũng là sự khác biệt so với công trình RealNVP trước đó là việc bổ sung phép tích chập 1x1 có thể đảo ngược, cũng như loại bỏ các thành phần khác, giúp đơn giản hóa toàn bộ kiến ​​trúc.

Kiến trúc RealNVP bao gồm các chuỗi của hai loại lớp: các lớp có mặt nạ checkboard và các lớp có mặt nạ channel-wise. Chúng tôi loại bỏ các lớp có mặt nạ checkerboard, đơn giản hóa kiến ​​trúc. Các lớp có mặt nạ channel-wise thực hiện tương đương với việc lặp lại các bước sau:

+ Hoán đổi các đầu vào bằng cách đảo ngược thứ tự của chúng trên toàn bộ chiều kênh.

+ Chia dữ liệu đầu vào thành hai phần A và B ở giữa chiều của đặc điểm.

+ Đưa A vào mạng nơ-ron tích chập nông. Biến đổi tuyến tính B theo đầu ra của mạng nơ-ron.

+ Nối A và B.

Bằng cách nối các lớp này, A cập nhật B, sau đó B cập nhật A, sau đó A cập nhật B, v.v. Luồng thông tin hai phần này rõ ràng là khá cứng nhắc. Chúng tôi thấy rằng hiệu suất mô hình được cải thiện bằng cách thay đổi hoán vị ngược của bước (1) thành  hoán vị xáo trộn (cố định)  .

Tiến thêm một bước nữa, chúng ta cũng có thể  học được  hoán vị tối ưu. Học một ma trận hoán vị là một tối ưu hóa rời rạc không thể sửa đổi theo gradient ascent. Nhưng vì phép toán hoán vị chỉ là một trường hợp đặc biệt của phép biến đổi tuyến tính với ma trận vuông, nên chúng ta có thể thực hiện phép toán này bằng mạng nơ-ron tích chập, vì hoán vị các kênh tương đương với phép toán tích chập 1x1 với số kênh đầu vào và đầu ra bằng nhau. Vì vậy, chúng ta thay thế hoán vị cố định bằng các phép toán tích chập 1x1 đã học. Trọng số của phép toán tích chập 1x1 được khởi tạo dưới dạng ma trận quay ngẫu nhiên. Như chúng tôi thể hiện trong hình bên dưới, phép toán này dẫn đến những cải tiến đáng kể về mô hình hóa. Chúng tôi cũng đã chỉ ra rằng các phép tính liên quan đến việc tối ưu hóa hàm mục tiêu có thể được thực hiện hiệu quả thông qua phân tích LU của các trọng số.

Ngoài ra, chúng tôi loại bỏ chuẩn hóa hàng loạt và thay thế bằng lớp chuẩn hóa kích hoạt. Lớp này chỉ đơn giản là dịch chuyển và chia tỷ lệ các kích hoạt, với  khởi tạo phụ thuộc vào dữ liệu (mở trong cửa sổ mới) chuẩn hóa các kích hoạt cho một minibatch dữ liệu ban đầu. Điều này cho phép thu nhỏ kích thước minibatch xuống 1 (đối với hình ảnh lớn) và tăng kích thước của mô hình.

Tỉ lệ

Kiến trúc của chúng tôi kết hợp với nhiều tối ưu hóa khác nhau, chẳng hạn như  kiểm tra điểm gradient(mở trong cửa sổ mới), cho phép chúng tôi đào tạo các mô hình tạo dựa trên luồng ở quy mô lớn hơn bình thường. Chúng tôi đã sử dụng  Horovod (mở trong cửa sổ mới) để dễ dàng đào tạo mô hình của chúng tôi trên một cụm nhiều máy; mô hình được sử dụng trong bản demo của chúng tôi đã được đào tạo trên 5 máy với mỗi máy có 8 GPU. Sử dụng thiết lập này, chúng tôi đào tạo các mô hình với hơn một trăm triệu tham số.

Hướng dẫn nghiên cứu

Công trình của chúng tôi cho thấy rằng có thể đào tạo các mô hình dựa trên luồng để tạo ra hình ảnh có độ phân giải cao thực tế và học được các biểu diễn tiềm ẩn có thể dễ dàng sử dụng cho các tác vụ hạ nguồn như thao tác dữ liệu. Chúng tôi đề xuất một số hướng cho công việc trong tương lai:

+ Có tính cạnh tranh với các lớp mô hình khác về khả năng xảy ra.  Các mô hình tự hồi quy và VAE hoạt động tốt hơn các mô hình dựa trên luồng về khả năng xảy ra logarit, tuy nhiên chúng có nhược điểm là lấy mẫu không hiệu quả và suy luận không chính xác. Người ta có thể kết hợp các mô hình dựa trên luồng, VAE và mô hình tự hồi quy để đánh đổi điểm mạnh của chúng; đây sẽ là một hướng thú vị cho công việc trong tương lai.

+ Cải thiện kiến ​​trúc để tính toán và hiệu quả hơn về tham số.  Để tạo ra hình ảnh có độ phân giải cao thực tế, mô hình tạo khuôn mặt sử dụng ~200M tham số và ~600 lớp tích chập, khiến việc đào tạo tốn kém. Các mô hình có độ sâu nhỏ hơn hoạt động kém hơn khi học các phụ thuộc tầm xa. Sử dụng  self (mở trong cửa sổ mới) chú ý kiến trúc, hoặc thực hiện tiến bộ việc đào tạo để mở rộng đến độ phân giải cao có thể giúp việc đào tạo các mô hình phát sáng trở nên rẻ hơn về mặt tính toán.

Cuối cùng, nếu bạn muốn sử dụng Glow trong nghiên cứu của mình, chúng tôi khuyến khích bạn xem qua  bài báo của chúng tôi để biết thêm chi tiết hoặc xem mã của chúng tôi trên  kho lưu trữ Github này.

Xem thêm: mua tài khoản ChatGPT Plus chính hãng giá rẻ

Hot Deal

Họ tên (*)

Số điện thoại (*)

Email (*)

Dịch vụ

Đăng ký để nhận bản tin mới nhất !