데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Multi-concept text-to-image Generation 기술 연구 - 연구과정(2)

      O.DA 23.09.11
      394 2 0

      안녕하세요! 👾


      이번 SKT AI Fellowship 5기에서 Multi-Concept Text-to-Image Generation 이라는 주제를 가지고 연구를 진행 중인 🛸 UFO 팀 🛸 입니다.

      저희 팀의 지금까지 진행한 연구 내용을 소개해 드리겠습니다.



      1. 연구 과제 및 목표

      (1) Text to Image Generation

      High-Resolution Image Synthesis with Latent Diffusion Models

      저희 연구 주제인 Text to Image Generation은 사용자의 입력 문장을 바탕으로 이미지를 생성하는 기술입니다.

      이 기술에서 가장 중요한 부분은 바로 Concept Customization인데요, Concept Customization 이란 사용자 개인의 경험을 반영하여 이미지를 생성하는 것을 의미합니다.


      (2) Concept Customization


      예를 들어 사진처럼 생성 모델에 “우리 집 강아지가 에펠탑 앞에 있는 그림을 그려줘.” 라는 문장을 넣었을 때,

      우리 집 강아지에 대한 정보가 없어 기존 생성 모델에 학습되어있던 일반적인 강아지를 이용해서 생성해줍니다.

      그래서 사용자가 원하는 Concept을 유지하기 위해 Stable Diffusion 모델을 Fine-Tuning 하는 방법을 사용합니다.


      Multi-Concept Customization


      이때 Concept을 하나만 넣었을 때는 높은 수준의 Concept 유지가 가능하지만, Concept을 여러 개 넣으면 사진과 같이 두 Concept이 섞이거나 하나의 Concept이 누락되는 현상이 발생합니다.

      저희는 이런 문제점을 해결하기 위해 연구를 진행했습니다.


      2. 검증 연구 실험

      Dataset and Experiments


      저희는 Diffusion 모델, Hyperparameter Tuning, Multi Concept 대상의 조합 등을 바꿔가면서 다양한 실험을 했고,

      학습시키고자하는 대상의 Class 유사도에 따라 Multi Concept Generation 실험 결과가 매우 다르다는 것을 알게 되었습니다.

      현재 Multi Concept을 생성할 때, 모든 Concept이 아니라 Concept의 Class 유사도가 높을 경우에만 Concept Mixing, Omitting이 발생한다는 사실을 발견했는데요,

      이 문제를 보여드리기 위해 지금까지 진행했던 여러 실험들 중에서 Concept의 유사도가 작은 사람과 고양이, Concept의 유사도가 큰 고양이와 강아지에 대한 Multi Concept 실험 결과를 보여드리겠습니다.

      실제로 키우고 있는 강아지와 고양이로 실험해봤습니다ㅎㅎ 귀엽죠? 🥰


      Image Generation Model Metrics


      아직 생성 모델 분야에서는 Confusion Matrix 처럼 통용되는 성능 평가 지표가 없습니다.

      저희는 지금까지 연구에서 Textual Inversion, LoRA, DreamBooth, Custom Diffusion 모델을 사용해서 Multi-Concept 이미지를 생성했습니다.

      여러 모델을 이용해서 실험했기 때문에, 저희는 최대한 객관적으로 각 모델에서 생성된 이미지를 비교하기 위해 prompt를 이용한 체크 리스트를 만들었습니다.


      이미지 생성 모델에서 가장 중요한 평가 요소는 크게 Fidelity와 Diversity가 있습니다.

      Fidelity는 생성된 이미지의 품질 즉 실제 이미지와 얼마나 비슷한지, 얼마나 Concept을 잘 유지했는지 평가하는 요소고, Diversity는 이미지가 다양하게 생성되었는지 평가하는 요소입니다.

      그래서 저희는 Single quality와 Multi-Concept quality를 확인하기 위한 prompt의 기준을 세워 생성 이미지의 Fidelity를 평가하고자 했고,

      Utils를 이용해 Overfitting되지 않고 이미지를 다양하게 생성했는지를 판단하여 Diversity를 평가했습니다.

      저희는 총 4개의 모델로 실험했지만, Textual Inversion은 Single Concept에서도 concept 유지를 잘 못했기 때문에 제외하고 LoRA, DreamBooth, Custom Diffusion 3개의 모델 연구 결과를 보여드리려고 합니다. 🤓


      3. 연구 결과

      (1) LoRA


      LoRA는 원래 Language model을 Fine-Tuning 하기 위한 기술로 제안되었으나 Stable Diffusion에도 사용이 가능합니다.

      Weight Matrix를 Low-Rank Decomposition하고 이를 업데이트 하는 방식으로 모델 학습이 진행됩니다.

      따라서 적은 메모리를 사용한다는 장점이 있습니다. 저희 팀은 LoRA가 concept customizing을 고려한 방식이 아니기 때문에 Multi-Concept을 적용하여 학습하면 성능이 떨어질 것으로 예상했습니다.


      LoRA Multi-Concept 실험 결과


      아이유와 고양이를 이용한 실험 결과 입니다. 앞서 예상한 대로 두 concept에 대해 유지가 떨어지는 것을 확인 할 수 있습니다.

      Single Concept을 각각 생성한 결과 고양이의 경우 눈 생성에 실패하였고, 아이유의 경우 닮지 않은 것을 확인했습니다.



      Multi 역시 Concept을 유지하는데 실패하였고, 앞서 말한 Concept Mixing, Omit 현상이 모두 발생하였습니다.



      고양이와 강아지를 이용한 실험 결과 입니다. 앞에서 본 실험과 동일하게 각각의 Concept에 대한 유지 능력이 떨어지는 것을 볼 수 있습니다.

      고양이의 경우 털 색을 유지하는데 실패하였고, 강아지의 경우 귀의 모양을 유지하는데 실패했습니다.



      Multi Concept에 대한 실험 결과 역시 두 Concept이 Mixing 되거나 Omit 되는 현상이 발생하였습니다.

      따라서 Custom Dataset을 가지고 단순히 Fine-Tuning 하는 것으로는 Concept 유지가 어려운 것을 확인하였고, Multi Concept을 학습하기 위한 Method의 필요성을 느꼈습니다.


      (2) DreamBooth


      DreamBooth는 Input 이미지에 대한 식별 토큰을 이용해서 U-net의 모든 Weight를 업데이트하는 방식을 사용합니다.

      DreamBooth U-net 전체를 Fine-Tuning 하는 만큼 Concept을 잘 유지한 이미지를 생성할 수 있을 것이라고 예상했고,

      U-net 전체가 학습되기 때문에 기존 Diffusion의 Diversity가 떨어지는 Overfitting의 위험이 높을 것으로 예상했습니다.


      DreamBooth Multi-Concept 실험 결과


      아이유와 고양이를 이용한 실험 결과 입니다. 앞서 예상한 대로 두 Concept 모두 유지된 것을 확인했습니다.

      또한 아이유와 고양이 모두 Concept을 유지한 채 선글라스를 쓰고 있어, Overfitting되지 않았음도 확인했습니다.

      여기서 아이유 손가락이 이상하게 나와있는데, 이 문제는 모든 생성 모델에서 사람 생성 시 발생하는 문제입니다.

      이 문제는 보통 controlnet을 통한 visual condition을 추가하여 해결하곤 하는데, controlnet을 inference에 활용하면 Multi-Concept이 혼재되는 문제가 완화되는 것을 확인했습니다.

      다만 controlnet을 이용할 경우 inference 과정에서 visual condition이 필요하기 때문에 controlnet을 학습에만 이용하는 방법을 고민하고 있습니다. 🤔


      Multi를 보면 고양이와 IU의 Prompt 순서와 상관없이 두 객체 모두 Concept이 유지되어있음을 확인했고,

      Multi Concept Prompt에 “playing with” 라는 Acting을 추가했을 때도 고양이와 IU의 Concept을 유지한 채 높은 품질의 이미지가 생성되었음을 확인했습니다.



      이번에는 고양이와 강아지를 이용한 실험 결과 입니다. 앞에서 본 실험과 동일하게 Single Concept에서는 각각의 Concept을 유지한 채 생성됐습니다.

      그리고 고양이와 강아지 모두 Concept을 유지한 채 선글라스를 쓰고 있어, Overfitting되지 않았음을 확인했습니다.



      그러나 Multi에서는 고양이랑 강아지의 순서를 바꿔 생성한 이미지를 보면 Prompt에 고양이가 먼저 나올 경우,

      두 객체 모두 고양이에 닮게 생성되었고, 강아지가 먼저 나올 경우 두 객체 모두 강아지에 닮게 생성되었습니다.

      그리고 Multi Concept Prompt에 “playing with” 라는 acting을 추가했을 때 생성된 이미지를 보면, 고양이와 강아지의 구분을 짓기 어려울 정도로 Multi Concept을 유지하지 못함을 확인했습니다.


      (3) Custom Diffusion


      Custom Diffusion은 Cross Attention Layer 만을 학습하는 방식을 사용하여 Overfitting을 방지합니다.

      학습 시 모델 전체 Parameter가 업데이트 되지 않는 만큼 기존의 Diffusion 능력을 잘 활용하여 Diversity를 잘 유지할 것으로 예상되는 반면 Dreambooth에 비해 이미지 퀄리티는 낮을 것으로 예상했습니다.


      Hyperparameter Tuning


      실험 진행 시 prior loss weight, reg data 유무, batch size, train step, learning rate 등을 hyper parameter로 설정하여 각 parameter의 영향력을 실험했습니다.


      Image Generation Model Metrics


      먼저 Single Concept Training을 통해 reg data 유무와 반영 정도에 따라 모델의 Diversity를 유지하는 능력이 변화하는 것을 확인 하였습니다.

      reg data를 사용하지 않으면 모델의 Diversity가 떨어져 Overfitting 되는 현상이 발생하여 Prompt를 잘 반영하지 못하고 이미지 생성 퀄리티가 낮아지는 것을 볼 수 있습니다.



      learning rate와 batch size, train step은 모델의 fitting 정도에 영향을 미치는 것을 확인했습니다.

      기본적으로 많은 train step이 Overfitting을 유발하는 것을 확인 하였고, 큰 learning rate와 batch size를 조합하면 빠르게 수렴하지만 일정 step 이후 Overfitting의 정도가 커지는 것을 확인했습니다.



      이는 Multi Concept Training에서도 크게 달라지지 않았습니다. Overfitting이 발생하는 요인은 큰 step이 가장 크게 영향을 미쳤고, reg data가 없는 경우 Overfitting의 영향이 더 컸습니다.

      각각의 Single Concept에 대한 이미지 생성 시 Overfitting이 발생하면 이미지의 다양성이 줄어드는 것을 확인 할 수 있습니다.

      두 Concept을 동시에 생성 시 Overfitting이 발생하도록 Parameter를 설정하면 Concept Mixing 및 Omit 현상이 발생하는 것을 확인 하였습니다.



      마지막으로 Util 실험 결과를 보면, Overfitting이 발생하면 Prompt를 제대로 반영하지 못하는 것을 확인했습니다.


      Custom Diffusion Multi-Concept 실험 결과


      Custom Diffusion의 아이유와 고양이 실험 결과 각 Single Concept에 대해서는 Overfitting이 발생하지 않고 Concept 유지 능력도 뛰어난 것을 확인했습니다.



      두 Multi Concept에 대한 결과는 두 Concept이 잘 유지되는 것을 확인 했습니다.



      고양이와 강아지의 실험 결과 각 Single Concept에 대해서 Concept 유지를 잘하고 Prompt를 잘 반영하는 것을 확인했습니다.



      반면 Multi의 경우 Concept Mixing과 Omit이 발생하는 것을 확인했습니다.


      (4) Model Comparison, 모델 비교


      지금까지의 모델 실험 결과를 정리해보면 고양이와 아이유 실험에서는 LoRA 모델에서 Underfitting 과 Concept Mixing 및 Omit이 발생했지만,

      나머지 모델에서는 Overfitting 없이 Concept을 잘 유지한 모습을 볼 수 있었습니다.


      강아지와 고양이 실험에서는 세 모델 모두 Concept Mixing 및 Omit이 발생한 모습을 볼 수 있습니다.


      (5) Conclusion, 연구 결과 총 정리


      저희가 지금까지 했던 연구에서 여러 모델과 Parameter을 바꿔가면서 다양한 실험을 진행했었는데,

      특정 Multi Concept은 지속적으로 Concept Mixing 및 Omit이 발생해서 기존 생성 모델과 Parameter Tuning을 통해서는 해당 문제를 해결할 수 없음을 알게되었습니다.



      특히 Concept Omit이나 Mixing이 발생한 concept인 Cat과 Dog의 경우 concept custom이 되지 않은 Stable Diffusion에서도 Mixing 현상이 발생합니다.

      따라서 저희 팀은 **Text Condition 만으로는 구별하기 어려운 Object가 있다고 가정하고 이를 구별 하는데 도움을 주는 Condition이 필요하다**고 판단했습니다.


      4. 향후 연구 계획

      (1) Multi Concept Prompt Engineering, Hyperparameter Tuning


      먼저 Custom Diffusion에서 실험한 내용을 보면 learning rate, prior loss 등 다양한 hyper parameter에 따라 학습 결과에 미치는 영향을 확인했습니다.

      이러한 결과를 바탕으로 hyper parameter의 수를 늘리고 이에 따른 결과를 정리하여 최적의 hyper parameter 도출 방식을 연구할 계획입니다.


      (2) 비슷한 Object를 구별할 수 있는 ControlNet 기반의 새로운 Method 제시


      ControlNet은 모델에 text외의 새로운 Condition을 추가로 제공해줍니다.

      이를 활용하여 모델이 비슷한 Object에 대한 Text 이외의 정보를 제공하여 생성 시 둘을 혼동하지 않도록 하는 Mehtod를 연구할 계획입니다.

      단 ControlNet은 학습 과정에서만 활용되고 학습 후 이미지 생성 과정에서는 활용되지 않아 실제 사용자가 사용할 때에는 추가 Condition을 Input으로 넣는 부담을 없앨 것입니다.


      (3) Multi Concept Diffusion Model 평가 Metric 만들기


      마지막으로 저희가 Model 평가를 위해 사용한 Prompt들을 기반으로 정량적 Metric을 만들 계획입니다.

      현재 Multi Concept에 대한 모델 평가는 정성적 평가만으로 진행되기 때문에 모델간 비교가 어렵습니다.

      따라서 이를 정량적으로 평가 할 수 있는 Metric이 제안 된다면, 앞으로의 연구에 큰 도움이 될것 입니다.


      이상 🛸 UFO 팀 🛸 의 중간 연구 결과였습니다. 감사합니다! 🥰


      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      O.DA 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기