Style transfer task, 즉 이미지를 원하는 그림체 또는 색감으로 변환하는 문제를 해결하고자 한 논문이다. 어떠한 관점에서 문제를 바라보고 있고, 어떤 방법으로 task를 해결하고 있는지 알아보자.
아이디어
Personalization task에 LoRA를 이용한 fine-tuning이 많이 사용되는데, 저자들은 LoRA를 이용해 style에 대한 정보를 학습할 수 있다면, 이를 style transfer task에 사용할 수 있다는 점에 착안했다.
특히, 아래 2가지 observation에서 영감을 얻었다.
1. LoRA finet-tuning을 통해 update된 matrix는 sparse하다.
LoRA를 이용해 fine-tuning을 하게 되면, 기존의 weight 이외에 delta weight가 학습이 되는데, 저자들에 따르면, 이 값들이 대부분 0에 가깝다고 한다. 때문에, 아래 그림에서 볼 수 있듯, 약 80~90%을 없애도 결과물에는 큰 변화가 없다.
2. 유사한 LoRA weight는 merge 시키기 어렵다.
비슷한 정보를 담고 있는 LoRA weight, 즉 cosine similarity가 0이 아닌 weight들은 서로 disentangle되지 않은 정보를 담고 있다. 이 때, 이러한 weight를 바로 더하거나 합칠 경우, concept 간의 중첩을 발생시켜 결과물에 영향을 준다.
아래 그림의 DirectMerge 부분을 참고하면 알 수 있다.
때문에 저자들은 이러한 관찰들을 이용해, 유사도가 높은 weight를 그냥 더하는 것이 아닌, 각 column에 learnable한 coefficent를 사용해 matrix 간의 orthogonality를 달성하도록 학습했다. 위 그림의 그래프에서 보듯, ZipLoRA를 학습했을 때의 cossine simiarity가 거의 0에 가까운 것을 볼 수 있다.
저자들은 output content와 style이 원본과 유사하면서도 content LoRA와 style LoRA들의 cosine similarity가 0에 가까워지도록 (disentangle 되도록) 학습을 진행했다.
느낀점
Weight 간의 cosine simiarity나 sparsity라는 흥미로운 observation을 가지고 좋은 결과를 보여준 것 같다. 다양한 이미지와 스타일에서 테스트 한 결과를 논문에 실어 결과를 확인하기도 편했다.
Implicit Style-Content Separation using B-LoRA 에서 이 논문의 한계점을 지적한 것처럼, style과 content를 동시에 학습한다는 점이 disentangle을 어렵게 할 수도 있을 것 같다.