표준 UNet 구조에서 긴 스킵 연결의 스케일링 계수 는 일반적으로 1입니다.
그러나 Imagen, Score-based 생성 모델, SR3 등과 같은 일부 잘 알려진 확산 모델 작업에서는 모두 을 설정하고 이러한 설정이 확산 학습을 효과적으로 가속화할 수 있음을 발견했습니다. 모델.
Questioning Scaling그러나 원본 논문에서는 Imagen과 같은 모델에서 스킵 연결의 Scaling 작업에 대한 구체적인 분석이 없습니다. 확산 모델의 훈련을 강화합니다.
우선, 이런 종류의 경험적 표시는 이 설정이 어떤 역할을 하는지 불분명하게 만듭니다.
그리고 만 설정할 수 있는지, 아니면 다른 상수를 사용할 수 있는지 알 수 없나요?
다른 위치에서 건너뛰기 연결의 "상태"가 동일한 이유는 무엇입니까?
작가는 이것에 대해 많은 물음표를 가지고 있습니다...
Pictures
일반적으로 ResNet 및 Transformer 구조와 비교할 때 UNet은 실제 사용에서 "깊이"가 아닙니다. 깊지 않으며 다른 "깊은" 신경망 구조에서 흔히 발생하는 경사 소멸과 같은 최적화 문제가 발생할 가능성이 적습니다.
또한 UNet 구조의 특수성으로 인해 얕은 피처는 긴 스킵 연결을 통해 깊은 위치에 연결되므로 그라데이션 소멸과 같은 문제를 더욱 피할 수 있습니다.
반대로 생각해보면, 이러한 구조를 주의하지 않으면 업데이트로 인한 과도한 기울기, 매개변수(특성) 진동 등의 문제가 발생하지 않을까요?
Pictures
훈련 과정에서 확산 모델 작업의 특성과 매개 변수를 시각화하면 불안정성이 존재한다는 것을 알 수 있습니다.
매개변수(특성)의 불안정성은 그라데이션에 영향을 미치고, 이는 다시 매개변수 업데이트에 영향을 미칩니다. 궁극적으로 이 프로세스는 성능에 바람직하지 않은 간섭을 일으킬 위험이 더 큽니다. 따라서 우리는 이러한 불안정성을 제어할 수 있는 방법을 찾아야 합니다.
또한 확산 모델의 경우. UNet의 입력은 잡음이 있는 이미지입니다. 모델이 추가된 잡음을 정확하게 예측해야 하는 경우 모델은 추가 교란에 대한 입력에 대한 강력한 견고성을 가져야 합니다.
Paper: https://arxiv.org/abs/2310.13545
Code: https://github.com/sail-sg/ScaleLong
연구원들은 위의 문제를 발견했는데, 이는 Long에서 찾을 수 있습니다. 연결 건너뛰기 통합 완화를 위해 시스템에서 조정이 수행됩니다.
정리 3.1에서 중간층 특징의 진동 범위(상한 및 하한의 폭)는 스케일링 계수의 제곱의 합과 직접적인 관련이 있습니다. 적절한 스케일링 계수는 기능 불안정성을 완화하는 데 도움이 됩니다.
그러나 스케일링 계수를 직접 0으로 설정하면 실제로 충격이 최적으로 완화된다는 점에 유의해야 합니다. (수동 개 머리)
하지만 UNet이 스킵리스 상태로 저하되면 불안정성 문제는 해결되지만 표현 능력도 상실됩니다. 이는 모델 안정성과 표현 능력 간의 균형입니다.
Pictures
마찬가지로 매개변수 그라데이션 관점에서 볼 수 있습니다. 정리 3.3은 또한 스케일링 계수가 기울기의 크기를 제어한다는 것을 보여줍니다.
Picture
또한 정리 3.4는 긴 스킵 연결의 스케일링이 입력 교란에 대한 모델의 견고한 상한에 영향을 미칠 수 있으며 입력 교란에 대한 확산 모델의 안정성을 향상시킬 수 있음을 보여줍니다.
위 분석을 통해 안정적인 모델 학습을 위해 Long Skip 연결에 대한 확장의 중요성을 이해했으며, 위 분석에도 적용 가능합니다.
다음으로 어떤 종류의 스케일링이 더 나은 성능을 낼 수 있는지 분석하겠습니다. 결국 위의 분석은 스케일링이 좋다는 것을 보여줄 뿐 어떤 종류의 스케일링이 가장 좋고 더 나은지를 결정할 수는 없습니다.
간단한 방법은 스케일링을 적응적으로 조정하기 위해 긴 건너뛰기 연결을 위한 학습 가능한 모듈을 도입하는 것입니다. 이 방법을 학습 가능한 스케일링(LS) 방법이라고 합니다. 우리는 SENet과 유사한 구조를 채택했는데, 이는 다음과 같습니다. (여기서 고려한 U-ViT 구조는 매우 잘 구성되어 있습니다!)
picture
이 기사의 결과에 따르면 LS는 실제로 확산모델 트레이닝! 또한 LS에서 학습한 계수를 시각화하려고 합니다.
아래 그림에서 볼 수 있듯이 이 계수들은 기하급수적인 하향 추세를 보이고 있으며(여기서 첫 번째 긴 건너뛰기 연결은 UNet의 첫 번째 끝과 마지막 끝을 연결하는 연결을 의미함) 첫 번째 계수는 거의 가깝습니다. to 1. 이 현상도 놀랍습니다!
Picture
이러한 일련의 관찰을 바탕으로(자세한 내용은 논문 참조) 학습 가능한 매개변수가 필요하지 않은 CS(Constant Scaling) 방법을 제안했습니다.
CS 전략은 를 사용한 원래 스케일링 작업과 같은 추가 매개변수가 필요하지 않으므로 추가 계산 소모가 거의 없습니다.
CS는 대부분 안정적인 훈련에서 LS만큼 좋은 성능을 발휘하지 못하지만 여전히 기존 전략을 시도해 볼 가치가 있습니다.
위의 CS 및 LS 구현은 매우 간단하며 몇 줄의 코드만 필요합니다. 각(hua) 수식(li) 및 각(hu) 유형(shao) UNet 구조에 대해 기능 차원을 정렬해야 할 수 있습니다. (수동 개머리 +1)
최근 FreeU, SCEdit 등의 일부 후속 작업에서도 건너뛰기 연결에 대한 확장의 중요성이 밝혀졌습니다. 누구나 시도해 보고 홍보할 수 있습니다.
위 내용은 몇 줄의 코드로 UNet을 안정화합니다! Sun Yat-sen University와 다른 사람들은 ScaleLong 확산 모델을 제안했습니다: Scaling에 대한 질문에서 Scaling이 되기까지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!