Skip to content

Latest commit

 

History

History
79 lines (46 loc) · 8.08 KB

File metadata and controls

79 lines (46 loc) · 8.08 KB

Sieci Multi-Modalne

Po sukcesie modeli transformerowych w rozwiązywaniu zadań NLP, podobne architektury zaczęto stosować w zadaniach związanych z wizją komputerową. Coraz większe zainteresowanie budzą modele, które łączą możliwości analizy obrazu i języka naturalnego. Jednym z takich podejść jest CLIP i DALL.E, opracowane przez OpenAI.

Kontrastowe Uczenie Obrazów (CLIP)

Główna idea CLIP polega na porównywaniu tekstowych opisów z obrazami i określaniu, jak dobrze obraz odpowiada danemu opisowi.

Architektura CLIP

Obrazek z tego wpisu na blogu

Model jest trenowany na obrazach pobranych z Internetu oraz ich podpisach. Dla każdej partii danych bierzemy N par (obraz, tekst) i przekształcamy je w reprezentacje wektorowe I, ..., I / T, ..., T. Te reprezentacje są następnie dopasowywane do siebie. Funkcja straty jest zdefiniowana tak, aby maksymalizować podobieństwo kosinusowe między wektorami odpowiadającymi jednej parze (np. I i T) oraz minimalizować podobieństwo kosinusowe między wszystkimi innymi parami. Dlatego to podejście nazywa się kontrastowym.

Biblioteka/model CLIP jest dostępna na GitHub OpenAI. Podejście zostało opisane w tym wpisie na blogu oraz szczegółowo w tym artykule.

Po wstępnym przetrenowaniu modelu możemy podać mu partię obrazów i tekstowych opisów, a w wyniku otrzymamy tensor z prawdopodobieństwami. CLIP może być używany do kilku zadań:

Klasyfikacja Obrazów

Załóżmy, że musimy sklasyfikować obrazy, np. na koty, psy i ludzi. W takim przypadku możemy podać modelowi obraz oraz serię tekstowych opisów: "obraz kota", "obraz psa", "obraz człowieka". W wynikowym wektorze z 3 prawdopodobieństwami wystarczy wybrać indeks z najwyższą wartością.

CLIP dla Klasyfikacji Obrazów

Obrazek z tego wpisu na blogu

Wyszukiwanie Obrazów na Podstawie Tekstu

Możemy również zrobić odwrotnie. Jeśli mamy kolekcję obrazów, możemy przekazać ją do modelu wraz z tekstowym opisem – w wyniku otrzymamy obraz najbardziej odpowiadający danemu opisowi.

Otwórz notebook Clip.ipynb, aby zobaczyć CLIP w akcji.

Generowanie Obrazów za pomocą VQGAN+CLIP

CLIP może być również używany do generowania obrazów na podstawie tekstowego opisu. Aby to zrobić, potrzebujemy modelu generatora, który będzie w stanie generować obrazy na podstawie wektora wejściowego. Jednym z takich modeli jest VQGAN (Vector-Quantized GAN).

Główne idee VQGAN, które odróżniają go od zwykłego GAN, to:

  • Wykorzystanie autoregresyjnej architektury transformera do generowania sekwencji kontekstowo bogatych części wizualnych, które składają się na obraz. Te części wizualne są z kolei uczone przez CNN.
  • Użycie dyskryminatora sub-obrazów, który wykrywa, czy części obrazu są "prawdziwe" czy "fałszywe" (w przeciwieństwie do podejścia "wszystko albo nic" w tradycyjnym GAN).

Więcej o VQGAN można dowiedzieć się na stronie Taming Transformers.

Jedną z ważnych różnic między VQGAN a tradycyjnym GAN jest to, że ten ostatni może wygenerować przyzwoity obraz z dowolnego wektora wejściowego, podczas gdy VQGAN może wygenerować obraz, który nie będzie spójny. Dlatego proces tworzenia obrazu musi być dodatkowo kierowany, co można zrobić za pomocą CLIP.

Architektura VQGAN+CLIP

Aby wygenerować obraz odpowiadający tekstowemu opisowi, zaczynamy od losowego wektora kodującego, który jest przekazywany przez VQGAN w celu wygenerowania obrazu. Następnie CLIP jest używany do stworzenia funkcji straty, która pokazuje, jak dobrze obraz odpowiada tekstowemu opisowi. Celem jest minimalizacja tej straty, wykorzystując propagację wsteczną do dostosowania parametrów wektora wejściowego.

Świetna biblioteka implementująca VQGAN+CLIP to Pixray.

Obraz wygenerowany przez Pixray Obraz wygenerowany przez Pixray Obraz wygenerowany przez Pixray
Obraz wygenerowany na podstawie opisu zbliżenie akwarelowego portretu młodego nauczyciela literatury z książką Obraz wygenerowany na podstawie opisu zbliżenie olejnego portretu młodej nauczycielki informatyki z komputerem Obraz wygenerowany na podstawie opisu zbliżenie olejnego portretu starszego nauczyciela matematyki przed tablicą

Obrazy z kolekcji Artificial Teachers autorstwa Dmitry Soshnikov

DALL-E

DALL-E to wersja GPT-3 przeszkolona do generowania obrazów na podstawie opisów. Model został przeszkolony na 12 miliardach parametrów.

W przeciwieństwie do CLIP, DALL-E otrzymuje zarówno tekst, jak i obraz jako pojedynczy strumień tokenów dla obu typów danych. Dzięki temu można generować obrazy na podstawie wielu opisów.

Główna różnica między DALL-E 1 a 2 polega na tym, że DALL-E 2 generuje bardziej realistyczne obrazy i dzieła sztuki.

Przykłady generowania obrazów za pomocą DALL-E:

Obraz wygenerowany przez Pixray Obraz wygenerowany przez Pixray Obraz wygenerowany przez Pixray
Obraz wygenerowany na podstawie opisu zbliżenie akwarelowego portretu młodego nauczyciela literatury z książką Obraz wygenerowany na podstawie opisu zbliżenie olejnego portretu młodej nauczycielki informatyki z komputerem Obraz wygenerowany na podstawie opisu zbliżenie olejnego portretu starszego nauczyciela matematyki przed tablicą

Źródła

Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczeniowej AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.