<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>haaaa.velog</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Thu, 21 Nov 2024 16:58:40 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>haaaa.velog</title>
            <url>https://velog.velcdn.com/images/yun_haaaa/profile/a8145f12-6fda-43a0-9772-a7117f3adbe4/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. haaaa.velog. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/yun_haaaa" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Not Only Rewards But Also Constraints: Applications on Legged Robot Locomotion]]></title>
            <link>https://velog.io/@yun_haaaa/Not-Only-Rewards-But-Also-Constraints-Applications-on-Legged-Robot-Locomotion</link>
            <guid>https://velog.io/@yun_haaaa/Not-Only-Rewards-But-Also-Constraints-Applications-on-Legged-Robot-Locomotion</guid>
            <pubDate>Thu, 21 Nov 2024 16:58:40 GMT</pubDate>
            <description><![CDATA[<p>Paper: <a href="https://arxiv.org/abs/2308.12517">https://arxiv.org/abs/2308.12517</a></p>
<blockquote>
<p><strong><em>Constrained RL에 관한 내용으로, 논문에 포함되어 있는 Teacher-Student Learning, Parameterized Terrains, Domain Randomization 내용은 생략되었습니다.</em></strong></p>
</blockquote>
<p><br/><br/></p>
<h3 id="model-free-rl"><strong>Model-Free RL</strong></h3>
<ul>
<li><p><strong>정의</strong>:</p>
<p>모델 프리 강화 학습(Model-Free Reinforcement Learning)은 환경의 물리적 모델(운동 방정식, 다이나믹스 등)을 미리 알 필요 없이, <strong>관찰값(observations)</strong>과 <strong>보상(rewards)</strong>만을 사용하여 정책(policy)을 학습하는 방법.</p>
</li>
<li><p><strong>어떻게 작동하나?</strong></p>
<ol>
<li><p><strong>에이전트(Agent)</strong>가 현재 상태(state)를 관찰.</p>
</li>
<li><p>행동(action)을 선택하여 환경에 영향을 줌.</p>
</li>
<li><p>환경으로부터 새로운 상태와 보상 피드백을 받음.</p>
</li>
<li><p>보상을 최대화하는 방향으로 정책을 업데이트.</p>
</li>
</ol>
</li>
<li><p><strong>특징</strong></p>
<ul>
<li><p><strong>모델 기반 RL</strong>(환경의 동역학 모델을 사용)과 달리, 환경의 내부 모델을 설계할 필요가 없음.</p>
</li>
<li><p>대신, 많은 상호작용 데이터가 필요하며 학습 안정성을 유지하기 위해 추가적인 기법(예: 보상 설계, 제약 조건)이 필요.</p>
</li>
</ul>
</li>
</ul>
<br/>
<br/>

<h3 id="model-based-rl"><strong>Model-Based RL</strong></h3>
<ul>
<li><p><strong>환경의 물리적 모델(운동 방정식, 다이나믹스 등)을 이용</strong>하여 에이전트가 환경을 탐색하는 대신 행동을 시뮬레이션으로 예측.</p>
</li>
<li><p>학습 과정:</p>
<ul>
<li><p><strong>데이터 수집 (실제 환경 상호작용)</strong></p>
<ul>
<li>초기에는 에이전트가 실제 환경과 상호작용하며 데이터를 수집합니다.</li>
<li>이 데이터는 <strong>(상태, 행동, 보상, 다음 상태)</strong> 형태로 저장됩니다.</li>
</ul>
</li>
<li><p><strong>환경 모델 학습</strong></p>
<ul>
<li><p>수집한 데이터를 기반으로 환경 모델을 학습합니다.</p>
</li>
<li><p>목표는 상태-행동 쌍으로부터 다음 상태와 보상을 정확히 예측하는 것입니다.</p>
</li>
</ul>
</li>
<li><p><strong>가상 시뮬레이션 데이터 생성</strong></p>
<ul>
<li>학습된 환경 모델을 활용해, 에이전트가 실제 환경과 상호작용하지 않아도 가상의 데이터(상태, 행동, 보상, 다음 상태)를 생성합니다.</li>
</ul>
</li>
<li><p><strong>정책 네트워크 학습</strong></p>
<ul>
<li><p>가상 데이터로 정책을 최적화합니다.</p>
</li>
<li><p>최적화 과정은 보상을 최대화하는 방향으로 진행됩니다.</p>
</li>
</ul>
</li>
<li><p><strong>실제 환경에서 테스트 및 업데이트</strong></p>
<ul>
<li>학습된 정책을 실제 환경에서 테스트하여 성능을 평가하고, 새 데이터를 수집하여 환경 모델과 정책을 반복적으로 개선합니다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<br/>
<br/>


<h3 id="강화학습이-로봇-시스템에서-중요한-이유"><strong>강화학습이 로봇 시스템에서 중요한 이유</strong></h3>
<ul>
<li><p><strong>전문가 시범 데이터의 제한성 → Motion, AMP</strong></p>
<ul>
<li><p>로봇 시스템에서 필요한 데이터를 수집하기 위해 전문가의 시범 데이터를 얻는 것은 어렵고, 제한적인 경우가 많음.</p>
</li>
<li><p>반면, 물리 시뮬레이션이나 실제 실험을 통해 상호작용 데이터를 쉽게 얻을 수 있음.</p>
</li>
</ul>
</li>
<li><p><strong>강화학습의 장점</strong></p>
<ul>
<li><p>상호작용 데이터를 기반으로 학습하는 강화학습은 모델 기반 접근법보다 적합.</p>
</li>
<li><p>특히 아래와 같은 경우에서 더 강력한 성능을 발휘:</p>
<ol>
<li><p><strong>접촉면이 많은 시스템</strong> : 다족 로봇, 높은 자유도의 로봇 손처럼 복잡한 움직임이 요구되는 경우.</p>
</li>
<li><p><strong>환경적 불확실성이 큰 경우</strong> : 센서 노이즈나 외부 방해 요소가 많은 상황에서도 유연하게 동작 가능.</p>
</li>
</ol>
</li>
</ul>
</li>
</ul>
<br/>

<p>엔지니어가 강화학습으로 신경망 제어기를 개발할 때 일반적으로 다음 단계를 따릅니다.</p>
<ol>
<li><p>관측 및 행동 공간에 기반하여 귀납적 편향이 있는 신경망 구조를 설계한다.</p>
</li>
<li><p>환경 상호작용 시나리오를 풍부하게 생성한다(예: 다족 로봇 운동을 위한 랜덤 지형, 로봇 손 그리핑을 위한 다양한 물체 메쉬).</p>
</li>
<li><p><strong>로봇의 물리적 제약 조건(예: 관절 토크 및 속도 제한)을 충족하고 자연스러운 움직임 스타일을 가지는 고성능 제어기를 얻을 때까지 보상 항목을 설계하고 보상 계수를 조정</strong>한다.</p>
</li>
</ol>
<p>이 세 단계 중 마지막 단계는 반복적인 조정 과정이 필요하기 때문에 가장 시간이 많이 소요됩니다. 특히 보상 항목이 10개 이상인 경우, 각각의 보상 항목 가중치를 로봇 움직임의 결과를 기준으로 찾는 일은 간단하지 않습니다.</p>
<p>*<em>수많은 보상 항목을 설계하고 적절한 보상 계수를 결정하는 데 많은 시간과 노력이 요구되는 보상 엔지니어링 과정을 거쳐야만 개발됩니다. *</em></p>
<br/>
<br/>

<hr>
<p>본 연구에서는 다음과 같은 근본적인 질문을 제기하고자 합니다: </p>
<h3 id="왜-제약-조건을-강화학습에-활용하지-않았는가"><strong>왜 제약 조건을 강화학습에 활용하지 않았는가?</strong></h3>
<ul>
<li><p><strong>강화학습의 본질</strong></p>
<ul>
<li><p>강화학습은 수치 최적화 문제로 볼 수 있음:</p>
<ul>
<li>목표는 보상 항목들의 가중합을 최대화하는 신경망 매개변수를 찾는 것.</li>
</ul>
</li>
<li><p>시스템이 복잡할수록, 보상 엔지니어링을 통해 최적화 과정의 문제를 해결하려고 함.</p>
</li>
</ul>
</li>
<li><p><strong>보상 엔지니어링의 한계</strong></p>
<ul>
<li><p>복잡한 시스템과 민첩한 동작을 위해서는 보상 항목(10개 이상인 경우도 많음)을 설계하고 가중치를 조정해야 함.</p>
</li>
<li><p>이 과정은 시간이 많이 들고, 국소 최적점(local optima) 문제를 해결하기 어렵다는 단점이 있음.</p>
</li>
</ul>
</li>
<li><p><strong>제약 조건의 필요성</strong></p>
<ul>
<li><p>수치 최적화 문제에서는 <strong>제약 조건</strong>을 활용해 해결 공간을 제한하는 것이 효과적.</p>
</li>
<li><p>제약 조건을 사용하면 바람직하거나 실제로 가능한 영역으로 탐색 공간을 좁힐 수 있음.</p>
</li>
<li><p>하지만 기존 강화학습에서는 제약 조건을 명시적으로 활용하지 않아 비효율적인 접근이 이루어짐.</p>
</li>
</ul>
</li>
</ul>
<br/>
<br/>

<h3 id="제약-조건을-활용한-강화학습-프레임워크의-이점"><strong>제약 조건을 활용한 강화학습 프레임워크의 이점</strong></h3>
<ol>
<li><p><strong>일반화 가능성 향상</strong></p>
<ul>
<li><p>보상만으로 설계된 학습 프레임워크는 로봇마다 보상 신호의 차이로 인해 성능이 달라질 수 있음.</p>
</li>
<li><p>반면, <strong>제약 조건</strong>은 로봇 플랫폼이 달라져도 일관되게 적용 가능:</p>
<ul>
<li>예: <strong>보행 패턴 제약(트로팅 게이트)</strong>을 사용하면 로봇의 크기, 무게, 모양과 관계없이 모든 4족 로봇에 적용 가능.</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>단순하고 효율적인 설계</strong></p>
<ul>
<li><p>보상 항목 수를 줄일 수 있어 엔지니어링 과정이 단순화됨.</p>
<ul>
<li><p>예: 하드웨어 한계(관절 각도 제한 등)나 동작 스타일을 정의하기 위해 추가했던 보상 항목들이 더 이상 필요하지 않음.</p>
</li>
<li><p>대신, 제약 조건으로 명확히 정의하여 학습 정책을 엔지니어 의도에 맞게 유도 가능.</p>
</li>
</ul>
</li>
<li><p><strong>제약 조건은 물리적 의미를 가지므로 직관적으로 설정 가능</strong>:</p>
<ul>
<li>예: URDF 파일에서 자동으로 추출된 로봇의 관절 제한값.</li>
</ul>
</li>
</ul>
</li>
</ol>
<br/>
<br/>

<h3 id="제안된-강화학습-프레임워크"><strong>제안된 강화학습 프레임워크</strong></h3>
<ol>
<li><p><strong>보상 + 제약 조건을 병합</strong></p>
<ul>
<li><p>기존의 <strong>안전 강화학습(Safe RL)</strong> 연구에서 영감을 받아, <strong>보상</strong>과 <strong>제약 조건</strong>을 모두 활용하는 강화학습 프레임워크를 제안.</p>
</li>
<li><p>제약 조건을 효율적으로 처리할 수 있는 정책 최적화 알고리즘 포함.</p>
</li>
<li><p>추가적인 계산 비용은 거의 없으면서도 높은 성능의 정책 학습 가능.</p>
</li>
</ul>
</li>
<li><p><strong>제약 조건의 일반화와 직관성</strong></p>
<ul>
<li><p>제약 조건은 보상과 달리 여러 로봇에 일반화 가능하며, 물리적 의미가 있어 설정 과정이 간단하고 명확함.</p>
</li>
<li><p>실험적으로는 <strong>3개의 보상 항목과 단일 보상 계수 조정만으로</strong> 성능 높은 정책을 학습 가능.</p>
</li>
</ul>
</li>
</ol>
<br/>
<br/>

<h3 id="실험-및-결과"><strong>실험 및 결과</strong></h3>
<ol>
<li><p><strong>여러 로봇 플랫폼 적용</strong></p>
<ul>
<li><p>제안된 프레임워크를 사용하여 다양한 다족 로봇과 이족 로봇(총 7종)의 보행 제어기를 학습.</p>
</li>
<li><p>로봇의 형태(다리 개수, 기계 설계)와 물리적 특성(무게, 액추에이터 특성)이 달라도 효과적으로 동작.</p>
</li>
</ul>
</li>
<li><p><strong>시뮬레이션 및 실제 환경 실험</strong></p>
<ul>
<li>실험 결과, 제약 조건을 활용한 학습이 보상 엔지니어링만으로는 달성하기 어려운 <strong>일반화된 성능</strong>과 <strong>높은 견고성</strong>을 보임.</li>
</ul>
</li>
</ol>
<br/>

<p>→ 제약 조건을 <strong>보상 엔지니어링을 보완하거나 대체하는 도구</strong>로 활용하는 가능성을 보여줌.</p>
<br/>
<br/>

<hr>
<h3 id="로봇-플랫폼이-달라져도-일관되게-적용-가능한-이유"><strong>로봇 플랫폼이 달라져도 일관되게 적용 가능한 이유</strong></h3>
<p>제약 조건은 <strong>로봇 플랫폼의 고유 특성(예: 크기, 무게, 관절 구조)</strong>에 의존하지 않고 <strong>일반적인 조건</strong>으로 설정되기 때문입니다.</p>
<ul>
<li><p>예를 들어, <strong>4족 로봇의 트로팅 게이트</strong>(다리를 교차로 움직이는 보행 패턴)는 모든 4족 로봇에서 유효합니다.</p>
<ul>
<li><p>트로팅은 다리 움직임의 순서와 주기만 정의하기 때문에, 로봇의 <strong>크기</strong>나 <strong>무게</strong>가 달라도 동일한 패턴을 적용할 수 있습니다.</p>
</li>
<li><p>즉, 이 조건은 로봇의 구체적인 물리적 특성을 고려하지 않아도 되므로 <strong>범용적</strong>입니다.</p>
</li>
</ul>
</li>
</ul>
<p>반대로 보상으로 트로팅 동작을 유도하려면, 로봇마다 다를 수 있는 다음과 같은 세부 정보를 고려해야 합니다:</p>
<ol>
<li><p>각 다리가 얼마나 &quot;잘 움직이는지&quot;를 측정하는 기준</p>
</li>
<li><p>로봇마다 다른 관절 속도, 관절 위치, 힘 등 피드백 신호</p>
</li>
</ol>
<p>이러한 이유로, 보상을 설계하는 과정은 로봇마다 달라지고 복잡해집니다.</p>
<br/>
<br/>

<h3 id="제약-조건이-보상보다-엔지니어링이-덜-필요한-이유"><strong>제약 조건이 보상보다 엔지니어링이 덜 필요한 이유</strong></h3>
<ol>
<li><p><strong>제약 조건은 물리적/기술적 제한을 직접 명시</strong></p>
<ul>
<li><p>제약 조건은 로봇의 제한사항을 명확하게 정의합니다.</p>
<ul>
<li>예: 관절 각도 제한, 힘 출력 범위 등.</li>
</ul>
</li>
<li><p>이런 조건들은 <strong>물리적 의미를 가지며 직관적</strong>으로 설정 가능합니다.</p>
<ul>
<li>URDF 파일(로봇 모델 파일)에서 자동으로 불러올 수도 있어 엔지니어가 따로 설계할 필요가 없습니다.</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>보상 설계는 비선형적이고 로봇 특성에 의존적</strong></p>
<ul>
<li><p>보상은 특정 동작을 유도하기 위한 수학적 모델링입니다.</p>
</li>
<li><p>보상 항목마다 중요도를 조정하는 <strong>가중치(계수)</strong>를 설정해야 하며, 이는 실험적으로 조정해야 하는 경우가 많습니다.</p>
<ul>
<li><p>예: R=w1⋅속도+w2⋅힘 절약+w3⋅균형 유지</p>
<p>  R=w1⋅속도+w2⋅힘 절약+w3⋅균형 유지</p>
</li>
</ul>
</li>
<li><p>로봇마다 신호가 다르기 때문에 이 가중치를 일일이 조정하는 작업은 시간과 노력이 많이 듭니다.</p>
</li>
</ul>
</li>
<li><p><strong>제약 조건으로 보상을 대체하면 설계 간소화</strong></p>
<ul>
<li><p>보상에서 &quot;소프트 페널티&quot;로 처리하던 것(예: 특정 동작을 하지 않으면 점수를 감점)을 제약 조건으로 &quot;하드 제한&quot;으로 정의하면,</p>
<ul>
<li>보상 항목이 줄어듦 → 조정해야 할 변수 감소.</li>
<li>최적화가 제약 조건 내부에서 이루어져, 정책 학습이 더 간단해짐.</li>
</ul>
</li>
</ul>
</li>
</ol>
<br/>

<hr>
<h3 id="예시"><strong>예시</strong></h3>
<p><strong>보상으로 트로팅 게이트 유도</strong></p>
<ul>
<li><p>네 다리가 교차로 움직이도록 하기 위해 다음을 보상에 포함:</p>
<ul>
<li><p><strong>속도</strong>: 다리 움직임 속도가 트로팅 동작과 얼마나 가까운지.</p>
</li>
<li><p><strong>균형</strong>: 로봇이 넘어지지 않고 중심을 유지하는지.</p>
</li>
<li><p><strong>힘 절약</strong>: 불필요한 에너지를 소비하지 않는지.</p>
</li>
</ul>
</li>
<li><p>이 모든 보상 항목에 적절한 계수를 찾기 위해 실험적으로 수많은 조정을 해야 함.</p>
</li>
</ul>
<p><strong>제약 조건으로 트로팅 게이트 설정</strong></p>
<ul>
<li><p>네 다리의 움직임 패턴을 <strong>수학적 제약</strong>으로 정의:</p>
<ul>
<li>예: 왼쪽 앞다리와 오른쪽 뒷다리가 같은 주기로 움직임.</li>
</ul>
</li>
<li><p>이 조건은 로봇의 물리적 특성에 관계없이 일괄 적용 가능하며, 실험적 조정이 필요 없음.</p>
</li>
</ul>
<br/>
<br/>

<h3 id="결론"><strong>결론</strong></h3>
<ul>
<li><p>제약 조건은 로봇의 특정 특성과 무관한 <strong>일반화된 규칙</strong>으로 설정되므로 로봇 플랫폼이 달라져도 동일하게 적용 가능.</p>
</li>
<li><p>보상을 통해 원하는 행동을 유도하려면 복잡한 조정과 실험적 튜닝이 필요하지만, 제약 조건은 물리적 의미가 명확해 직관적이고 자동화된 설정이 가능.</p>
</li>
<li><p>따라서 제약 조건을 추가하면 엔지니어링 부담이 줄어듦.</p>
</li>
</ul>
<br/>
<br/>

<hr>
<br/>

<h3 id="제약-조건-vs-모델의-자율-학습"><strong>제약 조건 vs 모델의 자율 학습</strong></h3>
<ul>
<li><p><strong>제약 조건을 사용하는 이유</strong></p>
<p>  제약 조건을 추가하면:</p>
<ul>
<li><p><strong>인간의 지식</strong>을 활용하여 모델의 학습을 유도.</p>
</li>
<li><p>학습의 불안정성을 줄이고 더 빠르게 수렴할 수 있음.</p>
</li>
<li><p>특히 <strong>데이터가 부족하거나 복잡한 환경</strong>에서는 제약 조건이 학습의 가이드를 제공.</p>
</li>
</ul>
</li>
<li><p><strong>모델이 직접 학습하도록 두는 접근의 한계</strong></p>
<ul>
<li><p><strong>데이터 부족</strong>: 4족 로봇의 실제 환경 데이터를 많이 얻는 것은 비용과 시간이 많이 듬.</p>
</li>
<li><p><strong>학습 불안정성</strong>: 보상 설계가 잘못되거나 초기 학습 과정에서 잘못된 행동을 학습할 가능성.</p>
</li>
<li><p><strong>복잡한 환경에서의 일반화</strong>: 로봇마다 다르게 설계된 하드웨어(모르포로지)를 고려해야 해서 완전 자율 학습은 어려움.</p>
</li>
</ul>
</li>
</ul>
<p>즉, 제약 조건은 초기 학습의 <strong>안정성</strong>과 <strong>효율성</strong>을 제공하지만, 완전히 새로운 방법을 발견하는 데는 제약이 될 수 있음. 연구자들은 보상과 제약 조건을 조화롭게 설계하여 이 문제를 해결하려고 함.</p>
<br/>
<br/>
<br/>
<br/>

<hr>
<h1 id="constrained-reinforcement-learning-">*<em>Constrained Reinforcement Learning *</em></h1>
<br/>

<h3 id="1-강화-학습과-제약-조건의-필요성"><strong>1. 강화 학습과 제약 조건의 필요성</strong></h3>
<ul>
<li><p>일반적인 강화 학습에서는 에이전트가 <strong>보상(reward)</strong>을 최대화하기 위해 학습함.</p>
</li>
<li><p>하지만 <strong>로봇 제어</strong>와 같은 현실적인 문제에서는 에이전트가 무제한으로 행동할 수 없음:</p>
<ul>
<li><p><strong>예: 로봇의 몸체가 지면에 닿지 않도록 하거나, 관절의 속도를 하드웨어 한계 내로 제한.</strong></p>
</li>
<li><p><strong>탐색 공간(search space)</strong>을 유도하여 안정적이고 안전한 학습이 필요함.</p>
</li>
</ul>
</li>
</ul>
<br/>
<br/>

<h3 id="2-cmdpconstrained-markov-decision-process-프레임워크"><strong>2. CMDP(Constrained Markov Decision Process) 프레임워크</strong></h3>
<ul>
<li><p><strong>CMDP</strong>는 강화 학습에서 제약 조건을 처리하기 위한 수학적 모델.</p>
<ul>
<li><p>에이전트가 <strong>보상</strong>을 최대화하면서 <strong>제약 조건</strong>을 만족해야 함.</p>
</li>
<li><p>제약 조건은 보통 <strong>비용 함수(cost terms)</strong>의 기대값 형태로 정의됨.</p>
<br/>
<br/>

</li>
</ul>
</li>
</ul>
<h3 id="3-제약-조건-적용-방법"><strong>3. 제약 조건 적용 방법</strong></h3>
<p>제약 조건을 처리하는 방법은 두 가지로 분류됨:</p>
<ol>
<li><p><strong>최적화 기준(Optimization Criterion)</strong></p>
<ul>
<li>정책을 업데이트하면서 제약 조건을 만족하도록 학습.</li>
</ul>
</li>
<li><p><strong>탐색 과정(Exploration Process)</strong></p>
<ul>
<li>학습 중 안전하지 않은 상태에서 <strong>안전 정책(safe policy)</strong>으로 개입.</li>
</ul>
</li>
</ol>
<blockquote>
<p>현재 연구의 초점:</p>
<ul>
<li>시뮬레이션 환경에서 학습하므로 <strong>최적화 기준 방법</strong>에 집중.</li>
<li>안전한 탐색을 위한 개입은 중요하지 않음.</li>
</ul>
</blockquote>
<br/>
<br/>

<h3 id="4-최적화-기준-방법"><strong>4. 최적화 기준 방법</strong></h3>
<p>최적화 기준 방법은 정책을 업데이트하는 방식에 따라 두 가지로 나뉨:</p>
<ol>
<li><p><strong>Lagrangian 방법</strong></p>
<ul>
<li><p>라그랑주 승수를 사용해 제약 조건을 <strong>비제약 문제로 변환</strong>.</p>
</li>
<li><p><strong>장점</strong>: 제약 조건이 만족되도록 학습 가능.</p>
</li>
<li><p><strong>단점</strong>: 하이퍼파라미터(라그랑주 승수 초기화 등)에 민감하고 학습이 불안정.</p>
</li>
</ul>
</li>
<li><p><strong>Trust-Region 방법</strong></p>
<ul>
<li><p>제약 조건과 보상을 <strong>선형 근사</strong>하여 안전한 정책 업데이트를 수행.</p>
</li>
<li><p>1차 및 2차 방법으로 나뉨:</p>
<ul>
<li><p><strong>1차 방법</strong>: 제약 조건을 비제약 문제로 변환해 <strong>1차 미분</strong>만 사용.</p>
<ul>
<li>예: <strong>IPO(Interior-point Policy Optimization</strong>), P3O(Penalized Proximal Policy Optimization).</li>
</ul>
</li>
<li><p><strong>2차 방법</strong>: 2차 미분 사용.</p>
<ul>
<li>예: CPO(Constrained Policy Optimization).</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ol>
<br/>
<br/>

<h3 id="5-주요-알고리즘-및-연구"><strong>5. 주요 알고리즘 및 연구</strong></h3>
<ol>
<li><p><strong>CPO (Constrained Policy Optimization)</strong></p>
<ul>
<li><p>제약 조건을 선형 근사화한 2차 미분 기반 알고리즘</p>
</li>
<li><p><strong>장점</strong>: 정책이 단조롭게 개선(monotonic improvement)</p>
</li>
<li><p><strong>단점</strong>: 2차 미분 계산 부담</p>
</li>
</ul>
</li>
<li><p><strong>IPO (Interior-point Policy Optimization)</strong></p>
<ul>
<li><p><strong>로그 장벽 함수(logarithmic barrier functions)</strong>를 사용해 제약 조건을 만족하도록 학습</p>
</li>
<li><p><strong>장점</strong>: 1차 미분만 사용하므로 계산 효율성이 높음</p>
</li>
<li><p><strong>단점</strong>: 제약 조건이 많아지면 학습이 어려워질 수 있음</p>
</li>
</ul>
</li>
<li><p><strong>P3O (Penalized Proximal Policy Optimization)</strong></p>
<ul>
<li><p>제약 조건 위반 시 선형 비용 페널티를 부과</p>
</li>
<li><p>제약 조건이 만족되면 비용 페널티를 무시</p>
</li>
</ul>
</li>
</ol>
<br/>

<h3 id="6-개선된-알고리즘"><strong>6. 개선된 알고리즘</strong></h3>
<p>이 논문에서는 IPO를 기반으로 여러 가지 <strong>개선점</strong>을 추가하여 <strong>다중 제약 조건</strong>에 대응할 수 있는 방법을 제안:</p>
<ol>
<li><p><strong>적응형 제약 임계값 설정</strong></p>
<ul>
<li>현재 정책 성능에 따라 제약 조건 임계값을 조정하여 효율적으로 제약 조건을 만족</li>
</ul>
</li>
<li><p><strong>다중 헤드 비용 함수(Multi-Head Cost Value Function)</strong></p>
<ul>
<li>메모리 효율적으로 다중 비용 함수와 비용 이점을 병렬로 계산</li>
</ul>
</li>
</ol>
<p>이전 연구와의 주요 차이점:</p>
<ul>
<li><p>제약 조건을 보상으로 처리하지 않아 비용 설계의 필요성 감소.</p>
</li>
<li><p>참조 궤적(reference trajectory) 없이 간단한 보상 설계만으로도 학습 가능.</p>
</li>
</ul>
<br/>
<br/>

<hr>
<h1 id="cmdpconstrained-markov-decision-process"><strong>CMDP(Constrained Markov Decision Process)</strong></h1>
<p>CMDP는 제약 조건이 있는 강화 학습 문제를 정의하기 위한 확장된 MDP(Markov Decision Process) 프레임워크입니다. 이를 이해하기 위해, CMDP의 구성 요소와 수식 및 해결 방법을 정리합니다.</p>
<br/>

<h3 id="1-cmdp의-정의"><strong>1. CMDP의 정의</strong></h3>
<p>CMDP는 다음과 같은 구성 요소로 정의됩니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/24db9b6d-7670-40d2-8686-2ac4b5c246b1/image.png" alt=""></p>
<br/>


<h3 id="2-정책의-성능-지표"><strong>2. 정책의 성능 지표</strong></h3>
<p><strong>보상 기대값 J(π)</strong></p>
<p> 정책 π에 따른 누적 보상의 기대값을 정의:
    <img src="https://velog.velcdn.com/images/yun_haaaa/post/f00edd90-11dd-4981-8141-70a4f18d4ff3/image.png" alt=""></p>
<blockquote>
<ul>
<li><strong>R(st,at,st+1) :</strong> 시뮬레이션 환경에서 주어지는 <strong>보상 함수</strong>. 특정 상태 st에서 행동 at를 수행했을 때, 다음 상태 st+1로 전이되면서 얻는 보상입니다.</li>
</ul>
</blockquote>
<ul>
<li><strong>gamma γ :</strong> <strong>할인율</strong>로, 미래 보상의 중요도를 조정합니다 (0≤γ&lt;1).</li>
<li><strong>ρ :</strong> 초기 상태 분포로 시뮬레이션 시작 시 상태 s0의 분포입니다.</li>
<li><strong>P(s′∣s,a) :</strong> 상태 전이 확률로, 현재 상태 s에서 행동 a를 했을 때 s′로 전이될 확률입니다.</li>
</ul>
<br/>


<p><strong>시뮬레이션 환경에서의 계산</strong></p>
<ol>
<li><p><strong>보상 함수 정의</strong>: 시뮬레이션 환경에 맞는 보상 R(s,a,s′)를 설정합니다. 예를 들어, 로봇 제어 문제에서는 다음이 포함될 수 있음:</p>
<ul>
<li>이동 목표를 성공적으로 달성했는가 +100</li>
<li>충돌 발생 시 패널티 -50</li>
<li>행동의 에너지 소모 비용 -1</li>
</ul>
</li>
<li><p><strong>에피소드 실행</strong> : 정책 π를 사용해 시뮬레이션 환경에서 여러 에피소드를 실행하며 각 t에서 R(st,at,st+1) 값을 수집합니다.</p>
</li>
<li><p><strong>누적 보상 계산</strong> : 한 에피소드에서 누적 보상을 계산한 후, 여러 에피소드의 평균으로 J(π)를 추정합니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/caf45ace-e099-4a51-a241-fecf77e94d1b/image.png" alt=""></p>
</li>
</ol>
<br/>

<p><strong>비용 기대값 J_{C_k}(π)</strong></p>
<p>  제약 조건 비용 함수 Cₖ에 대한 기대값:</p>
<p>  <img src="https://velog.velcdn.com/images/yun_haaaa/post/1e96db7f-2590-4847-8b63-3c25d1443be6/image.png" alt=""></p>
<blockquote>
<p><strong>C_k(s_t, a_t, s_{t+1}) :</strong> 특정 제약 조건에 해당하는 <strong>비용 함수</strong>입니다.</p>
</blockquote>
<ul>
<li>예: 로봇이 에너지를 과다 소비하거나 충돌할 때의 비용.</li>
</ul>
<br/>


<p><strong>시뮬레이션 환경에서의 계산</strong></p>
<ol>
<li><p><strong>비용 함수 정의</strong>:
제약 조건을 기반으로 비용을 설정합니다. </p>
<p>예를 들어:</p>
<ul>
<li><strong>충돌 발생 비용</strong> +10</li>
<li><strong>에너지 소비 비용</strong> +0.1 × 사용에너지</li>
</ul>
</li>
<li><p><strong>에피소드 실행 및 비용 수집</strong>:</p>
<p> 보상과 유사하게, 정책 π를 기반으로 시뮬레이션을 진행하며 각 t에서 비용 함수 C_k(s_t, a_t, s_{t+1}) 값을 수집합니다.</p>
</li>
<li><p><strong>누적 비용 계산</strong>:</p>
<p> 한 에피소드에서 누적 비용을 계산한 후, 여러 에피소드의 평균으로 J_{C_k}(π)를 추정합니다:</p>
<p> <img src="https://velog.velcdn.com/images/yun_haaaa/post/712483e3-e11f-4bc5-8e39-c27352f07da2/image.png" alt=""></p>
</li>
</ol>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/ec26878d-1680-4b26-a26e-9ef44585a5fc/image.png" alt=""></p>
<br/>
<br/>


<h3 id="3-cmdp에서의-강화-학습-문제-정의"><strong>3. CMDP에서의 강화 학습 문제 정의</strong></h3>
<p>강화 학습에서의 목표는 다음과 같음:</p>
<ul>
<li>보상 기대값 J(π)을 최대화.</li>
<li>비용 기대값 J_{C_k}(π) 이 각 제약 조건 dₖ을 초과하지 않도록 학습.</li>
</ul>
<p>수식으로 표현하면:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/85a645b5-cb48-41ce-bd37-129396e55388/image.png" alt=""></p>
<blockquote>
<p><strong>Π_θ :</strong> 파라미터 θ로 정의된 정책 집합.
<strong>dₖ :</strong> 각 제약 조건의 임계값.</p>
</blockquote>
<br/>
<br/>


<h3 id="4-신뢰-영역trust-region-내의-근사"><strong>4. 신뢰 영역(Trust Region) 내의 근사</strong></h3>
<p>CMDP 문제를 효율적으로 해결하기 위해, 신뢰 영역 내에서 문제를 근사화함.</p>
<p>Achiam et al.(2017)의 도출에 따르면, CMDP는 다음과 같이 변환됨:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/b2494fb6-47d6-41e0-b4fd-ae8586f28fc2/image.png" alt=""></p>
<p><strong>제약 조건:</strong>
<img src="https://velog.velcdn.com/images/yun_haaaa/post/84aaa822-f440-488c-86c7-55b76e0e7971/image.png" alt=""></p>
<blockquote>
<ul>
<li><strong>A_{π_i}(s, a) :</strong> 보상 이점 함수(Reward Advantage Function)</li>
</ul>
</blockquote>
<ul>
<li><strong>A_{π_i}^{C_k}(s, a) :</strong> 비용 이점 함수(Cost Advantage Function)</li>
<li><strong>bar{D}_{KL}(π || π_i) :</strong> 신뢰 영역 내 KL 발산(KL Divergence)</li>
<li>*<em>δ : *</em>최대 업데이트 크기.</li>
</ul>
<br/>
<br/>

<h3 id="5-주요-개념-설명"><strong>5. 주요 개념 설명</strong></h3>
<ol>
<li><p><strong>이점 함수(Advantage Function)</strong></p>
<ul>
<li><p>현재 정책 π_i에서 상태-행동 쌍의 이점(advantage)을 계산해 업데이트 방향 설정.</p>
</li>
<li><p><strong>보상 이점</strong>: A_{π_i}(s, a)</p>
</li>
<li><p><strong>비용 이점</strong>: A_{π_i}^{C_k}(s, a)</p>
</li>
</ul>
</li>
<li><p><strong>신뢰 영역(Trust Region)</strong></p>
<ul>
<li>정책 업데이트가 안정적으로 이루어지도록 KL 발산의 범위를 제한.</li>
</ul>
</li>
<li><p><strong>다양한 알고리즘 적용 가능</strong></p>
<ul>
<li>CPO, IPO 등 CMDP 문제를 해결하기 위해 여러 알고리즘이 사용됨.</li>
</ul>
</li>
</ol>
<br/>
<br/>

<h3 id="6-결론"><strong>6. 결론</strong></h3>
<ul>
<li><p>CMDP는 보상과 제약 조건을 동시에 만족시키는 정책 학습을 가능하게 함.</p>
</li>
<li><p>신뢰 영역을 활용해 안전하고 안정적인 정책 업데이트가 가능.</p>
</li>
<li><p>CMDP 기반 강화 학습은 로봇 제어와 같이 다중 제약 조건이 요구되는 환경에서 유용함.</p>
</li>
</ul>
<br/>
<br/>
<br/>
<br/>


<hr>
<h1 id="iv-learning-framework">IV. LEARNING FRAMEWORK</h1>
<br/>
<br/>

<h2 id="a-constraint-types">A. Constraint Types</h2>
<hr>
<h3 id="1-확률적-제약-probabilistic-constraints"><strong>(1) 확률적 제약 (Probabilistic Constraints)</strong></h3>
<p>확률적 제약은 특정 <strong>원하지 않는 사건</strong>(undesirable event)이 발생할 확률을 제한하는 방식입니다. 이 방식에서는 <strong>확률적으로</strong> 로봇의 행동을 제어하여, 원하지 않는 이벤트가 발생할 확률이 일정 수준 이하로 떨어지도록 합니다.</p>
<ul>
<li><p><strong>비용 함수 정의</strong>: 확률적 제약은 먼저 <strong>비용 함수</strong> C_k(s, a, s&#39;)를 <strong>지표 함수</strong>(indicator function)로 정의합니다. 지표 함수는 상태 s, 행동 a, 결과 상태 s&#39;가 특정 조건을 만족하는지 여부를 확인하는 함수입니다. </p>
<p>예를 들어, 로봇의 <strong>중심 위치</strong>가 특정 높이 이하로 떨어지는 것을 방지하고자 할 때, 그 조건을 지표 함수로 설정할 수 있습니다.
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/da6fb4eb-9a39-4858-96ec-24f0d08c3fdc/image.png" alt=""></p>
</li>
</ul>
<pre><code>S는 **원하는 상태 공간**(desirable event space)이고, C_k(s, a, s&#39;)는 이 상태가 S에 포함될 때 0, 포함되지 않으면 1로 설정됩니다. 

![](https://velog.velcdn.com/images/yun_haaaa/post/3c9be9c6-f872-449a-8bea-a41602053b6d/image.png)

![](https://velog.velcdn.com/images/yun_haaaa/post/75046bc2-5738-409d-a241-c5e9cec2dd03/image.png)

![](https://velog.velcdn.com/images/yun_haaaa/post/63c889fb-bf7f-4e50-8f58-50ad4353236c/image.png)</code></pre><ul>
<li><strong>확률 제약 설정</strong>: 이렇게 설정된 지표 함수는 <strong>확률적 제약</strong>으로 변환됩니다. 제약은 원하지 않는 사건이 발생할 확률이 일정 값 D_k 이하가 되도록 제한하는 방식입니다. D_k는 확률 제약을 만족해야 하는 임계값입니다.
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/94e32556-c140-48d1-a936-2c28c890805d/image.png" alt=""></li>
</ul>
<pre><code>여기서 D_k in [0, 1]는 kth 제약에 대한 **확률 임계값**입니다. D_k = 0일 경우, 정책은 **원하지 않는 사건을 절대 발생시키지 않도록 학습**해야 합니다. 하지만 확률적 MDP에서는 이 제약을 완전히 만족시키는 것은 어려울 수 있으므로, D_k는 보통 아주 작은 값으로 설정됩니다.</code></pre><ul>
<li><strong>적용 예시</strong>: 로봇의 중심 위치가 일정 거리 이하로 떨어지는 것을 방지하려면, <strong>중심 위치의 원하는 범위</strong> S를 정의하고, <strong>확률 제약을 설정</strong>하여 로봇이 그 범위 내에서만 행동하도록 유도할 수 있습니다.</li>
</ul>
<br/>
<br/>


<h3 id="2-평균-제약-average-constraints"><strong>(2) 평균 제약 (Average Constraints)</strong></h3>
<p>평균 제약은 <strong>로봇의 물리적 변수</strong>가 주어진 <strong>임계값 이하로 유지되도록 제한</strong>하는 방식입니다. 이는 특정 시점에서 제약을 만족시키는 것이 아니라, <strong>전체 에피소드 동안의 평균</strong>이 주어진 임계값을 초과하지 않도록 하는 제약입니다.</p>
<ul>
<li><p><strong>비용 함수 정의</strong>: 평균 제약은 비용 함수 C_k(s, a, s&#39;)를 해당 물리적 변수를 반영하는 함수로 정의합니다. 예를 들어, 로봇의 <strong>발의 속도</strong>가 일정 수준 이하로 유지되어야 한다면, 발 속도를 물리적 변수로 설정할 수 있습니다.
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/8cdf116d-b25b-4eee-89ed-bb512f2b9824/image.png" alt=""></p>
<p>  f(s, a, s&#39;)는 물리적 변수, 예를 들어 <strong>발 속도</strong>와 같은 값을 정의하는 함수입니다.</p>
</li>
<li><p><strong>평균 제약 설정</strong>: 이 경우 제약은 전체 에피소드 동안의 <strong>평균 값</strong>이 임계값 D_k를 초과하지 않도록 제한됩니다. 즉, 물리적 변수의 평균 값이 <strong>주어진 임계값 이하</strong>로 유지되도록 요구합니다.
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/300725b1-9cf4-47f8-a97e-638f78b9bfef/image.png" alt=""></p>
</li>
</ul>
<pre><code>이 제약은 로봇의 특정 물리적 변수에 대한 **평균 제약**을 설정하는 데 사용됩니다.</code></pre><ul>
<li><strong>적용 예시</strong>: 예를 들어, <strong>발의 속도</strong>가 너무 빠르면 미끄러지거나 불안정한 움직임이 발생할 수 있습니다. 이때 발의 속도가 <strong>너무 빠르지 않도록 제한</strong>하는 평균 제약을 설정할 수 있습니다.</li>
</ul>
<br/>
<br/>
<br/>
<br/>


<h2 id="b-policy-optimization">B. Policy optimization</h2>
<hr>
<h3 id="1-문제-정의-제약-조건이-있는-정책-최적화"><strong>1. 문제 정의: 제약 조건이 있는 정책 최적화</strong></h3>
<ul>
<li><strong>목표</strong>: 주어진 보상 J(pi)을 최대화하는 최적의 정책 pi를 찾는다.</li>
<li><strong>추가 조건</strong>: 정책은 제약 조건 J_{C_k}(pi) ≤ d_k 를 만족해야 한다.</li>
</ul>
<blockquote>
<p><strong>J_{C_k}(pi) :</strong> 시간에 따라 누적된 제약 비용.
<strong>d_k :</strong> 제약 조건의 상한.</p>
</blockquote>
<br/>
<br/>

<h3 id="2-제약-조건-누적-계산"><strong>2. 제약 조건 누적 계산</strong></h3>
<p>제약 조건은 단순히 하나의 상태에서 만족하는 것이 아니라, 시간에 걸쳐 <strong>누적 비용</strong>으로 계산됩니다.</p>
<p>누적 비용의 정의는 다음과 같습니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/d9588f3e-d284-4124-9652-d9fa11039e60/image.png" alt=""></p>
<blockquote>
<p><strong>gamma :</strong> 할인율, 먼 미래의 비용보다 가까운 비용을 더 중요하게 반영.
<strong>C_k(s, a, s&#39;) :</strong> 특정 상태, 행동, 결과가 제약 조건을 만족하지 않을 때 비용 (예: 충돌 발생 등).</p>
</blockquote>
<p>이를 통해 제약 조건을 만족시키는 정책이 점진적으로 학습됩니다.</p>
<br/>
<br/>

<h3 id="3-ipointerior-point-policy-optimization-알고리즘"><strong>3. IPO(Interior-Point Policy Optimization) 알고리즘</strong></h3>
<p>IPO는 위의 제약 조건 문제를 <strong>비제약 문제</strong>로 변환합니다. 이를 위해 <strong>로그 배리어 함수</strong>를 사용합니다.</p>
<br/>

<p><strong>로그 배리어 함수 변환</strong></p>
<p>제약 조건을 만족하지 않으면 큰 페널티를 부과하여 정책이 제약을 충족하도록 만듭니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/e39fa796-d111-4b9a-802a-4eb1d791f811/image.png" alt=""></p>
<blockquote>
<p><strong>log(d_k - J_{C_k}(pi)) :</strong> 제약 조건에서 얼마나 여유가 있는지를 로그 값으로 나타냄.
<strong>t &gt; 0 :</strong> 하이퍼파라미터로, 로그 함수의 기울기를 제어함.</p>
</blockquote>
<ul>
<li>제약 조건이 충분히 여유가 있다면(즉,d_k - J_{C_k}(pi)가 큼), 페널티가 작아짐.</li>
<li>제약 조건에 가까워지면 페널티가 커져 정책이 이를 피하도록 학습.</li>
</ul>
<br/>
<br/>

<h3 id="4-ipo와-trpo의-조합"><strong>4. IPO와 TRPO의 조합</strong></h3>
<p>논문에서는 IPO를 기반으로 하되, 제약 조건 학습의 안정성을 높이기 위해 <strong>TRPO(Trust Region Policy Optimization)</strong>를 사용합니다.
<br/></p>
<p><strong>TRPO의 특징</strong>:</p>
<ul>
<li>신뢰 영역(Trust Region)을 설정하여 정책이 급격히 변하지 않도록 제어.</li>
<li>안정적으로 정책 성능을 개선하면서도 제약 조건을 확인.</li>
</ul>
<p><strong>변형된 목표 함수</strong></p>
<p>최종적으로 TRPO와 결합한 IPO의 목표 함수는 다음과 같습니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/44654fde-f778-4c62-86cf-5cc8d7733ef8/image.png" alt=""></p>
<blockquote>
<p><strong>A_pi(s, a) :</strong> Advantage 함수, 현재 상태에서 행동이 얼마나 유리한지를 나타냄.
<strong>A_pi^{C_k}(s, a) :</strong> 제약 조건 비용에 대한 Advantage 함수.</p>
</blockquote>
<p>이 목표를 최적화하면서 제약 조건을 준수하는 정책을 학습합니다.</p>
<br/>
<br/>

<h3 id="5-주요-개선-사항"><strong>5. 주요 개선 사항</strong></h3>
<p>이 논문에서는 기존 IPO 방식의 한계를 개선하기 위해 다음 두 가지를 추가했습니다:</p>
<ol>
<li><p><strong>대규모 제약 처리</strong>: 제약 조건이 많아도 효율적으로 처리할 수 있도록 개선.</p>
</li>
<li><p><strong>안정성 향상</strong>: TRPO를 사용하여 정책 업데이트 시의 안정성을 높임.</p>
</li>
</ol>
<br/>
<br/>

<h3 id="6-요약"><strong>6. 요약</strong></h3>
<ul>
<li><p><strong>IPO</strong>: 제약 조건 문제를 로그 배리어 함수로 변환하여 최적화.</p>
</li>
<li><p><strong>TRPO 결합</strong>: 신뢰 영역 설정으로 정책 학습의 안정성과 제약 조건 만족을 동시에 보장.</p>
</li>
<li><p><strong>핵심 아이디어</strong>: 제약 조건을 위반하면 큰 페널티를 부여해 정책이 제약 조건 내에서 최적의 행동을 학습하도록 유도.</p>
</li>
</ul>
<br/>
<br/>
<br/>
<br/>


<hr>
<h2 id="algorithm"><strong>Algorithm</strong></h2>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0b1bca2d-f971-4349-b46a-9b34dcb9288f/image.png" alt=""></p>
<h3 id="입력"><strong>입력</strong></h3>
<ul>
<li><p><strong>초기 정책 pi_{theta_0} :</strong> 학습할 정책</p>
</li>
<li><p><strong>가치 함수 V_{phi_0} :</strong> 상태-가치 예측을 위한 신경망</p>
</li>
<li><p><strong>다중 헤드 비용 가치 함수 V_{ψ_0}^{C1,...,CK} :</strong> 각 제약 조건 비용을 예측</p>
</li>
</ul>
<br/>

<h3 id="출력"><strong>출력</strong></h3>
<ul>
<li><strong>학습된 최적 정책 pi_{theta_N}</strong></li>
</ul>
<br/>

<h3 id="단계-요약"><strong>단계 요약</strong></h3>
<ol>
<li><p><strong>Trajectory 샘플링</strong>: </p>
<ul>
<li>정책 pi_{theta_n}을 사용하여 상태, 행동, 보상, 제약 비용 데이터를 수집.</li>
</ul>
</li>
<li><p><strong>Advantage 계산</strong>:</p>
<ul>
<li>일반 보상에 대한 Advantage A_pi</li>
<li>제약 조건 비용에 대한 Advantage A_pi^{C_k}</li>
</ul>
</li>
<li><p><strong>제약 임계값 업데이트</strong>:</p>
<ul>
<li>Adaptive Constraint Thresholding (d_k^i)를 사용해 제약 조건 임계값 조정.</li>
</ul>
</li>
<li><p><strong>정책 업데이트</strong>:</p>
<ul>
<li>로그 배리어 함수 기반으로 정책을 최적화 (IPO + TRPO 결합).</li>
</ul>
</li>
<li><p><strong>가치 함수 업데이트</strong>:</p>
<ul>
<li>상태-가치와 다중 헤드 비용 가치 함수를 업데이트.</li>
</ul>
</li>
</ol>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/019e9307-93c7-4a66-b7d6-5573e72b6ca4/image.png" alt=""></p>
<br/>
<br/>
<br/>
<br/>

<hr>
<h1 id="v-applications-on-legged-robot-locomotion">V. APPLICATIONS ON LEGGED ROBOT LOCOMOTION</h1>
<br/>
<br/>

<h2 id="학습-과정"><strong>학습 과정</strong></h2>
<hr>
<h3 id="1-시뮬레이션-환경"><strong>1. 시뮬레이션 환경</strong></h3>
<ol>
<li><p><strong>절차적 지형 생성(Parameterized Terrains)</strong>:</p>
<ul>
<li><p>다양한 기하학적 구조를 가진 지형을 생성.</p>
</li>
<li><p>로봇이 현재 학습 가능한 수준의 난이도를 유지.</p>
</li>
<li><p>다양한 지형에서 훈련된 데이터로 <strong>로봇의 견고성(Robustness)</strong>을 확보.</p>
</li>
</ul>
</li>
<li><p><strong>도메인 랜덤화(Domain Randomization)</strong>:</p>
<ul>
<li><p>현실-시뮬레이션 간 차이를 줄이기 위해 물리적 속성(예: 마찰 계수, 질량)을 무작위로 변동.</p>
</li>
<li><p><strong>Sim-to-Real Gap</strong>을 극복하기 위한 핵심 기술.</p>
</li>
</ul>
</li>
</ol>
<br/>

<h3 id="2-교사-학생-학습-과정-teacher-student-learning"><strong>2. 교사-학생 학습 과정 (Teacher-Student Learning)</strong>:</h3>
<ul>
<li><p><strong>교사 정책(Teacher Policy)</strong>:</p>
<ul>
<li><p>시뮬레이션 환경에서 고성능 정책 학습.</p>
</li>
<li><p>관절 위치, 몸체 자세와 같은 <strong>Proprioceptive Sensor</strong> 데이터와 <strong>Privileged Information</strong>(시뮬레이션에서만 얻을 수 있는 정보) 사용.</p>
</li>
</ul>
</li>
<li><p><strong>학생 정책(Student Policy)</strong>:</p>
<ul>
<li><p>교사 정책의 동작을 모방하도록 학습.</p>
</li>
<li><p><strong>Proprioceptive Sensor</strong> 데이터만 사용.</p>
</li>
<li><p>예측 정확도를 높이기 위해 과거 데이터 기반의 압축된 정보(Privileged Information)를 예측.</p>
</li>
</ul>
</li>
</ul>
<br/>
<br/>

<hr>
<br/>

<h3 id="보상rewards과-제약constraints의-통합"><strong>보상(Rewards)과 제약(Constraints)의 통합</strong>:</h3>
<ul>
<li><p>기존에는 하드웨어 제약 및 동작 스타일을 보상으로 표현.</p>
</li>
<li><p>제안된 방법에서는 이를 <strong>명시적 제약(Constraints)</strong>으로 처리해 문제를 단순화.</p>
</li>
<li><p>보상 항목을 3개로 줄이고도 자연스러운 보행 동작을 생성.</p>
</li>
</ul>
<br/>
<br/>

<h2 id="보상"><strong>보상</strong></h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b10e1713-8a3c-4066-b372-5bd1df79eef0/image.png" alt=""></p>
<p><strong>보상 함수 (Reward Function)</strong></p>
<ol>
<li><strong>명령 추적 (Command Tracking)</strong>:<pre><code> - 주어진 속도 명령을 얼마나 잘 추적하는지 측정.
 ![](https://velog.velcdn.com/images/yun_haaaa/post/640b7da2-346b-42e6-98d7-f3ac756befeb/image.png)</code></pre></li>
</ol>
<ol start="2">
<li><strong>관절 토크 최소화 (Joint Torque)</strong>:rτ=−kτ∣∣τ∣∣2<pre><code> - 토크 사용량을 최소화.
 ![](https://velog.velcdn.com/images/yun_haaaa/post/57de2e29-b889-4393-b555-72ccb5f9998d/image.png)</code></pre></li>
</ol>
<ol start="3">
<li><strong>행동 부드러움 (Action Smoothness)</strong>:<pre><code> - 동작의 부드러움을 유지해 실제 모터 진동 방지.
     ![](https://velog.velcdn.com/images/yun_haaaa/post/a0751d8a-c87d-454c-82ea-1a6281927f74/image.png)</code></pre></li>
</ol>
<br/>

<h3 id="최종-보상"><strong>최종 보상:</strong></h3>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/8f4a1d5c-2b64-4827-a603-ba81f9cfcb99/image.png" alt=""></p>
<blockquote>
<p><strong>kc, kτ, ks :</strong> 각 보상의 가중치.</p>
</blockquote>
<br/>

<h3 id="보상-계수-스케일링"><strong>보상 계수 스케일링</strong></h3>
<ul>
<li>로봇의 질량에 따라 <strong>토크 보상 계수</strong> (kτ)를 조정:
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/6d88f454-7cd0-44c0-b596-fef33498b7c3/image.png" alt=""></li>
</ul>
<blockquote>
<p><strong>hat{k}_τ :</strong> 기준 로봇의 보상 계수.
<strong>m, mˉ :</strong> 로봇의 실제 질량 및 기준 로봇의 질량.</p>
</blockquote>
<br/>
<br/>
<br/>
<br/>


<h2 id="제약"><strong>제약</strong></h2>
<hr>
<ul>
<li><strong>Probabilistic Constraints (확률적 제약):</strong><ul>
<li><strong>비용 함수:</strong> 인디케이터 함수 사용.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/e1c4483e-780d-496f-9a29-f5f2a1b6038a/image.png" alt=""></li>
</ul>
</li>
</ul>
<ul>
<li><strong>Average Constraints (평균 제약):</strong><ul>
<li><strong>비용 함수:</strong> 물리적 변수 기반으로 직접 정의.<ul>
<li>예) 속도, 높이 등의 물리적 단위로 직관적 설정 가능.</li>
</ul>
</li>
</ul>
</li>
</ul>
<br/>
<br/>

<hr>
<h3 id="확률적-제약-probabilistic-constraints"><strong>확률적 제약 (Probabilistic Constraints)</strong></h3>
<p>확률적으로 만족시켜야 할 제약 조건들. 비용 함수는 <strong>인디케이터 함수</strong>를 사용하여 제약 위반 시 패널티를 부여.</p>
<ol>
<li><strong>Joint Position (cjp):</strong><ul>
<li><strong>제약 조건:</strong> 관절 각도가 유효 범위 내에 있어야 함.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/6ed3b376-326f-491f-ad12-62db628ff0fe/image.png" alt=""></li>
</ul>
</li>
</ol>
<ol start="2">
<li><p><strong>Joint Velocity (cjv):</strong></p>
<ul>
<li><strong>제약 조건:</strong> 관절 속도가 모터 사양에 맞는 범위 내에 있어야 함.</li>
<li><strong>비용 함수:</strong>
위와 동일한 방식으로 계산.</li>
</ul>
</li>
<li><p><strong>Joint Torque (cjt):</strong></p>
<ul>
<li><strong>제약 조건:</strong> 관절 토크가 모터 사양 범위 내에 있어야 함.</li>
<li><strong>비용 함수:</strong>
위와 동일한 방식으로 계산.</li>
</ul>
</li>
<li><p><strong>Body Contact (cbc):</strong></p>
<ul>
<li><strong>제약 조건:</strong> 발 이외의 로봇 본체가 지면에 닿지 않아야 함.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/959804a6-aa23-4069-9dfc-bb59bbfecbdf/image.png" alt=""></li>
</ul>
</li>
</ol>
<ol start="5">
<li><strong>Center of Mass (ccom):</strong><ul>
<li><strong>제약 조건:</strong> 로봇의 무게중심(COM) 높이가 적절한 범위 내에 있어야 하며, 기울기가 안정적이어야 함.</li>
<li><strong>비용 함수:</strong> 위와 동일한 방식으로 계산.</li>
</ul>
</li>
<li><strong>Gait Pattern (cgp):</strong><ul>
<li><strong>제약 조건:</strong> 미리 정의된 발의 접촉 타이밍과 실제 발의 움직임이 일치해야 함.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/3f4c96d6-73f8-42ec-8a98-2d561e070660/image.png" alt=""></li>
</ul>
</li>
</ol>
<br/>
<br/>

<hr>
<h3 id="평균-제약-average-constraints"><strong>평균 제약 (Average Constraints)</strong></h3>
<p>평균적으로 만족시켜야 할 제약 조건들. 비용 함수는 물리적 변수를 기반으로 정의.</p>
<ol>
<li><strong>Orthogonal Velocity (cov):</strong><ul>
<li><strong>제약 조건:</strong> 명령받은 방향이 아닌 다른 방향의 속도를 최소화.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/3b53ec10-dc36-409c-8fe1-3cd8f8ec511b/image.png" alt=""></li>
</ul>
</li>
</ol>
<ol start="2">
<li><strong>Contact Velocity (ccv):</strong><ul>
<li><strong>제약 조건:</strong> 접촉점의 속도가 작아 슬립 방지.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/a31faf55-2201-45dc-92bf-846f6776c115/image.png" alt=""></li>
</ul>
</li>
</ol>
<ol start="3">
<li><strong>Foot Clearance (cfc):</strong><ul>
<li><strong>제약 조건:</strong> 발이 일정 높이 이상으로 올라야 함.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/4ec6bf71-7e32-477e-98d5-b4f60b42d4ab/image.png" alt=""></li>
</ul>
</li>
</ol>
<ol start="4">
<li><p><strong>Foot Height Limit (cfh):</strong></p>
<ul>
<li><strong>제약 조건:</strong> 발 높이가 너무 높아지지 않도록 제한.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/2ed5fe45-32e1-4174-bb4f-2257d10d4554/image.png" alt=""></li>
</ul>
</li>
<li><p><strong>Symmetry Constraint (csym):</strong></p>
<ul>
<li><strong>제약 조건:</strong> 로봇 동작이 대칭적이어야 함.</li>
<li><strong>비용 함수:</strong>
  <img src="https://velog.velcdn.com/images/yun_haaaa/post/22b55843-9151-4171-a692-fc4fbfdc5757/image.png" alt=""></li>
</ul>
</li>
</ol>
<br/>
<br/>


<hr>
<br/>

<ul>
<li><p><strong>총 제약 조건:</strong></p>
<ul>
<li>6개의 확률적 제약</li>
<li>5개의 평균 제약</li>
<li>대칭 제약 포함 시 총 12개의 제약 조건.</li>
</ul>
</li>
<li><p><strong>제약 만족 여부 판단:</strong></p>
<ul>
<li><strong>확률적 제약:</strong> 인디케이터 함수 사용.</li>
<li><strong>평균 제약:</strong> 물리적 변수 기반의 비용 함수 활용.</li>
</ul>
</li>
<li><p><strong>로봇 설계 파일 활용:</strong></p>
<ul>
<li>URDF 등 로봇 설계 파일에서 제약 조건의 기본값(관절 각도, 속도, 토크 등)을 자동으로 가져옴.</li>
</ul>
</li>
<li><p><strong>학습 과정에서의 제약 조건 처리:</strong></p>
<ul>
<li>제약이 만족되면 비용 함수는 0에 가깝고, 위반 시 패널티가 적용됨.</li>
<li>이미 만족된 제약은 정책 최적화에 영향을 미치지 않음 (로그 배리어 함수의 특성).</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[AMP: Adversarial Motion Priors for Stylized Physics-Based Character
Control]]></title>
            <link>https://velog.io/@yun_haaaa/AMP-Adversarial-Motion-Priors-for-Stylized-Physics-Based-CharacterControl</link>
            <guid>https://velog.io/@yun_haaaa/AMP-Adversarial-Motion-Priors-for-Stylized-Physics-Based-CharacterControl</guid>
            <pubDate>Thu, 31 Oct 2024 03:44:07 GMT</pubDate>
            <description><![CDATA[<p>Paper: <a href="https://arxiv.org/abs/2104.02180">https://arxiv.org/abs/2104.02180</a></p>
<br/>
<br/>

<h2 id="overview">OVERVIEW</h2>
<hr>
<p>참조 모션 데이터셋과 보상 함수로 정의된 작업 목표가 주어지면, 시스템은 데이터셋에 있는 동작과 유사한 행동을 사용하는 캐릭터의 제어 정책을 합성하여, 물리적으로 시뮬레이션된 환경에서 목표를 달성할 수 있도록 합니다. </p>
<p>중요한 점은 캐릭터의 행동이 데이터셋의 특정 모션과 정확히 일치할 필요는 없으며, 대신 <strong>데이터셋에서 나타나는 일반적인 특성을 채택</strong>하는 것입니다.</p>
<br/>

<p><strong>참조 모션들은 행동 스타일에 대한 예시를 제공</strong>합니다. 시스템에 서로 다른 모션 데이터셋을 제공하면 캐릭터는 다양한 스타일로 작업을 수행하도록 훈련될 수 있습니다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/37da276d-c010-448f-86c5-68e5dff9b404/image.png" alt=""></p>
<p>Figure 2는 시스템의 개요를 도식화한 것입니다.</p>
<br/>

<blockquote>
<p><strong>모션 데이터셋 M :</strong> 참조 모션들의 집합
<strong>각 모션 m_i={q^_it} :</strong> 포즈의 연속 <br/></p>
</blockquote>
<p>모션 클립은 실제 배우의 모션 캡처 데이터나 예술가가 제작한 키프레임 애니메이션에서 수집될 수 있습니다.</p>
<p>이전 프레임워크와는 달리, 이 시스템은 클립을 개별 스킬로 구분하거나 태스크에 특화된 주석 없이도 원시 모션 데이터에 직접 적용할 수 있습니다.</p>
<h3 id="시스템의-작동-방식">시스템의 작동 방식:</h3>
<ol>
<li><p><strong>정책(Policy) 모델 π(a_t∣s_t, g):</strong> 캐릭터의 상태 s_t와 주어진 목표 g를 기반으로 행동 a_t에 대한 분포를 생성합니다.</p>
</li>
<li><p><strong>PD 제어기(Proportional-Derivative Controller):</strong> 정책이 제시한 행동이 각 관절에 배치된 PD 제어기의 목표 위치로 작동하여 캐릭터의 움직임을 제어하는 힘을 생성합니다.</p>
</li>
<li><p><strong>목표 (Goal) g:</strong> 주어진 목표는 보상 함수 r^G로 표현되며, 캐릭터가 만족해야 할 고수준의 목표를 정의합니다. 예를 들어, 목표 방향으로 걷거나 특정 대상을 공격하는 등의 동작이 포함됩니다.</p>
</li>
<li><p><strong>스타일 목표 (Style Objective) r^S:</strong> 스타일 목표는 생성된 모션과 데이터셋의 모션을 구분하기 위해 학습된 적대적 판별기(adversarial discriminator)에 의해 정의됩니다. <br/>
스타일 목표는 태스크에 구애받지 않는 모션 선호 방식으로 작동하여, 특정 작업과 무관하게 자연스럽고 스타일리시한 모션을 유도합니다.</p>
</li>
</ol>
<br/>
<br/>

<h2 id="background">BACKGROUND</h2>
<hr>
<p><strong>Goal-Conditioned Reinforcement Learning</strong>과 <strong>Generative Adversarial Imitation Learning</strong> 기술을 결합하여, 원하는 행동 스타일로 도전적인 작업을 수행하는 캐릭터 제어 정책을 훈련합니다.</p>
<br/>
<br/>

<h3 id="goal-conditioned-reinforcement-learning">Goal-Conditioned Reinforcement Learning</h3>
<hr>
<p>Goal-Conditioned Reinforcement Learning 프레임워크에서, 에이전트는 주어진 목표 g ∈ G를 달성하기 위해 정책 π에 따라 환경과 상호작용하며 훈련됩니다. <strong>목표는 목표 분포 g∼p(g)로부터 샘플링</strong>됩니다. </p>
<br/>

<p>각 시간 단계 t에서 에이전트는 시스템의 상태 s_t ∈ S를 관찰한 후, 정책을 통해 행동 a_t ∈ A를 샘플링합니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/bb4cb3dc-889a-424a-af4d-e8e84354b6e5/image.png" alt=""></p>
<p>에이전트는 이 행동을 적용하여 새로운 상태 s_t+1를 얻고, 스칼라 보상 <strong>r_t = r(s_t, a_t, s_t+1, g)</strong>를 받습니다. </p>
<br/>

<p>에이전트의 목표는 <strong>기대 할인된 반환 J(π)을 최대화</strong>하는 정책을 학습하는 것입니다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/035c398c-a792-43be-a8ac-5bc3c160445f/image.png" alt=""></p>
<p>다음은 정책 π 하에서 목표 g에 대한 궤적τ의 확률을 나타냅니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/50e1693f-c75e-4c74-ae40-56ea01f049f1/image.png" alt=""></p>
<blockquote>
<p><strong>τ={(s_t, a_t, r_t) t=0~T−1, s_T} : *<em>궤적
*</em>p(s_0) :</strong> 초기 상태 분포 
<strong>p(s_t+1∣s_t,a_t) :</strong> 환경의 동역학 
<strong>T :</strong> 궤적의 시간 범위
<strong>γ ∈ [0,1) :</strong> 할인 인자</p>
</blockquote>
<br/>
<br/>

<h3 id="generative-adversarial-imitation-learning">Generative Adversarial Imitation Learning</h3>
<hr>
<p><strong>생성적 적대 모방 학습(GAIL)</strong>은 <strong>생성적 적대 신경망(GAN)</strong>에서 개발된 기법을 모방 학습에 적용한 방법입니다. 설명을 간단히 하기 위해 목표 g를 제외하였지만, 논의는 <strong>목표 조건부 설정</strong>으로 쉽게 일반화할 수 있습니다.</p>
<blockquote>
<p><strong>목표 :</strong> 시연자의 행동을 모방하는 정책 π(a∣s)를 훈련<br/>
<strong>시연 데이터셋 M={(s_i, a_i)}</strong></p>
</blockquote>
<ul>
<li><strong>s_i :</strong> 알 수 없는 시연 정책에서 기록된 상태</li>
<li><strong>a_i :</strong> 행동 <br/></li>
</ul>
<br/>

<p><strong>행동 복제(Behavioral Cloning)</strong>를 통해 지도 학습을 사용하여 상태에서 행동으로 직접 매핑할 수 있지만, <strong>시연 데이터가 적을 경우 드리프트가 발생</strong>할 가능성이 큽니다. 또한 행동 복제는 <strong>시연 행동을 관찰할 수 없는 상황에서는 적용할 수 없습니다.</strong></p>
<br/>

<p><strong>GAIL</strong>은 <strong>정책과 시연 사이의 유사성을 측정하는 목적 함수를 학습한 후, 강화 학습을 통해 목적을 최적화</strong>합니다. </p>
<p>이 목적 함수는 판별기 D(s,a)로 모델링되며, <strong>주어진 상태 s와 행동 a가 시연에서 나왔는지 또는 정책에서 생성되었는지 예측</strong>하도록 훈련됩니다.</p>
<br/>

<p><strong>판별기 학습의 목적</strong>은 다음과 같습니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/fe6c2a5b-c339-4500-9067-29361c869df9/image.png" alt=""></p>
<p>여기서 d_M(s,a)와 d_π(s,a)는 각각 시연 데이터와 정책의 상태-행동 분포를 나타냅니다.</p>
<br/>

<p><strong>정책</strong>은 강화 학습 목표에 따라 훈련되며, <strong>보상</strong>은 다음과 같이 정의됩니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/b21c78b9-1003-4b2b-8eeb-a6e97720f9b6/image.png" alt=""></p>
<p>이 적대적 학습 절차는 판별기가 시연과 정책의 상태 및 행동을 구별할 수 없도록 학습하는 것으로 해석될 수 있습니다. </p>
<p>이 목표는 시연 데이터와 정책 간의 <strong>젠슨-섀넌 발산(Jensen-Shannon divergence)</strong>을 최소화하는 것으로 설명할 수 있습니다.</p>
<br/>
<br/>

<h2 id="adversarial-motion-prior">ADVERSARIAL MOTION PRIOR</h2>
<hr>
<p>이 연구에서는 캐릭터가 수행해야 할 작업과 캐릭터가 작업을 수행하는 방식을 명시하는 두 가지 구성 요소로 구성된 보상 함수를 고려합니다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/bcab0f44-8b06-46b5-bb81-71fcaaebf600/image.png" alt=""></p>
<p><strong>r^G(s_t, a_t, s_t, g) :</strong> 캐릭터가 어떤 작업을 수행해야 하는지를 정의하는 작업 관련 보상입니다. 예를 들어, 목표 지점으로 이동하는 것과 같은 높은 수준의 목표를 나타냅니다.</p>
<p><strong>r^S(s_t ,s_t+1) :</strong> 캐릭터가 작업을 수행하는 동안 채택해야 하는 행동 스타일을 정의하는 스타일 보상입니다. 예를 들어, 목표 지점으로 달리거나 걷는 방식의 차이를 나타냅니다.</p>
<p><strong>w_G</strong>와 <strong>w_S</strong>는 각각 작업 보상과 스타일 보상의 가중치를 조정하는 변수입니다.</p>
<p>작업 보상은 설계가 비교적 직관적이고 간단할 수 있지만, 스타일 보상을 설계하는 것은 캐릭터가 자연스러운 행동을 학습하도록 하는 데 매우 어렵습니다. 따라서 효과적인 스타일 목표를 학습하는 것이 이 연구의 주요 초점입니다.</p>
<ul>
<li><p>이 모션 프라이어는 작업과 무관하게 동작의 자연스러움을 평가할 수 있어, 한 번 학습된 모션 프라이어를 여러 작업에 적용할 수 있습니다.</p>
</li>
<li><p>이를 통해 작업과 스타일 사양을 분리하여, 캐릭터가 원래 시연에서 나타나지 않은 작업도 수행할 수 있도록 만듭니다.</p>
</li>
</ul>
<br/>
<br/>

<h3 id="imitation-from-observations">Imitation from Observations</h3>
<hr>
<p>기존 GAIL은 시연자의 행동을 알아야 학습할 수 있습니다. 하지만 모션 클립 형태의 시연에서는 행동이 아닌 상태만 관찰할 수 있습니다.</p>
<p>이를 해결하기 위해, 판별기는 상태-행동 대신 상태 전이 D(s,s′)에 대해 학습합니다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b1be8be5-0058-4603-891e-4227d01a540a/image.png" alt=""></p>
<blockquote>
<p><strong>d_M(s,s′) :</strong> 데이터셋에서 관찰된 상태 전이의 확률 분포
<strong>d_π(s,s′) :</strong> 정책을 통해 생성된 상태 전이의 확률 분포를 나타냅니다.</p>
</blockquote>
<br/>
<br/>

<h3 id="least-squares-discriminator">Least-Squares Discriminator</h3>
<hr>
<p>기존의 GAN에서 사용되는 시그모이드 교차 엔트로피 손실 함수는 기울기 소실 문제가 발생할 수 있습니다.</p>
<p>이를 해결하기 위해 <strong>최소 제곱 GAN(LSGAN)</strong>에서 제안된 손실 함수를 사용합니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/4bace7f7-5753-40d9-8120-3b3c72e3f78c/image.png" alt=""></p>
<p>이 손실 함수는 데이터셋에서 샘플링된 전이에는 1, 정책에서 생성된 전이에는 -1의 점수를 예측하도록 판별기를 학습시킵니다.
<br/></p>
<p><strong>정책 학습을 위한 보상 함수:</strong>
<img src="https://velog.velcdn.com/images/yun_haaaa/post/7ac2bbfc-477f-4fb0-b093-7f0db19bca57/image.png" alt=""></p>
<p>이 보상 함수는 [0,1] 범위로 제한됩니다.</p>
<br/>
<br/>

<h3 id="discriminator-observations">Discriminator Observations</h3>
<hr>
<p>판별기는 정책 학습 시 보상을 제공하므로, 적절한 피처 세트를 선택하여 판별기가 올바른 예측을 할 수 있게 하는 것이 중요합니다.</p>
<p>상태 전이가 판별기의 입력으로 제공되기 전에, 먼저 <strong>관찰 맵 Φ(sₜ)을 적용하여 주어진 모션의 특성을 결정하는 데 중요한 피처를 추출</strong>합니다. 그런 다음, 추출된 피처들이 판별기의 입력으로 사용됩니다 𝐷(Φ(s), Φ(s′)). </p>
<br/>

<p>이 피처 세트에는 다음이 포함됩니다:</p>
<p><strong>캐릭터의 루트의 선속도와 각속도</strong>는 캐릭터의 로컬 좌표계로 표현됩니다.</p>
<ul>
<li>각 관절의 로컬 회전</li>
<li>각 관절의 로컬 속도</li>
<li>캐릭터의 로컬 좌표계로 표현된 말단부(손, 발 등)의 3D 위치</li>
</ul>
<p>여기서 <strong>루트(root)</strong>는 캐릭터의 골반을 의미합니다. 캐릭터의 로컬 좌표계는 루트가 원점에 위치하고, x축은 루트 링크의 전방 방향, y축은 전역의 상향 벡터와 일치하는 방향으로 정의됩니다. </p>
<p>각 <strong>스페리컬 조인트(spherical joint)</strong>의 3D 회전은 법선 벡터와 접선 벡터로 표현되며, 이는 특정 회전의 부드럽고 고유한 표현을 제공합니다.</p>
<br/>

<p>이 관찰 피처 세트는 하나의 상태 전이에서 모션을 컴팩트하게 표현하기 위해 선택되었습니다. 또한, 이 피처들은 작업 관련 특징을 포함하지 않기 때문에, <strong>작업에 특화된 주석 없이 모션 프라이어를 학습</strong>할 수 있으며, <strong>동일한 데이터셋으로 학습된 모션 프라이어를 다양한 작업에 적용</strong>할 수 있습니다.</p>
<br/>
<br/>

<h3 id="gradient-penalty">Gradient Penalty</h3>
<hr>
<p>GAN에서 판별기와 생성기 간의 상호작용은 종종 불안정한 학습 동작을 초래합니다. 불안정성의 한 가지 원인은 판별기의 함수 근사화 오류로 인해, <strong>실제 데이터 샘플의 manifold 상에서 0이 아닌 그래디언트를 할당</strong>하는 경우입니다. </p>
<p>이러한 그래디언트는 생성기가 manifold로 수렴하지 않고 과도한 변화를 일으켜 학습 과정에서 진동과 불안정성을 유발할 수 있습니다. 이를 완화하기 위해, 데이터셋에서 샘플링된 <strong>0이 아닌 그래디언트를 페널티로 적용</strong>하는 기법을 도입합니다.</p>
<p>그래디언트 페널티를 적용한 판별기 목표 함수는 다음과 같이 정의됩니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/464a5f0b-feae-4135-bd30-faceb63ed149/image.png" alt=""></p>
<blockquote>
<p><strong>𝑤_{gp} :</strong> 수동으로 지정된 계수
<strong>Φ(s), Φ(s′) :</strong> 관찰 피처들</p>
</blockquote>
<p>이 페널티는 전체 상태 피처가 아닌 <strong>관찰 피처에 대해 계산</strong>됩니다. </p>
<p>실험 결과, 그래디언트 페널티는 안정적인 학습과 효과적인 성능을 위해 필수적임이 확인되었습니다.</p>
<br/>
<br/>

<h2 id="model-representation">MODEL REPRESENTATION</h2>
<hr>
<p>이 섹션에서는 고수준의 작업 목표와 참조 모션 데이터셋을 주어졌을 때, 에이전트가 어떻게 정책을 학습하여 작업 목표를 달성하고, 데이터셋에 있는 모션과 유사한 동작을 수행하는지 설명합니다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/d7847384-8716-42d1-8196-79670ed296ef/image.png" alt=""></p>
<br/>
<br/>

<h3 id="states-and-actions">States and Actions</h3>
<hr>
<p>상태 s_t는 캐릭터의 몸 구성을 설명하는 여러 피처들로 구성됩니다. 이 피처들은 Peng et al. [2018a]에서 사용한 것과 유사하며, 루트를 기준으로 각 링크의 상대 위치, 각 링크의 6차원 회전 표현(법선-접선 인코딩), 그리고 각 링크의 선형 속도와 각속도를 포함합니다. 이 모든 피처는 캐릭터의 로컬 좌표계에서 기록됩니다.</p>
<p>기존의 시스템들과는 달리, 본 시스템에서는 <strong>추가적인 동기화 정보(예: 위상 변수 또는 목표 자세)를 상태에 포함하지 않으며, 특정 모션을 명시적으로 모방하도록 학습하지 않습</strong>니다. 따라서 별도의 동기화 정보가 필요 없습니다.</p>
<p>*<em>행동 a_t *</em>는 각 관절에 배치된 PD 컨트롤러의 목표 위치를 지정합니다. 스페리컬 관절의 목표는 3D 지수 맵 q ∈ R3 로 표현되며, 회전 축 v와 회전 각도 θ는 다음과 같이 계산됩니다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/65108028-cdf6-4ab0-bc5a-0d4d39b9c4e8/image.png" alt=""></p>
<p>이 표현 방식은 이전 시스템에서 사용한 4D 축-각도 또는 쿼터니언 표현보다 더 컴팩트한 매개변수화를 제공하며, 오일러 각도의 짐볼 락 문제를 피할 수 있습니다. 회전 관절의 목표 회전은 1차원 회전 각도로 q=θ로 지정됩니다.</p>
<br/>
<br/>

<h3 id="network-architecture">Network Architecture</h3>
<hr>
<p>각 정책 π는 주어진 상태 s_t 와 목표 g를 입력받아, 행동에 대한 가우시안 분포 π(a_t∣s_t,g)=N(μ(s_t,g),Σ)를 출력하는 신경망으로 모델링됩니다. </p>
<p>여기서 평균 μ(s_t ,g)는 상태와 목표에 따라 달라지고, 공분산 행렬 Σ는 대각 행렬로 고정되어 있습니다.
<br/></p>
<p>신경망 구조:</p>
<ul>
<li><strong>은닉층 :</strong> 첫 번째 은닉층은 1024개의 뉴런, 두 번째 은닉층은 512개의 뉴런으로 구성되며, 각 층에는 ReLU 활성화 함수가 사용됩니다.</li>
<li><strong>출력층 :</strong> 선형 출력층을 사용하여 평균값을 출력합니다.</li>
<li><strong>공분산 행렬 Σ</strong>는 고정된 값으로 훈련 중 변경되지 않습니다.<br/>

</li>
</ul>
<p>가치 함수 V(s_t,g)와 판별기 D(s_t,s_t+1)도 정책과 동일한 신경망 구조를 사용합니다.</p>
<br/>
<br/>

<h3 id="training">Training</h3>
<hr>
<p>정책 학습은 <strong>GAIL (Generative Adversarial Imitation Learning)</strong>과 PPO (Proximal Policy Optimization) 방법을 결합하여 수행됩니다. 학습 과정은 알고리즘 1에 설명된 대로 진행됩니다.</p>
<ul>
<li><p>매 시간 단계에서 에이전트는 환경으로부터 작업 보상 r^G 와 스타일 보상 r^S를 받습니다.</p>
</li>
<li><p>이 두 보상은 결합되어, 최종 보상을 만듭니다.</p>
</li>
<li><p>참조 상태 초기화와 조기 종료가 학습에 적용됩니다. </p>
<ul>
<li><strong>참조 상태 초기화</strong>는 캐릭터를 데이터셋에서 무작위로 선택된 상태로 초기화하는 방식입니다. </li>
<li><strong>조기 종료</strong>는 대부분의 작업에서 캐릭터의 몸이 땅에 닿으면 발생하며, 접촉이 많은 작업에서는 비활성화됩니다.<br/>

</li>
</ul>
</li>
</ul>
<h3 id="학습-업데이트">학습 업데이트</h3>
<ul>
<li><p>정책이 수집한 데이터로부터 경로를 기록한 후, 가치 함수와 정책을 업데이트합니다.</p>
</li>
<li><p>가치 함수는 TD(λ) 방법을 사용해 업데이트되며, 정책은 <strong>GAE(λ)</strong>로 계산된 이점을 사용하여 업데이트됩니다.</p>
</li>
<li><p>기록된 경로는 <strong>리플레이 버퍼 B</strong>에 저장되며, 판별기는 <strong>참조 모션 데이터셋 M</strong>과 <strong>리플레이 버퍼 B</strong>에서 샘플링된 데이터로 업데이트됩니다.</p>
</li>
</ul>
<br/>
<br/>

<h2 id="tasks">TASKS</h2>
<hr>
<p>AMP의 효과를 평가하기 위해 다양한 캐릭터와 함께 여러 모션 제어 작업을 수행했습니다. 주요 작업은 다음과 같습니다:</p>
<ul>
<li><p><strong>목표 방향(Target Heading) :</strong> 캐릭터가 주어진 방향 d∗으로 목표 속도 v∗로 이동합니다.</p>
</li>
<li><p><strong>목표 위치(Target Location) :</strong> 캐릭터가 목표 위치 x∗로 이동하는 과제입니다.</p>
</li>
<li><p><strong>드리블(Dribbling) :</strong> 캐릭터가 축구공을 목표 위치로 드리블하는 복잡한 작업을 수행합니다.</p>
</li>
<li><p><strong>타격(Strike) :</strong> 캐릭터가 목표를 향해 타격을 수행하는 작업입니다.</p>
</li>
<li><p><strong>장애물 통과(Obstacles) :</strong> 장애물이 있는 지형을 통과하면서 목표 속도를 유지하는 과제입니다.</p>
</li>
</ul>
<br/>
<br/>

<h2 id="results">RESULTS</h2>
<hr>
<p>AMP는 다양한 동작 클립이 포함된 대규모 비구조화 데이터셋을 활용하여, 자연스럽고 현실감 있는 동작을 학습할 수 있습니다. AMP는 명시적인 모션 선택 없이도 다양한 기술을 자동으로 조합하여 작업 목표를 달성합니다.</p>
<br/>
<br/>
]]></description>
        </item>
        <item>
            <title><![CDATA[MoAI: Mixture of All Intelligence for Large Language and Vision Models
]]></title>
            <link>https://velog.io/@yun_haaaa/MoAI-Mixture-of-All-Intelligence-for-Large-Language-and-Vision-Models</link>
            <guid>https://velog.io/@yun_haaaa/MoAI-Mixture-of-All-Intelligence-for-Large-Language-and-Vision-Models</guid>
            <pubDate>Sun, 04 Aug 2024 12:56:38 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2403.07508">https://arxiv.org/abs/2403.07508</a></p>
<h1 id="abstract">Abstract</h1>
<hr>
<p>대형 언어 모델(LLM)과 명령 조정(instruction tuning)의 발전은 현재 명령 조정된 대형 언어 및 비전 모델(LLVM)의 트렌드를 이끌고 있다. 이 트렌드는 <strong>특정 목적에 맞춘 다양한 명령 조정 데이터셋을 정교하게 큐레이팅하거나, 방대한 양의 비전 언어(VL) 데이터를 처리하기 위해 LLVM의 규모를 확대</strong>하는 것을 포함한다. </p>
<p>그러나 현재의 LLVM은 분할, 검출, 장면 그래프 생성(SGG), 광학 문자 인식(OCR)과 같은 시각 인식 작업에서 <strong>전문적인 컴퓨터 비전(CV) 모델이 제공하는 상세하고 종합적인 실세계 장면 이해를 무시</strong>해왔다. 대신 기존 LLVM은 주로 <strong>LLM 백본의 큰 용량과 새로운 기능에 의존</strong>하고 있다. </p>
<p>따라서 본 논문에서는 새로운 LLVM인 MoAI(Mixture of All Intelligence)를 제안한다. MoAI는 <strong>외부 분할, 검출, SGG 및 OCR 모델의 출력을 통해 얻은 보조 시각 정보를 활용</strong>한다. </p>
<br/>

<p>MoAI는 MoAI-Compressor와 MoAI-Mixer라는 두 가지 새 모듈을 통해 작동한다. </p>
<ul>
<li><p>외부 <strong>CV 모델의 출력을 언어로 변환</strong>한 후, MoAI-Compressor는 <strong>VL 작업에 관련된 보조 시각 정보를 효율적으로 사용하기 위해 이를 정렬하고 압축</strong>한다. </p>
</li>
<li><p>그 후, MoAI-Mixer는 <strong>Mixture of Experts 개념을 활용하여 시각 기능, 외부 CV 모델의 보조 기능, 언어 기능의 세 가지 지능을 혼합</strong>한다. </p>
<p>이를 통해 MoAI는 모델 크기를 늘리거나 추가적인 시각 명령 조정 데이터셋을 큐레이팅하지 않고도 객체 존재, 위치, 관계, OCR과 같은 실세계 장면 이해와 관련된 여러 Zero-shot VL 작업에서 오픈소스 및 Closed Source LLVM을 크게 능가한다.</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>PaLM 및 T5와 같은 대형 언어 모델(LLM)을 Flan의 명령 조정 데이터셋과 결합하여, Chung et al.은 명령 조정된 LLM인 Flan-PaLM 및 Flan-T5를 개발했다. 이러한 모델은 <strong>다양한 작업을 포괄하는 확장된 명령 조정 데이터셋</strong>을 활용하여, 많은 언어 작업에서 Zero-shot 성능이 크게 향상되었다.</p>
<p>명령 조정된 LLM의 성공과 함께, 여러 시각 명령 조정 데이터셋이 정교하게 큐레이팅되어 대형 언어 및 비전 모델(LLVM)의 Zero-shot 비전 언어(VL) 성능을 향상시키고자 했다. 또한, LLVM의 제로샷 VL 데이터셋에서 강력한 성능을 목표로 LLVM을 크게 확장하려는 노력이 있었다. </p>
<p>시각 명령 조정 데이터셋의 확장과 LLVM의 확장으로, 오픈소스 LLVM은 GPT-4V, Gemini-Pro, Qwen-VL-Plus와 같은 클로즈드소스 LLVM과의 Zero-shot VL 성능 격차를 좁히고 있다.</p>
<br/>

<p>그러나 현재의 오픈소스 LLVM은 주로 <strong>LLM 백본의 큰 용량과 새로운 기능에 의존하며, 상세하고 종합적인 실세계 장면 이해를 명시적이거나 충분히 활용하지 않았다.</strong> </p>
<p>인지과학 및 기계 학습 분야의 여러 연구는 <strong>기본적인 장면 인식 능력이 객체 존재 인식, 위치 결정, 상태 식별, 관계 이해, 공간 장면 레이아웃 추출 및 텍스트를 포함한 비객체 개념 이해와 같은 다양한 인지 기능에서 비롯될 수 있음</strong>을 주장한다. </p>
<p>다행히도, 이러한 인지 기능은 분할, 검출, 장면 그래프 생성(SGG), 광학 문자 인식(OCR)과 같은 시각 인식 작업을 위해 수십 년 동안 연구되고 개발된 전문 컴퓨터 비전(CV) 모델을 통해 습득할 수 있다.</p>
<br/>

<p><strong>외부 CV 모델을 활용하여 실세계 장면 이해를 향상시키는 것이 LLVM의 객체 존재, 위치, 관계, 그리고 OCR을 포함한 이해를 강화</strong>할 것으로 예상된다. </p>
<ul>
<li><p><strong>객체와 위치 인식</strong>은 범용 분할(panoptic segmentation)과 open-world object detection 모델을 통해 용이하게 할 수 있다. </p>
<blockquote>
<p><strong>open-world object detection</strong>
: 특정 데이터셋으로 학습된 모델에게 새로운 클래스를 가르쳐주어 탐지할 수 있는 클래스의 종류를 늘리는 모델을 만드는 것 <br/>
출처 : <a href="https://velog.io/@minkyu4506/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-DiffusionDet-Diffusion-Model-for-Object-Detection-%EB%A6%AC%EB%B7%B0">https://velog.io/@minkyu4506/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-DiffusionDet-Diffusion-Model-for-Object-Detection-%EB%A6%AC%EB%B7%B0</a></p>
</blockquote>
</li>
<li><p>더 포괄적인 이해를 위해 <strong>객체 상태와 관계(즉, 조합적 추론)</strong>를 포함하는 장면 그래프 생성(SGG) 모델이 필요하다. </p>
<blockquote>
<p>Scene Graph
: 주어진 장면에 대하여 객체뿐만 아니라, 객체들 간의 관계를 추론하는 방법으로 입력 영상으로부터 인스턴스(Instance)단위 객체를 분류하고, 연결 그래프를 이용하여 관계를 명시적으로 표현한다.<br/>
출처 : <a href="https://go-hard.tistory.com/8">https://go-hard.tistory.com/8</a>
<img src="https://velog.velcdn.com/images/yun_haaaa/post/2130b570-f106-41d1-8532-0bc9c052b70e/image.png" alt=""></p>
</blockquote>
</li>
<li><p>또한, 이미지 내의 <strong>텍스트 설명과 같은 비객체 개념</strong>은 OCR 모델을 통해 인식할 수 있다.</p>
</li>
</ul>
<br/>

<p>이러한 점을 고려하여, 다양한 소스에서 보조 시각 정보를 활용하는 새로운 LLVM인 MoAI를 제안한다: </p>
<ul>
<li>panoptic segmentation</li>
<li>open-world object detection</li>
<li>SGG</li>
<li>OCR</li>
</ul>
<br/>

<p>이 정보를 효과적으로 활용하기 위해 두 가지 새로운 모듈을 도입한다: </p>
<ul>
<li>MoAI-Compressor</li>
<li>MoAI-Mixer. </li>
</ul>
<br/>

<p>MoAI-Compressor는 <strong>외부 CV 모델의 언어화된 출력을 정렬하고 압축하여 VL 작업에 관련된 정보를 효율적으로 사용할 수 있게</strong> 한다. </p>
<p>이후 MoAI-Mixer는 <strong>세 가지 지능을 하나의 통합된 형태로 혼합</strong>한다.</p>
<ul>
<li>시각 기능</li>
<li>외부 CV 모델의 보조 기능</li>
<li>언어 기능</li>
</ul>
<br/>

<p>MoAI-Mixer를 구성하는 데 있어서 Mixture of Experts(MoE) 개념에서 영감을 받았다. 본 논문의 도전 과제는 <strong>MoAI의 멀티모달 언어 모델(MLM)에서 사용하는 원래 기능(즉, 시각 및 언어 기능)을 외부 CV 모델과 MoAI-Compressor에서 얻은 보조 기능과 원활하게 통합</strong>하는 것이다. </p>
<p><strong>Cross-attention 및 Self-attention 모듈을 사용하여 여섯 개의 전문가 모듈</strong>을 <strong>MoAI-Mixer</strong>에 구축하며, 여기서 세 가지 지능 유형을 다룬다. 또한, 게이트 네트워크를 활용하여 이러한 전문가 모듈의 최적 조합 가중치를 결정한다.</p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/6e41af2d-4072-4ece-aa9d-f292344f40d6/image.png" alt=""></p>
<p>MoAI-Compressor와 MoAI-Mixer를 결합함으로써 MoAI는 외부 CV 모델의 출력을 효과적으로 활용하고 세 가지 지능 소스를 혼합하여 복잡한 질문 응답 작업에 대한 시각 인식 능력을 향상시킨다. </p>
<p>그림 2에서 보여지듯이, 본 논문의 결과는 MoAI가 InstructBLIP, Qwen-VL, LLaVA1.5라는 세 가지 강력한 LLVM 기준 모델을 시각 인식 점수에서 크게 능가했음을 보여준다. 이는 추가적인 시각 명령 조정 데이터셋 큐레이팅이나 LLVM 크기 확장 없이 이루어졌다. </p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b3e41953-b0e3-4503-acb0-a58509ef667f/image.png" alt=""></p>
<p>더욱이, 향상된 시각 인식 능력 덕분에 MoAI는 Zero-shot VL 작업에서 강력한 성능을 발휘하며, 이는 그림 1에서 볼 수 있듯이 Closed Source LLVM을 능가한다. </p>
<p>MoAI의 성공은 외부 CV 모델에서 다양한 보조 시각 정보를 활용하고 세 가지 지능 유형을 통합하여 VL 작업을 효과적으로 수행한 덕분이다. </p>
<br/>

<p>기여는 두 가지 주요 측면으로 요약할 수 있다:</p>
<ul>
<li><p>MoAI-Compressor를 통해 다양한 외부 CV 모델에서 보조 시각 정보를 처리하고, MoAI-Mixer를 통해 세 가지 지능 유형을 혼합하는 새로운 대형 언어 및 비전 모델, MoAI를 소개한다.</p>
</li>
<li><p>MoAI는 뛰어난 시각 인식 능력으로 VL 작업에서 Zero-shot 성능이 뛰어나며, 이는 모델 크기나 데이터셋 크기를 확장할 필요 없이 실세계 장면 이해를 고려한 덕분이다.</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="2-related-works">2. Related Works</h1>
<br/>


<h2 id="llms-and-llvms">LLMs and LLVMs</h2>
<hr>
<p>대형 언어 모델(LLM)은 그들의 뛰어난 일반화 능력과 instruction tuning 데이터셋의 효과와 함께 등장했다. GPT 시리즈는 다양한 언어 작업에서 강력한 Zero-shot 또는 Few-shot 성능을 보여주며 LLM의 길을 닦았다. 이러한 작업에는 텍스트 분류, 질문 응답, 기계 번역, 복잡한 추론 작업 등이 포함된다. </p>
<p>LLM의 이러한 일반화 능력은 T5, PaLM, OPT와 같은 작업에서 보듯이 <strong>모델 용량과 훈련 데이터셋을 크게 늘림</strong>으로써 달성되었다. 훈련 방법과 데이터셋의 진보는 대규모 사전 훈련 데이터셋에서 명령 조정 데이터셋으로의 전환을 통해 Zero-shot 일반화를 더욱 향상시켰다. </p>
<br/>

<p><strong>Instruction tuning</strong>은 LLM이 복잡한 실세계 시나리오에서 사람의 자연어 명령을 따를 수 있게 한다. Flan-T5, Flan-PaLM, OPT-IML, InstructGPT와 같은 명령 조정된 LLM은 명령 조정의 효과를 명확히 보여준다. </p>
<p>연구자들은 유사한 전략을 <strong>멀티모달 모델인 LLVM에도 적용하여, 시각 인코더와 백본 멀티모달 언어 모델(MLM)로 구성된 모델을 개발</strong>하였다. </p>
<p>예를 들어, LLaVA와 ShareGPT4V는 각각 GPT-4와 GPT-4V를 활용하여 시각 명령 조정 데이터셋을 생성하였으며, 다른 연구자들도 다양한 목적을 위해 시각 명령 조정 데이터셋을 개발하였다. </p>
<br/>

<p>그러나 기존의 LLVM은 지난 수십 년 동안 큰 발전을 이룬 <strong>CV 모델에서 얻을 수 있는 상세하고 종합적인 실세계 장면 이해를 간과</strong>하였다. CV 모델은 LLVM의 확장된 용량과 시각 명령 조정 데이터셋에 가려졌다. 이러한 관점에서, MoAI는 외부 CV 모델에서 얻은 보조 시각 정보를 활용하는 효과를 강조하며, VL 벤치마크에서 향상된 시각 인식 능력을 보여준다.</p>
<p><br/><br/><br/></p>
<h2 id="mixture-of-experts">Mixture of Experts</h2>
<hr>
<p>Jacobs et al. 는 처음으로 기계 학습에 Mixture of Experts(MoE) 개념을 도입하여, <strong>&#39;전문가&#39;라 불리는 별도의 네트워크가 입력 공간의 다른 부분을 처리하고 각 부분이 게이팅 네트워크에 의해 관련 전문가에게 안내</strong>되도록 하였다. 이 아이디어는 깊이 쌓인 MoE 레이어와 주어진 입력에 의해 조건적으로 몇몇 전문가만 활성화되는 조건부 계산에 의해 더욱 발전되었다. </p>
<p>현대의 딥러닝에서 Shazeer et al.는 MoE 레이어를 LSTM과 통합하여 <strong>게이팅 네트워크가 각각의 토큰을 선택적으로 활성화된 전문가에게 독립적으로 라우팅</strong>하도록 하였다. 이 통합은 언어 모델링 및 기계 번역 작업에서 성능을 향상시켰다. </p>
<p>더 나아가, Switch Transformers는 <strong>Transformer 레이어 내부의 Dense FFN를 여러 전문가와 게이팅 네트워크로 대체</strong>하여 MoE를 Transformer 기반 LLVM에 성공적으로 사용할 수 있는 길을 열었다. 이러한 예로는 MoE-LLaVA가 있다. 딥러닝에서 MoE의 철학은 <strong>계산 효율성을 희생하지 않고 모델 용량을 확장</strong>하는 것이다. </p>
<br/>

<p>반면, 본 논문에서는 <strong>각 전문가가 특정 입력 세그먼트에 전문성을 갖추도록 설계된 MoE의 다른 중요한 측면에 초점</strong>을 맞춘다. </p>
<ul>
<li><p>이전 MoE 방법은 <strong>개별 전문가에게 역할을 명시적으로 할당하지 않고 최적화 과정에서 전문성이 나타나기를 기대</strong>하는 반면, </p>
</li>
<li><p>MoAI는 전문가로서 <strong>교차 주의 및 자기 주의 모듈을 지정하고 이를 명시적으로 학습하여 모달리티 간의 정보를 혼합</strong>한다(즉, 시각, 보조, 언어 기능). </p>
</li>
</ul>
<br/>

<p>구체적으로, MoAI는 다음의 쌍을 촉진한다. 각 쌍은 해당 교차 주의 또는 자기 주의 모듈의 쿼리-키 쌍으로 간주되어 다양한 모달리티 간 정보 융합을 명확히 한다.</p>
<ul>
<li>시각-보조 기능</li>
<li>시각-언어 기능</li>
<li>시각-시각 기능</li>
<li>언어-보조 기능</li>
<li>언어-시각 기능</li>
<li>언어-언어 기능 </li>
</ul>
<p><br/><br/><br/></p>
<h1 id="3-moai-mixture-of-all-intelligence">3. MoAI: Mixture of All Intelligence</h1>
<br/>


<h2 id="model-architecture">Model Architecture</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a9776897-6a9c-4123-8b64-100eb49e5c42/image.png" alt=""></p>
<p>그림 3에 나타난 바와 같이, MoAI는 다음과 같이 구성된다.</p>
<ul>
<li><p><strong>비전 인코더</strong></p>
</li>
<li><p>MoAI-Mixers가 장착된 백본 <strong>멀티모달 언어 모델(MLM)</strong></p>
</li>
<li><p>비전 인코더와 MLM 사이의 중간 <strong>MLP 커넥터</strong></p>
</li>
<li><p>범용 분할, 개방형 객체 검출, 장면 그래프 생성(SGG), OCR을 위한 <strong>네 개의 외부 컴퓨터 비전(CV) 모델을 활용하는 MoAI-Compressor</strong></p>
</li>
</ul>
<p><br/><br/><br/></p>
<h2 id="vision-and-language-backbone">Vision and Language Backbone</h2>
<hr>
<p>MoAI의 <strong>비전 인코더</strong>로는 CLIP-L/14가 선택되었으며, 이는 비전 언어 작업을 위해 텍스트와 일치하는 이미지 이해에 뛰어나다고 보장되기 때문이다. </p>
<br/>

<p>MoAI에서 사용되는 <strong>MLM</strong>은 InternLM2-7B를 기반으로 하며, 이는 1.6조 개의 토큰을 포함한 다국어 데이터셋을 통해 진행된 일련의 점진적 사전 훈련 단계와 인간 피드백으로부터 강화 학습(RLHF)을 통해 명령 조정된 다국어 기초 모델이다. </p>
<p>두 개의 GELU 활성화 함수를 가진 선형 계층이 비전과 언어 구성 요소 간의 연결 역할을 하며, 이는 그림 3에서 &#39;<strong>MLP</strong>&#39;로 표시된다.</p>
<p><br/><br/><br/></p>
<h2 id="verbalization">Verbalization</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/fa4acb0b-f3b9-45d6-ad99-95af65038cb3/image.png" alt=""></p>
<p>멀티모달 언어 모델(MLM)이 MoAI를 구성하기 위해 채택되었으므로, CV 모델 출력을 자연어 형식으로 변환하여 MLM이 이해할 수 있도록 하는 과정인 <strong>언어화</strong>가 필요하다. </p>
<p>그림 4는 네 개의 CV 모델 출력이 언어화되는 과정과 MLM에 의미적으로 일치하는 보조 토큰을 생성하는 과정을 보여준다.</p>
<p><br/><br/></p>
<h3 id="panoptic-segmentation-model">Panoptic segmentation model</h3>
<p>범용 분할 모델은 <strong>이미지에서 전경과 배경 객체를 동시에 구별</strong>할 수 있게 해준다. 또한, 세그멘테이션 맵으로부터 경계 상자 좌표(예: [xmin, ymin, xmax, ymax])를 계산할 수 있다. </p>
<p>따라서 범용 분할(PS)의 출력을 언어화하는 것은 <strong>경계 상자 좌표와 객체 이름을 직렬화</strong>하는 것을 포함한다. 이러한 언어화된 설명은 <strong>MLM의 단어 임베딩을 통해 보조 토큰으로 변환</strong>된다. </p>
<br/>

<p>추가적으로, PS map을 직접 활용하기 위해, MoAI에서는 <strong>비전 인코더와 MLP 커넥터</strong>를 사용하여 <strong>지역성을 보존하는 보조 토큰을 생성</strong>한다. 생성된 보조 토큰은 평탄화되어 직렬화된 경계 상자와 그 객체 이름으로부터 나온 토큰과 연결되어 최종 PS 보조 토큰 APS를 형성한다. </p>
<p>이들은 이러한 방식으로 연결되어 MoAI의 MLM이 문맥화를 통해 이를 호환 가능한 방식으로 연결할 수 있도록 한다. 이 절차는 PS로부터 시각 정보를 언어 정보로 포괄적으로 변환하면서 범용 분할 맵에 내재된 공간적 지역성을 보존하도록 보장한다. </p>
<p>범용 분할 모델이 MS-COCO 2017에서 133개의 객체 범주를 포함한 고정된 수의 범주 내에서 객체를 분류하지 못할 경우, 알 수 없는 클래스가 할당된다.</p>
<p><br/><br/></p>
<h3 id="open-world-object-detection-model">Open-world object detection model</h3>
<hr>
<p>개방형 객체 검출 모델은 <strong>PS 모델이 놓친 객체 클래스를 검출</strong>하는 역할을 한다. 이는 <strong>범용 분할 모델이 특정 데이터셋으로 훈련되어 고정된 수의 객체 범주를 가지고 있기 때문</strong>이다.  </p>
<br/>

<p>이미지에 대한 검출 결과가 생성되면, 경계 상자 좌표와 객체 이름이 다음 템플릿 형식에 따라 언어화된다: </p>
<ul>
<li>&#39;이미지에는 경계 상자와 그 객체가 포함되어 있습니다 : {언어화된 개방형 객체 검출(OWOD) 결과}&#39;. </li>
</ul>
<p>그런 다음 결과는 MLM의 단어 임베딩에 의해 OWOD 보조 토큰 AOWOD로 변환된다. </p>
<br/>

<p>마찬가지로, SGG 및 OCR 모델의 출력도 언어화되며, 해당 보조 토큰 ASGG 및 AOCR이 생성된다. </p>
<p>이를 위해 다음 언어화 템플릿을 사용한다: </p>
<ul>
<li><p>&#39;이미지에는 객체 간의 관계가 포함되어 있습니다: {언어화된 SGG 결과}&#39;</p>
</li>
<li><p>&#39;이미지에는 텍스트 설명이 포함되어 있습니다: {언어화된 OCR 결과}&#39;.</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h2 id="moai-compressor">MoAI-Compressor</h2>
<hr>
<p>CV 모델 출력이 언어화된 후, 네 개의 보조 토큰 <strong>APS, AOWOD, ASGG, AOCR</strong>이 생성되어 MoAI-Compressor에 입력된다. </p>
<p>MoAI-Compressor는 <strong>Perceiver Resampler</strong>의 구조를 빌려왔다. 모든 <strong>보조 토큰 [APS, AOWOD, ASGG, AOCR]</strong>은 <strong>고정된 수의 학습 가능한 토큰 Ainput</strong>과 함께 MoAI-Compressor에 입력되기 전에 연결된다. </p>
<p>MoAI-Compressor의 출력 A는 동일한 수의 고정된 길이로 압축되고 정렬된 보조 시각 정보를 나타낸다. 이는 다음과 같이 공식화된다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/742bf7ef-fc02-43b0-8d39-6a4a94a79056/image.png" alt=""></p>
<p>이미지마다 연결된 보조 토큰의 길이가 다르고, 연결 후 상당한 길이를 가지므로, <strong>MoAI-Compressor</strong>는 이러한 토큰들을 상대적으로 작은 <strong>고정 크기 64로 압축</strong>하도록 설계되었다. </p>
<p>결과적으로 A ∈ R^{d×64}로 생성되며, 여기서 d는 임베딩 차원을 나타낸다. 이 압축된 토큰들은 MoAI-Mixer에 의해 VL 작업에 필요한 관련 정보를 추출하는 데 사용된다. 이 압축 과정은 계산 효율성을 향상시킨다.</p>
<p><br/><br/><br/></p>
<h2 id="moai-mixer">MoAI-Mixer</h2>
<hr>
<p>MoAI-Mixer는 MoAI의 각 MLM 계층에 포함된다. 이는 MoAI-Compressor로부터 보조 토큰 A, 시각 특징 I^(l) ∈ R^{d×N_I}, 그리고 언어 특징 L^(l) ∈ R^{d×N_L}를 받는다.</p>
<blockquote>
<p><strong>l = 0, 1, ..., N-1 :</strong> 계층 인덱스
<strong>d :</strong> 임베딩 차원
<strong>N_I :</strong> 시각 특징의 길이
<strong>N_L :</strong> 언어 특징의 길이</p>
</blockquote>
<br/>

<p>일반적으로 MLM 계층은 Transformer 디코더 블록 TransDec^(l)로만 구성되며, 이는 다음과 같이 표현된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/c5cc10cc-eff9-4d66-b778-b51bee8d2368/image.png" alt=""></p>
<p>MoAI에서는, MoAI-Mixer가 포함된 l번째 MLM 계층이 다음과 같이 공식화된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a702a782-fcfb-4d76-bd1f-e38dbe619918/image.png" alt=""></p>
<p>여기서 I^(l)와 L^(l)는 혼합된 시각 특징과 혼합된 언어 특징을 나타낸다. 각 MoAI-Mixer에는 <strong>시각 특징 I와 언어 특징 L을 위한 Cross 및 Self Attention 모듈로 구성된 여섯 개의 Expert 모듈</strong>이 설계되어 있다. </p>
<p>시각 특징을 위한 세 개의 전문가 모듈은 각각 I_AUX, I_LANG, I_SELF를 출력하며, 여기서 대문자는 쿼리 특징을, 하위 첨자는 키/값 특징을 나타낸다. </p>
<br/>

<p>마찬가지로, 언어 특징을 위한 세 개의 전문가 모듈은 각각 LAUX, LIMG, LSELF를 출력한다. l번째 계층에서의 Cross Attention 연산은 다음과 같이 공식화된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/3bf36cd8-8710-4ff4-958b-47da11db2966/image.png" alt=""></p>
<p>또한, Self Attention 연산은 I_SELF^(l)=SA^(l)(I^(l))와 L_SELF^(l)=SA^(l)(L^(l))로 공식화된다. </p>
<p>이 여섯 개의 Expert 모듈은 각각 다음 여섯 가지 지능 혼합 중 하나에 명확히 특화된다: </p>
<ul>
<li>I_AUX</li>
<li>I_LANG</li>
<li>I_SELF</li>
<li>L_AUX</li>
<li>L_IMG</li>
<li>L_SELF</li>
</ul>
<p>Expert 모듈을 훈련할 때, 계산 부담을 줄이기 위해 LoRA 개념을 차용한다. Multi Head Attention 모듈에서 Linear Projection 계층을 일반적으로 나타내는 W를 Wq, Wk, Wv 또는 Wo로 표시하지 않고 두 개의 Linear layer WA와 WB로 분해한다. W는 WAWB로 공식화된다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0cdfce5b-cba6-47f6-8e5d-751115d42273/image.png" alt=""></p>
<p>하이퍼파라미터 r은 축소된 차원을 나타내며, 이는 그림 6(a)에 나타나 있다. 주의 모듈의 계산 부담은 주로 높은 임베딩 차원에서 발생하므로, Projection Matrix의 이러한 공식화는 계산을 크게 줄인다. </p>
<p>또한, 입력 쿼리 특징은 출력 특징에 직접 추가되어 지능 혼합이 이전 MLM 계층의 출력을 크게 변경하지 않고 발생하도록 하여, 동결된 Transformer 디코더 블록으로 최적화 과정을 안정화시킨다.</p>
<p><br/><br/><br/></p>
<h2 id="first-training-step">First Training Step</h2>
<hr>
<p>첫 번째 단계에서는 MLP 커넥터와 함께 Ainput, MoAI-Compressor, 및 MoAI-Mixer를 시각적 지침 튜닝 데이터셋을 사용하여 훈련한다. </p>
<p>이 단계의 목적은 MoAI-Mixer의 여섯 개 전문가 모듈이 VL 작업을 수행하기에 적합한 의미 있는 특징을 생성하도록 하는 것이다. </p>
<p>이를 위해, 다음과 같이 세 개의 전문가 모듈 중 하나에서 무작위로 출력을 선택한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/3680ced1-8b12-4cab-9a19-7f61c2fdb6cf/image.png" alt=""></p>
<p>이후, 선택된 출력들이 Transformer 디코더 블록 TransDec(l)로 입력된다. 이 샘플링 과정은 각 전문가 모듈이 독립적으로 의미 있는 특징을 생성하도록 하는 것이 목적이다.</p>
<p><br/><br/><br/></p>
<h2 id="second-training-step">Second Training Step</h2>
<hr>
<p>두 번째 단계에서는 첫 번째 훈련 단계에서 학습된 파라미터를 넘어서 학습을 확장한다. 이 단계에서는 MoAI-Mixer의 각 모듈에 대해 두 개의 게이팅 네트워크를 학습한다. 
<img src="https://velog.velcdn.com/images/yun_haaaa/post/2e7b242d-0363-489c-a041-69238b37c9d9/image.png" alt=""></p>
<p>각각의 게이팅 네트워크는 시각적 및 언어적 특징을 위한 단일 선형 계층으로 구성된다: </p>
<ul>
<li>W_Gating I 및 W_Gating L ∈ R^(d×3), 그림 6(b) 참조.</li>
</ul>
<br/>

<p>게이팅 네트워크의 목적은 Linear layer 소프트맥스 함수를 사용하여 시각적 및 언어적 특징에 대한 세 개의 Expert 모듈의 최적 조합 가중치를 출력하는 것이다. 이 과정은 다음과 같이 표현된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/ca28a456-95dd-4258-a52f-496d0761edc1/image.png" alt=""></p>
<blockquote>
<p><strong>x ∈ R^{d×N_x}</strong>
<strong>x :</strong> 시각적 특징 I 또는 언어적 특징 L을 의미
<strong>N_x :</strong> 특징의 길이</p>
</blockquote>
<p>결과적으로 x^T W_{Gating_x} ∈ R^{N_x × 3}가 된다. </p>
<p>이후, 소프트맥스 행렬을 세 개의 가중치 벡터로 분할한다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/6848ab08-1c75-4d43-afcc-e3a1f5116c1f/image.png" alt="">
각 가중치는 R^N_x차원을 가지며, 각 전문가 모듈에서 정보를 사용할지를 결정하는 <strong>신뢰도 점수</strong> 역할을 한다. </p>
<p>게이팅 네트워크의 출력으로, 세 가지 지능 소스인 ‘AUX’, ‘IMG’, ‘LANG’의 전파 흐름은 다음과 같이 표현된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/5ee19e38-b1ae-4f85-9fa2-7d82a9227cb6/image.png" alt=""></p>
<p>여기서 ⊙는 각 토큰의 요소별 곱을 나타낸다. 시각적 및 언어적 특징에 대한 <strong>게이팅 네트워크는 파라미터를 공유하지 않고 독립적으로 훈련</strong>되며, 이는 <strong>두 게이팅 네트워크가 세 가지 지능을 서로 다른 가중치로 혼합</strong>하도록 한다. </p>
<p>이러한 방식으로 MoAI-Mixer와 게이팅 네트워크는 세 가지 지능 소스 간의 상호작용을 촉진한다.</p>
<p><br/><br/><br/></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Mixture of Attention Heads: Selecting Attention Heads Per Token]]></title>
            <link>https://velog.io/@yun_haaaa/Mixture-of-Attention-Heads-Selecting-Attention-Heads-Per-Token</link>
            <guid>https://velog.io/@yun_haaaa/Mixture-of-Attention-Heads-Selecting-Attention-Heads-Per-Token</guid>
            <pubDate>Fri, 02 Aug 2024 15:13:00 GMT</pubDate>
            <description><![CDATA[<p>Paper: <a href="https://arxiv.org/abs/2210.05144">https://arxiv.org/abs/2210.05144</a></p>
<br/>

<h1 id="abstract">Abstract</h1>
<hr>
<p>Mixture of Expert 네트워크는 모델 용량을 확장하고 조건부 계산을 구현하는 효율적인 방법으로 제안되었다. 그러나 MoE 구성 요소에 대한 연구는 주로 Transformer 아키텍처의 <strong>피드포워드 레이어에 집중</strong>되었다. </p>
<p>이 논문은 Mixture of Attention Heads라는 새로운 아키텍처를 제안하여 <strong>Multi Attention 메커니즘과 MoE 메커니즘을 결합</strong>한다. MoA는 각자 고유한 매개변수를 가진 일련의 Attention Head를 포함한다. </p>
<p><strong>주어진 입력에 대해 라우터가 동적으로 토큰별로 k개의 Multi Head의 부분 집합을 선택</strong>한다. 이러한 조건부 계산 방식은 MoA가 표준 Multi Attention 레이어보다 강력한 성능을 발휘할 수 있게 한다. 더 나아가, <strong>희소하게 게이트된 MoA는 계산 효율성을 유지하면서 Attention 헤드와 매개변수의 수를 쉽게 확장</strong>할 수 있다. </p>
<p>성능 향상 외에도 MoA는 <strong>자동으로 헤드의 유틸리티를 구분하여 모델의 해석 가능성에 대한 새로운 관점을 제공</strong>한다. 기계 번역과 마스킹된 언어 모델링을 포함한 여러 중요한 작업에 대해 실험을 수행했다. 실험 결과, 큰 규모와 매우 깊은 모델을 포함하는 강력한 기준선 대비 여러 작업에서 유망한 결과를 보여주었다.</p>
<br/>
<br/>

<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>최근 몇 년 동안 대형 모델은 자연어 처리(NLP) 연구에서 인기를 끌고 있으며, 특히 대규모 Transformer에 집중되고 있다. 모델의 용량은 수백만 개의 매개변수에서 수십억 개의 매개변수, 심지어 수조 개의 매개변수로 증가하고 있다. 그러나 이러한 대규모 모델은 소규모 모델에 비해 상당히 많은 계산을 요구한다. </p>
<p>인기 있는 추세는 희소하게 활성화된 모델을 사용하여 더 큰 계산 효율성을 추구하는 조건부 계산을 활용하는 것이다. 따라서 특정 입력에 대해 forward 연산 동안 모델의 매개변수 중 일부만 사용되어 계산 부하를 줄일 수 있다.</p>
<br/>


<p>이 시도들 중에서 Mixture of Experts (MoE) 은 중요한 기술이다. 처음으로 전문가 혼합을 Transformer 아키텍처에 적용한 이후, 연구자들은 주로 피드포워드 네트워크 레이어와 expert loads를 결합하는 데 집중해왔다. 최근 연구들은 <strong>더 나은 라우팅 전략을 찾는 방법이나 여러 GPU 노드에서 전문가 혼합을 확장</strong>하는 방법에 대해 논의했다. </p>
<p>그러나 <strong>MoE를 Multi-Head Attention과 결합</strong>하는 가능성은 거의 탐구되지 않았다. MHA는 Transformer 아키텍처에서 또 다른 필수 모듈이기 때문에, MoE와 Attention 메커니즘을 결합하면 계산 비용을 억제하면서도 더 나은 성능을 달성할 수 있다.</p>
<br/>

<p>또한, 이전 연구들은 서로 다른 Attention Head의 유용성을 조사했다. </p>
<ul>
<li><p>Peng et al.(2020)은 <strong>Attention Head의 하위 집합을 재배치</strong>하는 것이 번역 작업에 도움이 된다는 것을 발견했는데, 이는 쓸모없는 attention head를 제거하기 때문이다. </p>
</li>
<li><p>의존 구문 분석 분야에서는 BERT와 같은 언어 모델에서 일부 Attention Head가 개별 의존성 유형 및 구문적 기능을 모델링한다는 것을 밝혀냈다. </p>
</li>
<li><p>Voita et al.(2019)은 Attention Head가 세 가지 유형으로 분류될 수 있는 다양한 기능을 가지고 있다고 주장했다. </p>
</li>
</ul>
<p>따라서 <strong>입력 토큰에 대해 모든 multi attention head를 통과할 필요가 없으며, 적절한 기능을 가진 관련 attention head를 선택할 수 있다면 더 효율적</strong>일 것이다. 이에 따라 토큰별로 다른 attention head를 선택하는 attention 메커니즘을 구상하게 되었다.</p>
<br/>

<p>위의 논의를 바탕으로, <strong>Mixture of Attention Heads, MoA</strong>을 제안했다. 이는 <strong>서로 다른 입력에 대해 서로 다른 attention head를 선택하는 attention 메커니즘</strong>이다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/4064ad91-161e-47a9-aee0-ea3faa6e7fb9/image.png" alt=""></p>
<p>이 아이디어의 간단한 예시는 그림 1에 나와 있다. MoA는 서로 다른 매개변수를 가진 일련의 attention head를 포함한다. </p>
<ul>
<li><p><strong>주어진 입력에 대해 라우팅 네트워크가 동적으로 각 토큰에 대해 k개의 Attention Head 하위 집합을 선택</strong>한다.</p>
</li>
<li><p>출력은 <strong>라우팅 네트워크가 계산한 신뢰도에 따라 선택된 Attention Head의 가중 합계</strong>로 이루어진다.</p>
</li>
</ul>
<br/>

<p>기계 번역 및 마스킹된 언어 모델링 두 가지 작업에서 실험을 수행했다. 실험 결과는 여러 강력한 기준선 대비 유망한 결과를 보여주었다. 모든 작업에서 제안한 Attention Head의 Mixture는 원래의 Transformer 아키텍처를 능가했다. 본 논문의 모델은 많은 대형 모델을 능가하거나 절반의 계산 비용으로도 비슷한 결과를 얻을 수 있었다. </p>
<br/>

<p>기여는 다음 세 가지로 요약될 수 있다: </p>
<p>1) Attention 메커니즘과 전문가 혼합 아이디어를 결합한 새로운 Attention 메커니즘인 Mixture of Attention Heads을 제안했다. </p>
<p>2) MoA는 매개변수와 계산 비용을 크게 추가하지 않고도 모델의 성능을 향상시킬 수 있다. </p>
<p>3) MoA는 계산 복잡성을 억제하면서 쉽게 확장할 수 있어 추가적인 성능 향상을 가져온다.</p>
<p><br/><br/><br/></p>
<h1 id="2-related-work">2. Related Work</h1>
<hr>
<h2 id="mixture-of-experts">Mixture of Experts</h2>
<p>전문가 혼합(MoE)은 1990년대 처음 도입되었다. </p>
<ul>
<li><p>Shazeer et al. (2017)은 이 방법을 현대 심층 학습 아키텍처(LSTM)에 도입하여 언어 모델링과 기계 번역에서의 효과를 입증했다. MoE는 Transformer 아키텍처의 FFN 레이어를 Mesh TensorFlow 라이브러리를 통해 대체하는 데 사용되었다. </p>
</li>
<li><p>Gshard는 6000억 개 이상의 매개변수를 가진 다국어 신경 기계 번역 Transformer를 Sparse-Gated Mixture of Experts로 확장할 수 있는 경량 모듈이다. </p>
</li>
<li><p>Switch Transformer에서는 MoE가 통합된 Transformer 아키텍처를 수조 개 매개변수 모델로 확장니다. </p>
</li>
<li><p>GLaM은 디코더 전용 아키텍처를 활용하여 언어 모델 사전 훈련을 수행했다. </p>
</li>
<li><p>Pyramid-Residual-MoE는 더 작은 모델 크기와 빠른 추론을 위해 제안되었다.</p>
</li>
</ul>
<p>다양한 라우팅 전략이 MoE 훈련을 안정화하고 전문가 간의 작업 부하를 균형 있게 분배하기 위해 조사되었다. </p>
<ul>
<li>Sparse Mixture of Experts 모델에서 <strong>표현 붕괴 문제</strong>를 지적하고 <strong>두 단계 라우팅 전략으로 해결</strong>했다.</li>
</ul>
<p><br/><br/></p>
<h2 id="machine-translation-architectures">Machine Translation Architectures</h2>
<p>원래의 Transformer 아키텍처를 사용하여 </p>
<ul>
<li><p>Ott et al. (2018)은 <strong>정밀도를 줄이고 대형 배치로 훈련하면 번역 성능이 향상</strong>될 수 있음을 발견했다. 일부 모델은 더 큰 규모의 Transformer를 사용하여 번역 성능을 향상시켰다. </p>
</li>
<li><p>Liu et al. (2020a)은 모델을 적절히 <strong>초기화</strong>하여 Transformer의 <strong>인코더와 디코더를 깊게</strong> 만들었다. </p>
</li>
<li><p>DeepNet(Wang et al., 2022)은 <strong>새로운 정규화 함수</strong>를 도입하여 Transformer를 1,000 레이어로 확장했다. </p>
</li>
</ul>
<p>그러나 이러한 방법들은 많은 계산 비용이 필요하다. 일부 모델은 Self Attention 메커니즘에 변화를 주었다. </p>
<ul>
<li><p>Peng et al. (2020)은 Attention Head의 재배치가 번역 성능을 향상시켰다고 주장했다. </p>
<p>그러나 이 방법은 모델의 모든 Attention Head를 사용해야 하므로 드문드문 활성화하는 것보다 확장하기 어렵고 추가적인 성능 향상을 얻기 어렵다. 또한 복잡한 블록 좌표 하강 훈련 단계를 필요로 한다. </p>
</li>
<li><p>Wu et al. (2019)은 자체 Attention 메커니즘을 가벼운 합성곱으로 대체하여 DynamicConv와 LightConv를 제안했다.</p>
</li>
</ul>
<p><br/><br/></p>
<h2 id="specialization-of-attention-heads">Specialization of Attention Heads</h2>
<p>Transformer 아키텍처 출판 이후, 많은 연구자들이 Attention 메커니즘이 어떻게 작동하는지 분석하는 데 관심을 가졌다. </p>
<ul>
<li><p>Voita et al. (2019)은 인코더의 Attention 헤드를 체계적으로 분석하고 이를 세 가지 기능적 하위 집합으로 분류했다: 위치적, 구문적, 희귀 단어. </p>
</li>
<li><p>의존 구문 분석을 처리할 때, 연구자들은 서로 다른 헤드가 서로 다른 구문적 기능을 포착할 수 있다는 동일한 현상을 관찰했다.</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="3-preliminaries">3. Preliminaries</h1>
<hr>
<h2 id="31-mixture-of-experts">3.1 Mixture of Experts</h2>
<p>MoE는 전문가 네트워크 E1,E2,…,EN과 라우팅 네트워크 G로 구성된다. MoE의 출력은 각 전문가 출력의 가중합이다. 라우팅 네트워크는 각 전문가의 확률을 계산한다. </p>
<p>공식적으로, MoE의 출력은 다음과 같이 쓸 수 있다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/24ef6853-4323-462a-ab0d-7c8ed37181df/image.png" alt=""></p>
<p>라우팅 네트워크 G는 Noisy Top-k 라우팅 네트워크이다. 소프트맥스 함수 이전에, 그들은 게이트 logit에 가우시안 노이즈를 추가한다. 그런 다음, 상위 k개의 값만 유지하고 나머지 게이트 값을 0으로 설정한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/581a7a3b-368e-42b8-a308-f01b21d98603/image.png" alt=""></p>
<br/>

<h2 id="32-multi-head-attention">3.2 Multi-head Attention</h2>
<p>Vaswani et al. (2017)는 인코더-디코더 아키텍처인 Transformer를 제안했으며, 이 아키텍처에는 Multi-head Attention 모듈이 포함되어 있다. Multi-head Attention 모듈의 다양한 헤드는 서로 다른 표현 하위 공간의 정보를 주목하며, 이는 다양한 관점에서 입력을 학습한다.</p>
<br/>

<p>k개의 헤드로 다중 헤드 어텐션을 수행할 때, Q, K, V는 서로 다른 학습된 선형 프로젝션을 통해 k번 선형적으로 투영된다. 각 투영된 Q와 K에서, 어텐션 점수는 다음 식을 통해 계산된다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/f2d0ba07-b094-4ce6-9c82-822c5ee93e31/image.png" alt=""></p>
<p>서로 다른 헤드에서 유도된 값들은 다시 모델 차원 크기로 투영되고, 다음 식에 따라 합산된다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/0fe8b4a6-0d95-4dd0-aea4-fa18fc99f075/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/4ab8a239-95c5-4ec9-8103-a344fdeb1f8b/image.png" alt=""></p>
<p><br/><br/><br/></p>
<h1 id="4-mixture-of-attention-heads">4. Mixture of Attention Heads</h1>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/3a1c954d-d45b-4d13-916d-60e2ef7b5fd5/image.png" alt=""></p>
<p>이 연구에서는 Transformer의 Multi-head Attention을 변형한 Mixture of Attention Heads (MoA)를 제안한다. MoA는 그림 2에 설명된 대로 두 가지 주요 구성 요소로 이루어져 있다: </p>
<ul>
<li><p>라우팅 네트워크 G와 N개의 Attention Expert 그룹 {E1,...,EN}</p>
</li>
<li><p>표준 Multi-head Self Attention과 유사하게, MoA의 입력은 세 개의 시퀀스인 쿼리 시퀀스 Q, 키 시퀀스 K, 값 시퀀스 V를 포함한다. </p>
</li>
<li><p>시간 단계 t에서 쿼리 벡터를 q_t 라고 한다. </p>
</li>
<li><p>각 q_t에 대해 라우팅 네트워크 G는 q_t를 기반으로 k개의 전문가 E_i 중 G(q_t) ⊆ E_i를 선택하고 각 선택된 전문가에 가중치 w_i를 할당한다. </p>
</li>
<li><p>그런 다음, 선택된 전문가들이 q_t, K, V를 입력으로 받아 출력 E_i(q_t, K, V)를 계산한다. MoA의 출력은 선택된 전문가 출력의 가중합이다. </p>
</li>
</ul>
<br/>

<p>공식적으로, 시간 단계 t에서 MoA 출력은 다음과 같이 쓸 수 있다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/379d390a-803d-4271-aa6a-3912532fb67f/image.png" alt=""></p>
<p><br/><br/></p>
<h2 id="41-routing-network">4.1 Routing Network</h2>
<p>이전의 mixture-of-expert 방법과 유사하게, 라우팅 네트워크는 입력 쿼리에 전문가를 할당한다. 쿼리 q_t에 대해 k개의 전문가를 선택하려면, 각 전문가 E_i에 대한 라우팅 확률 p_i 를 계산한다. </p>
<p>라우팅 확률은 선형 레이어 W_g 와 소프트맥스 함수로 모델링된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b7780895-b2cc-4ce7-97e7-91a0a7133116/image.png" alt=""></p>
<p>라우팅 확률 p를 기반으로, 확률이 가장 큰 k개의 Attention Expert를 모든 N개의 Attention Expert 중에서 선택한다. 공식적으로, 라우팅 네트워크는 다음과 같이 정의된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/79e36091-8ede-437f-9ea0-67cafac2af9c/image.png" alt=""></p>
<p>여기서 W_g ∈ R^d_m×N 는 라우팅 행렬을 나타낸다. 그런 다음, 선택된 전문가들의 라우팅 확률을 재정규화하여 정규화된 전문가 가중치를 얻는다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/cb22473b-9cf0-4a5b-8d6e-73d46408258d/image.png" alt=""></p>
<p>여기서 Detach(·)는 그래디언트 역전파를 멈추는 함수이다. 즉, 분모는 훈련 과정에서 그래디언트를 받지 않는다. 이 방법은 라우팅 네트워크가 더 나은 라우팅 확률을 학습하도록 도와준다.</p>
<p><br/><br/></p>
<h2 id="42-attention-expert">4.2 Attention Expert</h2>
<p>Attention Expert는 네 가지 서로 다른 투영 행렬 Wq, Wk, Wv, Wo를 포함한다. Attention 계산은 Multi Head Attention과 유사하다.</p>
<br/>
먼저 키에 대한 Attention 가중치를 계산한다:

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/ebb807e7-09be-49be-b391-db3e3544e8a8/image.png" alt=""></p>
<blockquote>
<p><strong>W_q^i ∈ R^{d_m*d_h} :</strong> 쿼리 투영 행렬
<strong>W_k^i ∈ R^{d_m*d_h} :</strong> 키 투영 행렬
<strong>d_m :</strong> 히든 상태 크기
<strong>d_h :</strong> 헤드 차원</p>
</blockquote>
<br/>

<p>그런 다음 값의 가중합을 계산한다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/1b40c3e9-4fe2-4f31-92ee-bd11cc819fb1/image.png" alt=""></p>
<blockquote>
<p><strong>W_v ∈ R^{d_m*d_h} :</strong> 값 투영 행렬</p>
</blockquote>
<br/>

<p>마지막으로, attention 출력을 hidden state space로 다시 투영하여 얻는다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/588ad6c3-c1d1-442e-bda6-a3ee13f38c30/image.png" alt=""></p>
<blockquote>
<p><strong>W_o^i ∈ R^{d_h*d_m} :</strong> 출력 투영 행렬</p>
</blockquote>
<br/>

<p>Multi-head attention에서는 projection matrix Wq, Wk, Wv, Wo가 모두 attention head 간에 다르다. MoA는 계산 복잡성을 줄이기 위해 Attention Expert 간에 Wk와 Wv를 공유한다. </p>
<br/>
Attention Expert는 오직 W_q^i와 W_o^i로만 구분된다. 따라서 key sequence KW_k와 value sequence VW_v의 비싼 행렬 투영은 사전 계산 및 모든 Attention Expert와 공유될 수 있다. 

<p>각 Expert는 쿼리 q_t W_q^i와 출력 o_i,t W_o^i의 벡터 투영만 계산하면 된다. 이 설계는 전문가의 수가 많을 때 계산 및 공간 복잡성을 크게 줄일 수 있다.</p>
<p><br/><br/><br/></p>
<h2 id="43-training-losses">4.3 Training Losses</h2>
<p>이전 연구에서는 라우팅 네트워크가 항상 동일한 몇몇 전문가에게 큰 가중치를 부여하는 상태로 수렴하는 경향이 있음을 관찰했다. 이는 모든 전문가의 활용이 부족함을 나타낸다. </p>
<p>Shazeer et al. (2017) 및 Fedus et al. (2021)을 따르며, 다른 전문가들의 부하를 균형 있게 하기 위해 보조 손실을 추가한다.</p>
<br/>

<p>주어진 N개의 전문가와 T개의 쿼리로 구성된 시퀀스 Q = {q1, q2, ..., qT}에 대해 <strong>보조 손실 L_a</strong>는 다음과 같이 계산될 수 있다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/1d8db16d-3af8-4cc4-8abb-d952201ddbd4/image.png" alt=""></p>
<p>여기서 f_i는 i번째 전문가에게 할당된 토큰의 수이다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/d567bab7-8082-4215-95e8-9d1b3ec9aa99/image.png" alt=""></p>
<p>여기서 delta는 Kronecker-Symbol을 나타낸다. 
<img src="https://velog.velcdn.com/images/yun_haaaa/post/fe7579a6-c5b5-43c2-ba78-42f4ae3bfee3/image.png" alt=""></p>
<p>Pi는 i번째 전문가에게 할당된 라우터 확률의 합이다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/7467c9ab-720e-4816-9fd7-b5d88b4d3aad/image.png" alt=""></p>
<p>그런 다음 이들은 전문가 열에 따라 1로 정규화된다. 수학적으로, f_i는 미분 불가능하지만 P_i는 미분 가능하다. 따라서 더 큰 f_i는 더 큰 미분 값을 가져온다. 이는 더 큰 P_i를 작게 만드는 것을 페널티로 준다. 더욱이, P_i는 소프트맥스에 의해 계산된다. 따라서 더 작은 P_i는 더 커지게 된다.</p>
<p><br/><br/></p>
<p>Zoph et al. (2022)은 <strong>게이팅 네트워크에서 큰 logit을 페널티</strong>로 주는 <strong>라우터 z-손실</strong>(식 16)을 도입하여 훈련을 안정화하고 성능을 향상시켰다.</p>
<p>여기서 x_i,t는 i번째 전문가와 입력 쿼리 q_t에 대해 라우터에 의해 계산된 소프트맥스 전 logit이다. </p>
<p>각 Attention Head의 혼합 모듈에는 보조 손실과 라우터 z-손실이 있다. </p>
<p>이들을 합산하고, 곱셈 계수 α와 β를 각각 추가하여 훈련 중 전체 모델 손실에 추가한다. 이 연구 전반에 걸쳐 α=0.01과 β=0.001을 사용하여 두 추가 손실의 효율성을 보장하고 주요 교차 엔트로피 모델 손실에 방해되지 않도록 한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/fb2b9b26-d67f-4bbe-9630-7029a3441847/image.png" alt=""></p>
<p><br/><br/></p>
<h2 id="44-computational-complexity-and-number-of-parameters">4.4 Computational Complexity and Number of Parameters</h2>
<p>한편으로, T개의 토큰을 가진 시퀀스가 주어졌을 때, top-k 전문가를 선택하는 MoA 레이어가 요구하는 계산량은 다음과 같다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/df46f25e-779d-48bc-b0d0-a1bfd0789a42/image.png" alt=""></p>
<blockquote>
<p>kd_h : 선택된 전문가의 헤드 차원의 합을 나타내며, 이는 MoA 레이어가 토큰에 대해 수집할 수 있는 최대 정보량을 나타낸다.</p>
</blockquote>
<br/>

<p>다른 한편으로, 표준 다중 헤드 어텐션(MHA)이 요구하는 계산량은 다음과 같다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a99545ba-71a4-442a-8a06-d2e3ee5fbdd2/image.png" alt=""></p>
<blockquote>
<p>d_m : 헤드 차원의 합</p>
</blockquote>
<br/>
만약 kd_h ≈ d_m이라면, MoA의 계산 복잡도는 MHA보다 작다. 즉, MoA는 각 토큰에 대해 더 많은 정보를 수집하면서도 MHA와 유사한 수준의 계산 복잡도를 유지할 수 있다.

<p>파라미터 수에 대해서는, E개의 어텐션 전문가를 가진 Mixture of Attention Heads가 주어졌을 때, MoA와 MHA의 파라미터 수는 다음과 같다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a87a6856-f101-4fdc-aee4-5f722037a855/image.png" alt=""></p>
<p>k=E이고 Ed_h ≈ d_m 일 때, MoA의 파라미터 수는 MHA보다 작다. 즉, MoA는 각 토큰에 대해 더 많은 정보를 수집하면서도 MHA와 유사한 파라미터 수를 유지할 수 있다. 계산의 자세한 내용은 부록 B에 있다.</p>
<p>위의 논의는 정보 수집 관점에서 MoA가 표준 MHA보다 계산 및 파라미터 효율성이 더 높음을 시사한다. 추가적으로, MoA의 시간 복잡도는 어텐션 헤드의 수 k와 어텐션 헤드 차원 d_h에 의해 결정되며, 모델의 총 파라미터 수에 의해 결정되지 않는다. 파라미터 수를 임의로 증가시킬 수 있지만, 계산 복잡도는 증가하지 않는다.</p>
<br/>]]></description>
        </item>
        <item>
            <title><![CDATA[FedBABU: Towards Enhanced Representation for Federated Image Classification]]></title>
            <link>https://velog.io/@yun_haaaa/FedBABU-Towards-Enhanced-Representation-for-Federated-Image-Classification-hy03696x</link>
            <guid>https://velog.io/@yun_haaaa/FedBABU-Towards-Enhanced-Representation-for-Federated-Image-Classification-hy03696x</guid>
            <pubDate>Wed, 24 Jul 2024 15:00:11 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2106.06042">https://arxiv.org/abs/2106.06042</a>
Github : <a href="https://github.com/jhoon-oh/FedBABU">https://github.com/jhoon-oh/FedBABU</a></p>
<p><br/><br/><br/></p>
<h1 id="abstract">Abstract</h1>
<hr>
<p>연합 학습은 데이터 이질성의 저주로 인해 단일 글로벌 모델을 개선하거나, 데이터 이질성을 장점으로 사용하여 여러 개인화된 모델을 개발하는 방향으로 진화해 왔다. 그러나 두 가지 방향을 동시에 고려한 연구는 거의 없다. </p>
<p>본 논문에서는 먼저 클라이언트 수준에서 연합 평균(Federated Averaging)을 분석하여, 더 나은 연합 글로벌 모델 성능이 항상 개인화를 향상시키는 것은 아니라는 것을 확인했다. 이러한 <strong>개인화 성능 저하 문제의 원인을 설명하기 위해, 네트워크를 범용성과 관련된 바디(추출기)와 개인화와 관련된 헤드(분류기)로 분해</strong>했다. 이후 이 문제는 헤드를 훈련시키는 과정에서 비롯된 것임을 지적했다. </p>
<p>이러한 관찰에 기초하여, 연합 학습 동안 모델의 바디만 업데이트하고(즉, 헤드는 무작위로 초기화되며 절대 업데이트되지 않음), 평가 과정에서 헤드를 개인화하기 위해 미세 조정하는 새로운 연합 학습 알고리즘 FedBABU를 제안한다. 광범위한 실험을 통해 FedBABU의 일관된 성능 향상과 효율적인 개인화를 확인했다. </p>
<p><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>개인화된 데이터를 사용하는 분산 학습 프레임워크인 연합 학습(FL)은 매력적인 연구 분야로 자리 잡았다. 이 분야의 초기부터 장치 간 <strong>단일 글로벌 모델을 개선</strong>하는 것이 주요 목표였다. 여기서 <strong>글로벌 모델은 데이터 이질성으로 인해 어려움</strong>을 겪는다. </p>
<p>최근 많은 연구자들은 데이터 이질성을 가면의 장점으로 활용하여 여러 개인화된 모델에 초점을 맞추고 있다. 각 연구 방향에서 많은 연구가 진행되었지만, <strong>개인화 목적을 위해 좋은 글로벌 모델을 훈련</strong>하는 방법에 대한 연구는 부족하다. </p>
<p>이 연구에서는 개인화 훈련을 위해 각 <strong>로컬 클라이언트 모델</strong>이 </p>
<ul>
<li><p><strong>모든 클라이언트의 정보를 학습하는 글로벌 모델에서 시작</strong>하고, </p>
</li>
<li><p>이 <strong>글로벌 모델을 활용하여 자체 데이터 분포에 맞추는 방법</strong>을 제안한다.</p>
</li>
</ul>
<br/>

<p>Jiang et al. (2019)은 <strong>각 장치에서 글로벌 모델을 미세 조정하여 적응</strong>하는 개인화 방법을 분석했다. 그들은 미세 조정의 효과가 고무적이며, 중앙 위치에서 훈련하는 것이 초기 정확도(단일 글로벌 모델)를 높이는 동시에 개인화된 정확도(장치에서 미세 조정된 모델)를 낮춘다는 것을 관찰했다. </p>
<p>본 논문에서는 두 성능이 반대로 변화하는 이유에 초점을 맞춘다. 이는 <strong>범용성과 개인화의 요소를 별도로 다루어야 함</strong>을 시사하며, 고급 분석을 위해 전체 네트워크를 일반성과 관련된 바디(즉, 추출기)와 전문성과 관련된 헤드(즉, 분류기)로 분리하는 아이디어를 영감으로 받았다. </p>
<br/>

<p>Kang et al. (2019)과 Yu et al. (2020)은 <strong>헤드가 클래스 불균형 환경에서 편향</strong>된다는 것을 입증했다. MobileNet과 ResNet과 같은 인기 있는 네트워크에는 모델 끝에 단일 선형 레이어만 있으며, 헤드는 이 선형 레이어로 정의되고 바디는 헤드를 제외한 모든 레이어로 정의된다. </p>
<ul>
<li><p><strong>Model Body :</strong> 표현 학습과 관련 </p>
</li>
<li><p><strong>Model Head :</strong> 선형 결정 경계 학습과 관련</p>
</li>
</ul>
<p>본 논문에서는 매개변수를 분리하여 개인화 성능 저하의 원인을 밝히고, 이러한 문제가 헤드 훈련에서 비롯된 것임을 지적한다.</p>
<p><br/><br/></p>
<p>이와 같은 관찰에 영감을 받아, <strong>Federated Averaging 알고리즘을 간단히 변경하여 효율적으로 개인화할 수 있는 단일 글로벌 모델을 학습하는 알고리즘</strong>을 제안한다. </p>
<p>FedAvg는 클라이언트 샘플링, 브로드캐스팅, 로컬 업데이트, 그리고 집계의 네 단계로 구성된다. </p>
<ul>
<li><p><strong>클라이언트 샘플링 단계</strong>에서는 클라이언트 수가 너무 많아 모든 클라이언트가 각 라운드에 참여할 수 없기 때문에 클라이언트를 샘플링한다. </p>
</li>
<li><p><strong>브로드캐스팅 단계</strong>에서는 서버가 글로벌 모델(즉, 첫 번째 브로드캐스트 단계에서는 초기 랜덤 모델, 이후에는 집계된 모델)을 참여 클라이언트에게 보낸다. </p>
</li>
<li><p><strong>로컬 업데이트 단계</strong>에서는 각 장치의 브로드캐스트 모델이 자체 데이터 세트를 기반으로 훈련된다. </p>
</li>
<li><p><strong>집계 단계</strong>에서는 로컬 업데이트된 모델이 서버로 전송되어 평균화하여 집계된다. </p>
</li>
</ul>
<p>네 단계 중, 본 논문에서는 <strong>로컬 업데이트 단계에서 범용성과 개인화 관점 모두를 고려하여 초점</strong>을 맞춘다. 여기서 로컬 업데이트 단계에서 모델의 바디만 업데이트하며, 연합 학습 중에는 헤드가 절대 업데이트되지 않는다. </p>
<p>이를 바탕으로 <strong>FedBABU(Federated Averaging with Body Aggregation and Body Update)</strong>를 제안한다. </p>
<br/>


<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a1de0ad6-4e00-471c-9f73-db5054b82019/image.png" alt=""></p>
<p>그림 1은 로컬 업데이트 및 집계 단계에서 FedAvg와 FedBABU의 차이를 설명한다. 직관적으로 고정된 헤드는 <strong>각 클래스에 대한 기준이나 지침</strong>으로 해석될 수 있으며, 본 논문의 접근 방식은 <strong>연합 학습 동안 모든 클라이언트에 걸쳐 동일한 고정 기준을 기반으로 한 표현 학습</strong>이다. 이 간단한 변경은 단일 글로벌 모델의 표현력을 향상시키고 훈련된 글로벌 모델의 보다 정확하고 빠른 개인화를 가능하게 한다.</p>
<br/>


<p>본 논문의 기여는 다음과 같이 요약할 수 있다:</p>
<ul>
<li><p>클라이언트 수준에서 FedAvg 알고리즘을 분석하여 단일 글로벌 모델과 미세 조정된 개인화 모델 간의 연결을 조사하고, 서버에서 공유된 데이터를 사용하여 헤드를 훈련하는 것이 개인화에 부정적인 영향을 미친다는 것을 보여준다.</p>
<p><strong>고정된 랜덤 헤드가 중앙 집중식 설정에서 학습된 헤드와 유사한 성능을 가질 수 있음</strong>을 입증한다. </p>
<p>이러한 관찰을 통해 <strong>고정된 랜덤 헤드를 모든 클라이언트에 걸쳐 공유하는 것이 연합 설정에서 각 학습된 헤드를 평균화하는 것보다 더 강력할 수 있음</strong>을 제안한다.</p>
<br/>
</li>
<li><p>연합 학습 동안 전체 모델의 업데이트 및 집계 부분을 모델의 바디로 축소하는 새로운 알고리즘인 FedBABU를 제안한다. </p>
<p>FedBABU가 특히 <strong>더 큰 데이터 이질성 하에서 효율적</strong>임을 보여준다. </p>
<p>또한, FedBABU 알고리즘으로 훈련된 <strong>단일 글로벌 모델은 빠르게 개인화</strong>될 수 있다(심지어 한 번의 미세 조정 에포크만으로도). </p>
<p>FedAvg가 대부분의 기존 개인화 연합 학습 알고리즘을 능가하며, 다양한 연합 학습 설정에서 FedBABU가 FedAvg를 능가함을 관찰한다.</p>
<br/>


</li>
</ul>
<ul>
<li>바디 업데이트 및 바디 집계 아이디어를 <strong>정규화 기반 글로벌 연합 학습</strong> 알고리즘(FedProx와 같은)에 적용한다. <strong>정규화가 개인화 능력을 감소시킨다는 문제가 BABU를 통해 완화</strong>됨을 보여준다.</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="2-related-works">2. Related Works</h1>
<hr>
<br/>

<h3 id="단일-글로벌-모델을-위한-연합-학습">단일 글로벌 모델을 위한 연합 학습:</h3>
<p>McMahan et al. (2017)가 제안한 <strong>FedAvg</strong>는 클라이언트의 원시 데이터를 중앙 서버에 저장하지 않고도 풍부한 데이터의 이점을 모으기 위해 단일 글로벌 모델을 학습하는 것을 목표로 하며, 로컬 업데이트를 통해 통신 비용을 줄인다. </p>
<p>그러나 <strong>다양한 클라이언트에서 파생된 비독립적이고 동일하지 않은 분포(non-IID) 데이터에 대해 전역 최적 모델을 개발하기는 어렵다.</strong></p>
<p>이 문제를 해결하기 위해 <strong>클라이언트의 데이터 분포를 IID-like로 만들거나 로컬 업데이트 중 글로벌 모델과의 거리에 정규화를 추가하는 연구가 진행</strong>되었다. </p>
<ul>
<li><p>Zhao et al. (2018)은 <strong>모든 클라이언트가 공공 데이터의 하위 집합을 공유</strong>할 것을 제안했고,</p>
</li>
<li><p>Duan et al. (2019)은 <strong>클라이언트의 라벨 분포를 균형 있게 하기 위해 데이터를 증강</strong>했다. </p>
</li>
</ul>
<ul>
<li>최근에는 두 연구(Li et al., 2018; Acar et al., 2021)가 글로벌 모델과 크게 차이나는 로컬 모델을 벌주기 위해 <strong>로컬 최적화 과정에 정규화 항을 추가하여 글로벌 모델이 더 안정적으로 수렴하도록</strong> 했다. </li>
</ul>
<p>그러나 위의 방법을 사용하여 훈련된 <strong>단일 글로벌 모델</strong>은 <strong>각 클라이언트에 최적화되지 않는다</strong>는 점을 유의해야 한다.</p>
<br/>

<h3 id="개인화된-연합-학습">개인화된 연합 학습:</h3>
<p>개인화된 연합 학습은 <strong>각 클라이언트에 맞춘 개인화된 로컬 모델을 학습</strong>하는 것을 목표로 한다. 로컬 모델은 연합 없이 개발될 수 있지만, 이 방법은 데이터 제한 문제를 겪는다. 따라서 연합의 이점과 개인화된 모델을 유지하기 위해 <strong>clustering, multi-task learning, transfer
learning, regularized loss function, meta-learning</strong> 등 많은 다른 방법이 FL에 적용되었다. </p>
<br/>

<ul>
<li><p>두 연구(Briggs et al., 2020; Mansour et al., 2020)는 <strong>유사한 클라이언트를 클러스터링하여 클러스터 내 데이터 분포를 맞추고 클러스터 간 연합 없이 각각의 클러스터에 대한 별도의 모델을 학습</strong>했다. </p>
</li>
<li><p>클러스터링과 유사하게 <strong>Multi-task learning은 관련 클라이언트에 대한 모델을 동시에 학습</strong>하는 것을 목표로 한다. </p>
</li>
</ul>
<p>클러스터링은 관련 클라이언트를 단일 클러스터로 묶는 반면, 멀티태스크 학습은 그렇지 않다. 각 모델의 일반화는 관련 클라이언트 간의 표현을 공유함으로써 개선될 수 있다. </p>
<br/>

<ul>
<li><p>Smith et al. (2017)과 Dinh et al. (2021)은 Multi-task learning이 개인화된 FL에 적합한 학습 체계임을 보여주었다. Transfer learning도 추천되는 학습 체계이며, 이는 <strong>클라이언트 간 지식을 전달</strong>하는 것을 목표로 한다. </p>
</li>
<li><p>Yang et al. (2020)과 Chen et al. (2020b)는 <strong>관련 클라이언트 간 knowledge를 transfer하여 로컬 모델을 향상</strong>시켰다. </p>
</li>
<li><p>T Dinh et al. (2020)과 Li et al. (2021)은 클라이언트 모델이 단순히 자신의 데이터셋에 과적합하지 않도록 <strong>글로벌 또는 평균 개인화 모델을 향해 정규화를 추가</strong>했다. </p>
</li>
</ul>
<br/>

<p>훈련 중 로컬 모델을 개발하는 위의 방법과 달리, </p>
<ul>
<li><p>Chen et al. (2018)과 Fallah et al. (2020)은 <strong>모델 불변 메타 학습(MAML) 접근 방식을 통해 이중 수준 최적화를 사용하여 잘 초기화된 공유 글로벌 모델을 개발</strong>하려고 했다. 잘 초기화된 모델은 각 클라이언트에서 업데이트(예: MAML의 내부 업데이트)하여 개인화될 수 있다. </p>
</li>
<li><p>Jiang et al. (2019)는 FedAvg 알고리즘이 meta learning 알고리즘으로 해석될 수 있으며, <strong>FedAvg를 사용하여 학습된 글로벌 모델에서 미세 조정을 통해 높은 정확도의 개인화된 로컬 모델을 얻을 수 있다</strong>고 주장했다. </p>
</li>
</ul>
<p>또한, 개인화된 FL을 위한 다양한 기술과 알고리즘이 제시되었으며, 자세한 내용은 Tan et al. (2021)과 Kulkarni et al. (2020)을 참조하면 도움이 된다.</p>
<br/>

<h3 id="개인화된-fl을-위한-바디와-헤드-분리">개인화된 FL을 위한 바디와 헤드 분리:</h3>
<p>전체 네트워크를 바디와 헤드로 분리하는 훈련 방식은 <strong>long-tail recognition, noisy label learning, meat learning</strong> 등 다양한 분야에서 사용되었다. 개인화된 FL을 위해 이러한 분리 접근법을 사용하는 시도가 있었다. </p>
<p>일관된 설명을 위해, 본 논문에서는 <strong>로컬 업데이트</strong>와 <strong>집계</strong> 부분의 관점에서 각 알고리즘을 설명한다. </p>
<ul>
<li><p>FedPer (Arivazhagan et al., 2019)는 FedPav (Zhuang et al., 2020)와 유사하게 <strong>로컬 업데이트 중에 전체 네트워크를 공동으로 학습하고 하위 레이어만 집계</strong>한다. 하위 레이어가 바디와 일치할 때, 바디는 모든 클라이언트에 공유되고 헤드는 각 클라이언트에 개인화된다. </p>
</li>
<li><p>LG-FedAvg (Liang et al., 2020)는 <strong>로컬 업데이트 중에 전체 네트워크를 공동으로 학습하고, FedAvg를 통해 사전 훈련된 글로벌 네트워크 기반으로 상위 레이어만 집계</strong>한다. 상위 레이어가 헤드와 일치할 때, 바디는 각 클라이언트에 개인화되고 헤드는 모든 클라이언트에 공유된다. </p>
</li>
<li><p>FedRep (Collins et al., 2021)는 로컬 업데이트 중에 전체 네트워크를 순차적으로 학습하고 바디만 집계한다. <strong>로컬 업데이트 단계에서 각 클라이언트는 먼저 집계된 표현으로 헤드만 학습하고, 그 다음 자신의 헤드로 바디를 단일 에포크 내에서 학습</strong>한다. </p>
</li>
</ul>
<p>위의 분리 방법과 달리, 본 논문에서는 로컬 업데이트 중에 무작위로 초기화된 헤드로 바디만 학습하고 바디만 집계하는 FedBABU 알고리즘을 제안한다. 전체 연합 학습 동안 헤드를 고정하면 모든 클라이언트에 걸쳐 동일한 표현 학습 지침을 제공하는 것으로 생각된다. 그런 다음, 헤드를 미세 조정하여 개인화된 로컬 모델을 얻을 수 있다.</p>
<p><br/><br/><br/></p>
<h1 id="3-preliminaries">3. Preliminaries</h1>
<hr>
<h4 id="fl-학습-절차">FL 학습 절차</h4>
<ol>
<li><strong>클라이언트 샘플링</strong><ul>
<li>전체 클라이언트 집합 {1, ···, N}에서 클라이언트 비율 f에 따라 클라이언트들이 샘플링됨.</li>
<li>k번째 라운드에서 참여 클라이언트 Ck = {Ck i }⌊Nf⌋ i=1.</li>
</ul>
</li>
<li><strong>브로드캐스팅</strong><ul>
<li>서버는 초기에는 무작위로 초기화된 글로벌 모델 θ0 G를, 이후에는 집계된 모델 θk-1 G를 참여 클라이언트들에게 전송.</li>
<li>참여 클라이언트들의 로컬 파라미터는 글로벌 파라미터로 초기화됨: θk i (0) ← θk-1 G.</li>
</ul>
</li>
<li><strong>로컬 업데이트</strong><ul>
<li>각 디바이스에서 로컬 데이터 셋을 사용하여 모델을 업데이트.</li>
<li>로컬 에포크 τ 후 로컬 업데이트된 모델은 {θk i (τ Ik i )}⌊Nf⌋ i=1이 됨.</li>
</ul>
</li>
<li><strong>집계</strong><ul>
<li>로컬 업데이트된 모델을 서버로 전송하고, 이를 평균하여 글로벌 파라미터 θk G를 집계.</li>
<li>글로벌 파라미터 θk G = P⌊Nf⌋ i=1 nCk i n θk i (τ Ik i ), 여기서 n = P⌊Nf⌋ i=1 nCk i.</li>
</ul>
</li>
</ol>
<br/>

<h4 id="실험-설정">실험 설정</h4>
<ul>
<li><p><strong>주요 모델 및 데이터셋</strong>: MobileNet과 CIFAR100 사용.</p>
</li>
<li><p><strong>클라이언트 수</strong>: 100명.</p>
</li>
<li><p><strong>데이터 분포</strong>: 각 클라이언트는 500개의 훈련 데이터와 100개의 테스트 데이터를 가짐.</p>
</li>
<li><p><strong>데이터 이질성 제어</strong>:</p>
<ul>
<li><strong>클라이언트 비율 (f)</strong>: 매 라운드에 참여하는 클라이언트의 비율.</li>
<li><strong>로컬 에포크 (τ)</strong>: 두 연속 통신 라운드 간격.</li>
<li><strong>사용자당 샤드 수 (s)</strong>: 각 사용자가 가질 수 있는 최대 클래스 수.</li>
</ul>
</li>
</ul>
<h4 id="평가">평가</h4>
<ul>
<li><p><strong>초기 정확도 및 개인화된 정확도</strong>:</p>
<ul>
<li>초기 정확도: 학습된 글로벌 모델이 각 클라이언트의 테스트 데이터 셋에서 평가된 성능.</li>
<li>개인화된 정확도: 학습된 글로벌 모델을 각 클라이언트의 훈련 데이터 셋을 사용하여 미세 조정한 후 평가된 성능.</li>
</ul>
</li>
<li><p><strong>다른 개인화된 FL 알고리즘과의 비교</strong>:</p>
<ul>
<li>FedPer, LG-FedAvg, FedRep 등의 개인화된 FL 알고리즘과 비교하여 평가.</li>
</ul>
</li>
</ul>
<p>각 표의 값 (X±Y)은 모든 클라이언트에 걸친 정확도의 평균±표준 편차를 나타낸다.</p>
<p><br/><br/><br/></p>
<h1 id="4-personalization-of-a-single-global-model">4. Personalization of a Single Global Model</h1>
<hr>
<p>우선 Wang et al. (2019) 및 Jiang et al. (2019)를 따르며, FedAvg 알고리즘을 사용하여 단일 글로벌 모델을 개인화하는 것을 조사하여 단일 글로벌 모델과 여러 개인화 모델을 연결한다. 테스트 데이터 세트가 서버에 모이지 않고 클라이언트에 분산되어 있다고 가정하여 초기 정확도와 개인화된 정확도를 평가한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/e2bd0841-4afd-4cb4-a314-81581b83112e/image.png" alt=""></p>
<p>표 1은 100명의 클라이언트를 대상으로 한 다양한 FL 설정(f, τ, s)에 따른 CIFAR100에서의 FedAvg의 정확도를 설명한다. 초기 및 개인화된 정확도는 각각 미세 조정 없이 평가된 성능과 각 클라이언트에 대해 5개의 미세 조정 에포크로 평가된 성능을 나타낸다. </p>
<ul>
<li><p>이전 연구에서 보여준 바와 같이, <strong>더 현실적인 설정(즉, 더 작은 f, 더 큰 τ, 더 작은 s)일수록 초기 정확도가 낮아진다.</strong> </p>
</li>
<li><p>또한, Jiang et al. (2019)에서 관찰된 바와 같이, <strong>개인화된 모델이 글로벌 모델보다 더 높은 정확도로 수렴하는 경향</strong>도 동일하다. </p>
</li>
<li><p>더욱 흥미로운 점은 <strong>데이터가 더 이질적일수록 초기 정확도와 개인화된 정확도 사이의 격차가 크게 증가</strong>한다는 것이다. </p>
<p>작은 s는 <strong>각 클라이언트가 보유한 라벨 분포가 제한되고 클래스당 샘플 수가 증가하여 로컬 작업을 더 쉽게 만드는 것</strong>으로 생각된다.</p>
</li>
</ul>
<br/>


<p>또한, 초기 정확도는 증가하지만 개인화된 정확도는 감소하는 흥미로운 실험을 수행하며, FL 학습 절차를 유지한다. </p>
<p>Jiang et al. (2019)에서는 중앙 집중식으로 학습된 모델이 개인화하기 더 어렵다는 것을 보여주었다. </p>
<p>유사하게, 본 논문에서는 연합 학습된 모델이 더 개인화하기 어렵도록 설계된 실험을 진행한다. </p>
<ul>
<li><p>서버가 클라이언트의 비공개 데이터를 작은 비율 p만큼 가지고 있다고 가정하며, 이러한 비공개 데이터를 서버에서 데이터 이질성으로 인한 성능 저하를 완화하는 데 사용할 수 있다. </p>
</li>
<li><p>이 공유된 비공개 데이터를 사용하여 글로벌 모델을 매 집계 후 단 한 에포크 동안 업데이트한다. </p>
</li>
</ul>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/cfef863e-73a5-4f37-b3c4-8a904ea07d6b/image.png" alt=""></p>
<p>표 2는 이 실험의 결과를 설명한다. 서버에서 네트워크 전체를 업데이트한다(Table 2의 F). 예상대로 p가 증가할수록 초기 정확도가 증가한다. 그러나 데이터 이질성이 큰 경우(s=10) 개인화된 정확도는 감소한다. </p>
<p>이 결과는 <strong>단일 글로벌 모델을 향상시키는 것이 초기 성능보다 더 중요하게 여겨질 수 있는 개인화에 해로울 수 있음</strong>을 시사한다. 따라서 본 논문에서는 훌륭한 글로벌 모델의 개발이 적절히 미세 조정되거나 개인화될 수 있는 능력을 고려해야 한다고 동의한다.</p>
<br/>

<p>개인화 성능 저하의 원인을 조사하기 위해, <strong>글로벌 모델이 서버에서 학습될 때 개인화에 불필요하고 방해가 되는 정보(즉, 특정 클라이언트가 가지고 있지 않은 유사한 클래스의 정보)가 헤드에 주입된다고 가정</strong>한다. </p>
<p>이를 포착하기 위해 서버에서 학습률을 헤드에 해당하는 부분만 0으로 설정하여 바디만 업데이트한다(Table 2의 B). 업데이트 부분을 좁힘으로써 초기 정확도에 영향을 미치지 않으면서 개인화 저하 문제를 크게 해결할 수 있다. </p>
<p>이 관찰을 통해 공유 데이터를 사용하여 헤드를 학습하는 것이 개인화에 부정적인 영향을 미친다고 주장한다.</p>
<p><br/><br/><br/></p>
<h1 id="5-fedbabu-federated-averaging-with-body-aggregation-and-body-update">5. FedBABU: Federated Averaging with Body Aggregation and Body Update</h1>
<hr>
<p>효율적으로 개인화할 수 있는 더 나은 단일 글로벌 모델을 학습하는 새로운 알고리즘을 제안한다. 앞선 연구들에서 영감을 받아 전체 네트워크를 본체와 헤드로 분리한다. </p>
<p>본체는 일반화를 위해 훈련되고 헤드는 전문화를 위해 훈련된다. 이 아이디어를 연합 학습에 적용하여, 연합 학습 단계에서는 헤드를 전혀 훈련하지 않고 (즉, 단일 글로벌 모델을 개발), 평가 과정에서는 헤드를 미세 조정하여 개인화한다.</p>
<p><br/><br/><br/></p>
<h2 id="51-frozen-head-in-the-centralized-setting">5.1 Frozen Head in the Centralized Setting</h2>
<hr>
<p>알고리즘을 제안하기 전에, 초기화된 고정 헤드를 가진 모델이 본체와 헤드를 함께 학습하는 모델과 비슷한 성능을 보임을 실험적으로 보여준다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/98a7aedb-a352-44c3-bc4e-f45fa56b0ad8/image.png" alt=""></p>
<p>그림 2는 CIFAR100에서 MobileNet의 다양한 훈련 시나리오에 따른 테스트 정확도 곡선을 나타낸다. 총 에포크는 160이고, 학습률은 0.1에서 시작하여 80과 120 에포크에서 0.1씩 감소한다. </p>
<p>파란색 선은 모든 레이어를 훈련할 때의 정확도를, 빨간색 선은 모델의 본체만 훈련할 때의 정확도를, 녹색 선은 모델의 헤드만 훈련할 때의 정확도를 나타낸다. </p>
<p>완전히 훈련된 모델과 고정된 헤드는 거의 동일한 성능을 보이지만, 고정된 본체는 성능이 낮다. 따라서 무작위로 초기화된 고정 헤드는 수용 가능하지만, 무작위로 초기화된 고정 본체는 수용 불가하다고 주장한다. </p>
<p>이는 헤드의 직교성에서 비롯된 특성으로, 이는 부록 B에서 설명한다. 이러한 결과는 연합 학습 설정에서 로컬 훈련 중 본체만 업데이트할 수 있는 이유이다.</p>
<p><br/><br/><br/></p>
<h2 id="52-fedbabu-algorithm">5.2 FedBABU Algorithm</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b94ea642-9328-4867-9824-0e27d6d3b958/image.png" alt=""></p>
<p>섹션 5.1의 통찰과 결과를 바탕으로 새로운 FL 알고리즘인 FedBABU (본체 집계 및 본체 업데이트를 통한 연합 평균화)를 제안한다. 본체만 훈련되고, 연합 학습 중에는 헤드는 전혀 훈련되지 않는다. 따라서 헤드를 집계할 필요가 없다. </p>
<p>공식적으로, 모델 파라미터 θ는 본체(추출기) 파라미터 θ_ext와 헤드(분류기) 파라미터 θ_cls로 분리된다. </p>
<p>클라이언트의 θ_cls는 단일 글로벌 모델이 수렴할 때까지 무작위로 초기화된 글로벌 파라미터 θ_0 G의 헤드 파라미터로 고정된다. 이는 헤드에 해당하는 학습률을 0으로 설정하여 구현된다. </p>
<p>직관적으로, 모든 클라이언트에서 동일한 고정 헤드는 훈련 시간의 경과에도 불구하고 모든 클라이언트에서 동일한 기준으로 표현 학습을 제공한다고 믿어진다.</p>
<p><br/><br/><br/></p>
<h3 id="521-representation-power-of-global-models-trained-by-fedavg-and-fedbabu">5.2.1 Representation Power of Global Models Trained by FedAVG and FedBABU</h3>
<hr>
<p>높은 초기 정확도는 개인화할 데이터가 없는 클라이언트가 있을 수 있기 때문에 종종 필요하다. 또한 초기 모델의 표현력은 다운스트림 또는 개인 작업의 성능과 관련이 있다. </p>
<p>표현력을 측정하기 위해 &quot;헤드 없음&quot; 정확도는 훈련된 헤드를 가장 가까운 템플릿으로 대체하여 계산된다. 이 방법은 이전 연구들을 따른다. </p>
<p>훈련된 글로벌 모델과 각 클라이언트의 훈련 데이터 세트를 사용하여 각 클래스의 표현이 템플릿으로 평균화된다. 그런 다음 테스트 샘플과 템플릿 간의 코사인 유사도를 측정하고 테스트 샘플을 가장 가까운 템플릿의 클래스로 분류한다. 템플릿은 원시 데이터를 이동할 수 없기 때문에 각 클라이언트에 대해 생성된다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/c22f03fd-8157-4aac-aa63-ef0af1c2ac9e/image.png" alt=""></p>
<p>표 3은 헤드의 존재 여부에 따른 FedAvg와 FedBABU의 초기 정확도를 설명한다. FedBABU는 모든 클라이언트가 동일한 기준을 공유하고 그 기준에 따라 표현을 학습하기 때문에 향상된 표현력을 기대할 수 있다. </p>
<p>헤드가 없는 상태에서 평가된 경우, FedBABU는 모든 경우에 FedAvg보다 향상된 성능을 보이며, 특히 데이터 이질성이 큰 경우에 그렇다. </p>
<p>구체적으로, s = 100인 경우(즉, 각 클라이언트가 CIFAR100의 대부분의 클래스를 갖는 경우), FedAvg에서의 성능 차이는 헤드의 존재 여부에 따라 달라지지만, FedBABU에서는 그렇지 않다. </p>
<p>이는 <strong>FedBABU를 통해 생성된 특징이 헤드를 통해 보완할 필요가 없을 정도로 잘 표현된다</strong>는 것을 의미한다. s가 작은 경우, 헤드가 없을 때 성능이 향상된다. </p>
<br/>

<p>템플릿은 각 클라이언트의 훈련 데이터 세트를 기반으로 구성되기 때문에 클라이언트가 가지고 있지 않은 클래스로 테스트 샘플을 분류할 수 없다. </p>
<p>즉, 각 클라이언트의 출력 분포에 대한 제한이 엄청난 성능 향상을 가져오며, 글로벌 모델을 훈련하지 않아도 그렇다. 따라서 강력한 표현력을 가진 글로벌 모델을 미세 조정하면 개인화가 향상될 것으로 기대된다.</p>
<p><br/><br/><br/></p>
<h3 id="522-personalization-of-fedavg-and-fedbabu">5.2.2 Personalization of FedAVG and FedBABU</h3>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/2bb309f4-aa9d-4adb-9ec7-5df5924efcca/image.png" alt=""></p>
<p>FedBABU의 개인화에 대한 주된 요인을 조사하기 위해, 미세 조정된 부분에 따른 성능을 비교한다. 
<br/></p>
<p>표 4a는 이 실험의 결과를 설명한다. 각 클라이언트의 훈련 데이터 세트를 기반으로 글로벌 모델을 5개의 에포크 동안 미세 조정한다. </p>
<p>헤드를 포함한 미세 조정(즉, 표 4a의 Head 또는 Full)이 본체 부분적인 미세 조정(즉, 표 4a의 Body)보다 개인화에 더 나은 것으로 나타난다. </p>
<p><strong>FedBABU</strong>의 경우, <strong>성능 저하 없이 헤드만 미세 조정하여 계산 비용을 줄일 수 있다.</strong></p>
<br/>

<p>그러나 FedAvg의 경우, 성능 차이가 나타난다. 표 4b는 미세 조정된 부분에 따른 FedAvg의 개인화 정확도를 설명한다. </p>
<p>전체 네트워크를 미세 조정하는 것이(표 4b의 Full) 부분적으로 미세 조정하는 것(표 4b의 Body 또는 Head)보다 개인화에 더 나은 것으로 나타난다. </p>
<p>따라서 <strong>FedAvg</strong>의 경우, <strong>더 나은 성능을 위해 전체 네트워크를 미세 조정하여 글로벌 모델을 개인화하는 것이 권장</strong>된다. </p>
<br/>


<p>평가의 일관성을 위해, FedAvg와 FedBABU 모두 이 논문에서 전체 모델을 미세 조정하였다.</p>
<p><br/><br/><br/></p>
<h3 id="523-personalization-performance-comparison">5.2.3 Personalization Performance Comparison</h3>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/98623e9c-c046-4e37-9ecf-7a20414904c2/image.png" alt=""></p>
<p>FedBABU를 기존 방법과 비교하여 개인화 관점에서 평가한다. 평가 절차와 각 알고리즘의 구현에 대한 자세한 내용은 부록 A에 있다. 표 5는 다양한 알고리즘의 개인화 정확도를 설명한다. </p>
<p>주목할 점은 <strong>FedAvg가 매우 강력한 기준선으로, 대부분의 경우 CIFAR100에서 최근의 개인화 FL 알고리즘을 압도한다</strong>는 것이다. </p>
<p>이러한 결과는 잘 훈련된 표현을 기반으로 한 미세 조정이 이질적 작업에 대해 advanced few-shot classification 알고리즘을 압도하는 meta-learning 분야의 최근 트렌드와 유사하다. </p>
<br/>

<p>FedBABU(본 연구)는 FedAvg를 더욱 능가하며, 헤드를 고정함으로써 표현력을 강화하여 성능을 향상시킨다고 여겨진다. </p>
<p>구체적으로, τ=1일 때, FedBABU와 FedRep 간의 성능 차이는 클라이언트 간 헤드를 고정하는 것의 중요성을 보여준다. τ=1일 때, 만약 FedRep에서 헤드에 대한 훈련 과정이 없다면, FedRep은 FedBABU로 축소된다. </p>
<p>또한, FedRep의 성능 저하는 본체 훈련의 낮은 에포크 수 때문이라고 생각된다. 개인화 FL 알고리즘의 효율성은 모든 클라이언트가 참여할 때 증가하므로, FedPer(Arivazhagan et al., 2019)는 매 통신 라운드 동안 모든 클라이언트의 활성화를 가정한다. </p>
<p>Per-FedAvg 알고리즘은 클래스가 많고 미세 조정 반복이 적을 때 테스트 세트를 지원 세트와 쿼리 세트로 나누는 문제를 겪을 수 있다. </p>
<br/>

<p>요약하면, FedAvg는 최근의 개인화 FL 알고리즘인 Per-FedAvg 및 Ditto보다 비교 가능하거나 더 나은 성능을 보이며, FedBABU(본 연구)는 FedAvg 및 다른 분리 알고리즘보다 높은 성능을 달성한다.</p>
<p><br/><br/><br/></p>
<h3 id="personalization-speed-of-fedavg-and-fedbabu">Personalization Speed of FedAVG and FedBABU</h3>
<hr>
<p>평가 과정에서 미세 조정 에포크 τf를 조절하여 FedAvg와 FedBABU의 개인화 속도를 조사한다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/fbe57d0c-a913-487d-b7be-d8f3b47292f5/image.png" alt=""></p>
<p>표 6은 FedAvg와 FedBABU의 초기(τf가 0일 때) 및 개인화(그 외의 경우) 정확도를 설명한다. 여기서 한 에포크는 10번의 업데이트와 같으며, 각 클라이언트는 500개의 훈련 샘플을 가지고 있고 배치 크기는 50이다. </p>
<p>FedAvg는 미세 조정을 위해 충분한 에포크가 필요함이 Jiang et al. (2019)에서 보고된 바 있다. 주목할 점은 <strong>FedBABU가 적은 수의 에포크로 더 나은 정확도를 달성한다</strong>는 것으로, 이는 미세 조정이 비용이 많이 들거나 제한된 경우에 FedBABU가 정확하고 빠르게 개인화할 수 있음을 의미한다. 이 특성은 부록 K의 코사인 유사성을 기반으로 추가 설명된다.</p>
<p><br/><br/><br/></p>
<h3 id="525-body-aggregation-and-body-update-on-the-fedprox">5.2.5 Body Aggregation and Body Update on the Fedprox</h3>
<hr>
<p>FedProx (Li et al., 2018)는 <strong>로컬 모델이 글로벌 모델에서 벗어나는 것을 방지</strong>하기 위해 <strong>글로벌 모델과 로컬 모델 간의 거리를 정규화</strong>한다. </p>
<p>정규화의 정도는 µ로 조절된다. µ가 0.0일 때, FedProx는 FedAvg로 축소된다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/8da33bf3-ce3a-4350-b357-801a98f2c5b1/image.png" alt=""></p>
<p>표 7은 f=0.1일 때 µ=0.01로 설정된 FedProx와 FedProx+BABU의 초기 및 개인화 정확도를 설명하며, 부록 M에서는 f=1.0일 때의 결과를 보고한다. </p>
<p>FedProx로 훈련된 글로벌 모델은 개인화 능력을 FedAvg에 비해 감소시킨다(표 1의 f=0.1일 때를 참조), 특히 현실적인 FL 설정에서 그렇다. 본 논문은 FedProx 알고리즘에 바디 어그리게이션과 바디 업데이트 아이디어를 적용하여 FedProx+BABU를 만들었으며, 이는 FedAvg의 개인화 성능보다 뛰어나다. </p>
<p>더욱이, FedProx+BABU는 FedBABU에 비해 개인화 성능을 향상시킨다(표 5의 f=0.1일 때를 참조). 이는 바디의 정규화가 여전히 의미가 있다는 것을 의미한다. </p>
<p>본 논문의 알고리즘과 다양한 실험은 연합 학습의 미래 방향을 제시한다: 연합하고 향상시켜야 할 부분은 무엇인가? 바로 <strong>표현력</strong>이다!</p>
<p><br/><br/><br/></p>
<h1 id="6-conclusion">6. Conclusion</h1>
<hr>
<p>본 연구에서는 개인화를 목적으로 하는 좋은 연합 글로벌 모델을 훈련하는 방법에 중점을 두었다. 즉, 이 문제는 다운스트림 개인 작업을 위해 연합 학습 방식으로 더 나은 백본을 사전 훈련하는 방법으로 귀결된다. </p>
<p>먼저 글로벌 모델을 개선하기 위한 기존 방법들(예: 데이터 공유 또는 정규화)이 개인화 능력을 감소시킬 수 있음을 보여주었다. 이러한 개인화 성능 저하 문제를 완화하기 위해, 우리는 전체 네트워크를 일반성과 관련된 바디와 개인화와 관련된 헤드로 분리했다. 그런 다음, 헤드를 훈련시키는 것이 이 문제를 일으킨다는 것을 입증했다. </p>
<p>더 나아가, 클라이언트마다 이질적인 데이터에 빠르게 적응할 수 있는 공유 글로벌 모델을 학습하는 FedBABU 알고리즘을 제안했다. FedBABU는 로컬 업데이트 단계에서 바디만 업데이트하고, 어그리게이션 단계에서도 바디만 어그리게이션하여 강력한 표현력을 가진 단일 글로벌 모델을 개발한다. 이 글로벌 모델은 각 클라이언트의 데이터 세트를 사용하여 클라이언트의 모델을 미세 조정함으로써 효율적으로 개인화할 수 있다. </p>
<p>광범위한 실험 결과는 FedBABU가 다양한 개인화 FL 알고리즘을 압도한다는 것을 보여주었다. 우리의 개선은 FL에서 표현력을 연합하고 향상시키는 것이 중요하다는 점을 강조한다.</p>
<p><br/><br/><br/></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Federated Dynamic Sparse Training:
Computing Less, Communicating Less, Yet Learning Better]]></title>
            <link>https://velog.io/@yun_haaaa/Federated-Dynamic-Sparse-TrainingComputing-Less-Communicating-Less-Yet-Learning-Better</link>
            <guid>https://velog.io/@yun_haaaa/Federated-Dynamic-Sparse-TrainingComputing-Less-Communicating-Less-Yet-Learning-Better</guid>
            <pubDate>Sun, 21 Jul 2024 15:48:30 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2112.09824">https://arxiv.org/abs/2112.09824</a>
Github : <a href="https://github.com/bibikar/feddst?utm_source=catalyzex.com">https://github.com/bibikar/feddst?utm_source=catalyzex.com</a></p>
<p><br/><br/></p>
<h1 id="abstract">Abstract</h1>
<hr>
<p>연합 학습(FL)은 클라우드에서 자원 제약이 있는 엣지 디바이스로 머신 러닝 작업을 분산시킨다. 하지만 현재의 딥 네트워크는 엣지 디바이스에서 추론 및 학습하기에 너무 많은 연산을 필요로 할 뿐만 아니라, 대역폭이 제한된 네트워크를 통해 업데이트를 전송하기에도 너무 크다. </p>
<p>본 논문에서는 연합 동적 희소 학습(FedDST)이라는 새로운 FL 프레임워크를 개발, 구현, 실험적으로 검증하였다. 이를 통해 복잡한 신경망을 엣지 디바이스에서 효율적으로 학습하고 네트워크 통신을 대폭 개선할 수 있다. </p>
<br/>
FedDST의 핵심은 대상 전체 네트워크에서 희소 하위 네트워크를 추출하고 학습하는 동적 과정에 있다. 이 방식을 통해 "일석이조"의 효과를 얻는다. 

<p>각 <strong>클라이언트</strong>는 전체 모델 대신 <strong>자신의 희소 네트워크를 효율적으로 학습</strong>하며, <strong>희소 네트워크만이 디바이스와 클라우드 사이에서 전송</strong>된다. 또한, 실험 결과에 따르면 FL 학습 중 <strong><em>❗동적 희소성은 고정된 공유 희소 마스크보다 로컬 이질성을 더 유연하게 수용</em></strong>한다. </p>
<p>동적 희소성은 학습 동작에 <strong>&quot;실시간 자기 앙상블 효과&quot;를 자연스럽게 도입하여 FL 성능을 밀집 학습보다 더욱 향상</strong>시킨다. </p>
<br/>

<p>현실적이고 도전적인 Non-IID FL 설정에서 FedDST는 실험에서 경쟁 알고리즘을 지속적으로 능가한다. </p>
<ul>
<li><p>예를 들어, 비독립적이고 동일한 분포가 아닌 CIFAR-10에서 동일한 업로드 데이터 제한을 준수할 때 FedDST는 FedAvgM에 비해 10%의 놀라운 정확도 우위를 확보한다. </p>
</li>
<li><p>업로드 데이터 제한이 2배인 경우에도 정확도 차이는 3%로 유지되며, FedDST의 효율성을 더욱 입증한다.</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="introduction">Introduction</h1>
<hr>
<p>개인 데이터의 프라이버시 보호와 엣지에서의 머신 러닝(ML) 구현에 대한 욕구에 힘입어, 연합 학습(FL)이 최근 다수의 클라이언트 디바이스에서 분산된 ML을 가능하게 하는 사실상 표준 패러다임으로 떠올랐다. </p>
<p>FL 시스템에서는 <strong>중앙 클라우드 서버가 클라이언트 네트워크 내 정보 전송을 중재</strong>하며, <strong>클라이언트는 로컬 데이터를 비공개로 유지</strong>해야 한다. 전통적인 방법에서는 FL이 <strong>여러 개의 동기 라운드를 실행</strong>한다. </p>
<p>각 라운드에서는 FL이 <strong>선택된 디바이스의 로컬 데이터만 사용하여 여러 로컬 학습 에포크를 실행</strong>한다. 이 로컬 학습 후, <strong>클라이언트의 모델 업데이트가 중앙 서버로 전송되고, 서버는 이를 모두 집계하여 글로벌 모델을 업데이트</strong>한다.</p>
<br/>

<p>FL 시스템에서는 무거운 연산 작업이 클라우드에서 자원 제약이 있는 엣지 디바이스로 배포된다. 엣지에서의 사용을 가능하게 하려면 FL 시스템은 디바이스 수준의 로컬 학습 효율성과 네트워크 내 통신 효율성을 최적화해야 한다.</p>
<p>불행히도 현재의 ML 모델은 엣지 디바이스에서 추론하기에 너무 복잡할 뿐만 아니라, 학습하기에도 너무 복잡하다. 모델의 간결함 외에도 클라우드와 디바이스 간 통신 효율성도 중요하다. </p>
<p>모바일 폰과 같은 클라이언트 디바이스는 비대칭 인터넷 연결로 인해 업로드 대역폭 제한이 심각한 경우가 많아 연합 학습 알고리즘의 업로드 비용을 줄이는 것이 매우 중요하다. </p>
<p>기존의 많은 통신 효율 FL 연구는 FL 업데이트에서 구조적 및 스케치된 희소성, 최적의 클라이언트 샘플링, 및 기타 전통적인 방법에 초점을 맞추고 있다.</p>
<p><br/><br/></p>
<p>경량 모델을 엣지 디바이스에서 추론할 수 있도록 하기 위한 목표로, 희소 신경망(NNs)을 최적화하려는 상당한 노력이 있었다. 이러한 방법들은 추론 지연 시간을 크게 줄이지만, 학습에 필요한 연산 및 메모리 자원에 큰 영향을 미친다. </p>
<p><strong>로터리 티켓 가설</strong>은 <strong>Dense NNs가 완전한 정확도로 고립하여 학습할 수 있는 희소 일치 하위 네트워크를 포함하고 있음</strong>을 보여주었다. 더 많은 연구들은 <strong>희소성이 초기화 시점에서 나타날 수 있거나, 학습 중 동적 형태로 활용될 수 있음</strong>을 보여주었다.</p>
<p><br/><br/></p>
<p>본 논문의 주된 목표는 <strong>연합 동적 희소 학습(FedDST)</strong>이라는 새로운 FL 프레임워크를 개발, 구현 및 실험적으로 검증하는 것이다. 이를 통해 복잡한 NNs를 배포하고 학습하여 디바이스 연산과 네트워크 통신 효율성을 크게 개선할 수 있다. </p>
<p>FedDST의 핵심은 동적 희소 학습에 대한 신중하게 설계된 연합 접근법에 있다. FedDST는 <strong>클라이언트의 고도로 희소한 일치 하위 네트워크만을 전송하고, 각 클라이언트가 효율적인 희소 분산 학습을 수행</strong>할 수 있게 하여 &quot;일석이조&quot;의 효과를 제공한다. </p>
<p>더욱 중요한 점은 FL 학습 중 동적 희소성이 최첨단 알고리즘보다 <strong>로컬 이질성을 더 견고하게 수용</strong>함을 발견한 것이다. <strong>동적 희소성 자체가 실시간 자기 앙상블 효과를 유도</strong>하여 밀집 학습보다 FL 성능을 향상시킨다. </p>
<br/>

<p>본 논문의 공헌 :</p>
<ul>
<li><p>동적 희소 학습을 연합 학습에 도입하여 희소 NNs와 FL 패러다임을 원활하게 통합하는 것은 이번이 처음이다. 우리의 프레임워크인 FedDST는 희소성을 통합 도구로 활용하여 통신 및 로컬 학습 비용을 절감한다.</p>
</li>
<li><p><strong><em>❗유연한 집계 방법을 사용하여, 추가 전송 오버헤드 없이 FedAvg 위에 FedDST를 배포</em></strong>하였다. 일반 설계 원칙으로서, 우리의 방법은 FedProx와 같은 다른 FL 프레임워크에도 쉽게 확장 가능하다. </p>
<p>또한, <strong>동적 희소성</strong> 개념은 <strong><em>❗로컬 이질성을 수용하고 실시간 자기 앙상블 효과</em></strong>를 생성하여 밀집 베이스라인보다 FL 성능을 향상시키는 것으로 나타났다.</p>
</li>
<li><p>광범위한 실험을 통해 FedDST가 <strong>비독립적이고 동일한 분포가 아닌 데이터 분포의 어려운 문제에서도 통신 효율성을 극적으로 개선</strong>함을 보여준다. </p>
<p>이러한 비독립적이고 동일한 분포가 아닌 설정에서도, FedDST는 CIFAR-10에서 FedAvgM보다 3%의 정확도 향상을 제공하며, 업로드 대역폭은 절반만 필요하다. </p>
<p>또한, 매개변수의 합리적 변동에 대한 FedDST의 견고성을 보여주는 광범위한 소멸 연구도 제공한다. 이러한 결과는 희소 학습이 FL의 미래 &quot;기본 옵션&quot;이 될 수 있음을 시사한다.</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="related-work">Related work</h1>
<br/>

<h2 id="federated-learning">Federated Learning</h2>
<hr>
<p>연합 학습에서, <strong>클라이언트 세트 j ∈ [N]</strong>는 중앙 조정 서버의 참여로 하나 이상의 모델을 학습하기 위해 협력한다. </p>
<p>각 클라이언트는 로컬 학습을 위한 <strong>소규모 데이터 세트 Dj</strong>를 가지고 있지만, 사용자 프라이버시를 보호하기 위해 클라이언트는 로컬 학습 데이터를 공유하지 않는다. </p>
<p>본 연구에서는 <strong>글로벌 모델 θ</strong>를 학습하고, <strong>글로벌 손실을 최소화하는 것을 목표</strong>로 한다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/02d38389-93be-45df-826e-1d8baaee48e9/image.png" alt=""></p>
<br/>

<p>FedAvg 알고리즘 계열에서는 <strong>통신 라운드</strong>로 학습이 진행된다. </p>
<ul>
<li><p>각 라운드의 시작 시, 서버는 <strong>클라이언트 세트 Ci를 선택</strong>하고 <strong>현재 서버 모델 매개변수 θi를 클라이언트에게 보낸다.</strong></p>
</li>
<li><p>각 클라이언트 j ∈ Ci는 로컬 학습 세트를 사용하여 받은 모델로 E 에포크의 학습을 수행하여 <strong>매개변수 θij를 생성하고 이를 서버에 업로드</strong>한다. </p>
</li>
</ul>
<p>FedAvg에서는 </p>
<ul>
<li><p><strong>클라이언트 :</strong> <strong>SGD</strong>로 로컬 학습</p>
</li>
<li><p><strong>서버 :</strong> <strong>샘플링된 클라이언트의 weighted average</strong>를 통해 글로벌 모델을 업데이트</p>
</li>
</ul>
<br/>

<p>Reddi et al.(2021)은 <strong>클라이언트가 생성한 업데이트를 pseudo-gradients로 해석하고 사용할 수 있음</strong>을 주장하며, 이를 통해 FedAvg를 FedOpt 프레임워크로 일반화하여 다양한 클라이언트 및 서버 옵티마이저를 &quot;플러그인&quot;할 수 있도록 한다.</p>
<p>실제 FL 설정에서는 비독립적이고 동일한 분포가 아닌 데이터 분포, 클라이언트 이질성, 엣지에서 제한된 연산, 메모리, 대역폭 등 여러 가지 도전 과제가 있다. </p>
<p>클라이언트의 연산 능력 이질성은 특정 클라이언트가 모델 업데이트를 형성하는 데 &quot;너무 오래&quot; 걸리는 이른바 <strong>지연 문제</strong>를 야기하여, 서버가 이를 기다리지 못하고 진행해야 한다. </p>
<ul>
<li><p>Hsu et al.(2019)은 FedAvgM에서 클라이언트 옵티마이저에 <strong>모멘텀 항을 추가하면 non-IID 설정에서 성능이 지속적으로 향상</strong>됨을 보여준다. </p>
</li>
<li><p>Li et al.(2018)은 FedAvg에 <strong>근접 패널티를 추가하여 지연자가 부분 업데이트를 제출할 수 있도록</strong> 하는 FedProx를 제안한다.</p>
</li>
</ul>
<br/>

<p>통신 효율적인 FL을 위해, Konecny et al.(2017)은 <strong>모델 업데이트가 통신 중 압축되지만 로컬 학습 중에는 압축되지 않는 ❗스케치된 업데이트</strong>와, <strong>로컬 학습이 압축된 표현에서 직접 수행되는 ❗구조화된 업데이트</strong>를 구별한다. </p>
<p>연합 학습 전체 과정에서 가지치기 또는 가중치 재조정에 대해 논의하는 이전 연구는 상대적으로 적다.</p>
<p><br/><br/><br/></p>
<h2 id="network-pruning">Network Pruning</h2>
<hr>
<p>모델 가지치기는 연결을 제거하여 더 큰 신경망(NN)에서 희소 하위 네트워크를 선택하는 것을 목표로 한다. 전통적으로 가지치기 방법은 매우 과매개변수화된 학습된 모델에서 시작하여, 연결을 제거한 후 가지치기된 모델을 미세 조정한다. </p>
<p>가지치기의 일반적인 목표는 연산, 메모리, 통신 또는 기타 자원을 절약하는 것이다. 여러 가지 선택 기준이 가능하며, 여기에는 가중치 크기, 최적의 뇌 손상, 제로 활성화, 테일러 확장 등이 포함된다.</p>
<p>최근 연구들은 초기화 시 &quot;단일 샷&quot; 가지치기를 수행하는 다양한 알고리즘을 제안하였다. </p>
<ul>
<li><p>Lee et al.(2019)은 초기화 시 미니배치를 샘플링하고 연결의 민감도에 따라 정렬하여 연결을 선택한다. </p>
</li>
<li><p>Wang et al.(2020)도 초기화 시 미니배치를 샘플링하지만 가지치기 후 그래디언트 흐름을 유지하려고 시도한다.</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h2 id="dynamic-sparse-training">Dynamic Sparse Training</h2>
<hr>
<p>동적 희소 학습(DST)은 학습 과정에서 정기적으로 선택된 하위 네트워크를 이동시키며, 일정한 수의 매개변수를 유지한다. </p>
<ul>
<li><p>주목할 만한 연구(Mocanu et al. 2018)는 SET 알고리즘을 제안하여 가장 작은 크기의 가중치를 반복적으로 가지치기하고 <strong>❗무작위로 연결을 성장</strong>시킨다. </p>
<p>또한 <strong>특정 밀도 분포를 층별로 유지</strong>하며, <strong>Erdos-Renyi 무작위 그래프 토폴로지를 따르며 층의 입력 및 출력 연결 수로 밀도를 조절</strong>한다. </p>
</li>
<li><p>RigL에서는 희소 마스크를 무작위로 초기화하고, layer-wise magnitude pruning과 <strong>gradient-magnitude weight growth</strong>을 수행한다. </p>
<p>Mocanu et al.(2018)와 마찬가지로, 이들은 특정 층별 희소성 분포를 따르며, ERK 희소성 분포를 도입하여 <strong>밀도를 연결 수 및 커널 크기로 조절한다.</strong></p>
</li>
<li><p>Liu et al.(2021c)는 DST가 매개변수 탐색에서 얻는 이점을 보여준다. 구체적으로, <strong>❗다양한 희소 네트워크를 탐색함으로써 DST는 &quot;시간적 자기 앙상블&quot;</strong>을 효과적으로 수행하여 밀집 네트워크보다도 성능 이점을 제공한다(Liu et al. 2021a,b).</p>
</li>
</ul>
<p><br/><br/><br/></p>
<h2 id="pruning-in-federated-learning">Pruning in Federated Learning</h2>
<hr>
<p>연합 학습(FL) 과정에서 가지치기를 다루는 연구는 두 가지뿐이다. </p>
<br/>

<p><strong>PruneFL</strong>은 특정 클라이언트에서 선택된 초기 마스크에 의존하며, <strong>마스크 재조정을 매 ΔR 라운드마다 수행</strong>하는 FedAvg와 유사한 알고리즘을 수행한다. </p>
<p>학습은 희소 행렬 연산을 통해 수행된다. 마스크 재조정 라운드에서는 <strong>클라이언트가 전체 밀집 그래디언트를 업로드</strong>해야 하며, 서버는 이를 사용하여 집합 그래디언트 g를 형성한다. </p>
<p>마스크를 선택할 때 가지치기 가능한 가중치에 해당하는 인덱스 j는 g²_j / t_j로 정렬된다. 여기서 t_j는 네트워크에서 연결 j를 유지하는 시간 비용의 추정치이다. </p>
<p>이 추정치는 다양한 희소성을 가진 FL의 한 라운드의 시간 비용을 측정하여 실험적으로 결정된다.</p>
<br/>

<p><strong>LotteryFL</strong>은 LGFedAvg에서 영감을 받아 <strong>❗클라이언트가 글로벌 네트워크의 로컬 하위 집합을 선택하여 로컬 표현을 유지</strong>할 수 있도록 한다. </p>
<p>이는 <strong>❗각 클라이언트 c가 별도의 마스크 mc를 유지하는 FedAvg의 확장</strong>으로 설명될 수 있다. 각 라운드 r에서 선택된 클라이언트는 로컬 검증 세트를 사용하여 자신의 하위 네트워크 θ^r * m_c^r를 평가한다. </p>
<p>검증 정확도가 사전 정의된 임계값을 초과하고 클라이언트의 현재 희소성 ||m_c^r||_0가 목표 희소성보다 작은 경우, magnitude pruning을 수행하여 새로운 마스크 m_c^(r+1)를 생성하고 해당 가중치는 초기 값으로 재설정된다.</p>
<p><br/><br/><br/></p>
<h2 id="comparing-feddst-to-prior-pruning-works-in-fl">Comparing FedDST to prior pruning works in FL.</h2>
<hr>
<p>FedDST는 기존의 FL 가지치기 작업과 몇 가지 중요한 차이점을 가지고 있다.</p>
<h3 id="lotteryfl와의-비교">LotteryFL와의 비교</h3>
<ul>
<li><p><strong>글로벌 모델 vs. 로컬 모델 :</strong> </p>
<ul>
<li><p>LotteryFL : <strong>로컬 데이터셋에서만 잘 작동하는 희소 모델 시스템을 생성</strong></p>
</li>
<li><p>FedDST : 시간이 지남에 따라 <strong>동적으로 변화하며 모든 곳에서 잘 작동하는 하나의 글로벌 희소 모델</strong>을 생성</p>
</li>
</ul>
</li>
<li><p><strong>연결 마스크 조정 :</strong> </p>
<ul>
<li><p>FedDST : &quot; <strong>클라이언트와 서버 모두에서 마스크 조정</strong>을 수행</p>
<ul>
<li>상대적으로 적은 오버헤드(층별 크기 가지치기 및 그래디언트 크기 성장을 사용) </li>
</ul>
</li>
<li><p>LotteryFL : <strong>전체 모델이나 그래디언트를 전송</strong>하고, 학습 초기 단계에서도 밀집 모델을 학습</p>
<ul>
<li>FedDST보다 훨씬 무겁다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<br/>

<h3 id="prunefl와의-비교">PruneFL와의 비교</h3>
<ul>
<li><p><strong>비현실적인 설정 :</strong> </p>
<ul>
<li><p>PruneFL : <strong>초기 라운드 이후 클라이언트 마스크를 재조정하지 않으며, 특정 라운드에서 서버에 밀집 그래디언트를 전송</strong>하고, <strong>서버가 다음 라운드의 마스크를 결정</strong></p>
<ul>
<li>데이터 이질성으로 인해 클라이언트 간 그래디언트 크기를 직접 비교할 수 없기 때문에, 그래디언트 집계가 본질적으로 불안정해진다.</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>비교적 높은 오버헤드 :</strong> </p>
<ul>
<li><p>PruneFL : 대부분의 라운드에서 희소 업데이트를 전송하지만, <strong>마스크 조정을 위해 몇 라운드마다 밀집 그래디언트를 전송</strong></p>
</li>
<li><p>FedDST : 학습 전체 동안 고정된 희소성 예산 덕분에 네트워크 대역폭을 거의 소모하지 않는다.</p>
</li>
</ul>
</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="methodology">Methodology</h1>
<hr>
<p>FedDST는 NN의 동적 희소 학습을 완전한 연합 접근 방식으로 제공한다. 이 방법에서는 모든 클라이언트에 대해 좋은 정확도를 제공하는 단일 모델을 학습하는 동시에 최소한의 연산, 메모리, 통신 자원을 소비하는 것을 목표로 한다. 특히 non-iid 설정에서도 잘 작동하도록 설계되었다.</p>
<p><br/><br/><br/></p>
<h2 id="feddst-overview-of-the-general-framework">FedDST: Overview of the General Framework</h2>
<hr>
<ul>
<li><p>서버는 <a href="https://arxiv.org/abs/1911.11134">Evci et al. (2020)</a>에서 설명된 <strong>층별 희소성 분포에 따라 서버 네트워크 θ^1과 희소 마스크 m^1을 초기화</strong>한다. </p>
</li>
<li><p>각 라운드 r에서, <strong>서버는 클라이언트 C_r를 샘플링</strong>한다. </p>
</li>
<li><p><strong>서버 네트워크와 마스크는 클라이언트 c ∈ C_r로 전송</strong>된다. </p>
</li>
<li><p>각 클라이언트는 로컬 학습을 <strong>E 에포크 수행</strong>한다.</p>
</li>
<li><p>로컬 학습의 마지막 에포크 후, 클라이언트는 <strong>모델 질량의 α_r을 다른 연결로 재할당하는 마스크 조정</strong>을 수행한다. </p>
<p>조정은 특정 라운드에서만 수행되며, 조정 빈도는 ΔR로 지정된다.</p>
</li>
<li><p>선택된 클라이언트는 <strong>새로운 희소 네트워크와 마스크(필요한 경우)를 서버에 업로드</strong>하며, </p>
<p>서버는 <strong>수신된 정보를 집계하여 새로운 글로벌 매개변수와 마스크 (θ^r+1, m^r+1)를 생성</strong>한다.</p>
</li>
</ul>
<p><br/><br/></p>
<p><strong>클라이언트 측 마스크 조정 절차</strong>는 RigL에서 영감을 받았으며, 모델 질량의 α_r 을 재할당하여 더 효과적인 하위 네트워크를 찾는 것이 목표이다. </p>
<ul>
<li><p>먼저 <strong>네트워크를 더 높은 희소성 S+(1−S)α_r로 가지치기한 후, 동일한 수의 가중치를 그래디언트 g_c^r를 통해 다시 성장시켜 원래 희소성으로 돌아간다.</strong></p>
</li>
<li><p>같은 라운드에서 <strong>다른 클라이언트는 완전히 다른 방향으로 마스크 공간을 탐색한 다양한 희소 네트워크를 생성</strong>할 수 있기 때문에, 서버는 이러한 <strong>다양한 희소 네트워크를 집계</strong>해야 한다. </p>
</li>
<li><p>α_r을 위해 코사인 감쇠 업데이트 스케줄을 사용한다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/fa6bb37e-e06f-4a8e-abc9-b2cab401e33c/image.png" alt=""></p>
</li>
</ul>
<p>첫 번째 라운드에서는 a_1 = a이고, 재할당된 가중치의 비율은 라운드 R_end까지 0으로 감소한다. </p>
<p><strong>α 값이 클수록 마스크 공간을 더 빠르게 탐색</strong>하고, 값이 <strong>작을수록 점진적 조정과 클라이언트 간의 합의를 촉진</strong>한다. </p>
<p>실험을 통해 α의 변화가 모델 성능에 미치는 영향을 탐구한다.</p>
<p><br/><br/><br/></p>
<h2 id="server-aggregation-with-robustness-to-heterogeneity">Server Aggregation with Robustness to Heterogeneity</h2>
<hr>
<p>서버 통합 방법은 클라이언트 이질성에 견고하도록 설계되었다. 서버는 클라이언트로부터 기울기를 직접 받지 않고, <strong>클라이언트가 보낸 매개변수와 마스크를 사용</strong>하여 다음 라운드의 마스크를 결정한다. </p>
<p>이는 <strong>sparse weighted average</strong>를 사용하여 수행된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/680d5e46-f329-4866-91dd-3f9038c367de/image.png" alt=""></p>
<p>이 방법은 FedAvg에서 사용된 가중 평균에서 영감을 받아, 특정 매개변수에 대한 클라이언트의 영향을 <strong>해당 클라이언트의 데이터셋 크기로 가중치를 부여</strong>한다. </p>
<p>FedDST에서는 <strong>클라이언트가 가중치를 제거한 경우 해당 클라이언트의 매개변수 값은 무시</strong>되어, 병적인 non-IID FL 환경에서 도움이 된다. </p>
<p>이 접근 방식은 클라이언트 간 기울기 크기가 크게 달라질 수 있는 PruneFL과 같은 방법에서 발생하는 마스크 불안정성 문제를 피할 수 있다. </p>
<p>FedDST는 가중치 크기와 클라이언트의 &quot;투표&quot;를 사용하여 마스크 결정을 내려 이 문제를 해결한다.</p>
<p><br/><br/><br/></p>
<h2 id="accuracy-gains-from-dynamic-sparsity-a-spatialtemporal-ensembling-effect">Accuracy Gains from Dynamic Sparsity: A SpatialTemporal Ensembling Effect.</h2>
<hr>
<p>FedDST는 통신 및 계산 절감뿐만 아니라 성능 향상도 제공한다. 이는 특히 non-IID 환경에서 두드러진다. 이러한 향상은 <strong>공간-시간 앙상블 효과</strong> 덕분이다:</p>
<ul>
<li><p><strong>공간 앙상블 :</strong> FedDST에서는 클라우드에서 <strong>모든 클라이언트로 하나의 마스크가 전송</strong>되지만, <strong>각 클라이언트는 마스크를 조정하고 로컬 데이터에 따라 가중치를 재샘플링</strong>할 수 있다. </p>
<p>이러한 <strong>새로운 희소 마스크와 가중치는 클라우드에서 주기적으로 재조립되어 드롭아웃과 유사한 정규화 효과</strong>를 만든다. 각 클라이언트는 밀집된 클라우드 모델의 다른 서브네트워크를 효과적으로 샘플링하여 글로벌 모델의 강인함을 제공한다.</p>
</li>
</ul>
<ul>
<li><p><strong>시간 앙상블 :</strong> <strong>FedDST는 마스크 공간을 시간에 따라 탐색하면서 가중치 theta^r를 학습</strong>한다.</p>
<p>이는 훈련 내내 지속적인 매개변수 탐색을 가능하게 하여, 공간-시간 과잉 매개변수화를 통해 희소 학습의 표현력과 일반화 능력을 크게 향상시킬 수 있다.</p>
</li>
</ul>
<p>이 공간-시간 앙상블 효과는 FedDST에만 고유하며, 다른 FL 가지치기 방법에 비해 우수한 성능을 제공한다.</p>
<p><br/><br/><br/></p>
<h2 id="extending-feddst-to-other-fl-frameworks">Extending FedDST to Other FL Frameworks</h2>
<hr>
<p>위의 기본 예시에서 보았듯이, FedDST는 다양한 로컬 및 글로벌 최적화 도구를 쉽게 수용할 수 있다. 알고리즘 1은 FedDST의 일반적인 개요를 보여주며, <strong>로컬 훈련은 필요에 따라 다양한 최적화 도구를 사용</strong>할 수 있다. </p>
<p>예를 들어, 실험에서 로컬 최적화 도구로 모멘텀을 사용하는 SGD를 사용했다. 집계된 희소 업데이트로 생성된 pseudo-gradients도 다른 글로벌 최적화 도구와 함께 사용할 수 있다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/220e7837-7ee7-4892-9f5d-4b64c91deb47/image.png" alt=""></p>
<ul>
<li><p>서버에서 초기 모델을 설정하고, 각 라운드마다 클라이언트를 샘플링한다.</p>
</li>
<li><p>클라이언트는 로컬 데이터를 이용해 희소 네트워크를 학습하고, 특정 라운드마다 마스크를 재조정한다.</p>
</li>
<li><p>서버는 클라이언트로부터 업데이트된 모델을 수집하여 집계하고, 가지치기를 통해 희소성을 조정한다.</p>
</li>
</ul>
<blockquote>
<p><strong>θ^{r+1/2} :</strong> 중간 집계 네트워크. 서버가 클라이언트로부터 갱신된 로컬 네트워크 마스크를 집계한 것
<strong>θ^{r+1} :</strong> 층별 크기 기반 가지치기를 수행하여 희소성 분포 S를 달성한 최종 모델</p>
</blockquote>
<br/>

<p>FedDST는 FedProx와 그 proximal 페널티 || theta_r^c - theta_r ||_2와도 호환된다. </p>
<blockquote>
<p><strong>FedProx</strong>
: 모델 파라미터의 변화량을 제한하는 추가적인 페널티 항을 포함하는 연합 학습 방법</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/63e36b5d-f872-49b3-8cb3-b8b22431727d/image.png" alt=""></p>
<blockquote>
<p><strong>proximal 페널티 항</strong>
: 클라이언트 모델 θ_r^c가 서버 모델 θ_r와 크게 다르지 않도록 강제하는 역할을 한다.</p>
</blockquote>
<br/>

<p>그러나 이 페널티를 마스크 재조정에 직접 사용하면, 페널티가 pruning된 가중치에 가중치 감소 항으로 작용하게 된다. 이로 인해 이러한 가중치가 다시 활성화될 가능성이 낮아진다. 따라서 <strong>클라이언트 성장 시, proximal term 없이 손실에 해당하는 그라디언트를 사용</strong>한다.</p>
<p><br/><br/><br/></p>
<h2 id="communication-and-local-training-savings">Communication and Local Training Savings</h2>
<hr>
<h3 id="communication-analysis">Communication Analysis</h3>
<p>FedDST는 업로드 및 다운로드 링크 모두에서 상당한 대역폭 절약을 제공한다. FedDST에서는 각 라운드에서 동일한 희소성 S가 유지되며, 마스크는 최대 Delta R 라운드마다 한 번씩만 업로드 및 다운로드된다. </p>
<p>따라서 FedDST의 평균 업로드 및 다운로드 비용은 다음과 같다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/5397199f-9c0f-4917-a301-84a4875d6b71/image.png" alt=""></p>
<blockquote>
<p><strong>n :</strong> 네트워크의 파라미터 수</p>
</blockquote>
<p>R_end 이후에는 비용이 32(1 - S)n 이 된다. 또한, 어떤 클라이언트에서든 최대 업로드 또는 다운로드 비용은 (32(1 - S) + 1) n 비트로, 어떤 라운드에서도 큰 업로드 부담을 회피할 수 있다. </p>
<p>이러한 업로드 비용 절약은 느린 연결을 가진 클라이언트가 전체 모델이나 그라디언트를 업로드해야 하는 상황을 방지하여, 실질적으로 스트래글러 문제를 해결하는 데 도움이 된다. </p>
<p>상업적인 FL 시스템에서 많은 클라이언트를 고려할 때, 특정 클라이언트가 한 번만 선택될 가능성이 높다. 이러한 대역폭 비용 상한으로 인해, FedDST는 셀룰러 네트워크에서도 FL을 통해 모델 학습을 실용적으로 만든다.</p>
<p><br/><br/></p>
<p>이는 PruneFL과 대조된다. PruneFL은 클라이언트가 매 Delta R 라운드마다 전체 그라디언트를 서버로 전송해야 하므로, 평균 업로드 비용은 다음과 같다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/94cb09db-5f4d-477b-bdd9-8eb5df249b3f/image.png" alt=""></p>
<p>따라서 FedDST는 PruneFL보다 업로드 비용 면에서 최대 5배 저렴하다. </p>
<br/>

<p>PruneFL은 또한 초기 희소성 패턴을 제공하기 위해 하나의 클라이언트에 의존한다. FL의 로컬 클라이언트 이질성 때문에, 하나의 클라이언트에 의해 생성된 마스크는 해당 클라이언트의 로컬 데이터 분포를 반영하는 경향이 있다. </p>
<p>같은 이유로, 나중에 희소성 패턴에 대한 업데이트는 불안정성을 보인다. FedDST는 초기 무작위 마스크로 시작한 후 희소 가중 평균 집계를 통해 이러한 문제를 완전히 회피한다.</p>
<p><br/><br/><br/></p>
<h3 id="computation-analysis">Computation Analysis</h3>
<hr>
<p>FedDST는 FL 과정에서 희소 네트워크를 유지함으로써 로컬 계산 작업량을 상당히 절약한다. FedDST의 어떤 부분도 밀집 훈련을 요구하지 않는다. FLOP 절약 측면에서, 이는 모델의 희소성에 비례하여 훈련 및 추론에서 대부분의 FLOP를 건너뛸 수 있음을 의미한다. </p>
<p>예를 들어, CIFAR-10에서 사용하는 네트워크의 경우 80% 희소성에서 순방향 계산에 0.8 MFLOP만 필요하지만, 밀집 네트워크에는 4.6 MFLOP가 필요하다. </p>
<p>같은 이유로, 누적 업로드 데이터 제한과 관련된 실험도 다양한 FLOP 한도에서의 정확도를 대략 반영한다.</p>
<br/>

<p>기존의 관례에 따라, FedDST는 현재까지 요소별 비구조적 희소성만 고려하고 있다. 비구조적 희소성은 전통적으로 불규칙한 접근으로 인해 실제 하드웨어 이점으로 번역하기 어렵다고 여겨졌다. </p>
<p>그러나 70%-90% 비구조적 희소성에서, XNNPack은 최근 스마트폰에서 밀집 기준보다 상당한 속도 향상을 보여, FL 하드웨어 플랫폼에서 실질적인 로컬 훈련 속도 향상을 최적화하고, 동적 희소 훈련에 구조적 희소성을 통합하는 미래 작업에 동기를 부여한다.</p>
<p><br/><br/><br/></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Sparse Model Soups: A recipe for Improved
Pruning via Model Averaging]]></title>
            <link>https://velog.io/@yun_haaaa/SPARSE-MODEL-SOUPS-A-RECIPE-FOR-IMPROVEDPRUNING-VIA-MODEL-AVERAGING</link>
            <guid>https://velog.io/@yun_haaaa/SPARSE-MODEL-SOUPS-A-RECIPE-FOR-IMPROVEDPRUNING-VIA-MODEL-AVERAGING</guid>
            <pubDate>Fri, 19 Jul 2024 03:23:48 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2306.16788">https://arxiv.org/abs/2306.16788</a>
Github : <a href="https://github.com/ZIB-IOL/SMS">https://github.com/ZIB-IOL/SMS</a></p>
<br/>
<br/>

<h1 id="abstract">Abstract</h1>
<hr>
<p>신경망은 가지치기를 통해 상당히 압축될 수 있으며, 저장 및 계산 요구를 줄이면서도 예측 성능을 유지할 수 있다. Model Soups는 여러 모델의 파라미터를 단일 모델로 평균화하여 일반화 및 분포 외(OOD) 성능을 향상시키며, 추론 시간은 증가하지 않는다. 하지만 임의의 희소 모델을 평균화하면 서로 다른 희소 연결성 때문에 전체 희소성이 감소하기 때문에 희소성과 파라미터 평균화를 동시에 달성하는 것은 어렵다. </p>
<p>이 연구는 배치 순서나 가중치 감소와 같은 다양한 하이퍼파라미터 설정으로 단일 Iterative Magnitude Pruning 재훈련 단계를 탐색하여 평균화에 적합한 모델을 생성하고, 이러한 모델이 <strong>설계상 동일한 희소 연결성을 공유</strong>한다는 것을 보여준다. 이러한 모델을 <strong>평균화하면 개별 모델보다 일반화 및 OOD 성능이 크게 향상</strong>된다. </p>
<p>이를 바탕으로 SPARSE MODEL SOUPS(SMS)를 소개한다. SMS는 각 <strong>가지치기-재훈련 사이클을 이전 단계의 평균화된 모델로 시작하여 희소 모델을 병합</strong>하는 새로운 방법이다. SMS는 희소성을 유지하고, 희소 네트워크의 이점을 활용하며, 모듈화 및 완전 병렬화가 가능하며 IMP의 성능을 크게 향상시킨다. 또한 SMS는 최첨단 가지치기-훈련 중 접근 방식을 향상시키기 위해 적응될 수 있음을 보여준다.</p>
<br/>
<br/>

<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>최첨단 신경망 아키텍처는 일반적으로 수백만 또는 수십억 개의 파라미터를 사용하는 과도한 매개변수 설정에 의존한다. 그 결과, 이러한 모델은 상당한 메모리 요구 사항을 가지며 훈련 및 추론 과정에서 계산 요구가 높다. </p>
<p>그러나 최근 연구는 <strong>Pruning</strong>, 즉 개별 파라미터나 그룹을 제거하여 이러한 자원 요구를 크게 줄일 수 있음을 보여주었다. 결과적으로 생성된 희소 모델은 저장 및 추론 중 부동 소수점 연산(FLOPs) 요구가 훨씬 적으면서도 밀집 모델과 유사한 성능을 유지한다.</p>
<br/>

<p>다른 연구 분야에서는 여러 모델을 활용하여 예측기의 성능을 크게 향상시킬 수 있음을 보여주었다. 보류된 검증 데이터셋에서 가장 좋은 모델을 선택하고 나머지를 버리는 대신, 이러한 <strong>앙상블</strong>은 <strong>개별적으로 훈련된 여러 모델의 출력 예측을 평균화</strong>한다. </p>
<p><strong>예측 앙상블</strong>은 예측 성능을 향상시키고, 보정, 분포 외 일반화, 모델 공정성 등 예측 불확실성 메트릭에 긍정적인 영향을 미치는 것으로 나타났다. </p>
<p>앙상블의 중요한 단점은 <strong>배포 중 모든 모델을 평가해야 한다</strong>는 점으로, <strong>추론 비용이 m배로 증가</strong>한다는 것이다. 이 문제는 일부 <strong>희소화된, 더 효율적인 모델 앙상블을 활용하여 부분적으로 해결</strong>되었다.</p>
<br/>

<p>여러 연구는 대신 <strong>파라미터를 평균화하여 추론을 위한 단일 모델을 구성</strong>할 것을 제안한다. 예측 앙상블과 달리, 이러한 <strong>모델 수프는 모델이 손실 풍경의 선형적으로 연결된 분지에 위치</strong>해야 한다. 그러나 서로 다른 랜덤 시드로 동일한 초기화로 모델을 처음부터 훈련하면 <em><strong>개별 모델보다 성능이 훨씬 떨어지는 파라미터 평균을 생성하는 경우가 많다.</strong></em></p>
<p>최근 연구는 단일 분지 내에서 정렬하기 위해 뉴런 순열을 조사하고 있다. 평균화에 적합한 네트워크를 식별하는 초기 과제 외에도 희소 네트워크의 계산적 이점을 활용하려 할 때 또 다른 문제가 발생한다. <strong>서로 다른 희소 연결성을 가진 모델을 평균화하면 전체 희소성이 감소하고, 다시 가지치기가 필요할 수 있으며, 이는 성능 저하를 초래할 수 있다.</strong>
<img src="https://velog.velcdn.com/images/yun_haaaa/post/a7268b67-db43-4733-9b01-b2ea7db9d3ce/image.png" alt=""></p>
<br/>

<p>이 연구에서는 <strong>희소성을 활용하면서 여러 모델을 단일 모델로 결합하는 이점을 동시에 활용</strong>하는 문제에 도전한다. </p>
<p>전이 학습 분야의 최근 연구에서 영감을 받았다. <strong>pretrained model의 여러 복사본을 랜덤 시드만 다르게 하여 미세 조정하면, 평균화에 충분히 유사하고 일반화 개선을 위해 충분히 다양한 모델을 생성할 수 있음</strong>을 보여주었다. </p>
<p>본 논문의 핵심은 표준 학습 후 가지치기 전략, 예를 들어 IMP의 단일 prune-retrain 단계가 전이 학습 패러다임과 밀접하게 유사하다는 관찰에 있다. Pretrained model에서 시작하여, <strong>최적화 목표</strong>는 가지치기에 의해 부과된 새로운 대상 도메인 또는 하위 공간 제약으로 인해 갑작스럽게 변하며, 이어서 <strong>pruning 후 회복을 위해 &#39;retraining&#39;과 상호 교환적으로 사용되는 &#39;fine-tuning&#39;이라는 훈련 과정이 따른다.</strong></p>
<br/>

<p>전이 학습의 fine-tuning 단계와 마찬가지로 <strong>pruning 후 retraining 단계에서 다양한 하이퍼파라미터 설정을 탐색하면 설계상 동일한 희소 연결성을 공유하면서 평균화에 적합한 모델을 생성할 수 있음</strong>을 발견했다. </p>
<p>이러한 희소 평균은 개별 모델과 m배 재훈련된 모델보다 우수한 성능을 보이며, 효과적으로 IMP의 실행 시간을 줄인다. 또한, 본 논문에서는 방금 얻은 <strong>평균화된 모델에서 다음 pruning-retraining 사이클을 시작하여, 개별 재훈련 실행의 성능도 향상</strong>시킨다. </p>
<br/>

<p>본 논문에서 제안하는 Sparse Model Soups는 앞서 언급한 문제를 해결하고, <strong>m에 독립적인 추론 복잡성을 가능하게 하며, pretrained model을 활용하여 처음부터 훈련할 필요 없이 희소성 패턴을 유지하면서 희소성 이점을 활용하며, IMP의 일반화 및 OOD 성능을 크게 향상</strong>시킨다.</p>
<br/>
<br/>

<h3 id="contributions">Contributions</h3>
<ol>
<li>잘 훈련된 모델을 가지치기하고 배치 순서, 가중치 감소, 재훈련 기간 및 길이 등 다양한 하이퍼파라미터로 여러 복사본을 재훈련하면, 개별 구성 요소보다 우수한 일반화 및 OOD 성능을 보이는 평균화된 모델을 생성할 수 있음을 증명한다. 중요한 점은 이러한 모델들이 <strong>pruning된 부모 모델의 희소성 패턴을 유지하면서 파라미터 평균에서 보존된다</strong>는 것이다.</li>
</ol>
<ol start="2">
<li><p>IMP의 각 prune-retrain 단계를 평균화된 모델에서 시작하는 아이디어를 활용하여 희소 모델을 단일 분류기로 병합하는 새로운 방법인 <strong>Sparse Model Soups(SMS)</strong>를 제안한다. SMS는 두 가지 방법으로 IMP의 성능을 크게 향상시킨다: </p>
<ul>
<li><p><strong>평균화</strong>는 일반화 및 OOD 성능 측면에서 개별 모델을 능가한다. </p>
</li>
<li><p><strong>평균화된 모델에서 재훈련</strong>된 모델은 단일 모델에서 재훈련된 모델보다 더 나은 성능을 보인다.</p>
</li>
</ul>
</li>
<li><p>본 논문의 발견을 훈련 중 pruning 영역으로 확장하여, SMS의 다재다능성을 입증하며 이를 여러 다른 최첨단 접근 방식과 통합한다. 이는 성능을 크게 향상시키고, 훈련 중 희소화를 수행하는 다른 주요 방법들과의 경쟁력을 높인다.</p>
</li>
</ol>
<br/>
<br/>
<br/>
<br/>

<h1 id="2-methodology-sparse-model-soups">2. Methodology: Sparse Model Soups</h1>
<br/>

<h2 id="21-preliminaries">2.1 Preliminaries</h2>
<hr>
<p>앞서 소개한 IMP 접근 방식과 같이 개별 가중치를 제거하는 모델 가지치기에 중점을 둔다. IMP는 학습 후 가지치기 알고리즘으로, 세 단계 파이프라인을 따른다. </p>
<ul>
<li><strong>Pretrained model을 시작으로</strong></li>
<li><strong>특정 임계값 이하의 가중치를 pruning하고</strong></li>
<li><strong>retraining을 통해 예측 성능을 복원한다.</strong></li>
</ul>
<p>이 prune-retrain 사이클은 여러 번 반복되며, 각 pruning 단계의 임계값은 미리 정의된 단계 수 후 목표 희소성을 달성하기 위해 적절한 백분위수로 결정된다. 최근 연구는 magnitude pruning이 더 복잡한 알고리즘과 경쟁할 만한 성능을 가진 희소 모델을 생성함을 보여주었다.</p>
<br/>

<p>m개의 희소 모델 f_θi가 가중치 θ_i ∈ R^n, i∈{1,...,m}를 가지는 경우, <strong>예측 앙상블</strong>은 모델의 출력을 평균한 것과 동등한 기능을 하는 모델을 구성한다. 이 앙상블은 <strong>평가를 위해 m번의 순방향 패스가 필요하지만, 전체 희소성 수준을 유지</strong>한다. </p>
<br/>

<p>반면, 본 논문은 다른 모델의 선형 결합인 <strong>단일 모델의 성능과 희소성</strong>에 중점을 둔다. 스칼라 λ_i ∈ R가 주어지면, 가중치가 주어진 예측 함수 f_thetā를 고려한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/bc3bf042-f304-49a0-8426-b49254d6c37c/image.png" alt=""></p>
<p>모든 i에 대해 λ_i =1/m인 경우, thetā는 모든 네트워크의 평균을 나타낸다. </p>
<br/>

<p><strong>임의의 희소 모델의 가중치를 평균화하면 전체 희소성이 감소할 수 있다.</strong> 이는 다른 네트워크가 서로 다른 희소 연결성을 가질 수 있어 평균화 과정에서 텐서의 0을 제거하기 때문이다. </p>
<p>이 문제를 해결하기 위해 <strong>thetā를 원래 네트워크의 희소성 수준에 맞추기 위해 다시 pruning</strong>한다. 그러나 이러한 접근 방식은 희소성 패턴이 크게 다를 경우 pruning 유발 성능 저하가 발생할 수 있다는 단점이 있다.</p>
<br/>
<br/>
<br/>

<h2 id="22-sparse-model-soups">2.2 SPARSE MODEL SOUPS</h2>
<hr>
<p>전이 학습 분야의 최근 발전에서 영감을 받아, <strong>pretrained model에서 fine-tuning된 모델이 동일한 손실 분지에 위치할 수 있으며, 이를 결합하여 soup를 만들 수 있음</strong>을 보여준다. 본 논문은 동일한 pruning된 모델에서 재훈련하는 동안 유사한 행동을 달성할 수 있다고 가정한다. </p>
<p>본 논문의 동기는 전이 학습 패러다임과 IMP의 단일 단계 사이의 유사성에서 비롯된다. <strong>소스 도메인에서 대상 도메인으로 전환</strong>할 때 최적화 목표가 갑작스럽게 변경되며, 새로운 목표를 최소화하기 위해 적응(즉, <strong>fine-tuning</strong>)이 필요하다. 유사하게, <strong>&#39;강한&#39; 가지치기는 손실을 갑작스럽게 변경</strong>하고, 새로 추가된 희소성 제약을 고려하여 적응(즉, <strong>retraining</strong>)이 필요하다.</p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/8e66212b-3695-41a1-81b4-baf2e6908ff0/image.png" alt=""></p>
<p>이 아이디어의 단일 단계는 그림 2의 왼쪽에 설명되어 있다. </p>
<ul>
<li><p><strong>Pretrained model의 가중치 θ가 pruning되어 모델 θp 를 생성하고, 이를 m번 복제</strong>한다. 이 설정에서 pruning된 가중치는 영구적으로 훈련 불가능한 상태로 남는다. </p>
</li>
<li><p>이후, <strong>m개의 모델 각각은 다양한 하이퍼파라미터 설정(예: 랜덤 시드, 가중치 감소 요인, 재훈련 길이, 학습률 스케줄)을 사용하여 독립적으로 재훈련</strong>된다. </p>
</li>
<li><p>마지막으로, m개의 <strong>재훈련된 모델이 단일 모델로 병합</strong>된다. </p>
</li>
</ul>
<br/>

<p>이 과정은 모든 m개의 <strong>재훈련된 모델 θ1 ,...,θm 이 고정된 pruning 마스크를 가진 동일한 희소성 패턴을 공유하도록 보장</strong>한다. 그러나 여러 가지치기-재훈련 사이클 후 모델을 결합할 때 <strong>모든 모델 간 동일한 희소 연결성이 보장되지 않는다.</strong> </p>
<p>이를 해결하기 위해 <strong>각 단계 후 모델을 평균화하고, 이전에 평균화된 모델로 다음 단계를 시작</strong>한다. 이로 인해 SMS라는 방법이 도출되며, 그림 2의 오른쪽에 의사 코드로 제시된다.</p>
<br/>

<p>SMS는 여러 이점을 제공하며 주요 과제를 해결한다. </p>
<ol>
<li><p><strong>최종 모델의 추론 복잡성은 m에 독립적</strong>이다. 이 방법은 모듈화가 높아, 각 단계에서 다양한 하이퍼파라미터 설정과 서로 다른 m을 허용한다. </p>
</li>
<li><p>m 모델의 재훈련은 완전히 병렬화되어 효율성이 향상된다(3.2절 참조). </p>
</li>
<li><p>각 단계를 이전 단계에서 병합된 모델로 시작함으로써 희소성 패턴이 유지되고, 희소 네트워크의 이점을 활용할 수 있다. 사이클 수가 증가함에 따라 네트워크가 더 희소해져 추가적인 효율성 향상이 가능해진다. </p>
</li>
<li><p>SMS는 처음부터 훈련할 필요 없이 대규모 pretrained model의 이점을 효과적으로 활용한다.</p>
</li>
</ol>
<br/>

<p>모델을 효과적으로 병합하여 일반화를 향상시키는 것은 도전적일 수 있다. 모델들이 멀리 떨어질 수 있기 때문이다. 본 논문에서는 주로 Wortsman et al. (2022a)에서 제안된 두 가지 볼록 조합 방법인 UniformSoup과 GreedySoup을 사용한다.</p>
<p><strong>UniformSoup</strong>은 <strong>각 모델을 동일하게 가중치(λi = 1/m)</strong>한다. 반면, <strong>GreedySoup</strong>은 검증 정확도에 따라 모델을 정렬하고, <strong>이전 하위 집합에 대한 검증 정확도를 개선하는 경우에만 모델을 순차적으로 포함</strong>한다.</p>
<br/>
<br/>

<h1 id="4-related-work">4. Related Work</h1>
<hr>
<p>희소성과 관련된 연구 문헌을 검토한다. 희소화 접근법에 대한 포괄적인 리뷰는 Hoefler et al. (2021)을 참조.</p>
<br/>

<h3 id="모델-평균화">모델 평균화</h3>
<p>Stochastic Weight Averaging (Izmailov et al., 2018)은 SGD 경로를 따라 파라미터를 평균화하여 일반화를 향상시킨다. </p>
<p>Wortsman et al. (2022a)와 Rame et al. (2022)은 다양한 하이퍼파라미터로 미세 조정된 모델을 평균화하여 모델 수프의 일반화 및 OOD 성능이 향상된다고 보여준다. </p>
<p>섹션 3.3에서 본 논문의 접근 방식과 가장 유사한 것은 Late-phase learning (von Oswald et al., 2020)으로, 특정 파라미터를 독립적으로 훈련하고 평균화하지만 가지치기는 하지 않는다. </p>
<p>Gueta et al. (2023)은 언어 모델의 미세 조정을 탐구하며, 서로 가까운 모델 주위의 영역에 잠재적으로 우수한 모델이 포함될 수 있음을 밝혀냈다. </p>
<p>Croce et al. (2023)은 적대적 강건 모델의 수프를 탐구하고, Choshen et al. (2022)은 여러 미세 조정된 모델을 병합하여 기본 모델을 향상시킨다. </p>
<p>Wortsman et al. (2022b)은 제로샷과 미세 조정된 모델을 평균화하여 강건한 미세 조정을 도입한다. </p>
<p>SMS와 유사하게, Jolicoeur-Martineau et al. (2023)은 독립적으로 훈련된 모델을 정기적으로 평균화하지만 가지치기는 하지 않는다.</p>
<br/>

<p><strong>희소성</strong>과 <strong>파라미터 평균화</strong>를 결합하는 기존 연구와 본 논문의 작업 사이의 주요 차이점을 강조한다. </p>
<p>Yin et al. (2022b)는 <strong>dynamic sparse training을 사용하여 고정된 하이퍼파라미터로 단일 실행 내에서 모델을 평균화</strong>하는 반면, 본 논문의 방법은 다양한 하이퍼파라미터 설정을 가진 여러 실행에서 모델을 평균화하는 prune-after-training 방법이다.</p>
<p>그들의 prune-and-grow 접근법은 <strong>다양한 희소성 패턴을 탐구하고 희소성을 유지하기 위해 다시 pruning를 요구</strong>하는 반면, 본 논문의 방법은 일관된 희소성 패턴을 유지하여 다시 pruning을 의도적으로 피한다. 이 접근 방식이 re-pruning 접근 방식(IMP-RePrune)을 크게 개선함을 명확히 보여준다. 이는 재가지치기의 영향을 완화하기 위해 설계된 CIA나 CAA 같은 전략을 사용할 때도 마찬가지다.</p>
<p>마찬가지로, Yin et al. (2022a)는 <strong>weight rewinding을 사용한 IMP를 사용하여 단일 훈련 경로에서 다양한 prune-retrain 사이클의 IMP 서브 네트워크를 평균화</strong>하지만, 이 접근법도 re-pruning을 필요로 한다. 반면, 본 논문의 접근 방식은 병렬로 훈련된 모델을 평균화하는 것이다. 또한, 그들의 목표는 희소한 모델을 생성하는 것이 아니라 <strong>복권 티켓을 생성하는 것</strong>이다. </p>
<p>유사하게, Stripelis et al. (2022)는 <strong>다수결 투표를 통해 지역 클라이언트 마스크로 글로벌 마스크를 중앙 업데이트</strong>하는 Federated Learning 알고리즘인 FedSparsify를 소개한다.</p>
<p>또한, 본 논문의 작업은 Jaiswal et al. (2023)의 연구와도 다르다. 그들은 <strong>마스크 생성을 위한 초기 가지치기 마스크를 평균화</strong>하는 데 중점을 두는 반면, SMS는 희소 모델의 파라미터를 평균화하는 데 중점을 둔다.</p>
<br/>
<br/>

<h3 id="모드-연결성">모드 연결성</h3>
<p>Neyshabur et al. (2020)는 처음부터 훈련된 모델들이 선형적으로 연결되지 않는 반면, 사전 훈련된 모델을 미세 조정한 모델들은 유사하며 동일한 손실 베이슨 내에 위치한다고 보여준다. </p>
<p>Entezari et al. (2022)는 다른 시드로 훈련된 모델들이 뉴런 순열에 대해 선형적으로 연결된다고 추측한다.  </p>
<p>Ainsworth et al. (2023)은 모델을 공유된 손실 베이슨으로 변환하기 위한 순열 알고리즘을 제안하며, Singh &amp; Jaggi (2020)는 뉴런 소프트 정렬을 위한 모델 퓨전을 적용해 밀집 모델을 희소 모델로 통합하면서 필터 pruning을 향상시킨다. </p>
<p>마찬가지로, Benzing et al. (2022)는 초기화 시점에서도 모델이 손실 계곡을 공유함을 보여주는 순열 알고리즘을 도입한다.</p>
<p>Jordan et al. (2022)는 딥 네트워크의 보간에서 &#39;분산 붕괴&#39;를 탐구하고 이를 완화하기 위한 전략을 제안한다.</p>
<p>여러 연구(Frankle et al., 2020; Evci et al., 2022; Paul et al., 2023)는 <strong>가중치 리와인딩(IMP-WR)과 함께 IMP의 무작위성에 대한 안정성</strong>을 연구한다.</p>
<p>Evci et al. (2022)는 <strong>훈련된 복권 티켓과 IMP-WR 솔루션이 동일한 분지로 수렴함</strong>을 보여주고, Paul et al. (2023)은 <strong>다양한 희소성에서 연속적인 IMP-WR 솔루션이 선형 모드로 연결되어 손실 안정성을 유지</strong>함을 발견한다.</p>
<br/>
<br/>

<h3 id="예측-앙상블">예측 앙상블</h3>
<p>여러 연구는 여러 모델의 출력을 평균화하는 예측 앙상블에 초점을 맞춘다(Lakshminarayanan et al., 2017; Huang et al., 2017; Garipov et al., 2018; Mehrtash et al., 2020; Chandak et al., 2023). </p>
<p><strong>희소성</strong> 맥락에서 Liu et al. (2021)은 <strong>다양한 앙상블 후보의 효율적 생성을 위해 DST를 활용</strong>한다. </p>
<p>Whitaker &amp; Whitley (2022)는 <strong>모델 복사본을 무작위로 pruning하고 retraining하여 앙상블을 구성</strong>하고, Kobayashi et al. (2022)는 사전 훈련된 모델의 하위 네트워크를 미세 조정한다. </p>
<p>앙상블에 대한 설문 조사는 Ganaie et al. (2021)을 참조.</p>
<br/>
<br/>
<br/>



<h1 id="5-discussion">5. Discussion</h1>
<hr>
<p>효율적이고 성능이 높은 희소 네트워크는 자원이 제한된 환경에서 매우 중요하다. 하지만 희소 모델은 파라미터 평균화의 이점을 쉽게 활용할 수 없다. </p>
<p>이 문제를 해결하기 위해 SMS라는 기술을 제안했다. 이 기술은 희소성을 유지하면서 모델을 병합하여 IMP를 크게 향상시키고 여러 기준을 능가한다. </p>
<p>SMS를 훈련 중의 크기 기반 가지치기 방법에 통합함으로써 성능과 경쟁력을 높였다. </p>
<p>비록 Pruning, 즉 네트워크 압축의 한 종류에 초점을 맞췄지만, 본 논문의 연구는 희소화 알고리즘을 이해하고 개선하는 중요한 단계로 작용할 것이라고 생각한다.</p>
<br/>
<br/>
<br/>



<h2 id="average-models-code">Average Models Code</h2>
<hr>
<pre><code class="language-python">
def average_models(self, soup_list: list[Candidate], soup_weights: torch.Tensor = None,
                   device: torch.device = torch.device(&#39;cpu&#39;)):
    if soup_weights is None:
        soup_weights = torch.ones(len(soup_list)) / len(soup_list)
    ensemble_state_dict = OrderedDict()
</code></pre>
<ul>
<li><p><strong>soup_list:</strong> 앙상블에 포함될 모델들의 리스트</p>
</li>
<li><p><strong>soup_weights:</strong> 각 모델에 할당된 가중치</p>
</li>
<li><p><strong>ensemble_state_dict:</strong> 앙상블 모델의 파라미터를 저장할 OrderedDict</p>
</li>
</ul>
<br/>

<pre><code class="language-python">for idx, candidate in enumerate(soup_list):
    candidate_id, candidate_file = candidate.id, candidate.file
    state_dict = torch.load(candidate_file, map_location=device)
    for key, val in state_dict.items():
        factor = soup_weights[idx].item()  # No need to use tensor here
        if &#39;_mask&#39; in key:
            # We dont want to average the masks, hence we skip them and add later
            continue
        if key not in ensemble_state_dict:
            ensemble_state_dict[key] = factor * val.detach().clone()  # Important: clone otherwise we modify the tensors
        else:
            ensemble_state_dict[key] += factor * val.detach().clone()  # Important: clone otherwise we modify the tensors
</code></pre>
<ul>
<li><p>각 후보 모델에 대해, 모델 파일을 로드하고 state_dict로 파라미터를 가져온다.</p>
</li>
<li><p><strong>factor :</strong> 해당 모델의 가중치</p>
</li>
<li><p><strong>_mask로 끝나는 키 :</strong> 마스크 파라미터를 의미하며, 이들은 평균하지 않고 나중에 추가된다.</p>
</li>
<li><p>ensemble_state_dict에 각 파라미터의 가중치를 적용하여 합산한다. 처음 등장하는 파라미터는 초기화하고, 이후 등장하는 동일한 파라미터는 합산한다.</p>
</li>
</ul>
<br/>

<pre><code class="language-python">
# Add the masks from the last state_dict
for key, val in state_dict.items():
    if &#39;_mask&#39; in key:
        ensemble_state_dict[key] = val.detach().clone()

return ensemble_state_dict
</code></pre>
<ul>
<li><p>마지막 모델의 마스크 파라미터를 ensemble_state_dict에 추가한다. 이는 마스크 파라미터가 가중치 평균에 포함되지 않도록 하기 위함이다.</p>
</li>
<li><p>최종적으로 완성된 ensemble_state_dict를 반환한다.</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Complement Sparsification: Low-Overhead Model Pruning for Federated Learning]]></title>
            <link>https://velog.io/@yun_haaaa/Complement-Sparsification-Low-Overhead-Model-Pruning-for-Federated-Learning</link>
            <guid>https://velog.io/@yun_haaaa/Complement-Sparsification-Low-Overhead-Model-Pruning-for-Federated-Learning</guid>
            <pubDate>Thu, 18 Jul 2024 18:44:11 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2303.06237">https://arxiv.org/abs/2303.06237</a>
Github : <a href="https://github.com/XJ8/complement-sparsification-FL">https://github.com/XJ8/complement-sparsification-FL</a></p>
<br/>

<h1 id="abstract">Abstract</h1>
<hr>
<p>연합 학습(FL)은 개인 정보를 보호하는 분산 심층 학습 패러다임으로, 자원이 제한된 모바일 및 IoT 장치에 있어 상당한 통신 및 계산 노력을 필요로 한다는 문제점이 있다. 모델 가지치기/희소화는 이러한 문제를 해결할 수 있는 희소 모델을 개발하지만, 기존의 희소화 솔루션은 서버와 클라이언트 간의 양방향 통신 오버헤드가 낮고, 클라이언트의 계산 오버헤드가 적으며, 모델 정확도가 좋은 요구사항을 동시에 만족시킬 수 없다. </p>
<p>본 논문에서는 <strong>보완 희소화(CS)</strong>를 제안하는데, 이는 <strong>서버와 클라이언트에서 보완적이고 협력적인 가지치기를 통해 이러한 요구사항을 모두 충족하는 가지치기 메커니즘</strong>이다. </p>
<br/>

<p>각 라운드에서 CS는 <strong>모든 클라이언트의 일반적인 데이터 분포를 캡처하는 가중치를 포함하는 글로벌 희소 모델을 생성</strong>하고, <strong>클라이언트는 글로벌 모델에서 가지치기된 가중치로 로컬 희소 모델을 생성하여 로컬 트렌드를 캡처</strong>한다. </p>
<p>모델 성능을 개선하기 위해 이러한 두 종류의 보완 희소 모델을 <strong>각 라운드에서 밀집 모델로 집계한 후 반복적인 과정을 통해 가지치기</strong>한다. </p>
<br/>

<p>CS는 서버와 클라이언트 모두에서 기본 FL보다 약간의 계산 오버헤드만 필요로 한다. 본 논문에서는 CS가 기본 FL의 근사치임을 입증하며, 따라서 모델이 잘 작동함을 보여준다. 두 가지 인기 있는 FL 벤치마크 데이터셋을 사용하여 CS를 실험적으로 평가한다. CS는 양방향 통신을 크게 줄이면서도 기본 FL과 비교할 만한 성능을 달성한다. 또한, CS는 FL을 위한 기본 가지치기 메커니즘보다 우수하다.</p>
<p><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>연합 학습(FL)은 사용자의 개인 정보를 보호하는 협력적인 심층 학습 패러다임이다. 클라이언트는 개인 정보에 민감한 원시 데이터를 공유하지 않고, 로컬에서 훈련된 그라디언트만을 집계 서버에 전송한다. 전통적으로 FL은 밀집되고 과매개변수화된 심층 학습(DL) 모델을 사용한다. </p>
<p>실증적 증거는 이러한 모델이 확률적 경사 하강법(SGD)으로 훈련하기 더 쉽다는 것을 시사한다. 그러나 과매개변수화는 상당한 메모리, 계산 및 통신 오버헤드를 초래한다. 이는 추론뿐만 아니라 훈련도 수행해야 하는 자원이 제한된 모바일 및 IoT 장치에게 문제가 된다. 따라서, FL의 계산 및 통신 오버헤드를 줄이면서도 좋은 모델 성능을 유지하는 것이 모바일 및 IoT 장치에서 FL의 광범위한 배포를 보장하는 데 필수적이다.</p>
<br/>

<p>이 문제에 대한 한 가지 잠재적 해결책은 모델 <strong>가지치기/희소화</strong>이다. 이는 모델 성능을 희생하지 않으면서 희소 신경망을 생성하는 것을 목표로 한다. 희소 모델은 밀집 모델에 비해 메모리 및 계산 비용이 크게 감소하며, 동일한 크기의 작은 밀집 모델보다 더 나은 성능을 발휘한다. </p>
<p>희소 모델은 네트워크의 일반화 능력을 향상시키고, <strong>적대적 공격에 더 강하다</strong>(왜?) 가지치기/희소화는 FL에서도 사용할 수 있으며, 서버와 클라이언트가 협력하여 희소 신경망을 최적화하여 훈련의 계산 및 통신 오버헤드를 줄일 수 있다.</p>
<p>희소 모델의 이점에도 불구하고, FL을 위한 통신-계산 효율적인 모델 가지치기를 설계하는 것은 어려운 일이다. </p>
<br/>


<p>일반적인 가지치기 메커니즘에는 세 가지 단계가 있다: </p>
<ul>
<li>훈련(밀집 모델)</li>
<li>가중치 제거</li>
<li>미세 조정</li>
</ul>
<p>일부 가중치가 제거된 모델은 추가적인 미세 조정을 통해 성능 손실을 회복해야 하므로, 미세 조정과 가중치 제거는 메커니즘의 계산 오버헤드를 나타낸다. </p>
<p>FL에서는 이 오버헤드를 서버에만 부과할 수 없으므로, 서버는 미세 조정을 위한 원시 훈련 데이터에 접근할 수 없다. 따라서 가지치기는 서버와 클라이언트가 협력하여 수행해야 하며, 클라이언트에 상당한 계산 오버헤드가 부과된다. </p>
<p>FL은 매 라운드마다 클라이언트와 서버 간에 모델 업데이트를 교환하므로, 더 작은 가지치기 모델은 더 낮은 통신 오버헤드를 초래할 것이다. 그러나 낮은 통신 오버헤드는 가지치기를 위한 계산 오버헤드와 맞바꾸는 것이다.</p>
<p><br/><br/></p>
<p>연합 학습(FL)을 위한 통신-계산 효율적인 모델 가지치기 메커니즘을 설계하려면 네 가지 요구사항을 충족해야 한다: </p>
<ul>
<li>(R1) 클라이언트에서 서버로 전송되는 로컬 업데이트 크기를 줄이는 것</li>
<li>(R2) 서버에서 클라이언트로 전송되는 글로벌 모델 크기를 줄이는 것</li>
<li>(R3) 클라이언트에서 가지치기 계산 오버헤드를 줄이는 것</li>
<li>(R4) 기본 FL에서 밀집 모델과 비교할 만한 모델 성능을 달성하는 것</li>
</ul>
<p>이러한 요구사항은 모두 서버가 개인 정보 보호 문제로 원시 데이터에 접근할 수 없다는 가정하에 충족되어야 한다. 기존의 FL 가지치기 연구들은 이러한 요구사항을 동시에 충족할 수 없다.</p>
<p>이들은 클라이언트에 상당한 계산 오버헤드를 부과하거나 클라이언트에서 서버로의 통신 오버헤드만 줄일 뿐, 반대 방향은 고려하지 않는다. 주요 미해결 문제는 이러한 요구사항들이 명백히 상충된다는 점이다.</p>
<p><br/><br/></p>
<p>이 논문에서는 모든 요구사항을 충족하는 연합 학습을 위한 가지치기 메커니즘인 보완 희소화(CS)를 제안한다. 주요 아이디어는 <strong>서버와 클라이언트가 추가적인 미세 조정 없이 보완적으로 희소 모델을 생성하고 교환하는 것</strong>이다. </p>
<p>첫 라운드는 기본 FL에서 시작하며, 클라이언트가 서버에서 집계할 밀집 모델을 훈련한다. 서버는 집계된 모델의 낮은 크기의 가중치를 제거하여 <strong>글로벌 희소 모델을 생성</strong>하고 이를 클라이언트에 전송한다. </p>
<p>이후 라운드에서 각 클라이언트는 서버로부터 받은 희소 모델을 훈련하고, <strong>로컬에서 계산된 희소 모델만을 서버로 다시 전송</strong>한다. 클라이언트 희소 모델은 <strong>글로벌 희소 모델에서 원래 0이었던 가중치만 포함하여 글로벌 모델을 보완</strong>한다. </p>
<p>그런 다음 서버는 <strong>클라이언트 희소 모델을 이전 라운드의 글로벌 희소 모델과 집계하여 새로운 밀집 모델을 생성</strong>한다. 초기 라운드와 마찬가지로, 서버는 작은 크기의 가중치를 제거하고 새로운 글로벌 희소 모델을 클라이언트에 전송한다. </p>
<p><em>새로운 모델은 클라이언트 모델 가중치가 주어진 집계 비율로 증폭되어 다른 가중치를 넘어설 수 있도록 하여, 다른 0이 아닌 가중치 부분집합을 갖는다. 이러한 방식으로, 모델의 모든 가중치는 시간이 지남에 따라 학습하도록 업데이트된다.</em></p>
<br/>

<p>CS에서는 서버와 클라이언트 모두 희소 모델을 전송하여 양방향 통신 오버헤드를 절약한다(R1 및 R2). 의도적인 미세 조정 없이 시스템에 부과되는 계산 오버헤드는 최소화된다(R3). CS에서 서버의 가지치기는 전체 데이터 분포를 포착하는 글로벌 모델을 유지하며, <strong>새로 학습된 클라이언트 데이터 분포는 보완 가중치(즉, 글로벌 희소 모델의 0 가중치)에 위치</strong>한다. </p>
<p>실질적으로 클라이언트의 훈련은 <strong>추가적인 미세 조정 없이 가지치기 동안의 모델 성능 손실을 회복</strong>한다. 반복적으로 글로벌 모델의 성능이 향상된다. 궁극적으로 클라이언트는 수렴된 글로벌 희소 모델을 추론에 사용할 수 있다. 이 과정은 기본 FL에서 밀집 모델과 비교할 만한 모델 성능을 달성할 수 있다(R4).</p>
<p><br/><br/></p>
<p>본 논문에서는 CS가 기본 FL의 근사치임을 입증하고, 트위터 감성 분석과 이미지 분류(FEMNIST)를 위한 두 가지 인기 있는 벤치마크 데이터셋으로 CS를 평가한다. 통신 오버헤드를 정량화하기 위해 모델 희소성을 측정한다. 구체적으로 CS는 서버 모델 희소성이 50%에서 80% 사이에서 좋은 모델 정확도를 달성한다. 이 희소성은 서버에서 클라이언트로의 통신 오버헤드 감소를 나타낸다. </p>
<p>클라이언트는 81.2%에서 93.2% 사이의 희소성을 가진 모델 업데이트를 생성한다. 클라이언트 희소성은 클라이언트에서 서버로의 통신 오버헤드 감소를 나타낸다. CS는 기본 FL에 비해 부동 소수점 연산(FLOP)에서 29.1%에서 49.3%의 계산 오버헤드를 줄인다. 또한 실험과 정성적 분석을 통해 CS가 FL에서 모델 정확도와 오버헤드 측면에서 기존의 기본 모델 가지치기 메커니즘보다 우수함을 입증한다.</p>
<p><br/><br/><br/></p>
<h1 id="2-related-work">2. Related Work</h1>
<hr>
<p>모델 가지치기는 구조적 가지치기와 비구조적 가지치기로 분류될 수 있다. 중앙 집중 학습을 위한 모델 가지치기에 관한 많은 문헌이 있다. 이러한 방법들은 계산 비용이 많이 들고, 전역 데이터 분포를 대표하는 데이터셋이 필요하다. 따라서, 원시 데이터를 서버와 공유하지 않는 FL에서는 실용적이지 않으며, 자원이 제한된 모바일 및 IoT 장치에서는 사용하기 어렵다. </p>
<p>반면, CS 모델 가지치기는 자원 제한 장치에서의 FL을 위해 설계되었다. 중앙 집중 데이터셋을 필요로 하지 않으며, 계산 효율성을 위해 명시적인 미세 조정을 제거한다. CS는 FL에서 비구조적 가지치기를 적용하는데, 이는 FL 훈련 라운드 동안 다양한 중요한 가중치를 업데이트할 수 있는 자유를 제공하며, 따라서 더 나은 성능을 달성한다.</p>
<br/>

<p>최근 문헌에는 FL을 위한 모델 가지치기에 관한 여러 연구가 포함되어 있다. </p>
<ul>
<li><p>Han, Wang, and Leung (2020)는 그래디언트 희소성을 통해 통신과 계산의 근사 최적화 트레이드오프를 결정하는 온라인 학습 접근 방식을 제안했다. </p>
</li>
<li><p>Liu et al. (2021)은 모델 가지치기를 적용하여 수렴 속도를 최대화한다. </p>
</li>
<li><p>PruneFL (Jiang et al. 2022)은 모델 크기를 조정하여 &quot;가장 빠르게&quot; 학습하는 최적의 모델 파라미터 집합을 찾는다. </p>
</li>
<li><p>FL-PQSU (Xu et al. 2021)는 구조적 가지치기, 가중치 양자화 및 선택적 업데이트의 3단계 파이프라인으로 구성된다. </p>
</li>
<li><p>Yu et al. (2021)은 추론 가속화를 위해 데이터셋 인식 동적 가지치기를 적용하는 적응형 가지치기 방식을 제안한다. </p>
</li>
<li><p>SubFedAvg (Vahidian, Morafah, and Lin 2021)에서는 클라이언트가 가지치기를 통해 작은 서브네트워크를 사용한다. </p>
</li>
</ul>
<p>이들 연구는 대부분 기본 FL과 비교할 만한 모델 정확도를 달성하고, 클라이언트가 서버에 로컬 업데이트를 전송할 때 통신을 절약하지만, <strong>추가 최적화나 가지치기에서 발생하는 성능 손실 회복을 위해 클라이언트에 상당한 계산 오버헤드를 부과</strong>한다. </p>
<p>CS에서는 클라이언트에서의 가지치기 계산 오버헤드가 매우 낮은데, 이는 <strong>클라이언트의 유일한 작업이 이전 글로벌 희소 모델에서 0이 아니었던 가중치를 제거하는 것</strong>이기 때문이다. 이 낮은 오버헤드 덕분에 CS는 자원이 제한된 장치에서 실용적이다.</p>
<br/>

<p>지금까지 언급된 연구들은 <strong>모델 가중치를 가지치기</strong>하지만, 다른 연구들은 클라이언트에서 <strong>모델의 뉴런을 제거</strong>하는 방법을 선택한다. </p>
<ul>
<li><p>장치 이질성에 대처하기 위해 Ordered Dropout (OD)은 클라이언트가 원본 네트워크의 서브네트워크를 순서대로 훈련하도록 한다. 그러나, OD는 서버에서 클라이언트로의 통신을 절약할 수 없다. </p>
</li>
<li><p>FedDrop에서는 서버에서 드롭아웃을 사용하여 이질적인 드롭아웃 비율로 글로벌 모델에서 서브넷을 무작위로 생성하고, 클라이언트는 서브넷만 훈련하여 서버로 전송한다. 이 연구는 양방향 통신을 절약하지만, 기본 FL과 비교하여 모델 정확도가 떨어진다. CS는 양방향 통신 오버헤드를 줄일 뿐만 아니라, 기본 FL과 비교할 만한 성능을 달성한다. </p>
</li>
</ul>
<br/>

<p>가지치기 외에도 FL에서 오버헤드를 줄이는 다른 방법들이 있다. </p>
<ul>
<li><p>Karimireddy et al. (2020)와 Wang et al. (2019)의 연구는 통신 빈도를 최적화한다. </p>
</li>
<li><p>LotteryFL (Li et al. 2020)은 클라이언트가 학습한 개인화된 로터리 네트워크를 통신한다. </p>
</li>
<li><p>Ozkara et al. (2021)은 손실 함수를 조작하여 FL에서 개인화된 압축을 위해 양자화 및 증류를 사용한다. </p>
</li>
<li><p>Lin et al. (2018)에서는 클라이언트가 큰 그래디언트만 집계하여 전송하고 작은 그래디언트는 충분히 커질 때까지 로컬에 누적한다. </p>
</li>
</ul>
<p>이러한 방법들은 희소 모델 사용의 모든 이점을 누릴 수 없는데, 예를 들어 <strong>더 나은 일반화 성능과 미지의 데이터에 대한 모델 성능 유지, 그리고 적대적 공격에 대한 높은 강인성</strong> 등이다. 이 방법들은 서로 다른 클래스의 모델 압축에 속하므로, 이들을 CS와 비교하지 않는다.</p>
<p><br/><br/><br/></p>
<h1 id="3-complement-sparsification-in-fl">3. Complement Sparsification in FL</h1>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/db070c72-5ceb-4bdd-a8ff-4510d00dd0c6/image.png" alt=""></p>
<p>보완 희소화(CS)의 목표는 서버와 클라이언트 간의 양방향 통신 오버헤드를 줄이고, 시스템에 최소한의 계산 오버헤드를 부과하며, 좋은 모델 성능을 달성하는 것이다.</p>
<br/>

<p><strong>초기 라운드</strong></p>
<ul>
<li><p><strong>클라이언트 :</strong> 랜덤 가중치로부터 학습하고, 그들의 밀집 모델을 서버로 보낸다. </p>
</li>
<li><p><strong>서버 :</strong> 집계 후 모델 가중치의 일부를 작은 값으로 가지치기하고, 글로벌 희소 모델을 클라이언트에게 보낸다. </p>
</li>
</ul>
<p>가지치기 마스크도 함께 전송되어 가지치기된 가중치를 표시한다. 마스크에서 0은 가중치가 제거되었음을, 1은 가중치가 남아있음을 의미한다.</p>
<br/>

<p><strong>다음 라운드</strong></p>
<ul>
<li><p><strong>클라이언트 :</strong> 학습 후 글로벌 희소 모델의 역마스크를 적용하고 그들의 희소 모델을 다시 서버로 보낸다. </p>
</li>
<li><p><strong>서버 :</strong> 이전 라운드의 글로벌 희소 모델과 클라이언트 모델을 집계하여 완전한 밀집 모델을 생성한다. </p>
</li>
</ul>
<p>새로운 밀집 모델에서는 작은 값의 가중치가 가지치기되고, 이전 라운드와 다른 새로운 가지치기 마스크를 가진 새로운 글로벌 희소 모델이 생성된다. </p>
<p>클라이언트 모델의 가중치는 주어진 집계 비율로 증폭되어 다른 가중치를 넘어서게 된다.</p>
<br/>

<p>모델의 정확도는 시간이 지남에 따라 향상된다. CS는 <strong>미세 조정을 필요로 하지 않으므로, 계산 오버헤드는 단지 일부 가중치를 제거하는 정도</strong>다. 또한 <strong>서버와 클라이언트 모두 희소 모델을 전송</strong>하므로 양방향 통신 오버헤드가 크게 줄어든다.</p>
<br/>
<br/><br/>

<h2 id="31-preliminaries">3.1 Preliminaries</h2>
<hr>
<p>CS를 공식화하기 위해, 먼저 FL의 공식화를 시작한다. FL은 글로벌 경험적 손실 F(w)를 최소화하는 모델 가중치 w를 찾는 분산 딥러닝 시스템이다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a78cd08c-0345-4d0c-aeb1-2686a802ee69/image.png" alt=""></p>
<blockquote>
<p><strong>𝐹_𝑛(𝑤) :</strong> 각 클라이언트 𝑛의 로컬 경험적 손실
<strong>𝑥_𝑛 :</strong> 클라이언트 𝑛의 로컬 데이터셋
<strong>∣𝑥_𝑛∣ :</strong> 클라이언트 𝑛의 데이터셋 크기
<strong>∣𝑥∣=∑∣𝑥_𝑛∣ :</strong> 모든 클라이언트의 데이터셋 크기
<strong>f_𝑖(𝑤) :</strong> 주어진 클라이언트의 주어진 데이터 샘플 𝑖에 대한 손실 함수</p>
</blockquote>
<br/>

<p>각 클라이언트 𝑛은 매 라운드마다 로컬 데이터에서 학습한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0394b0f9-67dd-41f8-a437-59173bdc45b1/image.png" alt=""></p>
<blockquote>
<p><strong>𝜃 :</strong> 현재 로컬 모델
<strong>𝑤𝑡 :</strong> 이전 라운드의 글로벌 모델
<strong>𝜂 :</strong> 학습률
<strong>𝑔𝑛=∇𝐹𝑛(𝑤𝑡) :</strong> 로컬 데이터에서의 𝑤𝑡의 평균 그래디언트</p>
</blockquote>
<p>이 단계는 다른 데이터 배치와 함께 여러 번 반복될 수 있으며, 전체 데이터셋에 걸쳐 반복된다.</p>
<br/>

<p>모든 클라이언트가 매 라운드마다 집계에 참여한다고 가정한다. 서버는 다음의 식 (4) 또는 (5)와 같이 클라이언트의 학습 결과를 집계한다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/6d7e0f73-c4aa-41fc-a209-1f9d018b7a3a/image.png" alt=""></p>
<p>식 (4)와 (5)는 (3) 때문에 동일하다. 식 (4)에서 서버는 클라이언트 학습률 𝜂와 다른 학습률 𝜂를 사용할 수 있다.</p>
<br/>
<br/><br/>

<h2 id="32-cs-workflow">3.2 CS Workflow</h2>
<hr>
<p><strong>초기 라운드</strong></p>
<p>CS는 기본 FL에서 시작한다. 집계된 가중치 w_t+1는 Pruning 함수 (w&#39;_t+1, mask) = Prune(w_t+1)을 갖는 서버에 의해 프루닝된다. Pruning 함수는 어떠한 의도한 fine-tuning 없이 낮은 크기의 가중치를 제거한다. 이는 낮은 오버헤드를 위한 것이다. </p>
<p>Pruning된 모델 w&#39;_t+1과 pruning mask는 다음 라운드를 위해 클라이언트에게 전송된다. Pruning 마스크는 이진 텐서로 w&#39;_t+1이 0으로 설정된 위치를 나타내는 이진 텐서다.</p>
<br/>

<p><strong>연속 라운드</strong></p>
<p>새로운 라운드에서 각 클라이언트 𝑛은 서버로부터 가지치기된 모델 w&#39;t를 전달받고, 로컬 데이터 x_n에서 학습하여 새로운 로컬 모델 𝜃_t+1,n을 생성한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/92aa7cc7-41da-4321-8414-1d30136af5fd/image.png" alt=""></p>
<br/>

<p>그런 다음, 클라이언트는 역 비트 마스크 ¬mask를 계산하고 𝜃_t+1,n과 ¬mask에 element-wise product를 적용한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/8d204342-eb23-4db0-a326-1705b0300d31/image.png" alt=""></p>
<p>통신 오버헤드를 절약하고 서버에서 클라이언트로 마스크를 전송하지 않으려면 사소한 계산 오버헤드를 희생하면서 클라이언트가 직접 w&#39;t에서 ¬mask를 도출할 수 있다.</p>
<br/>

<p>서버는 클라이언트로부터 보완 희소화된 가중치 𝜃&#39;_t+1,n 을 수신하고, 이전 라운드의 w&#39;_t 및 집계 비율 𝜂&#39;과 함께 이를 집계한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/144e90b4-efc8-47ec-837a-0e43a83543c3/image.png" alt=""></p>
<p>그런 다음 서버는 이전 라운드의 프로토콜을 반복하며, CS 작업 흐름은 반복적으로 계속된다.</p>
<p><br/><br/>
<br/></p>
<h2 id="33-algorithmic-description">3.3 Algorithmic Description</h2>
<hr>
<p>다음은 CS의 의사코드를 보여준다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/c2c5045c-e002-412a-86bb-9289e0cbf371/image.png" alt=""></p>
<p>CS는 다중 라운드, 반복 FL 주기로 실행된다 (4-14행). 여기에는 클라이언트가 데이터 배치를 사용하여 수행하는 로컬 모델 업데이트 (16-20행), 로컬 모델의 보완 희소화 (21행), 서버 집계 (9-12행), 글로벌 모델 가지치기 (13행)가 포함된다. </p>
<p>글로벌 모델을 가지치기하기 위해, 작은 값의 가중치를 제거하고 (26-29행) 0인 가중치를 마스킹하는 이진 텐서를 생성한다 (30-33행).</p>
<br/>
<br/><br/>

<h2 id="34-technical-insights">3.4 Technical Insights</h2>
<hr>
<p>FL에서 클라이언트는 로컬 데이터를 적합화한 모델을 생성하고, 서버의 집계는 클라이언트 모델의 노이즈를 평균화하여 글로벌 데이터를 적합화한 글로벌 모델을 생성한다. 다시 말해, 클라이언트와 서버는 상호 보완적인 관계에 있다. </p>
<p>각 라운드마다 클라이언트는 글로벌 모델을 방해하여 로컬 데이터 분포를 더 잘 따르게 하고, 서버는 클라이언트 모델을 조정하여 글로벌 데이터 분포를 포착한다. CS는 이러한 통찰을 활용하여 각각 서버와 클라이언트에서 보완 희소 모델을 생성한다. 이렇게 하면 계산 및 통신 오버헤드를 줄이면서도 좋은 모델 성능을 달성할 수 있다.</p>
<br/>

<p>CS에서는 서버가 집계된 밀집 모델에서 희소 모델을 추출한다. 이 희소 모델은 글로벌 데이터 분포를 유지한다. </p>
<p>서버가 희소 모델을 미세 조정하지 않더라도, 클라이언트는 암묵적으로 미세 조정을 수행한다. 클라이언트는 로컬 데이터 분포를 학습하고, 로컬과 글로벌 분포 간의 변화를 반영한 클라이언트 희소 모델을 생성한다. </p>
<p><strong>업데이트는 글로벌 희소 모델 가중치의 보완 집합(즉, 이전에 0이었던 가중치)에 더 쉽게 반영</strong>된다. 따라서 클라이언트는 식 (7)과 같이 모델을 보완 희소화하고, <strong>중요한 모델 업데이트만 서버에 전송</strong>하여 낮은 통신 오버헤드를 유지한다. 이 과정은 <strong>클라이언트의 로컬 데이터로 인해 글로벌 희소 모델의 0이 아닌 가중치가 과적합되는 것을 피할 수 있다.</strong></p>
<br/>

<p>계산 오버헤드는 대부분 서버에 부과되며, <strong>클라이언트는 역 가지치기 마스크를 적용하는 것뿐</strong>이다. 정확한 모델을 위해 모든 가중치가 시간이 지남에 따라 업데이트되도록 하려면, 각 라운드마다 CS는 완전한 밀집 모델을 생성하고 이전 라운드와 다른 가지치기 마스크를 생성해야 한다. </p>
<p>이는 식 (8)과 같이 t+1 라운드의 클라이언트 모델의 보완 가중치를 t 라운드의 글로벌 모델 가중치와 집계하여 달성된다. 구체적으로, 새로운 집계된 모델 가중치는 글로벌 희소 모델 가중치와 클라이언트 가중치의 가중 합을 더하여 계산된다. </p>
<p>서버는 상수 집계 비율 𝜂&#39; &gt; 1 을 사용하여 이전 라운드에서 가지치기된 가중치가 다른 가중치를 초과하도록 보장한다. 이는 현재 라운드에서 가지치기될 가능성을 줄인다. 일부 클라이언트 업데이트가 항상 작아 서버에 의해 제거되는 경우, 훈련은 더 높은 𝜂&#39;를 사용할 수 있지만, 그래디언트 폭발을 방지하기 위해 1/𝜂 보다 높지 않아야 한다 (섹션 3.5 참조).</p>
<br/>
<br/><br/>


<h1 id="35-algorithm-analysis">3.5 Algorithm Analysis</h1>
<hr>
<p>CS가 실제로 성능 면에서 vanilla FL의 근사치임을 보여주기 위해, CS(8)에서 vanilla FL(4)의 집계 함수를 다음과 같이 유도한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a4362e8a-831e-4ba2-a78f-ee8604ed6a7f/image.png" alt=""></p>
<p>식 (9)는 θ&#39;_t+1,n ≈ θ_t+1,n − w&#39;_t에서 나온다. 이는 로컬에서 학습된 클라이언트 모델 θ_t+1,n이 이전 글로벌 희소 모델 w_t′ 와 주로 w_t′ 의 0 가중치에서 차이가 나기 때문이다. </p>
<p>θ_t+1,n − w&#39;_t는 w&#39;_t의 0이 아닌 가중치를 0으로 설정하여 (7)의 θ_t+1,n * ¬mask와 유사하다. 식 (10)은 합에서 −η를 빼내어 유도된다. 식 (11)은 (10)에서 (6)을 사용하여 유도된다. 최종 결과인 식 (12)은 가지치기된 가중치 w&#39;_t가 가지치기 전의 가중치 w_t를 근사하기 때문에 작은 크기의 가중치만 차이가 난다.</p>
<p>식 (12)와 (4)를 비교해보면, 서버는 η&#39;η를 학습률로 적용한다. 집계 비율 η&#39;는 클라이언트 학습률에 대한 서버 학습률 비율로, 서버 학습률을 클라이언트 학습률에 맞추기 위해 사용된다. 실제로 학습률은 일반적으로 0과 1 사이에서 선택되므로, η&#39;는 1과 1/η 사이에서 선택되어 w&#39;_t을 초과하도록 하면서도 w_t+1 의 폭발을 방지해야 한다.</p>
<p><br/><br/></p>
<h2 id="글로벌-희소-모델-vs-집계된-밀집-모델">글로벌 희소 모델 vs. 집계된 밀집 모델</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/48333e5a-bdeb-401c-91bb-2460c499cb07/image.png" alt=""></p>
<p>그림 6과 7은 SA 및 IC 모델에서 CS의 글로벌 희소 모델과 집계된 밀집 모델(각 라운드에서 희소화 이전 모델) 간의 비교를 보여준다. </p>
<p>전체적으로 글로벌 희소 모델은 부드러운 학습 곡선을 나타내며 집계된 모델보다 성능이 뛰어나다. 이는 CS에서 통신 오버헤드를 줄이고 낮은 크기의 가중치를 제거하여 모델 성능을 유지하는 저오버헤드 모델 가지치기의 효과를 입증한다. </p>
<p>CS에서는 <strong>집계된 모델</strong>이 글로벌 분포를 캡처할 뿐만 아니라 <strong>클라이언트 데이터에서 유도된 잡음 분포 변이에 의해 오염</strong>된다. <strong>각 라운드에서 새로 집계된 모델에서 낮은 크기의 가중치를 제거하는 것만으로도 잡음 분포 변이를 효과적으로 제거</strong>할 수 있으며, 글로벌 희소 모델은 글로벌 데이터 분포를 안정적으로 학습할 수 있다.</p>
<p><br/><br/></p>
<h2 id="서버-모델-희소성과-모델-정확도">서버 모델 희소성과 모델 정확도</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/f99b7105-f087-4ca3-b63a-dc73dde049c1/image.png" alt=""></p>
<p>그림 8과 9는 SA와 IC 모델에서 서버 모델 희소성에 따라 모델 정확도가 어떻게 변하는지를 보여준다. 서버 모델 희소성은 모델마다 다르게 설정할 수 있는 파라미터로, 시스템 운영자는 모델 정확도와 통신/계산 오버헤드 감소 간의 원하는 균형을 달성할 수 있다. </p>
<p>일반적으로 서버 모델 희소성이 낮을수록 모델 성능이 더 좋다. SA의 경우, 희소성이 90%이어도 성능이 좋으며(50% 희소성과 비교하여 정확도 저하가 2%에 불과), IC의 경우 희소성을 최대 70%로 유지해야 수용 가능한 성능을 달성할 수 있다.</p>
<p><br/><br/></p>
<h1 id="conclusion">Conclusion</h1>
<hr>
<p>자원 제약이 있는 장치에서 FL의 채택을 돕기 위한 실용적인 모델 가지치기 기법인 Complement Sparsification (CS)을 제안한다. CS에서 서버와 클라이언트는 오버헤드를 줄이면서 좋은 정확도의 모델을 구축하기 위해 밀집 모델의 희소하고 상보적인 부분 집합을 생성하고 교환한다. CS는 클라이언트와 서버 간의 협력을 통해 가지치기된 모델을 암묵적으로 미세 조정한다. </p>
<p>희소 모델은 적은 계산 노력으로 생성된다. CS는 Vanilla FL의 근사치임을 증명했다. 실험적으로 CS는 텍스트 및 이미지 응용 프로그램에 대한 두 가지 인기 있는 벤치마크 데이터셋으로 평가된다. CS는 최대 93.2%의 통신 절감과 49.3%의 계산 절감을 달성하면서 Vanilla FL과 유사한 성능을 보였다. CS는 모델 정확도와 오버헤드 측면에서 베이스라인 모델보다 뛰어난 성능을 발휘한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Audio Deepfake Detection : A Survey]]></title>
            <link>https://velog.io/@yun_haaaa/Audio-Deepfake-Detection-A-Survey</link>
            <guid>https://velog.io/@yun_haaaa/Audio-Deepfake-Detection-A-Survey</guid>
            <pubDate>Sat, 08 Jun 2024 12:32:12 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2308.14970">https://arxiv.org/abs/2308.14970</a></p>
<p><br/><br/></p>
<h1 id="2-개요">2. 개요</h1>
<hr>
<p>오디오 딥페이크 탐지 분야는 딥페이크 기술, 대회, 데이터셋, 평가 지표 및 탐지 방법 측면에서 활발히 발전하고 있다.</p>
<br/>

<h2 id="21-딥페이크-오디오의-종류">2.1 딥페이크 오디오의 종류</h2>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/52d38478-dfb7-463d-a320-a07176377c3d/image.png" alt=""></p>
<p>딥페이크 오디오는 AI 기술을 통해 중요한 속성이 조작되었지만, 여전히 자연스러움을 유지하는 모든 오디오를 일반적으로 의미한다. 
<br/><br/></p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/2060bd66-f45c-40a0-94c8-737e25469cc8/image.png" alt=""></p>
<br/>

<h3 id="211-텍스트-음성-변환">2.1.1 텍스트-음성 변환</h3>
<p>텍스트-음성 변환(TTS)은 음성 합성으로 잘 알려져 있으며, 그림 2 (a)에 표시된 바와 같이 임의의 텍스트를 주어 이해 가능하고 자연스러운 음성을 합성하는 것을 목표로 한다. TTS 모델은 심층 신경망의 발전으로 현실적이고 인간 같은 음성을 생성할 수 있다. TTS 시스템은 주로 텍스트 분석 및 음성 파형 생성 모듈로 구성된다. </p>
<p>음성 파형 생성에는 두 가지 주요 방법이 있다: </p>
<ul>
<li>concatenative</li>
<li>statistical parametric TTS</li>
</ul>
<p>후자는 종종 음향 모델과 보코더로 구성된다. 가장 최근에는 고품질의 음성을 생성하기 위해 Variational
Inference with adversarial learning을 사용하는 엔드-투-엔드 모델이 제안되었다. 예로는 VITS와 FastDiff-TTS가 있다.</p>
<br/>

<h3 id="212-음성-변환">2.1.2 음성 변환</h3>
<p>음성 변환(VC)은 그림 2 (b)와 같이 디지털로 사람의 목소리를 복제하는 것을 의미한다. 이는 주어진 화자의 음성의 음색과 억양을 다른 화자의 것으로 바꾸는 것을 목표로 하며, 음성의 내용은 동일하게 유지된다. VC 시스템의 입력은 주어진 화자의 자연 발화다. </p>
<p>VC 기술에는 주로 세 가지 주요 접근 방식이 있다: </p>
<ul>
<li>statistical parametric </li>
<li>frequency warping</li>
<li>unit-selection</li>
</ul>
<p>통계적 파라메트릭 모델에는 통계적 파라메트릭 TTS와 유사한 보코더가 포함된다. 최근에는 사람의 목소리 특성을 모방하기 위해 엔드-투-엔드 VC 모델도 제안되었다.
<br/></p>
<h3 id="213-감정-페이크">2.1.3 감정 페이크</h3>
<p>감정 페이크는 음성의 다른 정보는 그대로 유지하면서 감정만을 변경하는 것을 목표로 한다. 예를 들어, 그림 2 (c)에 나와 있는 바와 같이, 화자 B가 행복한 감정으로 말한 원래 발화를 슬픈 감정으로 변경한 것이다. 감정 변환 방법은 평행 데이터 기반 및 비평행 데이터 기반 방법으로 나뉜다.
<br/></p>
<h3 id="214-장면-페이크">2.1.4 장면 페이크</h3>
<p>장면 페이크는 원래 발화의 음향 장면을 다른 장면으로 변경하는 것을 포함하며, 이는 화자 신원 및 음성 내용을 변경하지 않는다. 예를 들어, 그림 2 (d)에 나와 있는 바와 같이, 실제 발화의 음향 장면이 &quot;사무실&quot;이고, 가짜 발화의 음향 장면이 &quot;공항&quot;인 경우다. 원래 오디오의 장면이 다른 것으로 조작되면, 오디오의 진위성 및 무결성 검증이 신뢰할 수 없게 되고, 원래 오디오의 의미조차 변경될 수 있다.
<br/></p>
<h3 id="215-부분적-페이크">2.1.5 부분적 페이크</h3>
<p>부분적 페이크는 발화 중 일부 단어만을 변경하는 것에 중점을 둔다. 가짜 발화는 원래 발화를 진짜 또는 합성된 오디오 클립으로 조작하여 생성된다. 원래 발화와 가짜 클립의 화자는 동일한 사람이다. 합성된 오디오 클립은 화자 신원을 변경하지 않는다. 예를 들어, 그림 2 (e)에 나와 있다.
<br/><br/><br/></p>
<p><strong>다양한 딥페이크 오디오 유형의 특징</strong></p>
<table>
<thead>
<tr>
<th>유형</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>텍스트-음성 변환</td>
<td>임의의 텍스트를 자연스러운 음성으로 합성</td>
</tr>
<tr>
<td>음성 변환</td>
<td>한 화자의 음성을 다른 화자의 음성으로 변경</td>
</tr>
<tr>
<td>감정 페이크</td>
<td>음성의 감정을 변경</td>
</tr>
<tr>
<td>장면 페이크</td>
<td>발화의 음향 장면을 변경</td>
</tr>
<tr>
<td>부분적 페이크</td>
<td>발화 중 일부 단어만 변경</td>
</tr>
<tr>
<td><br/><br/></td>
<td></td>
</tr>
</tbody></table>
<h2 id="22-대회">2.2 대회</h2>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/1ed578e8-5dbd-4e8c-8158-7bb3994585d9/image.png" alt=""></p>
<p>최근 몇 년 동안, 일련의 대회들이 오디오 딥페이크 탐지의 발전을 가속화하는 데 중요한 역할을 했다. 대표적인 대회로는 ASVspoof 및 ADD 챌린지가 있다. </p>
<p>ASVspoof 챌린지는 주로 ASV 시스템을 공격으로부터 보호하기 위해 스푸핑된 오디오를 탐지하는 데 중점을 둔다. ASVspoof 2015는 합성 및 변환된 발화를 탐지하는 논리 접근(LA) 작업을 포함한다. ASVspoof 2017은 리플레이 공격을 포함하는 물리 접근(PA) 작업만 포함하고 있다. ASVspoof 2019은 이전 두 챌린지에서 포함된 LA와 PA 작업을 모두 포함한다. ASVspoof 2021에는 LA, PA 및 음성 딥페이크(DF) 작업이 포함되어 있다. DF 작업은 LA 작업과 유사한 압축된 오디오를 포함한다.</p>
<p>ADD 2022 챌린지는 저품질 가짜 오디오 탐지(LF), 부분적 가짜 오디오 탐지(PF) 및 오디오 가짜 게임(FG) 작업을 포함하여 조직되었다. LF 작업은 다양한 실제 소음 및 간섭을 포함하는 진짜와 완전히 가짜 발화를 다루는 데 중점을 둔다. PF 작업은 부분적으로 가짜와 실제 오디오를 구별하는 것을 목표로 한다. FG 작업은 오디오 생성 작업과 오디오 가짜 탐지 작업을 포함하는 경쟁 게임으로, 생성 작업 참가자들은 탐지 시스템을 속일 수 있는 오디오를 생성하는 것을 목표로 한다. </p>
<p>ADD 2022의 결과는 모든 가짜 유형을 다루기 위해 동일한 모델을 사용하는 것이 어렵다는 것을 보여준다. 결과는 또한 탐지 기술의 일반화가 여전히 미해결 문제임을 보여준다. 이전 챌린지와 달리, ADD 2023은 단순한 진짜 또는 가짜 분류의 한계를 넘어서 부분적으로 가짜 발화의 조작된 구간을 실제로 찾아내고, 가짜 오디오를 생성한 소스를 정확히 지정하는 데 중점을 둔다. ADD 2023 챌린지는 오디오 <strong>가짜 게임(FG), 조작 구간 위치 파악(RL) 및 딥페이크 알고리즘 인식(AR)</strong> 세 가지 하위 챌린지를 포함한다.
<br/></p>
<p><strong>대표적인 오디오 딥페이크 탐지 대회</strong></p>
<table>
<thead>
<tr>
<th>대회</th>
<th>주요 작업</th>
</tr>
</thead>
<tbody><tr>
<td>ASVspoof 2015</td>
<td>논리 접근(LA): 합성 및 변환된 발화 탐지</td>
</tr>
<tr>
<td>ASVspoof 2017</td>
<td>물리 접근(PA): 리플레이 공격 포함</td>
</tr>
<tr>
<td>ASVspoof 2019</td>
<td>논리 접근(LA), 물리 접근(PA)</td>
</tr>
<tr>
<td>ASVspoof 2021</td>
<td>논리 접근(LA), 물리 접근(PA), 음성 딥페이크(DF)</td>
</tr>
<tr>
<td>ADD 2022</td>
<td>저품질 가짜 오디오 탐지(LF), 부분적 가짜 오디오 탐지(PF), 오디오 가짜 게임(FG)</td>
</tr>
<tr>
<td>ADD 2023</td>
<td>오디오 가짜 게임(FG), 조작 구간 위치 파악(RL), 딥페이크 알고리즘 인식(AR)</td>
</tr>
</tbody></table>
<p><br/><br/></p>
<h2 id="23-벤치마크-데이터셋">2.3 벤치마크 데이터셋</h2>
<p>오디오 딥페이크 탐지 기술의 발전은 <strong>다양한 가짜 유형과 다양한 음향 조건을 갖춘 잘 확립된 데이터셋에 크게 의존</strong>해 왔다. 다양한 데이터셋이 ASV 시스템 또는 인간 청취자를 스푸핑이나 기만으로부터 보호하기 위해 설계되었다. 표 3은 오디오 딥페이크 탐지에 대한 대표적인 데이터셋의 특성을 강조한다.</p>
<p>많은 초기 연구들은 ASV 시스템을 위한 스푸핑 대응책을 개발하기 위해 스푸핑된 데이터셋을 설계했다. 초기에는 특정 연구에서 가정한 특정 스푸핑 접근 방식에 크게 의존하는 데이터셋의 설계로 인해 다양한 스푸핑 데이터셋이 독점적이었다.</p>
<br/>

<p><strong>대표적인 오디오 딥페이크 탐지 데이터셋</strong></p>
<table>
<thead>
<tr>
<th>데이터셋</th>
<th>특성</th>
</tr>
</thead>
<tbody><tr>
<td>ASVspoof 데이터셋</td>
<td>다양한 스푸핑 공격(논리 접근, 물리 접근, 딥페이크 등)을 포함한 대규모 데이터셋</td>
</tr>
<tr>
<td>ADD 데이터셋</td>
<td>저품질 가짜 오디오, 부분적 가짜 오디오, 다양한 실제 소음 및 간섭을 포함한 다양한 데이터셋</td>
</tr>
<tr>
<td>SAS</td>
<td>다양한 TTS 및 VC 방법을 포함하며, ASVspoof 2015 챌린지를 지원하기 위해 개발됨</td>
</tr>
<tr>
<td>PhoneSpoof</td>
<td>전화 채널에서 수집된 발화를 포함하며, 화자 검증 시스템을 위한 데이터셋</td>
</tr>
<tr>
<td>부분적 스푸핑 데이터베이스</td>
<td>음성 활동 탐지 기술을 사용하여 스푸핑된 발화를 무작위로 연결하여 생성됨</td>
</tr>
<tr>
<td>FoR</td>
<td>오픈 소스 TTS 도구로 생성된 합성 발화를 포함하는 공개 데이터셋</td>
</tr>
<tr>
<td>WaveFake</td>
<td>최신 TTS 모델로 합성된 두 명의 화자의 가짜 발화를 포함하는 가짜 오디오 데이터셋</td>
</tr>
<tr>
<td>FMFCC-A</td>
<td>노이즈 추가 및 오디오 압축을 포함한 13가지 종류의 가짜 오디오를 포함하는 중국어 합성 음성 탐지 데이터셋</td>
</tr>
<tr>
<td>EmoFake</td>
<td>화자의 원래 감정이 다른 감정으로 조작된 감정 가짜 오디오 탐지 데이터셋</td>
</tr>
<tr>
<td>SceneFake</td>
<td>원래 발화의 음향 장면이 다른 장면으로 대체된 장면 조작 오디오 데이터셋</td>
</tr>
<tr>
<td>In-the-Wild</td>
<td>사회 네트워크 및 비디오 공유 플랫폼에서 수집된 실제 세계 데이터셋으로, 유명 인사 및 정치인의 발화를 포함</td>
</tr>
</tbody></table>
<br/>


<p>이와 같이, 다양한 오디오 딥페이크 탐지 대회와 데이터셋은 이 분야의 연구 및 개발에 중요한 자원을 제공하고 있다.</p>
<br/>

<p>일부 스푸핑 데이터셋은 특정 TTS 방법 또는 VC 접근 방식만 포함하도록 설계되었다. 그러나 다양한 스푸핑 방법 간의 비교는 어렵다. 이러한 문제를 해결하기 위해, <strong>재생, TTS 및 VC 기술을 포함하는 여러 접근 방식을 포함한 스푸핑 데이터셋</strong>을 설계했다. 그러나 일반화된 대응 연구에서 요구되는 다양성에 비해 여전히 스푸핑 기술의 다양성은 충분하지 않다. </p>
<p>반복 가능하고 비교 가능한 스푸핑 탐지 연구를 수행하기 위해, 2015년에 다양한 TTS 및 VC 방법을 포함하는 표준 공개 스푸핑 데이터셋 SAS를 개발했다. SAS 데이터셋은 스푸핑된 음성을 탐지하기 위한 첫 번째 ASVspoof 챌린지 (ASVspoof 2015)를 지원하기 위해 사용되었다. </p>
<p>재생은 ASVspoof 2017 챌린지에 포함된 저비용 및 도전적인 공격으로 간주된다. ASVspoof 2019 및 2021 데이터셋에는 모두 <strong>재생, TTS 및 VC 공격</strong>이 포함된다. 이전 ASVspoof 챌린지 데이터셋은 마이크로폰 채널에서의 음성 공격 탐지에 중점을 두고 있다. <strong>전화 채널에서 수집된 발화</strong>를 포함하는 PhoneSpoof 데이터셋을 설계되었다. 부분적으로 스푸핑된 데이터베이스는 <strong>음성 활동 탐지 기술을 사용하여 스푸핑된 발화를 무작위로 연결</strong>하여 설계되었다.</p>
<br/>

<p>몇몇 오디오 딥페이크 탐지 데이터셋은 딥페이크 오디오로부터 사람들을 보호하기 위해 개발되었다. 데이터셋에 포함된 <strong>딥페이크 유형은 주로 TTS, VC, 감정 가짜, 장면 가짜 및 부분 가짜</strong>다. 2020년, 공개적으로 사용할 수 있는 데이터셋 FoR를 개발되었으며, 이는 오픈 소스 TTS 도구로 생성된 합성 발화를 포함한다. 비공개 가짜 데이터셋은 오픈 소스 VC 및 TTS 시스템을 사용하여 구성되었다. </p>
<p>2021년, 최신 <strong>TTS 모델에 의해 합성된 두 명의 화자의 가짜 발화를 포함</strong>하는 WaveFake라는 가짜 오디오 데이터셋을 개발되었다. ASVspoof 2021에는 데이터 압축 효과를 고려한 오디오 딥페이크 공격이 포함되었다. 그러나 이러한 데이터셋은 일부 실제 생활의 도전적인 상황을 포괄하지 못했다. ADD 2022 챌린지의 데이터셋은 이러한 간극을 메우기 위해 설계되었다. </p>
<p>LF 데이터셋의 가짜 발화는 다양한 노이즈 간섭을 포함하는 최신 TTS 및 VC 모델을 사용하여 생성되었다. PF 데이터셋의 가짜 발화는 HAD 데이터셋에서 선택되었으며, 이는 <strong>몇몇 핵심 단어의 실제 또는 합성된 오디오 세그먼트로 원래의 진짜 발화를 조작</strong>하여 생성되었다. FG 트랙(FG-D)의 탐지 작업 데이터셋은 ADD 2022 생성 작업의 제출된 발화에서 무작위로 선택되었다. 중국어 합성 음성 탐지 데이터셋 FMFCC-A는 노이즈 추가 및 오디오 압축을 포함한 13가지 종류의 가짜 오디오를 포함한다. </p>
<br/>


<p>앞서 언급한 데이터셋은 오디오 딥페이크 탐지의 발전을 가속화하는 데 중요한 역할을 했다. 그러나 <strong>가짜 발화는 주로 원래 오디오의 화자 정체성, 음성 내용 또는 채널 노이즈를 변경하는 것을 포함</strong>한다. 가장 최근에는 <strong>화자의 원래 감정이 다른 감정으로 조작된 감정 가짜 오디오 탐지 데이터셋 EmoFake를 설계했으며, 다른 정보는 그대로 유지</strong>된다. </p>
<p>원래 발화의 <strong>음향 장면이 음성 향상 기술을 사용하여 다른 장면으로 대체</strong>된 장면 조작 오디오 데이터셋 SceneFake를 구축되었다. 2022년에는 사회 네트워크 및 인기 있는 비디오 공유 플랫폼과 같은 공개적으로 사용 가능한 소스에서 수집된 실제 세계 데이터셋 In-the-Wild가 수집되었다. 이 데이터셋의 발화는 영어를 사용하는 유명 인사 및 정치인으로부터 수집되었다.</p>
<p><br/><br/></p>
<h2 id="24-평가-지표">2.4 평가 지표</h2>
<p>이전에는 ASVspoof 및 ADD 챌린지에서 오디오 딥페이크 탐지 작업의 평가 지표로 등오율(EER)을 사용했다. &#39;임계값 없는&#39; EER은 다음과 같이 정의된다. Pfa(θ)와 Pmiss(θ)는 각각 <strong>임계값 θ에서의 오탐률 및 미탐률</strong>을 나타낸다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/b987f338-079d-4e11-96df-9dc88537d1f9/image.png" alt=""></p>
<p>따라서 Pfa(θ)와 Pmiss(θ)는 각각 θ의 함수로 <strong>단조 감소 및 단조 증가 함수</strong>다. <strong>EER은 두 탐지 오류율이 동일한 임계값 θEER에서의 오류율</strong>에 해당하며, <strong>EER = Pfa(θEER) = Pmiss(θEER)</strong>다. </p>
<p>ADD 챌린지의 오디오 가짜 게임 트랙의 탐지 작업에는 두 번의 평가가 있으며, 각 라운드 평가는 각각의 EER에 따라 순위가 매겨진다. 최종 순위는 가중치 EER(WEER)을 기준으로 한다.
<br/></p>
<p><strong>가중치 EER(WEER)</strong>은 다음과 같이 정의된다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/c0f8fb3f-7c9f-4617-b99a-6c2b2965a828/image.png" alt=""></p>
<p>여기서 α와 β는 각각의 EER에 대한 가중치이며, EER_{R1}과 EER_{R2}는 오디오 가짜 게임 트랙의 탐지 작업에서 첫 번째와 두 번째 라운드 평가의 EER다.
<br/></p>
<p><strong>오디오 딥페이크 탐지의 평가 지표</strong></p>
<table>
<thead>
<tr>
<th>평가 지표</th>
<th>정의</th>
</tr>
</thead>
<tbody><tr>
<td>EER</td>
<td>Pfa(θ)와 Pmiss(θ)가 동일한 임계값 θEER에서의 오류율</td>
</tr>
<tr>
<td>WEER</td>
<td>각 라운드 평가의 가중치 EER</td>
</tr>
<tr>
<td><br/></td>
<td></td>
</tr>
</tbody></table>
<p>이와 같이, 다양한 오디오 딥페이크 탐지 데이터셋과 평가 지표는 이 분야의 연구 및 개발에 중요한 자원을 제공하고 있다. 특히, 다양한 스푸핑 기술과 평가 방법을 통해 탐지 기술의 일반화 및 정확도를 높이는 데 기여하고 있다.</p>
<p><br/><br/><br/><br/></p>
<h1 id="3-판별적-특징">3. 판별적 특징</h1>
<hr>
<p>특징 추출은 파이프라인 탐지기의 핵심 모듈이다. <strong>특징 추출</strong>의 목표는 <strong>음성 신호에서 오디오 가짜 인공물을 포착하여 판별적 특징을 학습</strong>하는 것이다. 많은 연구는 가짜 공격을 탐지하기 위한 유용한 특징의 중요성을 보여주었다. </p>
<p>이전 연구에서 사용된 특징은 크게 네 가지 범주로 나눌 수 있다: </p>
<ul>
<li><strong>단기 스펙트럼 특징</strong></li>
<li><strong>장기 스펙트럼 특징</strong></li>
<li><strong>운율 특징</strong></li>
<li><strong>심층 특징</strong></li>
</ul>
<p>단기 및 장기 스펙트럼 특징은 주로 디지털 신호 처리 알고리즘에 의존하여 추출된다. 
<br/></p>
<p><strong>단기 스펙트럼 특징</strong>은 일반적으로 20-30ms의 짧은 프레임에서 추출되며, 음색의 음향적 상관성을 포함한 단기 스펙트럼 엔벨로프를 설명한다. 그러나 단기 스펙트럼 특징은 <strong>음성 특징 궤적의 시간적 특성을 포착하는 데 불충분</strong>하다고 입증되었다. </p>
<p>이에 대응하여, 일부 연구자들은 음성 신호에서 장거리 정보를 포착하기 위해 <strong>장기 스펙트럼 특징</strong>을 제안한다. </p>
<p>또한 <strong>운율 특징</strong>은 가짜 음성을 탐지하는 데 사용된다. 짧은 기간의 단기 스펙트럼 특징과 달리, 운율 특징은 <strong>음소, 음절, 단어, 발화 등과 같은 더 긴 세그먼트에 걸쳐</strong> 있다. 
<br/></p>
<p>앞서 언급한 대부분의 스펙트럼 및 운율 특징은 수작업으로 만든 특징으로, <strong>수작업 표현의 한계로 인해 편향이 발생</strong>할 수 있다. 따라서 심층 신경망 기반 모델을 통해 추출된 심층 특징이 이러한 간극을 메우기 위해 제안된다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/83dddd58-5079-4fe8-9510-2546bd04329c/image.png" alt=""></p>
<p><br/><br/></p>
<h2 id="31-단기-스펙트럼-특징">3.1 단기 스펙트럼 특징</h2>
<p>단기 스펙트럼 특징은 주로 음성 신호에 <strong>단시간 푸리에 변환(STFT)</strong>을 적용하여 계산된다. 주어진 음성 신호 ( x(t) )는 짧은 기간(예: 25ms) 동안 준정상 상태로 가정된다. </p>
<p>음성 신호 ( x(t) )의 STFT는 다음과 같이 공식화된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/d021ee0c-bb4c-4187-bc38-5a034f21a919/image.png" alt=""></p>
<p>여기서 X(t, omega)는 t 프레임과 omega 주파수 빈에서의 크기 스펙트럼이고, phi(omega)는 위상 스펙트럼입니다. 전력 스펙트럼은 X(t, omega)^2 로 정의된다.</p>
<p>단기 스펙트럼 특징은 주로 <strong>단기 크기 기반 특징</strong>과 <strong>단기 위상 기반 특징</strong>으로 구성된다. 일반적으로, 일부 크기 기반 특징은 직접적으로 <strong>크기 스펙트럼에서 파생되지만 대부분은 전력 스펙트럼에서 파생</strong>된다. 위상 기반 특징은 <strong>위상 스펙트럼에서 파생</strong>된다.</p>
<br/>

<h3 id="311-단기-크기-기반-특징">3.1.1 단기 크기 기반 특징</h3>
<p>전력 스펙트럼에서 파생된 전력 스펙트럼 특징은 가짜 음성 탐지에서 가장 많이 연구된 특징일 수 있다. 여기에는 <strong>로그 전력 스펙트럼(LPS), 켑스트럼(Cep), 필터 뱅크 기반 켑스트랄 계수(FBCC), 전극 모델링 기반 켑스트랄 계수(APCC) 및 서브밴드 스펙트럼(SS) 특징</strong>이 포함된다. 
<br/></p>
<ul>
<li><p><strong>LPS</strong>는 일반적으로 로그 스펙트럼이라고 하며, 로그를 사용하여 원시 전력 스펙트럼에서 직접 계산된다. 켑스트럼(Cep)은 전력 스펙트럼에서 이산 코사인 변환(DCT)을 적용하여 파생된다. 그러나 LPS와 Cep 특징의 차원은 너무 높다.</p>
</li>
<li><p><strong>FBCC</strong> 특징은 이 문제를 해결하기 위해 제안되었으며, 직사각형 필터 켑스트랄 계수(RFCC), 선형 주파수 켑스트랄 계수(LFCC), 멜 주파수 켑스트랄 계수(MFCC), 역멜 주파수 켑스트랄 계수(IMFCC)를 포함한다. </p>
</li>
<li><p><strong>RFCC</strong>는 선형 스케일 직사각형 필터를 사용하여 계산된다. </p>
</li>
<li><p><strong>LFCC</strong>는 선형 삼각형 필터를 사용하여 추출된다. </p>
</li>
<li><p><strong>MFCC</strong>는 멜 스케일 삼각형 필터에서 파생되며, 낮은 주파수에 더 밀집되어 인간의 청각 인식을 모방한다. </p>
</li>
<li><p><strong>IMFCC</strong>는 역멜 스케일에 선형적으로 배치된 삼각형 필터를 사용하여 고주파 영역에 더 큰 비중을 둔다. </p>
</li>
<li><p><strong>MFPC</strong> 특징 (멜 주파수 주성분 계수)는 MFCC 계수와 유사하게 얻어지지만, DCT 대신 주성분 분석(PCA)을 사용하여 음향 특징의 관계를 제거한다. 멜 스펙트럼(Mel spec)도 DCT 없이 MFCC 계수와 유사하게 파생된다. </p>
</li>
<li><p><strong>LFCC</strong> 특징은 잘 알려져 있으며, 가우시안 혼합 모델(GMM)과 가벼운 컨볼루션 신경망(LCNN)과 함께 ASVspoof 및 ADD 챌린지의 베이스라인 모델로 사용된다. </p>
</li>
<li><p><strong>APCC</strong> 특징은 신호의 모든 전극 모델링 표현에서 파생된 선형 예측 켑스트랄 계수(LPCC)로 변환된다. </p>
</li>
<li><p><strong>SS</strong> 특징은 서브밴드 스펙트럼 플럭스 계수(SSFC), 스펙트럼 중심 크기 계수(SCMC), 서브밴드 중심 주파수 계수(SCFC) 및 이산 푸리에 멜 서브밴드 변환(DF-MST)을 포함한다. 서브밴드 특징은 대부분 스펙트럼 플럭스 및 중심 크기와 같은 정보를 추출하며, 각 서브밴드 내의 세부 사항은 보지 않는다.</p>
</li>
</ul>
<br/>

<h3 id="312-단기-위상-기반-특징">3.1.2 단기 위상 기반 특징</h3>
<p>위상 정보는 인간의 음성 인식에 중요하지만, 대부분의 텍스트-음성 변환(TTS) 및 음성 변환(VC) 시스템은 <strong>단순화된 최소 위상 모델을 사용하여 위상 스펙트럼에 인공적인 왜곡을 도입</strong>할 수 있다. 따라서 위상 기반 특징은 인간 음성과 생성된 음성을 구별하는 데 사용할 수 있다.</p>
<p><strong>위상 스펙트럼 자체는 위상 왜곡으로 인해 가짜 오디오 탐지에 안정적인 패턴을 제공하지 않는다.</strong> 대신, <strong>유용한 단기 위상 기반 특징을 생성하기 위해 후처리 방법이 사용</strong>된다. 여기에는 그룹 지연(GD) 기반 특징과 기타 위상 특징이 포함된다.
<br/></p>
<h4 id="그룹-지연gd-기반-특징">그룹 지연(GD) 기반 특징</h4>
<p>GD 기반 특징은 GD, 수정된 GD(MGD), MGD 켑스트럼 계수(MGDCC), 전극 그룹 지연(APGD)를 포함한다. </p>
<ul>
<li><p><strong>GD</strong>는 주파수 축을 따라 위상 스펙트럼의 미분으로, 필터 위상 응답의 표현으로 언급된다. </p>
</li>
<li><p><strong>MGD</strong>는 켑스트럼 평활화 후 프레임별로 스펙트럼에서 계산되며, GD의 변형으로 GD보다 더 명확한 위상 패턴을 추출할 수 있다. Xiao 등 은 안티 스푸핑을 위해 MGD의 동적 범위를 제어하는 두 가지 요소를 사용한다. </p>
</li>
<li><p><strong>MGDCC</strong>는 위상 및 크기 정보를 모두 사용하여 MGD 위상 스펙트럼에서 계산된다. Wu 등 은 MGDCC 특징을 사용하여 합성 음성과 인간 음성을 구별하며, 이는 MFCC 특징보다 우수하다. </p>
</li>
<li><p><strong>APGD</strong>는 모든 극 모델링을 사용하는 위상 기반 특징으로, 스푸핑된 음성 탐지에서 그 역할이 조사되었으며, 최적화해야 하는 매개변수가 MGD보다 적다.</p>
<br/>

</li>
</ul>
<h4 id="기타-위상-특징">기타 위상 특징</h4>
<p>기타 위상 특징  은 순간 주파수(IF), 기저 대역 위상 차이(BPD), 상대 위상 이동(RPS), 피치 동기 위상(PSP), 코사인-위상(CosPhase) 기반 특징을 포함한다. </p>
<ul>
<li><p><strong>IF</strong> 특징은 시간 축을 따라 위상 스펙트럼의 미분이다. 생 위상 스펙트럼과 달리, 시간 정보가 담긴 IF 스펙트럼은 명확한 패턴을 포착한다. IF와 GD는 매우 다른 패턴을 포함하여 스푸핑된 음성 탐지에 보완적인 정보를 제공할 수 있다.</p>
</li>
<li><p><strong>BPD</strong>는 기저 대역 STFT에서 추출된 위상 특징으로, IF에 비해 더 안정적인 시간 미분 위상 정보를 제공한다. </p>
</li>
<li><p><strong>RPS</strong>는 기본 주파수에 대한 조화 성분의 &quot;위상 이동&quot;을 반영한다.</p>
</li>
<li><p>위상 스펙트럼의 패턴을 드러내는 또 다른 방법은 피치 동기 STFT를 사용하는 것으로, 이 패턴은 <strong>PSP</strong> 특징이라 불린다.</p>
</li>
<li><p><strong>CosPhase</strong> 특징은 DCT를 적용한 풀린 위상 스펙트럼에 코사인 함수를 적용하여 위상 스펙트럼에서 추출된다. CosPhase 특징의 차원을 줄이기 위해 PCA를 이용한 CosPhase 주성분 계수(CosPhasePC)가 계산된다.</p>
</li>
</ul>
<p><br/><br/></p>
<h2 id="32-장기-스펙트럼-특징">3.2 장기 스펙트럼 특징</h2>
<p>단기 스펙트럼 특징은 프레임별로 계산되기 때문에 음성 신호의 시간적 특성을 잘 포착하지 못한다. 이를 보완하기 위해 장기 스펙트럼 특징이 제안되었으며, <strong>장기 정보를 포착</strong>하는 데 중요한 역할을 한다. </p>
<p>장기 스펙트럼 특징은 주파수-시간 분석 접근법에 따라 크게 네 가지로 나눌 수 있다: </p>
<ul>
<li>STFT 기반 특징</li>
<li>CQT 기반 특징</li>
<li>HT 기반 특징</li>
<li>WT 기반 특징</li>
</ul>
<br/>

<h3 id="321-stft-기반-특징">3.2.1 STFT 기반 특징</h3>
<p>STFT(Short-Time Fourier Transform) 기반 특징은 다음과 같이 네 가지로 나눌 수 있다:</p>
<ul>
<li><p><strong>변조 특징(Modulation features)</strong>: 변조 스펙트럼(ModSpec)과 전역 변조(Global M)를 포함한다. ModSpec은 음성 신호의 장기 시간 특성을 포함한다. Global M 특징은 스펙트럼(MFCC 등)과 시간 변조 정보를 결합하여 가짜 음성 탐지 성능을 향상시킨다.</p>
</li>
<li><p><strong>Shifted Delta Coefficients (SDC)</strong>: 여러 음성 프레임의 델타 계수를 증강하여 장기 음성 정보를 포착한다.</p>
</li>
<li><p><strong>주파수 도메인 선형 예측(FDLP)</strong>: 다양한 서브밴드에서 선형 예측 분석을 수행하여 얻어진 DCT를 사용한다.</p>
</li>
<li><p><strong>로컬 바이너리 패턴(LBP) 특징</strong> : 컴퓨터 비전 작업에서 LBP 분석을 통해 스펙트럼 특징에서 장기 정보를 얻는다. LFCC 특징을 텍스트로그램으로 변환하여 히스토그램을 사용해 스푸프 탐지를 수행하는 방법이 있었다.</p>
</li>
</ul>
<br/>

<h3 id="322-cqt-기반-특징">3.2.2 CQT 기반 특징</h3>
<p>CQT(Constant-Q Transform)는 긴 창 변환으로, STFT와는 달리 낮은 주파수에서 높은 주파수 해상도를 제공하고, 높은 주파수에서 높은 시간 해상도를 제공한다. CQT 기반 특징은 여러 방식으로 파생되며, 주요한 예로는 CQT 스펙트럼, CQCC, eCQCC, ICQCC, CQTMGD 등이 있다.</p>
<ul>
<li><p><strong>CQT 스펙트럼(CQT spectrum)</strong> : CQT를 통해 얻어진 원시 파워 스펙트럼에 로그를 적용하여 계산되며, CQTgram이라고도 한다. CQT 스펙트럼을 사용한 방법이 ASVspoof 2017에서 최고의 결과를 얻었다.</p>
</li>
<li><p><strong>CQCC(CQ Cepstral Coefficient)</strong> : CQT로부터 파생된 로그 파워 스펙트럼의 DCT를 통해 얻어진다. 2016년에 CQCC 특징을 사용한 방법이 TTS 기반 공격을 효과적으로 탐지했다.</p>
</li>
<li><p><strong>eCQCC</strong> : 옥타브 파워 스펙트럼과 선형 파워 스펙트럼에서 계산된 CQCC 특징의 조합으로 파생된다.</p>
</li>
<li><p><strong>ICQCC</strong> : 장기 CQT의 역 선형 파워 스펙트럼에서 파생된다.</p>
</li>
<li><p><strong>CQTMGD</strong> : CQT와 MGD를 결합하여 위상 기반 특징을 강화한 것으로, ASVspoof 2019에서 물리적 접근 서브 챌린지에서 1위를 차지했다.</p>
</li>
</ul>
<br/>

<h3 id="323-ht-기반-특징">3.2.3 HT 기반 특징</h3>
<p>HT(Hilbert Transform) 기반 특징은 힐버트 변환을 통해 얻어진 분석 신호에서 계산된다. 예로는 평균 힐버트 엔벨로프 계수(MHEC)가 있다. 힐버트 엔벨로프는 신호의 각 감마톤 필터 출력에서 계산되고 저역 통과 필터를 사용하여 평활화된다.</p>
<br/>


<h3 id="324-wt-기반-특징">3.2.4 WT 기반 특징</h3>
<p>WT(Wavelet Transform) 기반 특징은 주로 음성 신호에 WT를 수행하여 파생된다. 예로는 멜 웨이브릿 패킷 계수(MWPC), 와우라 필터 켑스트랄 계수(CFCC) 및 CFCCIF가 있다.</p>
<ul>
<li><p><strong>MWPC</strong> : 음성 신호에 웨이브릿 패킷 변환을 수행하여 계산된다. 로그 멜 스케일 정보를 PCA를 사용하여 12개의 계수로 파생하여 MWPC 특징을 도출한 방법이 제안되었다.</p>
</li>
<li><p><strong>CFCC</strong> : 와우라 변환과 유사한 청각 변환을 기반으로 도출된다.</p>
</li>
<li><p><strong>CFCCIF</strong> : 각 서브밴드 필터 출력에서 CFCC와 IF(즉시 주파수) 특징을 결합한 것이다. CFCCIF는 프레임 간 변화를 포착하여 실제 음성과 스푸프 음성을 구별하는 데 유용하며, ASVspoof 2015에서 최고의 결과를 얻었다.</p>
</li>
</ul>
<p><br/><br/></p>
<h2 id="33-프로소딕-특징">3.3 프로소딕 특징</h2>
<p>프로소디는 발화 신호의 세그멘트가 아닌 정보를 나타내며, <strong>음절 강세, 억양 패턴, 발화 속도 및 리듬</strong> 등을 포함한다. 전형적으로 20-30ms와 같은 짧은 기간의 단기 스펙트럼 특징과 달리, 프로소디는 폰, 음절, 단어 및 발화와 같은 더 긴 세그먼트에 걸쳐 있다. </p>
<p>중요한 프로소딕 매개변수에는 <strong>주파수 기본(자연주파수, F0), 지속시간(예: 폰 지속시간, 일시정지 통계), 에너지 분포, 발화 속도</strong> 등이 있다. 가짜 오디오 탐지에 대한 이전 연구들은 주로 세 가지 주요 프로소딕 특징을 고려한다: </p>
<ul>
<li>F0</li>
<li>지속시간 및 에너지</li>
</ul>
<p>이러한 특징은 스펙트럼 특징과 비교했을 때 채널 효과에 덜 민감하다. 스펙트럼 특징을 보완하여 가짜 오디오 탐지의 성능을 향상시킬 수 있다.</p>
<br/>

<p><strong>F0</strong>는 피치라고도 알려져 있다. 합성 음성의 피치 패턴은 자연 음성과 다르다. TTS 또는 VC 모델이 적절하게 합성하기 위해 필요한 인간의 생리학적 특성을 정확하게 모델링하는 것은 어렵다. 그래서 <strong>합성 음성은 인간의 음성과 다른 평균 피치 안정성을 갖는다.</strong> </p>
<p>또한, 인간 음성의 발음은 합성 음성보다 더 부드럽고 더 느긋하다. 이 차이는 후자의 피치 패턴의 jitters에 의해 포착된다. 따라서 <strong>이미지 분석에서 유도된 평균 피치 안정성과 같은 피치 패턴 통계를 사용하여 합성 음성을 탐지</strong>하는 방법이 제안되었다. </p>
<ul>
<li>TTS는 일반적으로 <strong>텍스트에서 F0를 예측하여 비자연적인 궤적</strong>을 만든다. 그러나 VC는 일반적으로 <strong>원본 화자의 자연스러운 F0 궤적을 복사</strong>하기 때문에, 피치 패턴은 특히 유닛 선택 합성 공격에 대한 합성 음성을 감지하는 데 유용하다. </li>
</ul>
<br/>

<p>Magnitude와 <strong>위상 기반 특징에 보충적인 정보로서 프레임 수준에서의 피치 변동을 추출</strong>하여 합성 음성 탐지의 성능을 개선한다. 그러나 <strong>F0의 분포는 불규칙하기 때문에 직접 사용하기 어렵</strong>다. </p>
<p>이 문제를 해결하기 위해 2022년에 F0 서브밴드의 식별적 특징을 포착하기 위한 방법이 제안되었다. 그러나 피치 추출 알고리즘은 일반적으로 소음 환경에서 믿을 수 없으며, 프로소딕 특징의 추출에는 상대적으로 많은 양의 훈련 데이터가 필요하다. </p>
<p>최근에 <strong>F0, 음소 지속시간 및 에너지를 통합</strong>하여 가짜 오디오 탐지하는 방법이 시도되었다. <strong>음소 지속시간 특징은 HuBERT를 사용하여 사전 훈련된 모델을 통해 추출</strong>된다.</p>
<p><br/><br/></p>
<h2 id="34-딥-특징">3.4 딥 특징</h2>
<p>이전에 언급된 스펙트럼 특징과 프로소딕 특징 대부분은 수작업으로 만들어진 특징이며, 강력하고 유용한 표현 능력을 갖고 있다. 그러나 이러한 특징들의 설계는 <strong>수작업 표현의 한계로 인해 편향</strong>이 있다. 이러한 이유로, 딥 특징이 도입되었다. 딥 특징은 딥 뉴럴 네트워크를 사용하여 학습되며, 주로 다음과 같이 분류된다: </p>
<br/>

<h3 id="341-학습-가능한-스펙트럼-특징">3.4.1 학습 가능한 스펙트럼 특징</h3>
<p>학습 가능한 스펙트럼 특징은 학습 가능한 뉴럴 레이어를 사용하여 표준 필터링 프로세스를 추정하는 것을 포함한다. 이러한 특징들은 수행하는 절차에 따라 부분적으로 학습 가능한 스펙트럼 특징과 완전히 학습 가능한 스펙트럼 특징으로 분류된다.</p>
<p><strong>부분적으로 학습 가능한 스펙트럼 특징</strong>은 <strong>음성 신호에 STFT를 적용하여 얻은 스펙트로그램과 함께 신경망 기반 필터 뱅크 행렬을 훈련함으로써 추출</strong>된다. </p>
<br/>

<ul>
<li><p>이 방법은 Hong et al. (2017)에 의해 개발된 DNN 필터 뱅크 켑스트럴 계수 (FBCC)인 &#39;학습된 FBCC&#39;로 예를 들 수 있다. 이를 통해 자연스러운 음성과 합성된 음성 사이의 차이를 더 잘 포착할 수 있다. </p>
</li>
<li><p>또한, Sailor et al.은 제한된 <strong>볼츠만 머신을 사용하여 필터 뱅크 표현을 학습</strong>하는 ConvRBM 기능을 제안한다. </p>
</li>
<li><p>Cheuk et al.은 nnAudio라는 <strong>오디오 처리 툴킷을 제안하고 이를 사용하여 시간 영역에서 주파수 영역으로 오디오 신호를 변환</strong>한다. </p>
</li>
<li><p>그러나 Fu et al.은 nnAudio를 구현하는 데 제한이 없는 학습 가능한 필터 뱅크 세트로 인해 nnAudio 기반의 스푸핑 방지 방법이 한계적인 개선만 얻는다고 보고한다. </p>
</li>
<li><p>Zhang et al.은 <strong>다른 제약을 가진 필터 뱅크의 주파수 중심, 대역폭, 이득 및 형태를 학습하기 위해 신경망</strong>을 사용한다. </p>
</li>
<li><p>Fu et al.은 고정 필터 뱅크를 대체하는 대신 <strong>안티-스푸핑 작업에 대한 필터 뱅크 형상 제약을 수행하기 위해 STFT의 스펙트로그램을 입력으로 사용</strong>하는 &#39;FastAudio&#39;라는 프론트엔드를 제안한다.</p>
</li>
</ul>
<br/>
<br/>



<p>완전히 학습 가능한 스펙트럼 특징은 표준 <strong>필터링 프로세스를 근사화하기 위해 원시 파형(raw waveforms)에서 직접 학습</strong>된다. 이러한 특징은 스펙트로그램과 필터뱅크 행렬을 훈련하여 추출되는 부분적으로 학습 가능한 스펙트럼 특징과는 다르다. </p>
<ul>
<li><p>Zeghidour et al.은 멜-필터뱅크의 <strong>산란 변환 근사화</strong>를 통해 시간 영역 필터뱅크(TD-FBanks)를 제안한다. </p>
</li>
<li><p>TD-FBanks는 초기화 단계에서 멜-필터뱅크를 근사화하는데 <strong>어떠한 제약도 가하지 않고 학습</strong>된다. </p>
</li>
<li><p>SincNet은 <strong>사인 카디널 필터(convolution with sine cardinal filters), 비선형성, 최대 풀링 레이어를 학습하는 것과 Gabor 필터를 사용하는 변형을 학습</strong>하는 것을 제안한다. </p>
</li>
<li><p>Tak et al.는 <strong>SincNet을 엔드-투-엔드 안티-스푸핑 모델인 RawNet2의 첫 번째 레이어</strong>로 사용한다. </p>
</li>
<li><p>Zeghidour et al.은 <strong>Gabor 필터를 사용하는 새로운 학습 가능한 필터링 레이어</strong>인 LEAF를 설계한다. 이는 멜-필터뱅크의 대체품으로 사용될 수 있다. Sinc 필터가 창 함수를 사용해야 하는 반면 [92], Gabor 필터는 <strong>시간과 주파수 영역에서 최적으로 로컬라이즈</strong>된다. </p>
</li>
<li><p>Tomilov et al.은 ASVspoof 2021의 <strong>리플레이 공격을 감지하기 위해 LEAF 특징</strong>을 사용하여 유망한 결과를 얻었다.</p>
</li>
</ul>
<br/>


<h3 id="342-supervised-embedding-features">3.4.2 Supervised embedding features</h3>
<p>지도된 임베딩 특징은 지도된 훈련을 통해 딥 뉴럴 네트워크로부터 깊은 임베딩을 추출하는 것을 포함한다. 오디오 딥페이크 감지를 위한 지도된 임베딩 특징은 대략 네 가지 유형이 있다:
<br/></p>
<p><strong>스푸프 임베딩</strong>은 <strong>정상적인(bonafide) 및 가짜(spoofed) 데이터로 훈련된 뉴럴 네트워크 기반 모델에서 추출</strong>된다. </p>
<ul>
<li><p>Chen et al.은 ASVspoof 2015 챌린지에서 스푸프 음성 감지를 위해 강력하고 추상적인 특징 표현을 계산하기 위해 <strong>DNN 기반 모델</strong>을 사용한다. </p>
</li>
<li><p>Qian et al.은 반복 신경망(RNN) 모델에서 시퀀스 수준 병목 특징으로 <strong>s-벡터</strong>라고 불리는 것을 추출하여 안티-스푸핑을 수행한다. </p>
</li>
<li><p>Das et al.은 2019년 <strong>LPS 특징</strong>을 사용하여 DNN 모델을 사용하여 깊은 특징 추출기를 훈련시킨다. </p>
</li>
</ul>
<br/>

<p>스푸프 임베딩은 <strong>출력 레이어를 제거하여 특징 추출기에서 계산</strong>된다. 가짜 오디오 감지를 위해 시퀀스 문맥 정보를 학습하기 위해 </p>
<ul>
<li><p>Alejandro et al.은 문장 수준의 깊은 임베딩을 학습하기 위해 <strong>경량 컨볼루션 게이트 RNN</strong>을 제안한다. </p>
</li>
<li><p>가장 최근에 Doan et al.은 <strong>RNN, 컨볼루션 시퀀스-투-시퀀스 및 트랜스포머 기반 인코더</strong>를 사용하여 오디오 클립에서 숨쉬는 소리와 말하는 소리, 그리고 공백을 학습한다.</p>
</li>
</ul>
<br/>

<h3 id="343-self-supervised-embedding-features">3.4.3 Self-supervised embedding features</h3>
<p>지도된 임베딩 특징은 알려지지 않은 조건에 대해 잘 일반화되지만, 이러한 특징은 레이블이 지정된 풍부한 훈련 데이터를 사용하여 학습된다. 그러나 주석이 달린 음성 데이터나 가짜 발화를 얻는 것은 비용이 많이 들고 기술적으로 요구된다. </p>
<p>이로 인해 연구자들은 자기 지도 음성 모델을 사용하여 훈련된 깊은 임베딩 특징을 추출하는 것에 동기부여를 받는다. </p>
<p>효과적인 자기 지도 모델을 훈련하는 것은 비용이 많이 들지만, Wav2vec, XLS-R, HuBERT와 같은 사전 훈련된 자기 지도 음성 모델이 여럿 공개되어 있다.</p>
<br/>

<p><strong>Wav2vec 기반 특징은 사전 훈련된 Wav2vec 또는 Wav2vec2.0 모델에서 추출</strong>된다. </p>
<ul>
<li><p>Xie et al.는 2021년에 실제 음성과 가짜 음성을 구별하기 위해 Siamese 신경망 기반의 표현 학습 모델을 제안했다. 이 모델은 사전 훈련된 Wav2vec 모델에서 추출된 wav2vec 특징을 사용하여 훈련된다. </p>
</li>
<li><p>Tak et al.은 2022년에 가짜 오디오 감지를 위해 Wav2vec2.0 프론트 엔드를 사용하는 자기 지도 학습을 제안한다. 사전 훈련된 Wav2vec2.0은 가짜 오디오 없이 실제 음성 데이터만을 사용하여 훈련되었지만, 그들은 ASVspoof 2021 LA와 Deepfake 데이터셋에 대해 문헌에서 보고된 최신 결과를 얻었다.</p>
</li>
</ul>
<br/>

<p><strong>XLS-R 기반 특징은 Wav2vec2.0의 변형인 사전 훈련된 XLS-R 모델에서 추출</strong>된다. </p>
<ul>
<li><p>Martin-Donas는 2022년 ADD 챌린지의 LF 트랙에서 사전 훈련된 XLS-R에서 추출된 깊은 특징을 활용했다. </p>
</li>
<li><p>Lv et al.는 가짜 오디오 감지를 위해 자기 지도 모델 XLS-R을 특징 추출기로 사용한다. 이러한 특징은 알려지지 않은 부분적으로 가짜인 음성에 대해 잘 일반화되며, ADD 2022 대회의 PF 작업에서 최고의 결과를 얻었다.</p>
</li>
</ul>
<br/>

<p><strong>HuBERT 기반 특징은 사전 훈련된 HuBERT 모델에서 추출</strong>된다. </p>
<ul>
<li>Wang 등은 오디오 딥페이크 감지를 위해 사전 훈련된 HuBERT 모델을 사용하여 지속 시간 인코딩 벡터를 추출한다. 이 인코딩 벡터는 음성 음운과 유사한 인코딩이다. 사전 훈련된 HuBERT에서 추출된 임베딩을 직접 감지 모델의 입력 특징으로 사용한다. <br/>
다른 <strong>사전 훈련된 자기 지도 모델에서 추출된 임베딩 특징을 사용하여 스푸핑 음성 감지의 성능을 조사</strong>했다. 예를 들어, Wav2vec2.0, XLS-R 및 HuBERT와 같은 모델에서 추출된 임베딩 특징을 사용하여 유용한 결과를 제시했다.<br/>
사전 훈련된 모델이 대상 데이터로 미세 조정되지 않은 경우, 분류기는 안티 스푸핑 모델에 대해 심층적이어야 한다. 그러나 <strong>사전 훈련된 모델이 안티 스푸핑 데이터로 미세 조정된 경우, 간단한 신경망으로도 충분</strong>하다.</li>
</ul>
<p><strong>자기 지도 학습을 사용하여 깊은 임베딩 특징을 학습하는 것은 가짜 오디오 감지의 일반화를 향상시킬 가능성이 있는 잠재적인 방향으로 제안</strong>된다.</p>
<p><br/><br/><br/><br/></p>
<h1 id="4-분류-알고리즘">4. 분류 알고리즘</h1>
<hr>
<p>백엔드 분류기는 오디오 딥페이크 감지에 있어 매우 중요하며, 프런트엔드 입력 특징의 고수준 특성 표현을 학습하고 우수한 구별 능력을 모델링하는 것을 목표로 한다. 분류 알고리즘은 주로 전통적 분류와 심층 학습 분류로 나뉜다.</p>
<p><br/><br/></p>
<h2 id="41-전통적-분류">4.1 전통적 분류</h2>
<p>가짜 음성을 탐지하는 데 많은 고전적인 패턴 분류 접근 방식이 사용되었다. 로지스틱 회귀 (LR), 확률적 선형 판별 분석 (PLDA), 랜덤 포레스트 (RF), 그래디언트 부스팅 결정 트리 (GBDT), 익스트림 러닝 머신 (ELM) , k-최근접 이웃 (KNN) 등이 포함된다. 가장 널리 사용되는 분류기는 서포트 벡터 머신 (SVM) 및 GMM이다.</p>
<br/>


<h3 id="411-svm-기반-분류기">4.1.1 SVM 기반 분류기</h3>
<p>이전 초기 작업에서 스푸핑 오디오 감지에 광범위하게 사용되는 전통적 분류기 중 하나는 우수한 분류 능력으로 인해 SVM이다. </p>
<ul>
<li><p>Alegre 등은 <strong>SVM 분류기가 인공적 신호 스푸핑 공격에 대해 내재적으로 견고</strong>하다고 제안한다. 그러나 실제 시나리오에서 스푸핑 공격의 정확한 성격을 알기가 매우 어렵다. </p>
</li>
<li><p>따라서 Alegre 등과 Villalba 등은 오직 <strong>진짜 발음을 사용하여 훈련된 단일 클래스 SVM 분류기를 제안하여 실제와 가짜 음성을 분류</strong>하고, 이는 알려지지 않은 스푸핑 공격에 잘 일반화된다. </p>
</li>
<li><p>Hanilc¸i 등은 SVM의 <strong>입력 특징으로 ivector를 사용</strong>하여 실제 발음과 가짜 발음을 구별한다.</p>
</li>
</ul>
<br/>

<h3 id="412-gmm-기반-분류기">4.1.2 GMM 기반 분류기</h3>
<p>GMM으로 잘 알려진 또 다른 전통적 분류기는 효과적인 생성 모델로, ASVspoof 201, 2019, 2021 및 ADD 2022 와 같은 일련의 대회에서 기준 모델로 사용되었다. </p>
<ul>
<li><p>Amin 등은 <strong>MFCC 특징</strong>을 사용하여 음성 변장을 감지하기 위해 GMM 분류기를 훈련시켰다. </p>
</li>
<li><p>De Leon 등은 인간과 합성 음성을 구별하기 위해 GMM 분류를 사용한다. </p>
</li>
<li><p>Wu 등은 실제와 변환된 음성 사이를 결정하기 위해 실제 및 변환된 음성에 대한 GMM 모델을 기반으로 한 <strong>로그 스케일 우도 비율을 사용</strong>하는 방법을 제안한다. </p>
</li>
<li><p>Sizov 등은 <strong>GMM 평균 슈퍼벡터로 훈련된 i-벡터를 사용</strong>하여 VC 공격 감지와 스피커 확인을 동시에 수행하여 유망한 성능을 얻었다. </p>
</li>
</ul>
<br/>

<p>ASVspoof 2015 및 2017의 많은 참가자들이 진짜와 가짜 음성을 분류하기 위해 GMM을 채택하여 유망한 성능을 얻었다. </p>
<ul>
<li><p>Sahidullah 등은 다양한 특징의 벤치마킹을 위해 ASVspoof 2015 데이터셋에서 합리적인 정확도를 얻기 때문에 GMM 분류기를 선택한다.</p>
</li>
<li><p>또한, Todisco 등 [115]은 정품과 가짜 음성에 해당하는 두 클래스에 GMM을 사용하여 <strong>표준 2-클래스 분류기</strong>를 사용한다.</p>
</li>
</ul>
<p><br/><br/></p>
<h2 id="42-딥러닝-분류">4.2 딥러닝 분류</h2>
<p>가장 최근의 가짜 오디오 탐지 시스템의 백엔드 분류는 주로 강력한 모델링 능력으로 인해 SVM 및 GMM 기반 분류기를 크게 능가하는 딥러닝 방법을 기반으로 한다. 백엔드 분류의 모델 아키텍처는 일반적으로 합성곱 신경망 (CNN), 딥 잔여 신경망 (ResNet), 수정된 ResNet (Res2Net), 스퀴즈-앤-익스사이트 네트워크 (SENet), 그래프 신경망 (GNN), 차별 가능한 아키텍처 탐색 (DARTS) 및 Transformer를 기반으로 한다.</p>
<br/>

<h3 id="421-cnn-기반-분류기">4.2.1 CNN 기반 분류기</h3>
<p>CNN은 공간적으로 지역적인 상관 관계를 잘 포착하는 데 능하므로, CNN 기반 분류기는 유망한 성능을 달성했다. 이러한 분류기 중 하나인 경량 CNN (LCNN)은 최대 특징 맵 (MFM) 활성화와 함께 합성곱 및 최대 풀링 레이어로 구성된다. </p>
<p><strong>LCNN</strong>은 ASVspoof 및 ADD 대회의 기준 모델로 사용된다. ASVspoof 2017의 최고 시스템 및 ASVspoof 2019 LA 작업의 최고 단일 시스템도 모두 LCNN을 가짜 오디오 탐지에 사용한다. </p>
<p><strong>MFM 활성화</strong>는 잡음 효과 (주변 잡음, 신호 왜곡 등)를 필터링하고 핵심 정보를 유지하는데 도움이 되며, 계산 비용과 저장 공간을 줄인다. </p>
<ul>
<li><p>Zeinali 등은 가짜 발화를 감지하기 위해 여러 합성곱 및 풀링 레이어 후 통계 풀링 및 여러 밀도 레이어로 구성된 <strong>VGG와 유사한 네트워크</strong>를 사용한다. </p>
</li>
<li><p>Wu 등은 정품 음성만을 사용하여 훈련된 특징 <strong>정형화 트랜스포머와 CNN</strong>을 사용하여 모델을 학습한다.</p>
</li>
</ul>
<br/>

<h3 id="422-resnet-기반-분류기">4.2.2 ResNet 기반 분류기</h3>
<p>딥 CNN은 가짜 오디오 감지에 유망한 결과를 얻었지만, 더 깊은 신경망은 더 어려운 훈련을 필요로 하며 성능 저하를 초래할 수 있다. 이 문제를 해결하기 위해 잔여 매핑을 사용하는 ResNet이 분류기로 도입된다. </p>
<ul>
<li><p>Tomilov 등과 Chen 등은 모두 ASVspoof 2021의 딥페이크 과제에서 유망한 결과를 얻기 위해 ResNet을 사용한다. </p>
</li>
<li><p>Yan 등은 <strong>다중 헤드 어텐션 풀링 레이어가 있는 표준 34층 ResNet</strong>을 사용하여 딥페이크 오디오를 감지하며, ADD 2022의 FG-D 과제에서 1위를 차지한다. </p>
</li>
<li><p>Lai 등은 ResNet 기반의 <strong>Attentive Filtering Network (AFN)</strong>라는 분류기를 제안하여 성능을 더 향상시킵니다. AFN은 저항성 유닛을 수정하여 완전 연결 레이어 대신 <strong>컨볼루션 레이어를 사용하고 확장을 추가</strong>하는 방식의 잔여 네트워크를 기반으로 한다. </p>
</li>
<li><p>Parasu 등은 오버피팅을 방지하기 위해 네트워크 매개변수를 줄이면서 <strong>경량 ResNet</strong> 기반 가짜 오디오 감지 시스템을 소개한다. </p>
</li>
<li><p>Kwak 등은 <strong>MFM 활성화와 ResNet을 결합</strong>한 ResMax라는 컴팩트 네트워크를 소개하여 위조 오디오 감지 시스템의 성능을 향상시킨다.</p>
</li>
</ul>
<br/>

<h3 id="423-res2net-기반-분류기">4.2.3 Res2Net 기반 분류기</h3>
<p>ResNet 기반 모델은 위조 신호를 잘 포착하는 능력이 강하지만, <strong>보이지 않는 위조 공격에 대한 일반화 능력은 여전히 제한적</strong>이다. </p>
<ul>
<li><p>따라서 Li 등은 <strong>Res2Net을 위조 오디오 탐지 시스템에 통합</strong>하는 것을 제안했다. 여기서 ResNet 블록 내의 <strong>피쳐 맵은 잔여 연결에 의해 연결된 여러 채널 그룹으로 분할</strong>된다. Res2Net의 연결은 수용 영역을 확장하고 보이지 않는 가짜 발화에 대한 일반화를 향상시킨다. </p>
</li>
<li><p>Kim 등은 위조 오디오를 감지하기 위해 <strong>위상 및 크기 피쳐로 공급된 Res2Net</strong> 및 <strong>Phase 네트워크</strong>를 활용한다.</p>
</li>
</ul>
<br/>

<h3 id="424-senet-기반-분류기">4.2.4 SENet 기반 분류기</h3>
<p>CNN의 합성곱 연산자는 각 레이어에서 로컬 수용 영역 내에서 공간 및 채널별 정보를 모두 융합하기 위해 설계되었으며 <strong>채널 간의 관계를 고려하지 않</strong>는다.</p>
<ul>
<li><p>Hu 등 및 Zhang 등은 <strong>채널 간 상호 의존성을 적응적으로 모델링</strong>하기 위해 Squeeze-and-Excitation 네트워크 (SENet)를 제안한다. </p>
</li>
<li><p>Lai 등은 가짜 오디오 탐지 모델 중 하나를 훈련하는 데 SENet을 사용한다. 더 나아가, 그들은 <strong>SENet과 ResNet을 결합</strong>한 시스템인 Squeeze-Excitation 및 Residual neTworks (ASSERT)를 제안한다. ASSERT는 ASVspooof 2019의 두 하위 챌린지에서 성능이 우수한 시스템 중 하나로 순위가 매겨진다. </p>
</li>
<li><p>Wu 등은 <strong>SELF-Attention 레이어와 함께 SENet을 사용</strong>하여 부분적으로 위조된 오디오를 감지하여 ADD 2022 챌린지에서 최고의 성능을 달성한다. </p>
</li>
<li><p>Xue 등은 <strong>효율적인 채널 어텐션</strong>을 통한 SENet을 사용하여 위조 음성을 감지한다.</p>
</li>
</ul>
<br/>

<h3 id="425-gnn-기반-분류기">4.2.5 GNN 기반 분류기</h3>
<p>그래프 신경망(GNN), 예를 들어 그래프 주의 네트워크(GAT)나 그래프 합성곱 네트워크(GCN)는 데이터 간의 기본적인 관계를 학습하는 데 사용된다. 위조 공격을 감지하기 위해 사용되는 <strong>가짜 아티팩트는 특정 시간 구간이나 스펙트럼 서브밴드에 위치</strong>하는 경우가 많다. 하지만 앞서 언급된 연구들은 <strong>이웃한 서브밴드나 구간 간의 관계 학습에 초점을 맞추지 않았</strong>다. </p>
<ul>
<li><p>Tak 등은 이러한 관계를 모델링하여 위조 오디오 탐지 시스템의 성능을 향상시키기 위해 <strong>GAT</strong>를 사용한다. </p>
</li>
<li><p>최근 Chen 등은 <strong>GCN을 사용하여 사전 지식을 통합</strong>해 <strong>스펙트로-템포럴 종속성 정보를 학습</strong>하여 ASVspoof 2019 LA 데이터셋에서 유망한 성능을 달성했다.</p>
</li>
</ul>
<br/>

<h3 id="426-darts-기반-분류기">4.2.6 DARTS 기반 분류기</h3>
<p>차별화된 아키텍처 검색(DARTS)라는 특정 변형된 신경망 아키텍처 검색 방법은 <strong>아키텍처 블록 내의 연산(합성곱, 풀링, 잔여 연결 연산 등)을 자동으로 최적화</strong>한다. </p>
<ul>
<li><p>Ge 등은 부분 채널 연결(PC-DARTS)이라는 DARTS의 변형을 오디오 딥페이크 탐지에 도입했다. PC-DARTS 기반 모델은 <strong>인간의 개입이 거의 없고 Res2Net 모델보다 85% 적은 파라미터를 포함</strong>하면서도 이전 연구에서 최고 성능을 기록한 시스템과 비교하여 경쟁력 있는 결과를 얻었다. </p>
</li>
<li><p>Wang 등은 <strong>DARTS와 MFM 활성화를 결합</strong>한 경량 DARTS를 제안하여 피처 선택의 역할을 수행한다.</p>
</li>
</ul>
<br/>

<h3 id="427-transformer-기반-분류기">4.2.7 Transformer 기반 분류기</h3>
<p>완전히 위조된 발화와 달리 부분적으로 위조된 발화는 <strong>연결된 오디오 클립 사이에 불연속적인 아티팩트</strong>가 포함되어 있다. Transformer는 로컬 및 글로벌 아티팩트와 관계를 모델링하는 데 뛰어나다. </p>
<ul>
<li>Cai 등은 <strong>Transformer와 ResNet-1D</strong>를 백엔드 분류기로 사용하여 부분적으로 위조된 오디오를 감지하고 가짜 영역을 찾는다.</li>
</ul>
<p><br/><br/><br/><br/></p>
<h1 id="5-엔드-투-엔드-모델">5. 엔드 투 엔드 모델</h1>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/af634a2a-7c3a-4bd3-8a84-1509ec4ac05e/image.png" alt=""></p>
<p>앞서 언급된 오디오 딥페이크 탐지 방법은 손으로 만든 피처 또는 학습 가능한 피처를 제공받는 머신 러닝 기반 분류기의 설계에 중점을 두었다. 과거 문헌에서는 잘 설계된 분류기를 사용하면 더 나은 성능을 발휘할 수 있음을 보여주었지만, 특정 분류기의 성능은 다른 피처와 결합할 때 크게 달라질 수 있다. </p>
<p>최근 몇 년 동안, 피처 추출과 분류를 통합한 엔드 투 엔드 방식의 딥 뉴럴 네트워크 기반 접근법이 경쟁력 있는 성능을 달성했으며, 이 방식에서는 <strong>피처 추출기와 분류기가 원시 음성 파형에서 직접 공동으로 최적화</strong>된다. 엔드 투 엔드 모델은 지식 기반 피처 사용에서 발생하는 한계를 피하고 애플리케이션에 최적화되어 일반적인 분해보다는 더 나은 성능을 발휘한다. </p>
<p>오디오 딥페이크 탐지의 엔드 투 엔드 아키텍처는 대략 네 가지 유형으로 분류될 수 있다: <strong>CNN, RawNet2, ResNet, GNN, DARTS 및 Transformer.</strong></p>
<p><br/><br/></p>
<h2 id="51-cnn-기반-모델">5.1 CNN 기반 모델</h2>
<p>몇몇 연구자들은 CNN 기반 모델을 활용하여 엔드투엔드 가짜 오디오 탐지를 시도한다. </p>
<ul>
<li><p>Muckenhirn 등은 스푸핑 공격을 탐지하기 위해 간단한 CNN 기반 엔드투엔드 접근 방식을 사용했다. 제안된 모델은 <strong>단일 합성곱 레이어와 다층 퍼셉트론(MLP) 레이어</strong>로 구성되어 있으며, VC와 TTS 공격에 대해 우수한 성능을 보였다. </p>
</li>
<li><p>Dinkel 등은 원시 파형 합성곱 장기단기 기억 신경망(CLDNN) 기반의 안티스푸핑 방법을 제안했다. CLDNN 모델은 <strong>시간 및 주파수 합성곱 레이어를 사용하여 시간 및 스펙트럼 변동을 줄이고 장기 시간 정보를 모델링</strong>하기 위해 <strong>장기 메모리 레이어</strong>를 사용한다. </p>
</li>
<li><p>2020년, Chintha 등은 스푸핑 탐지를 위한 합성곱-순환 신경망인 CRNNSpoof를 제안했으며, 이 모델은 <strong>5개의 1-D 합성곱 레이어, 양방향 LSTM 레이어 및 두 개의 완전 연결 레이어</strong>로 구성된다. </p>
</li>
</ul>
<br/>

<p>그러나 앞서 언급된 모델들은 <strong>교차 데이터셋 평가에서 좋은 성능을 보이지 않는</strong>다. </p>
<ul>
<li>이를 해결하기 위해 Hua 등은 <strong>Inception 병렬 합성곱 구조를 포함한 시간 도메인 합성 음성 구간 네트워크</strong>인 TSSDNet을 제안했다. 제안된 모델은 <strong>보지 못한 데이터셋에 대해 유망한 일반화 능력</strong>을 가지고 있다.</li>
</ul>
<p><br/><br/></p>
<h2 id="52-rawnet2-기반-모델">5.2 RawNet2 기반 모델</h2>
<p>텍스트 독립적인 화자 검증에서 RawNet2의 강력함에 영감을 받아 </p>
<ul>
<li><p>Tak 등은 RawNet2를 안티스푸핑에 활용니다. RawNet2는 잔차 블록이 있는 합성곱 신경망으로, 첫 번째 레이어는 SincNet과 본질적으로 동일한 sinc 모양의 필터 뱅크를 가지고 있다. RawNet2는 <strong>시간 도메인 합성곱을 통해 원시 오디오에서 직접 작동하며 지식 기반 방법을 사용하여 탐지할 수 없는 신호를 학습</strong>할 수 있는 잠재력을 가지고 있다. </p>
</li>
<li><p>Wang 등은 가짜 오디오 탐지를 위해 <strong>가중치가 부여된 가산 각도 마진 손실을 사용</strong>하여 RawNet2를 사용한다. 그러나 RawNet2는 훈련 중 Sinc-Conv 레이어의 파라미터를 최적화하지 않아 성능이 제한된다. </p>
</li>
<li><p>이를 해결하기 위해 Wang 등은 <strong>필터 간의 상관성을 줄이는 정규화를 적용</strong>하여 RawNet2에 정규화 합성곱을 통합하여 구별력을 향상시킨 TO-RawNet을 제안한다. TO-RawNet 기반의 가짜 오디오 탐지 모델은 RawNet2 기반 모델보다 눈에 띄게 우수한 성능을 보인다.</p>
</li>
</ul>
<p><br/><br/></p>
<h2 id="53-resnet-기반-모델">5.3 ResNet 기반 모델</h2>
<p>잔차 매핑이 있는 심층 신경망인 ResNet은 훈련이 쉬워지고 유망한 성능을 달성한다. </p>
<ul>
<li><p>Hua 등은 <strong>잔차 스킵 연결이 있는 TSSDNet</strong>을 제안하여 더 나은 성능을 얻었다. </p>
</li>
<li><p>Ma 등은 <strong>Conv1D Resblocks와 백본 ResNet34로 구성</strong>된 RW-ResNet이라는 음성 안티스푸핑 모델을 제안한다.</p>
</li>
</ul>
<p><br/><br/></p>
<h2 id="54-gnn-기반-모델">5.4 GNN 기반 모델</h2>
<p>그래프 표현 간의 복잡한 관계를 모델링하는 GAT의 성공에서 영감을 받아 </p>
<ul>
<li><p>Tak 등은 RawGAT-ST라는 <strong>스펙트로-템포럴 GAT</strong>를 제안하여 관계를 학습하고 ASVspoof 2019 LA 평가 세트에서 RawNet2와 Res-TSSDNet을 능가한다. </p>
<p>그러나 RawGAT-ST는 두 개의 그래프를 병렬로 결합하여 두 그래프에 요소별 곱셈을 적용하여 정보를 결합한다. 사실, <strong>heterogeneous attention 메커니즘을 통해 두 이종 그래프를 결합하는 것이 유익</strong>하다. </p>
</li>
<li><p>따라서 Jung 등 [134]은 AASIST라는 <strong>heterogeneous attention 메커니즘을 사용하여 시간 및 스펙트럼 구간에 걸친 아티팩트를 모델링</strong>하는 heterogeneous stacking graph attention layer를 제안한다. </p>
<p>AASIST는 현재 최첨단 엔드투엔드 모델을 능가한다. 또한 AASIST의 경량 변형인 AASIST-L은 경쟁력 있는 성능을 얻는다. </p>
</li>
</ul>
<br/> 
이러한 방법들은 알려진 인코딩 및 전송 조건에서는 안정적으로 작동하지만 알려지지 않은 전화 시나리오에서는 신뢰할 수 없다. 

<ul>
<li>이를 해결하기 위해 Tak 등은 RawGAT-ST와 RawNet2 시스템을 기반으로 한 모델인 RawBoost를 제안한다. <br/>

</li>
</ul>
<p>이는 <strong>원시 오디오에 직접 적용할 수 있는 선형 및 비선형 컨볼루션 잡음과 임펄스 및 정적 가산 잡음을 결합한 데이터 부스팅 및 증강 기법</strong>이다. 또한, AASIST는 훈련 중 sinc-conv의 파라미터를 최적화하지 않기 때문에 성능이 제한된다.</p>
<ul>
<li>따라서 Wang 등은 AASIST의 Sinc-conv 레이어에 <strong>정규화를 적용</strong>하여 Orth-AASIST를 사용하여 AASIST 기반 모델을 능가한다.</li>
</ul>
<p><br/><br/></p>
<h2 id="55-darts-기반-모델">5.5 DARTS 기반 모델</h2>
<p>앞서 언급한 엔드투엔드 방법은 고무적이고 유망하다. 그러나 이들은 <strong>피처와 네트워크 파라미터를 자동으로 학습할 수 있을 뿐 네트워크 아키텍처는 학습할 수 없다.</strong> </p>
<ul>
<li>따라서 Ge 등은 <strong>원시 오디오 파형(Raw PC-DARTS)에서 부분적으로 연결된 차별적 아키텍처 검색을 기반으로 구현된 자동 접근 방식을 시도</strong>한다.</li>
</ul>
<p><br/><br/></p>
<h2 id="56-transformer-기반-모델">5.6 Transformer 기반 모델</h2>
<p>원시 오디오에서 로컬 및 글로벌 아티팩트와 관계를 모델링하기 위해 </p>
<ul>
<li><p>Liu 등은 가짜 발화를 감지하기 위해 <strong>합성곱 레이어와 트랜스포머로 구성</strong>된 Rawformer라는 모델을 제안한다. Rawformer는 교차 데이터셋 평가에서 AASIST보다 더 잘 일반화된다. </p>
</li>
<li><p>Liu 등은 또한 <strong>로컬 종속성을 획득</strong>하기 위해  squeeze-and-excitation 연산을 사용하는 SE-Rawformer라는 스퀴즈-앤-익사이트 Rawformer를 제안하여 Rawformer를 능가한다.</p>
</li>
</ul>
<p><br/><br/><br/><br/></p>
<h1 id="6-일반화-방법">6. 일반화 방법</h1>
<hr>
<p>대부분의 기존 오디오 딥페이크 탐지 방법은 도메인 내 테스트에서 인상적인 성능을 보였지만, 실제 시나리오에서 도메인 외 데이터셋을 처리할 때 성능이 급격히 떨어진다. 즉, 오디오 딥페이크 탐지 시스템의 <strong>일반화 능력은 여전히 부족</strong>하다. 여러 시도들이 다양한 관점에서 이 문제를 해결하려고 했으며, 여기에는 손실 함수와 지속 학습이 포함된다.
<br/><br/></p>
<h2 id="61-손실-함수">6.1 손실 함수</h2>
<p>알 수 없는 공격에 대한 오디오 딥페이크 탐지 시스템의 일반화 능력을 향상시키는 것은 점점 더 어려워지고 있다. </p>
<ul>
<li><p>이 문제를 해결하기 위해 Chen 등은 <strong>큰 마진 코사인 손실(LMCL) 함수와 온라인 주파수 마스킹 증강을 사용하여 신경망이 더 강력한 특징 임베딩을 학습</strong>하도록 한다. LMCL과 데이터 증강을 적용하여 탐지 모델의 일반화 능력을 향상시킨다.</p>
</li>
<li><p>Zhang 등은 알 수 없는 가짜 공격을 처리하기 위해 단일 클래스 학습을 사용하며, 주요 아이디어는 <strong>진짜 오디오 표현의 컴팩트한 표현을 구축하고 임베딩 공간에서 가짜 발화를 분리하는 각도 마진을 사용</strong>하는 것이다. </p>
<p>이 방법은 데이터 증강 방법 없이 ASVspoof 2019 챌린지의 LA 작업 평가 세트에서 모든 기존 단일 시스템을 능가한다. </p>
</li>
</ul>
<br/>

<p>이러한 방법들은 실질적인 사용에서 알 수 없는 공격을 탐지하는 어려움을 어느 정도 해결한다. 그러나 임베딩 공간에서 본아피드 발화의 컴팩트성은 <strong>화자의 다양성을 고려하지 않는다.</strong> </p>
<ul>
<li><p>Ding 등은 이 문제를 해결하기 위해 <strong>스피커 어트랙터 멀티센터 단일 클래스 학습(SAMO)</strong> 을 제안한다. </p>
<p>SAMO의 핵심 아이디어는 <strong>실제 발화가 여러 스피커 어트랙터 주위에 클러스터링되고, 이 방법은 고차원 임베딩 공간에서 모든 어트랙터로부터 가짜 목소리를 밀어내는 것</strong>이다.</p>
</li>
</ul>
<p><br/><br/></p>
<h2 id="62-지속-학습">6.2 지속 학습</h2>
<p>지속 학습은 <strong>새로운 정보에 대한 모델의 지속적인 훈련과 적응에 중점</strong>을 두며, <strong>파인 튜닝에서 발생하는 재앙적 망각을 극복</strong>하는 것을 목표로 한다. </p>
<ul>
<li><p>보지 못한 딥페이크 오디오에 대한 성능을 향상시키기 위해 Ma 등은 <strong>Detecting Fake Without Forgetting(DFWF)이라는 정규화 기반 지속 학습 방법</strong>을 제안한다. </p>
<p>이 방법은 <strong>이전 데이터를 접근할 필요 없이 모델이 새로운 가짜 공격을 점진적으로 학습</strong>할 수 있게 한다. 또한 정규화를 도입하여 새로운 데이터셋에서 탐지 성능을 향상시키고 재앙적 망각을 극복한다. </p>
<br/>

</li>
</ul>
<p>그러나 <strong>DFWF의 근사는 지속 학습에서 오류 누적을 초래하여 학습 성능을 저하</strong>시킬 수 있다. </p>
<ul>
<li><p>가장 최근에 Zhang 등은 이 문제를 해결하기 위해 <strong>가짜 오디오 탐지를 위한 지속 학습 알고리즘인 정규화 적응 가중치 수정(RAWM)</strong> 을 제안한다. </p>
<p>RAWM은 DFWF의 정규화 제약을 완화하고 재앙적 망각을 극복하기 위해 적응적 방향 수정을 도입하여 오디오 딥페이크 탐지 작업에서 대부분의 전형적인 지속 학습 방법을 능가한다.</p>
</li>
</ul>
<p><br/><br/><br/><br/></p>
<h1 id="7-성능-비교">7. 성능 비교</h1>
<hr>
<br/>

<h2 id="71-주요-대회에서의-최고-성능-방법">7.1 주요 대회에서의 최고 성능 방법</h2>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/8b3f5811-4049-4001-852a-56500899d31c/image.png" alt=""></p>
<p>ASVspoof와 ADD 대회에서의 최고 성능 시스템은 표 5에 요약되어 있으며, EER(평균 오류율)을 기준으로 성능이 평가되었다. 이러한 시스템들은 모두 데이터 증강을 훈련에 사용하지만, <strong>공통된 형태의 데이터 증강 방법은 확인되지 않았</strong>다. </p>
<p><strong>대부분은 앙상블 시스템이며, 대부분이 단기 스펙트럼 특징이나 원시 파형을 기반으로 동작</strong>한다. 대부분은 <strong>ResNet 분류기나 그 변형</strong>을 사용하며, 다른 형태의 합성곱 신경망도 인기를 끌고 있다. 이 방법에서 사용된 융합 전략에는 균일하게 또는 경험적으로 설정된 가중치를 사용하는 <strong>가중 평균</strong>이 포함된다.</p>
<br/>

<p>이 시스템들은 일반적으로 <strong>스펙트럼 특징에 의존</strong>하며, 특히 ASVspoof 챌린지의 초기 반복에서는 더욱 그렇다. 최근에는 <strong>Wav2vec2.0 또는 XLS-R과 같은 사전 훈련된 모델에서 파생된 특징</strong>도 많이 사용되며, ADD 대회의 최고 성능 시스템에서 사용된 바와 같이 상당한 성공을 거두고 있다.</p>
<p>분류기 측면에서는 <strong>전통적인 분류기(SVM, GMM 등)와 딥러닝 네트워크</strong>가 최고 성능 시스템에서 모두 사용되었다. ASVspoof 대회의 최고 성능 시스템은 <strong>GMM, SVM 및 ResNet 분류기</strong>를 사용한 반면, ADD 대회의 최고 성능 시스템은 <strong>ResNet, LCNN 및 AASIST 분류기</strong>를 사용했다.</p>
<p>표면적으로는 EER 증가로 인해 성능이 감소하는 것처럼 보일 수 있지만, 이는 성능 감소보다는 과제의 난이도가 증가했기 때문일 가능성이 크다. 대회에서 최고 성능 시스템은 일관되게 기준 시스템보다 큰 차이로 뛰어난 성능을 보여주었다.</p>
<p><br/><br/></p>
<h2 id="72-특징-평가">7.2 특징 평가</h2>
<p>가짜 오디오 탐지에서 다양한 <strong>핸드크래프트 특징의 판별 성능</strong>을 평가했다. 특징에는 <strong>단기 스펙트럼 특징(MFCC, LPS, LFCC, IMFCC), 장기 스펙트럼 특징(CQCC), 운율 특징(F0, 에너지, 지속 시간) 및 자기 지도 임베딩 특징(XLS-R)</strong>이 포함된다. 또한 <strong>운율 특징과 LFCC 또는 XLS-R의 연결로 생성된 특징</strong>도 포함된다. 이 실험 그룹에서 우리는 가짜 오디오 탐지 작업에서의 인기도와 효과 때문에 GMM, LCNN 및 ASSERT 분류기를 선택한다.</p>
<br/>

<p><strong>단기 스펙트럼 특징</strong>의 추출을 위해 기준 시스템의 설정을 참조했다. 그런 다음 1차 및 2차 차이를 계산했다. LFCC와 CQCC의 경우, 기준 시스템의 기본 설정을 따른다. LPS 특징은 오디오 처리 툴킷을 사용하여 STFT에서 블랙먼 창을 통해 추출된다.</p>
<p><strong>운율 특징</strong>의 경우, <strong>피치 추적 방법(YAPPT) [174]을 사용하여 F0 특징(A)을 추출</strong>한다. <strong>윈도우 길이는 25ms로 설정하고 윈도우 이동은 에너지 특징(B)을 추출</strong>하기 위해 10ms로 설정한다. <strong>지속 시간 특징(C)</strong>의 경우, <strong>HuBERT 기반 지속 시간 방법의 설정</strong>을 따른다.</p>
<p>Wav2vec2.0의 변형인 &quot;Wav2vec2.0 XLS-R&quot;을 사용하여 XLS-R 특징을 추출한다. 이 모델은 53개 언어와 56,000시간의 오디오 데이터셋에서 사전 훈련되었으며, 더 많은 선형 변환과 더 큰 컨텍스트 네트워크를 포함한다. 10ms의 오디오 세그먼트는 사전 훈련된 모델에 대해 1024차원 벡터로 변환된다.</p>
<br/>

<p>분류기에는 GMM, LCNN 및 ASSERT 모델이 포함된다. <strong>GMM 모델</strong>은 무작위로 초기화된 512개의 구성 요소를 가진 GMM을 사용하여 기대-최대화 알고리즘으로 훈련한다. <strong>LCNN 백엔드 분류기</strong>는 Asvspoof 2019를 기반으로 하지만 LSTM 레이어와 평균 풀링을 포함한다. <strong>ASSERT 분류기</strong>는 해당 논문을 기반으로 한다.</p>
<p>위에 언급된 시스템 세트를 사용하여 두 가지 실험 세트를 수행한다. 첫 번째 세트에서는 ASVspoof 2021 DF 과제 훈련 세트에서 분류기를 훈련시키고, ASVspoof 2021 DF 과제 테스트 세트와 In-the-Wild 테스트 세트에서 평가한다. 두 번째 세트에서는 ADD 2023 FG-D 과제 훈련 세트에서 분류기를 훈련시키고, ADD 2023 FG-D 과제 테스트 세트와 In-the-Wild 테스트 세트에서 평가합니다. 결과는 표 6 및 7에 나와 있다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/de14eb03-99ee-4c24-8398-084f7900db57/image.png" alt=""></p>
<br/>

<p>결과에서 알 수 있듯이, 탐지 시스템은 인-도메인 테스트에 비해 아웃-도메인 평가에서 성능이 더 나쁘며, EER이 2%에서 52%까지 증가한다. 특히 주목할 점은, <strong>핸드크래프트 특징이 인-도메인 평가에서 비교 가능한 성능을 달성하지만, 아웃-도메인 상황에서는 성능 변동이 더 크다</strong>는 것이다. </p>
<p>반면, 사전 훈련된 모델에서 추출된 특징 및 연결된 특징은 더 일관된 성능을 보여준다. 이는 <strong>사전 훈련된 모델에서 추출된 특징이 아웃-도메인 평가에 더 강인하다</strong>는 것을 시사하며, <strong>특징 연결이 탐지 시스템의 강인성을 향상시키는 유효한 전략일 수 있음</strong>을 보여준다. 특히, <strong>XLS-R 특징과 연결된 특징(A + B + C + XLS-R) 및 LFCC는 인-도메인과 아웃-도메인 평가 모두에서 일관적이고 경쟁력 있는 성능을 달성</strong>한다.</p>
<p><br/><br/></p>
<h2 id="73-분류기-평가">7.3 분류기 평가</h2>
<p>이전의 판별 특징 평가에 이어, 우리는 다양한 <strong>백엔드 분류기와 엔드-투-엔드 모델의 성능</strong>도 평가한다. 우리는 가짜 오디오 탐지 작업에서 인기도와 효과 때문에 GMM, LCNN, ResNet, ASSERT, Res2Net, AFN 및 GAT 분류기를 선택한다. XLS-R 특징과 LFCC의 효과를 고려하여, 우리는 이 두 특징에 대해 분류기를 평가한다.</p>
<br/>

<p>GMM, LCNN 및 ASSERT 분류기는 이전 섹션에서 설명한 대로 구성된다. ResNet 분류기는 ResNet-34 모델입니다. Res2Net, AFN, GRU 및 GAT 분류기는 오픈 소스 구현을 기반으로 한다. 훈련 시, 우리는 학습률 5 × 10^-5의 Adam 옵티마이저를 사용하며, 모델은 배치 크기 32로 200에폭 동안 훈련됩니다. 결과는 표 8 및 9에 나와 있다.</p>
<p>표 8에서 보듯이, <strong>AFN 및 GAT 분류기는 인-분포 조건에서 매우 좋은 성능</strong>을 보여주며, EER이 14%에서 15%로 가장 낮다. 분류기들은 <strong>아웃-분포 조건에서도 성능 변동을 크게 보이지 않는다. 이는 사전 훈련된 모델 특징을 가진 딥 컨볼루션 모델이 테스트 데이터가 인-분포일 때 효과적임</strong>을 보여준다. 그러나, 훈련 데이터와 테스트 데이터의 분포에 차이가 있을 때 분류기의 성능은 크게 저하된다. 이는 GAT 분류기의 성능에서 특히 두드러지며, In-the-Wild 테스트 세트에서 평가 시 EER이 10% 증가한다. 이는 <strong>분류기가 아웃-분포 평가에 강인하지 않음</strong>을 시사한다.</p>
<p>이는 표 9의 결과에서도 확인할 수 있으며, 분류기는 ADD 2023 FG-D 과제 테스트 세트와 In-the-Wild 테스트 세트에서 평가된다. 분류기는 In-the-Wild 테스트 세트에서 평가 시 EER이 크게 증가하며, 이는 훈련 데이터셋과 다른 언어다. 이는 분류기가 아웃-분포 평가에 강인하지 않음을 시사하며, <strong>테스트 데이터가 아웃-분포일 때 분류기의 성능이 크게 저하</strong>됨을 나타낸다.</p>
<p><br/><br/></p>
<h2 id="74-엔드-투-엔드-모델-평가">7.4 엔드-투-엔드 모델 평가</h2>
<p>가짜 오디오 탐지 작업에서 인기도와 효과 때문에 RawNet2 및 AASIST와 같은 다양한 엔드-투-엔드 모델의 성능을 평가한다. RawNet2, AASIST 엔드-투-엔드 모델은 오픈 소스 코드를 기반으로 한다. 훈련 시, 학습률 5 times 10^{-5}의 Adam 옵티마이저를 사용하며, 모델은 배치 크기 32로 200에폭 동안 훈련된다.</p>
<p>표 10은 ASVspoof 2021 DF 과제 훈련 세트와 ADD 2023 FG-D 과제 훈련 세트에서 훈련된 엔드-투-엔드 모델의 성능을 보여준다. 이 모델들은 ASVspoof 2021 DF 과제 테스트 세트, ADD 2023 FG-D 과제 테스트 세트, 그리고 In-the-Wild 테스트 세트에서 평가되었다. ASVspoof 데이터셋에서 훈련된 모델의 결과는 <strong>엔드-투-엔드 모델이 인-분포 조건에서 잘 작동</strong>하며, EER이 19%에서 25%로 가장 낮은 것을 보여준다. 그러나, 엔드-투-엔드 모델의 성능은 In-the-Wild 테스트 세트에서 평가될 때 저하되며, EER이 10%에서 15% 증가한다.</p>
<p>반면, ADD 2023 데이터셋에서 훈련된 모델은 In-the-Wild에서 더 나은 성능을 보인다. 이는 ADD 2023 <strong>훈련 및 테스트 세트 간의 오디오 품질 및 변형의 차이로 인해 분포 차이가 더 크게 발생</strong>할 수 있기 때문이다. 전반적으로, 이러한 결과는 이 문제를 해결하는 것이 향후 연구의 유망한 방향임을 시사한다.</p>
<p><br/><br/></p>
<h1 id="8-미래-연구-방향">8. 미래 연구 방향</h1>
<hr>
<p>지난 10년 동안 오디오 딥페이크 탐지에 대한 상당한 진전이 이루어졌지만, 여전히 해결해야 할 몇 가지 한계가 있다. 다음은 잠재적인 연구 방향을 요약한 것이다.</p>
<br/>

<h2 id="81-현실-환경에서의-오디오-데이터셋-수집">8.1 현실 환경에서의 오디오 데이터셋 수집</h2>
<p>대부분의 오디오 딥페이크 탐지 데이터셋은 현실 환경에서 수집되지 않아, 실제 조건에서 녹음되거나 생성된 발화와 일치하지 않는다. 실제 발화 조건은 시뮬레이션된 조건보다 더 나쁘고 다양할 수 있다. 오디오 딥페이크 탐지 방법을 실용적인 응용에서 평가하기 위해서는 <strong>다양한 채널이나 조건에서 현실 환경 조건을 통해 발화를 수집</strong>해야 한다. 예를 들어, <strong>소셜 미디어 플랫폼, 인터넷 또는 전화 채널 등을 통해 수집</strong>할 수 있다.</p>
<br/>

<h2 id="82-대규모-다국어-데이터셋-설계">8.2 대규모 다국어 데이터셋 설계</h2>
<p>이전의 데이터셋은 주로 단일 언어 기반이며, 대부분이 영어 딥페이크 오디오 데이터셋이고 다른 언어 데이터셋(예: 중국어 또는 일본어)은 적다. 이는 탐지 방법이 언어에 의존할 수 있다. 그러나 현실적인 응용에서는 언어에 독립적인 탐지 시스템이 필요하다.** 다른 언어에 대해 탐지 시스템을 더 견고하게 만들기 위해서는 교차 언어 시나리오와 다른 언어 간 코드 전환에 대한 탐지 모델의 성능을 평가**해야 한다. 따라서, 현실 환경에서 오디오 딥페이크 탐지에 대한 대규모 다국어 데이터셋을 설계하고 개발하는 것이 중요하다.</p>
<br/>

<h2 id="83-탐지-모델의-일반화-능력-및-견고성-향상">8.3 탐지 모델의 일반화 능력 및 견고성 향상</h2>
<p>이전 연구들은 오디오 딥페이크 탐지에 많은 시도를 하여 유망한 성과를 거두었지만, 탐지 모델의 <strong>일반화와 견고성은 여전히 부족</strong>하다. ASVspoof와 ADD 대회에서 최고 성능 모델의 성능이 매우 높지만, 새로운 가짜 공격이나 보지 못한 음향 조건, 또는 보지 못한 언어를 포함하는 불일치 데이터셋에서 평가할 때 성능이 크게 저하된다. 일부 연구자들은 이 문제를 해결하기 위해 효과적인 손실 함수나 지속 학습 방법을 사용했지만, 여전히 개선의 여지가 많다.</p>
<br/>

<h2 id="84-급속히-발전하는-딥페이크-기술-대처">8.4 급속히 발전하는 딥페이크 기술 대처</h2>
<p>딥페이크 기술은 빠르게 발전하고 있으며, 생성된 오디오가 점점 더 현실적이 되어 감지하기 어렵다. 이는 현재의 탐지 방법에 새로운 도전을 제공한다. 이 문제를 완화하기 위해, ADD 2022 및 2023 대회에서는 참가자들이 딥페이크 오디오 생성 및 탐지 작업을 경쟁 게임으로 간주한다. 생성 작업 참가자들은 탐지 모델을 속이기 위해 딥페이크 샘플을 생성하고, 탐지 작업 참가자들은 가능한 한 많은 가짜 발화를 탐지하려고 한다. 게임을 통한 탐지 모델의 반 공격 능력을 부분적으로 향상시키기는 했지만, 게임 방법은 단순하고 지능이 부족하다. 따라서, <strong>새로운 보지 못한 딥페이크 오디오 기술에 대응</strong>할 수 있는 더 효과적인 탐지 접근 방식을 제안해야 한다.
<br/></p>
<h2 id="85-탐지-결과의-해석-가능성-향상">8.5 탐지 결과의 해석 가능성 향상</h2>
<p>현재 대부분의 연구는 진짜 오디오와 가짜 오디오를 구별하는 데 중점을 두고 있다. 그러나 이진 분류의 한계를 넘어서 부분적으로 가짜인 음성에서 조작된 구간을 찾고, 가짜 오디오를 생성한 출처를 식별하는 데에도 관심이 있다. 또한, 실생활 응용에서 탐지 결과의 해석 가능성은 중요하다. </p>
<p>예를 들어, 오디오 포렌식과 출처 추적에서는 발화가 왜 가짜인지, 가짜 오디오를 생성한 도구나 딥페이크 기법을 아는 것이 중요하다. 또한, 어떤 조작 기술이 사용되었는지, 심지어 조작의 의도까지 아는 것이 특히 중요하다. ADD 2023 챌린지에는 조작된 구간 위치 및 딥페이크 알고리즘 인식 하위 챌린지가 포함되어 있지만, 연구는 아직 초기 단계에 있다.</p>
<br/>

<h2 id="86-더-합리적인-평가-지표-탐색">8.6 더 합리적인 평가 지표 탐색</h2>
<p>이전 연구에서는 EER이 평가 지표로 널리 사용되었다. 그러나 오디오 딥페이크 탐지 모델에 EER이 적합한지 평가할 필요가 있다. 인간의 탐지 능력과 딥페이크 오디오를 탐지하는 인간과 기계 간의 차이를 고려해야 한다.</p>
<p><br/><br/><br/><br/></p>
<h1 id="9-결론">9. 결론</h1>
<hr>
<p>딥페이크 기술은 악의적으로 사용될 경우 사회적 안전과 정치 경제에 심각한 위협이 된다. 따라서 딥페이크 오디오를 탐지하는 것은 필수적이다. 실생활에서 오디오 딥페이크 탐지를 유용하게 만들기 위해서는, 견고하고 일반화된 알고리즘을 제안하고 유효하고 신뢰할 수 있는 샘플을 제공하여 딥페이크 오디오 탐지를 실제 상황에 적용할 수 있어야 한다. </p>
<p>이에 따라, 이 설문 조사에서는 오디오 딥페이크 탐지에 대한 현재의 연구를 검토하고, 기존 최첨단 방법들의 성능을 비교하며, 잠재력과 향후 연구를 위한 중요한 문제를 강조한다. 최근 오디오 딥페이크 탐지는 활발한 연구 영역이 되었으므로, 이 설문 조사가 연구자들에게 출발점으로서 최첨단 기술 개발을 검토하고 향후 연구 방향을 식별하는 데 도움이 되기를 바란다.</p>
<p><br/><br/></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Capstone #10] Encoding Speaker-Specific Latent Speech Feature for Speech Synthesis]]></title>
            <link>https://velog.io/@yun_haaaa/Capstone-10-Encoding-Speaker-Specific-Latent-Speech-Feature-for-Speech-Synthesis</link>
            <guid>https://velog.io/@yun_haaaa/Capstone-10-Encoding-Speaker-Specific-Latent-Speech-Feature-for-Speech-Synthesis</guid>
            <pubDate>Sat, 18 May 2024 05:36:39 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2311.11745">https://arxiv.org/abs/2311.11745</a></p>
<p><br/><br/></p>
<h2 id="abstract">Abstract</h2>
<p>이 연구에서는 다수의 화자를 모델링하는 새로운 방법을 제안한다. 이 방법은 훈련된 다중 화자 모델처럼 화자의 전반적인 특성을 세부적으로 표현할 수 있으며, Taget speaker의 데이터셋에 대한 추가 훈련 없이도 가능하다. </p>
<p>이와 유사한 목적을 가진 다양한 연구들이 활발히 진행되고 있지만, 근본적인 한계로 인해 훈련된 다중 화자 모델의 성능에 도달하지 못하고 있다. 이전 한계를 극복하기 위해, 특징 학습과 Taget speaker의 음성 특성을 표현하는 효과적인 방법을 제안한다. </p>
<p>이 방법은 특징을 이산화하고 이를 음성 합성 모델에 조건화함으로써 이루어진다. 제안된 방법은 주관적 유사성 평가에서 기존 최고의 다중 화자 모델의 학습된 화자보다 훨씬 높은 유사성 평균 의견 점수(SMOS)를 얻었다. 또한 제안된 방법은 제로샷 방법을 상당한 차이로 능가한다. 게다가, 새로운 인공 화자를 생성하는 데 있어서도 놀라운 성능을 보여준다. </p>
<p>추가로, <strong>인코딩된 잠재 특징이 원래 화자의 음성을 완전히 재구성할 수 있을 만큼 충분히 정보가 풍부하다</strong>는 것을 증명한다. 이는 본 논문의 방법이 다양한 작업에서 화자의 특성을 인코딩하고 재구성하는 일반적인 방법론으로 사용될 수 있음을 의미한다.</p>
<p><br/><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>최근 실세계에서 다수의 화자를 모델링하는 연구가 활발히 진행되고 있다. 이전 연구들은 <strong>학습 가능한 speaker embedding matrix</strong>를 사용하여 하나의 모델에서 각 화자의 음성 특성을 학습함으로써 다수의 화자를 모델링했다. 이는 흔히 <strong>다중 화자 음성 합성</strong>이라고 불린다. 
<br/></p>
<p>이 방법은 <strong>각 화자의 특성을 유사하게 표현하고 화자 간 공통 정보를 공유할 수 있게 하여, 각 화자를 개별적으로 훈련시키는 것보다 상대적으로 적은 훈련 데이터로도 높은 품질의 다중 화자 음성을 합성할 수 있게 한다.</strong> </p>
<p>그러나 <strong>새로운 화자가 추가될 때마다 모든 화자에 대해 모델을 훈련시켜야 하며, 데이터셋이 상대적으로 작은 화자의 경우 고품질의 음성을 합성하기 어려울 수 있다.</strong> 이러한 점을 고려할 때, 이 방법을 확장하여 상당히 많은 수의 화자를 모델링하는 데에는 한계가 있다. 
<br/></p>
<p>이러한 훈련 과정의 필요성과 한계를 완화하기 위해 fine-tuning 접근법이 사용되었다. 이 방법은 소량의 Target speaker 데이터를 사용하여 충분히 훈련된 모델을 파인튜닝한다. 그러나 이는 훈련 과정의 문제를 부분적으로만 극복할 수 있다.</p>
<p><br/><br/><br/></p>
<p>훈련 접근법의 한계를 해결하기 위해 가장 활발히 연구된 방법은 <strong>zero-shot 음성 합성</strong>이다. <strong>Target speaker의 짧은 오디오로부터 얻은 speaker의 벡터를 조건으로 하여, 해당 speaker의 음성 특성과 유사한 음성을 합성</strong>한다. 이는 큰 다중 화자 데이터셋을 사용하여 speaker encoder와 음성 합성 모델을 훈련함으로써 달성된다. 
<br/></p>
<p>Speaker의 encoder는 Target speaker의 짧은 오디오를 입력으로 받아 speaker vector를 생성하고, 이 벡터를 음성 합성 모델에 조건으로 하여 Target speaker의 음성 특성을 표현한다. </p>
<p>이 방법은 추가 훈련 없이 무한한 수의 speaker의에 대해 Target speaker와 유사한 음성 오디오를 합성할 수 있게 하는 것으로 보인다. 
<br/></p>
<p>그러나 speaker의 전반적인 음성 특성을 표현하는 데에는 근본적인 한계가 있다. 인간은 주어진 콘텐츠에 따라 다양한 음색과 운율을 표현하므로, <strong>주어진 콘텐츠에 따라 전반적인 음성 특성을 모델링하는 것이 자연스러운 음성을 합성하는 데 중요</strong>하다.</p>
<p><br/><br/><br/></p>
<p>음성 오디오에서 표현되는 음색과 운율은 그 내용과 일치하며, 짧은 음성에서는 speaker의 음성 특성의 일부분만 드러난다. 따라서 짧은 참조 오디오로부터 얻은 벡터는 주어진 콘텐츠에 따라 달라지는 speaker의 음성 특성의 작은 부분만을 나타낸다. 
<br/></p>
<p>예를 들어, &quot;나는 정말 행복해!&quot;와 &quot;나는 정말 슬퍼.&quot;라는 두 문장을 생각해 보자. <strong>두 문장을 발음하는 화자의 심리 상태는 크게 다르며, 이는 음성 특성으로 드러난다.</strong> </p>
<p>&quot;나는 정말 슬퍼.&quot;라는 문장을 &quot;나는 정말 행복해!&quot;라는 녹음된 음성을 참조 오디오로 합성하면, 합성된 음성은 부자연스럽고 실제 speaker가 &quot;나는 정말 슬퍼.&quot;라고 말할 때의 음성 특성과는 상당히 다르게 나타날 것이다. 밝은 음색과 운율로 합성되어 전형적인 인간 음성과는 대조될 것이다. 
<br/></p>
<p>결과적으로, 주어진 참조 오디오에 따라 때로는 자연스럽고 유사한 음성 특성이 표현되지만, 반대로 부자연스럽고 명백히 다른 음성 특성이 자주 나타난다. 같은 이유로, <strong>콘텐츠에 따라 다르게 표현될 수 있는 speaker의 특정 발음과 억양을 모방하는 것도 제한적</strong>이며, 이는 실제 음성과 훈련된 다중 화자 모델과는 상당히 다른 결과를 보인다. </p>
<p>이전 연구들은 입력 콘텐츠와 관련된 여러 특징을 사용하였지만, 이러한 방법들은 훈련된 텍스트-음성 변환 모델에서 <strong>speaker의 전반적인 음성 특성을 조건으로 하지 않으며 여전히 짧은 참조 오디오를 따르는 데 중점</strong>을 두고 있다. 따라서 근본적인 한계는 여전히 남아 있다.</p>
<p><br/><br/><br/></p>
<p>또한, 이 방법은 대개 speaker 검증 작업을 위해 훈련된 speaker encoder를 사용한다. 이 방법의 일반적인 목표는 <strong>speaker들을 멀리 떨어뜨려 쉽게 구분</strong>할 수 있도록 하는 것이다.</p>
<p>따라서 <strong>음색이나 음성 특성이 유사한 speaker들은 실제로는 비슷함에도 불구하고 과도하게 멀리 떨어지도록 학습될 수 있으며, speaker vector를 위한 학습된 공간은 희소하고 불연속적일 수 있다.</strong></p>
<p>이러한 특징들은 학습된 공간에서 음성 합성을 위해 적절한 speaker vector를 얻는 것을 제한할 수 있으며, 합성 모델은 <strong>각 벡터를 공간이 아닌 독립적인 조건으로 학습하는 경향</strong>이 있다. 이는 Target speaker와 유사한 음성 특성을 표현하는 데 실패하고 정확한 음성을 합성하는 데 실패하는 결과를 초래한다.</p>
<p><br/><br/><br/></p>
<p>최근 들어 <strong>프롬프트 메커니즘을 사용하는 제로샷 음성 합성</strong>은 좋은 결과를 보여주고 있다. 이러한 연구들은 프롬프트의 음색과 운율을 보존하는 데 탁월한 능력을 입증했다. 
<br/></p>
<p>기본 작동 원리에 따르면, 이 방법은 <strong>음성 특성을 보존하기 위해 주어진 프롬프트에 강하게 의존</strong>한다. 연구 결과 또한 합성된 음성들이 <strong>주어진 콘텐츠의 문맥보다는 프롬프트를 따라 음성 특성(음색과 운율 등)을 표현</strong>한다는 것을 확인했다. </p>
<p>이는 훈련 원리, 목표, 평가 방법을 고려할 때 자연스러운 결과다. 주어진 <strong>프롬프트를 가장 정확하게 따르는 방법이 그 측면에서 더 나은 성능을 나타내기 때문</strong>이다. 그러나 <strong>인간이 콘텐츠에 따라 음색과 운율을 매우 다르게 표현</strong>한다는 점을 고려할 때, 이 방법은 인간의 행동과 상당히 다르다. 
<br/></p>
<p>이 방법은 콘텐츠에 적합한 프롬프트가 주어질 때는 유리하지만, <strong>어떠한 콘텐츠가 주어질지 모르는 상황에서는 불리</strong>하다. 이 문제를 해결하기 위해, 화자의 전반적인 음성 특성을 인코딩하고 주어진 콘텐츠에 맞게 이러한 특성을 적절히 표현할 수 있는 방법이 필요하다.</p>
<p><br/><br/><br/></p>
<p>기존 방법들의 문제를 해결하기 위해, 본 논문에서는 <strong>음성 합성을 위한 화자별 잠재 음성 특징 인코딩 방법(ELF)</strong>을 제안한다. 주요 목표는 훈련 과정 없이도 다중 화자 음성 합성처럼 주어진 콘텐츠에 따라 새로운 화자의 전반적인 음성 특성을 표현할 수 있는 방법을 제시하는 것이다. </p>
<p>먼저, 화자들의 음성에서 다양한 <strong>음성 특징을 밀집되고 연속적인 분포로 인코딩</strong>한다. 그런 다음, 이러한 음성 특징들을 클러스터링하여 이산화된 대표 지점을 얻는다. 다양한 인간의 음성을 관찰함으로써, <strong>인간의 음성 특성은 이산화될 수 없다</strong>는 것을 직관적으로 확인할 수 있다. 
<br/></p>
<p>따라서, 개별적으로 이산화된 특징을 사용하는 것만으로는 좋은 결과를 기대하기 어렵다. 본 논문에서는 Attention을 통한 가중 합이 본질적으로 벡터의 선형 결합이며, <strong>주어진 벡터들로 형성된 연속 공간에서의 점을 샘플링</strong>할 수 있게 한다는 점에서 영감을 받았다. </p>
<p>따라서 <strong>Attention을 통해 이산화된 음성 특징을 콘텐츠의 숨겨진 표현에 융합하는 모듈을 설계</strong>했다. 이는 음성 합성 모델이 음성 특징 공간을 학습할 수 있게 할 뿐만 아니라, 특징들을 융합하여 주어진 콘텐츠를 자연스럽게 표현할 수 있게 한다.</p>
<p><br/><br/><br/></p>
<p>ELF는 <strong>추가 훈련 없이도 Target speaker의 데이터셋으로 훈련된 다중 화자 모델에 비해 더 나은 화자 유사성, 안정성 및 동등한 자연스러움</strong>을 보여준다. 또한 zero-shot 시나리오에서 제로샷 모델을 큰 차이로 능가한다. 게다가, ELF는 우수한 speaker blending 성능을 보여준다. </p>
<p>이는 <strong>latent space가 화자 유사성에 따라 잘 형성되었음을 의미</strong>한다. 이를 통해 새로 생성된 인공 화자로 고품질의 음성을 합성할 수 있다. 더욱이, ELF는 인코딩된 음성 특징만으로 화자의 음성을 완전히 재구성할 수 있음을 보여준다. </p>
<p>이는 제안된 latent representation이 전체 Target speaker의 음성을 직접적인 콘텐츠 입력 없이도 표현할 만큼 충분히 정보가 풍부함을 의미한다. 추가적으로, ELF가 교차 언어적으로 고품질의 음성을 합성할 수 있는 능력을 가지고 있음을 증명한다. </p>
<p><br/><br/><br/><br/></p>
<h1 id="2-method">2. Method</h1>
<br/>


<h2 id="21-overview">2.1 Overview</h2>
<hr>
<p>텍스트-음성 변환 모델이 보지 못한 화자와 주어진 콘텐츠에 따라 <strong>전체 음성 특성을 합성할 수 있게 하기 위해서는 훈련 과정에서 화자의 전체 음성 특성을 텍스트-음성 변환 모델에 조건으로 걸어야 한다.</strong> </p>
<p>따라서 ELF는 두 단계로 구성된다. </p>
<ol>
<li><p><strong>각 화자의 개별 음성 특징을 인코딩</strong></p>
</li>
<li><p>인코딩된 특징을 조건으로 하여 Target speaker의 음성 특성을 표현하는 음성을 합성</p>
</li>
</ol>
<p>ELF의 전체 구조는 그림 1과 그림 3에 나타나 있다. 다음 섹션에서 세부 사항을 설명한다.</p>
<p><br/><br/><br/><br/></p>
<h2 id="22-speech-feature-encoding">2.2 Speech Feature Encoding</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/825dd6bd-e353-4a43-a355-00578b1d73d9/image.png" alt=""></p>
<p>음성 합성 작업은 Target speaker의 음성 특성을 인간이 녹음한 실제 음성과 유사하고 자연스럽게 표현하는 음성을 합성하는 것을 목표로 한다. 따라서 음성 특징을 인코딩할 때 중요한 점은 원래의 음성을 높은 품질로 재구성할 수 있는 표현을 얻는 것이다. 
<br/></p>
<p>오토인코더가 입력 데이터를 잠재 표현으로 인코딩하고 이를 디코딩하여 원래 데이터를 재구성하는 구조라는 점에서 영감을 얻어, <strong>Input mel spectogram으로부터 인코딩 및 디코딩을 통해 원시 파형을 재구성하도록 훈련된 오토인코더로 speech feature encoding network(SFEN)를 설계</strong>한다. </p>
<br/>

<p><strong>디코더로는 원시 파형을 재구성하는 데 우수한 성능을 보인 HiFi-GAN을 채택</strong>했다. </p>
<ul>
<li>Github : <a href="https://github.com/jik876/hifi-gan">https://github.com/jik876/hifi-gan</a></li>
<li>Paper : <a href="https://arxiv.org/abs/2010.05646">https://arxiv.org/abs/2010.05646</a></li>
</ul>
<p>또한 <strong>재구성 성능을 높이기 위해 적대적 학습 메커니즘과 판별자를 도입</strong>했다. </p>
<br/>

<p>더 나아가, <strong>잠재 표현의 조합을 통해 학습된 공간에서 점을 샘플링할 가능성을 높이기 위해 variational 접근법 <a href="https://arxiv.org/abs/1406.2661">GAN</a>을 사용하여 unit Gaussian prior에 맞췄다.</strong> </p>
<p><br/><br/></p>
<p>따라서 SFEN은 variational 오토인코더다. SFEN은 데이터의 무시할 수 없는  marginal log-likelihood의 변별불가능한 하한인 <strong>evidence lower bound(ELBO)를 최대화하도록 훈련</strong>된다. 이때 <strong>데이터의  marginal log-likelihood log pθ(x)</strong>는 다음과 같이 표현된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/9c7ebe67-f6b7-4f5a-8c6c-624bd7e90fa2/image.png" alt=""></p>
<blockquote>
<p><strong>z :</strong> prior distribution p(z)에서 생성된 잠재 변수
<strong>pθ(x|z) :</strong> 데이터 점 x의 우도 함수
<strong>qϕ(z|x) :</strong> 근사 사후 분포</p>
</blockquote>
<br/>

<p>훈련 손실은 음의 ELBO이며, 이는 <strong>reconstruction loss - log pθ(x|z)와 KL 발산 DKL(qϕ(z|x)||p(z))의 합</strong>이다.</p>
<p>reconstruction loss를 <strong>Input mel spectogram s와 재구성된 파형으로부터의 mel spectogram sˆ 간의 L1 손실</strong>로 정의한다. 이는 데이터 분포를 <strong>라플라스 분포로 가정하고 상수항을 무시한 최대 우도 추정</strong>으로 볼 수 있다.</p>
<p><br/><br/></p>
<p>SFEN 훈련에 적대적 학습을 도입하기 위해 다음을 채택한다.</p>
<ul>
<li><p><strong>판별자와 손실 함수 <a href="https://arxiv.org/abs/2010.05646">(HiFi-GAN)</a></strong></p>
<blockquote>
<p>출처 : <a href="https://sofar-sogood.tistory.com/entry/Hifi-GAN-HiFi-GAN-Generative-Adversarial-Networks-for-Efficient-and-High-Fidelity-Speech-Synthesis-NIPS-20">https://sofar-sogood.tistory.com/entry/Hifi-GAN-HiFi-GAN-Generative-Adversarial-Networks-for-Efficient-and-High-Fidelity-Speech-Synthesis-NIPS-20</a><img src="https://velog.velcdn.com/images/yun_haaaa/post/951eaa75-9c41-4818-8730-176e4fa84f07/image.png" alt=""><img src="https://velog.velcdn.com/images/yun_haaaa/post/b0c742c4-b5ec-43c9-a2d2-cb74a15d4250/image.png" alt=""></p>
</blockquote>
</li>
<li><p><strong>적대적 훈련을 위한 최소 제곱 손실 함수 <a href="https://arxiv.org/abs/1611.04076">(Least Squares Generative Adversarial Networks)</a></strong></p>
<blockquote>
<p>출처 : <a href="https://di-bigdata-study.tistory.com/12">https://di-bigdata-study.tistory.com/12</a>
<img src="https://velog.velcdn.com/images/yun_haaaa/post/5f02dc88-c2f1-4239-8033-8390d28bda91/image.png" alt=""><img src="https://velog.velcdn.com/images/yun_haaaa/post/3d614642-5bb5-4b32-b544-537a75704c93/image.png" alt=""></p>
</blockquote>
</li>
<li><p><strong>특징 일치 손실 <a href="https://arxiv.org/abs/1512.09300">(Autoencoding beyond pixels using a learned similarity metric)</a></strong> </p>
<blockquote>
<p>출처 : <a href="https://nrhan.tistory.com/entry/Autoencoding-beyond-pixels-using-a-learned-similarity-metric">https://nrhan.tistory.com/entry/Autoencoding-beyond-pixels-using-a-learned-similarity-metric</a><img src="https://velog.velcdn.com/images/yun_haaaa/post/375832d5-1540-492b-9f28-d3b202f98b32/image.png" alt=""></p>
</blockquote>
</li>
</ul>
<br/>

<p><strong>SFEN과 판별자의 훈련 총 손실</strong>은 다음과 같이 정의된다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/3243b8b2-1092-45aa-96c3-157e02e7069b/image.png" alt=""></p>
<blockquote>
<p><strong>D_sf :</strong> 판별자
<strong>G_sf :</strong> SFEN
<strong>y :</strong> 실제 파형
<strong>T :</strong> 판별자의 총 레이어 수
<strong>D_l^sf :</strong> N_l개의 특징을 가진 판별자의 l번째 레이어의 출력 특징 맵</p>
</blockquote>
<p>HiFi-GAN을 따라 lambda_sf = 45로 설정한다.</p>
<p><br/><br/></p>
<p>Speaker별 특정 음성 특징은 학습된 오토인코더 네트워크의 인코더를 사용하여 얻는다. </p>
<ul>
<li><p>Target speaker의 오디오에서 생성된 <strong>mel spectogram을 인코더에 입력</strong>하고 출력으로 분포 매개변수인 µ와 σ를 얻는다. 이 출력은 mel spectogram과 동일한 타임 스텝을 갖는다. </p>
</li>
<li><p>모든 <strong>Target speaker 오디오의 µ 값을 수집하고 k-means++를 사용하여 값들을 클러스터링</strong>한다. </p>
</li>
<li><p><strong>클러스터의 센트로이드를 speaker의 잠재 음성 특징 코드북으로 사용</strong>한다. </p>
<ul>
<li>이러한 특징은 유한 개수의 비연속 벡터다. 그러나 이러한 벡터들은 음성 합성 모델에 조건을 걸 때 결합되어 <strong>연속 공간에서 점을 샘플링하는 것과 유사한 효과</strong>를 낳는다.</li>
</ul>
</li>
</ul>
<p><br/><br/><br/><br/></p>
<h2 id="23-text-to-speech-with-speech-feature-condition">2.3 Text-To-Speech with Speech Feature Condition</h2>
<hr>
<p>음성 특징 인코딩 및 클러스터링 과정을 통해 얻은 코드북은 유한 개수의 벡터로 구성된다. 이러한 벡터들을 개별적으로 샘플링하고 사용하는 것은 합리적이지 않다. <strong>인간의 음성 특성은 이산화될 수 없기 때문</strong>이다. </p>
<p>대신, 이러한** 특징들을 Softmax attention score와 함께 음성 합성 모델의 중간 특징에 결합하여 추가<strong>한다. 이는 **연속 공간에서 음성 특징 점을 샘플링하는 것과 유사한 효과</strong>를 준다. </p>
<p><br/><br/></p>
<p>본 논문에서는 이 방법을 VITS에 기반한 텍스트-음성 변환(TTS) 작업에 적용한다. 모델 내에서 다양한 포인트가 음성 특징을 조건으로 하는 후보가 될 수 있다. </p>
<p>특정 화자의 발음과 억양이 각 화자의 특성 표현에 크게 영향을 미치지만 입력 텍스트에 나타나지 않는 요소들을 고려하여, 결합된 음성 특징을 텍스트 인코더의 중간 특징에 융합하도록 설계한다. </p>
<ul>
<li><p><strong>위치 정보 없이 트랜스포머 블록을 사용하여 음성 특징 코드북의 벡터들을 결합</strong>한다.</p>
</li>
<li><p>이를 <strong>intermediate feature에 multi-head attention를 통해 추가함으로써 모델링에 있어서 이러한 요소들을 효과적으로 캡처할 수 있도록</strong> 한다.</p>
</li>
</ul>
<p><br/><br/></p>
<p>인코딩된 음성 특징을 prior encoder에 조건으로 걸기 때문에, prior distribution은 VITS와 다르다. </p>
<p>본 논문의 설계에서 <strong>conditional prior</strong>는 다음과 같이 정의된다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/181e5809-b7fb-4696-85ef-1e7642ace7c1/image.png" alt=""></p>
<blockquote>
<p><strong>c_text :</strong> input phonemes
<strong>c_sf :</strong> target speaker의 speech feature codebook matrix
<strong>A :</strong> alignment between the phonemes and latent variables</p>
</blockquote>
<br/>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a808d756-cc13-499c-907f-688ae48aff20/image.png" alt=""></p>
<p>VITS의 duration predictor와 normalizing flows를 변경한다. 그림에 나타난 것처럼, <strong>자연스러운 지속을 모델링하는 상대적으로 간단한 duration predictor를 채택</strong>한다. </p>
<p><strong>Prior encoder의 출력인 텍스트의 hidden representation h_text와 Gaussian noise z_d</strong>를 생성기의 입력으로 사용한다. </p>
<br/>

<p>또한, <strong>로그 스케일에서 monotonic alignment search (MAS)을 사용하여 얻은 duration d</strong> 또는 <strong>duration predictor에서 예측된 d hat</strong>을 판별기의 입력으로 사용한다. </p>
<p><br/><br/></p>
<p>두 가지 종류의 손실을 사용한다.  <strong>adversarial learning을 위한 최소 제곱 손실 함수와 평균 제곱 오차 손실 함수</strong>다. </p>
<p>그런 다음, <strong>총 손실 함수</strong>는 다음과 같이 정된다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/5f8c0694-c6e7-4dc0-a3d6-7d47cf9a13f9/image.png" alt=""></p>
<blockquote>
<p>D_dur : 판별자
G_dur : 지속 예측기</p>
</blockquote>
<br/>


<p>또한, <strong>분포를 변환할 때 장기적 종속성을 캡처하는 것이 중요</strong>하다. <strong>음성의 각 부분은 인접하지 않은 다른 부분과 관련이 있기 때문</strong>이다. </p>
<p>따라서 장기적 종속성을 캡처할 수 있도록 <strong>잔여 연결이 있는 작은 트랜스포머 블록을 정규화 플로우에 추가</strong>한다.</p>
<p><br/><br/><br/><br/></p>
<h2 id="24-speaker-blending">2.4 Speaker Blending</h2>
<hr>
<p>2.3절에서는 Target speaker의 특성을 표현하기 위해 음성 특징 코드북과 텍스트 인코더의 중간 특징을 결합하여 융합된 특징을 얻는 방법을 설명했다. </p>
<p>비슷한 방식으로, 여러 화자의 특성이 공존하는 음성을 합성하는 것은 prior encoder를 수정하여 <strong>여러 화자의 intermediate feature를 특정 비율로 합하는 것</strong>을 통해 가능하다. 
<br/></p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/e5c1ecc3-b8d7-4778-acf7-e921c560032c/image.png" alt=""></p>
<p>개별 화자에 대한 TTS와 유사하게</p>
<ul>
<li><p><strong>각 화자의 speech feature</strong>와 <strong>텍스트 인코더의 intermediate feature</strong>을 사용하여 융합된 intermediate feature을 얻는다.</p>
</li>
<li><p>주어진 비율에 따라 <strong>각 화자에 대한 가중치와 융합된 intermediate feature을 곱하고 이를 모두 합산</strong>한다. </p>
</li>
</ul>
<p><br/><br/></p>
<p>그러면 <strong>다중 화자의 최종 융합된 특징</strong>은 다음과 같이 얻어진다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/a1ebb65a-d06a-4c63-9c56-78157ad0bb7a/image.png" alt=""></p>
<blockquote>
<p><strong>S :</strong> blending target speakers의 수
<strong>h_n :</strong> 텍스트 인코더의 n번째  transformer blocks 출력
<strong>h_n^i :</strong> i번째 스피커의 융합된  intermediate feature
<strong>c_i :</strong> codebook
<strong>p_i :</strong> blending proportion
<strong>TR_f :</strong> codebook의 벡터를 결합하는 transformer blocks
<strong>TR_s :</strong> 텍스트 인코더의  intermediate feature 과 TR_f의 출력을 융합하는 transformer block </p>
</blockquote>
<br/>

<p><strong>TR_f의 Multi-head attention</strong>에서</p>
<ul>
<li><strong>query :</strong> h_{n-1}</li>
<li><strong>key 및 value :</strong> TR_s의 출력</li>
</ul>
<p><br/><br/><br/><br/></p>
<h2 id="25-speech-feature-to-speech-with-text-condition">2.5 Speech Feature-To-Speech with text condition</h2>
<hr>
<p>Target speaker의 특성을 표현하는 고품질 음성을 합성하는 새로운 방법을 제안한다. Codebook의 벡터들은 target speaker의 음성을 재구성할 수 있는 latent space에서 샘플링되기 때문에, <strong>학습된 잠재 공간이 충분히 정보를 제공하는 경우, 적절하게 결합된 음성 특징만으로 목표 스피커의 음성을 합성하는 것이 가능</strong>할 수 있다. </p>
<br/>

<p>따라서 주어진 텍스트에 해당하는 음성을 합성하기 위해 음성 특징을 결합하는 방법을 설계한다. 2.3절의 <strong>TTS 모델의 prior encoder를 수정하여 새로운 방법을 제안</strong>한다. </p>
<ul>
<li><p>각 트랜스포머 블록에서 <strong>speech features와 phoneme sequence로부터 intermediate feature</strong>을 얻는다. </p>
</li>
<li><p><strong>Query 및 key로서 intermediate feature 간의 Multi-head attention을 계산</strong>한다. </p>
</li>
<li><p>Attention scores에 따라 speech feature의 가중 합을 다음 모듈의 입력으로 사용한다. </p>
</li>
</ul>
<br/>

<p>따라서 phoneme sequence에서 얻은 intermediate feature은 attention scores를 계산하는 데에만 사용된다. 이 방법은 음성 특징을 결합하는 데 필요한 정보가 있는 다양한 작업에 쉽게 확장할 수 있다.</p>
<p><br/><br/><br/></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Capstone #9] Sound Design Strategies for Latent Audio Space Explorations Using Deep Learning Architectures]]></title>
            <link>https://velog.io/@yun_haaaa/Capstone-9-Sound-Design-Strategies-for-Latent-Audio-Space-Explorations-Using-Deep-Learning-Architectures-8j2qs4zr</link>
            <guid>https://velog.io/@yun_haaaa/Capstone-9-Sound-Design-Strategies-for-Latent-Audio-Space-Explorations-Using-Deep-Learning-Architectures-8j2qs4zr</guid>
            <pubDate>Fri, 10 May 2024 04:27:28 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2305.15571">https://arxiv.org/abs/2305.15571</a>
Github : <a href="https://github.com/ktatar/rawaudiovae?tab=readme-ov-file">https://github.com/ktatar/rawaudiovae?tab=readme-ov-file</a></p>
<p><br/><br/></p>
<h2 id="abstract">Abstract</h2>
<hr>
<p>VAEs는 <strong>데이터 포인트가 유사한 데이터 포인트가 서로 가깝게 위치하도록 조직된 latent spaces을 생성</strong>하는 데 사용된다. 이전에 VAE는 음색  또는 상징적 음악 단편의 latent spaces을 생성하는 데 사용되었다. </p>
<p>VAE를 음색의 오디오 특징에 적용하려면 네트워크에 의해 생성된 음색을 오디오 신호로 변환하기 위한 보코더가 필요하며, 이는 계산 비용이 많이 든다.</p>
<p>본 연구에서는 오디오 특징 추출을 우회하면서 <strong>raw audio 데이터에 VAE를 직접 적용</strong>한다. 오디오 신호 생성에 소요되는 낮은 계산 시간으로 인해 raw audio 접근 방식을 실시간 응용 프로그램에 통합할 수 있다. 본 연구에서는 음향 디자인 응용을 위한 오디오와 음색의 잠재 공간을 탐색하기 위한 세 가지 전략을 제안한다. </p>
<p><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>딥러닝의 오토인코더 및 ML의 UMAP, t-SNE 또는 k-means 클러스터링과 같은 아키텍처는 <strong>데이터 세트 내의 데이터 포인트 간의 거리를 계산하여 유사한 데이터 포인트가 조직된 추상적인 공간</strong>을 만든다. 이러한 추상적인 공간은 &#39;latent spaces’라고 한다. 본 연구는 <strong>latent audio spaces</strong>에 초점을 맞춘다.</p>
<p>본 논문의 접근 방식은 오디오 녹음을 잠재 오디오 공간을 탐색하는 도구로 활용하는 전략을 만드는 것이다. <strong>두 개의 오디오 녹음 사이의 잠재 오디오 공간을 탐색</strong>하기 위한 비교적 간단한 수단을 제공한다. </p>
<br/>

<p>Variational Autoencoders에 의해 생성된 latent audio spaces를 탐색하기 위해 알고리즘적 접근 방식을 활용한다. <strong>세 가지 latent audio spaces 보간 전략</strong>을 제안한다. <strong>상대적으로 짧은 오디오 샘플 데이터셋을 사용하여 긴 기간의 작곡 층을 생성</strong>하는 것을 목표로 한다. </p>
<p><br/><br/><br/><br/><br/></p>
<h1 id="2-related-work">2. Related work</h1>
<hr>
<p>본 논문은 다양한 딥 러닝 아키텍처를 활용하는 유사한 연구들의 맥락 안에 위치하고 있다. WaveNet 및 VAEs를 사용한 오디오 생성 및 딥러닝 방법과의 미분 가능한 디지털 신호 처리(DDSP)의 통합 등의 작업이 있다.</p>
<br/>

<h2 id="21-timbre-based-approaches">2.1 Timbre based approaches</h2>
<hr>
<p>이전 연구에서는 신경망을 사용하여 <strong>실시간으로 오디오를 합성</strong>하기 위해 <strong>CNN과 WaveRNN 보코더를 결합</strong>하는 구현을 조사했다. </p>
<ul>
<li><p>입력을 보강하고 latent spaces 탐색에 영향을 미치기 위해 크로마 벡터를 사용한 응용</p>
</li>
<li><p>Constant Q-Transform (CQT)을 사용한 음색 전이</p>
</li>
<li><p>VAEs를 사용한 latent timbre 합성</p>
</li>
</ul>
<br/>


<p><strong>CNN 음색 합성을 WaveRNN 기반의 autoregressive vocoder와 결합</strong>하여 파이프라인을 음높이와 음량 제어로 조건부로 만들었다. 음색 합성 및 보간을 위해 VAE를 사용하며, 원-핫 인코딩된 크로마 벡터를 사용하여 생성을 안내한다.</p>
<p><strong>조건부 오디오 합성을 위한 GAN을 사용</strong>한다. MelGAN 아키텍처를 제시하며, 이는 웨이브폼 생성을 수행하는 non-autoregressive convolutional 아키텍처로, MFCC 스펙트로그램으로부터 원시 오디오 생성을 위해 훈련된 GAN이다.</p>
<p><br/><br/><br/></p>
<h2 id="22-audio-generation-wavenet-and-beyond">2.2 Audio generation, WaveNet, and beyond</h2>
<hr>
<p><strong>WaveNet</strong>은 원시 오디오 생성에 사용되는 <strong>autoregressive DNN</strong>이다. PixelCNN 아키텍처를 기반으로 하며, 인과적인 convolutional 레이어의 스택을 활용한다. Convolution 레이어의 확장을 사용하여 모델이 <strong>미래 시간 단계에 대한 의존성을 제한하며 오디오 입력의 해상도를 보존</strong>한다. </p>
<p>WaveNet의 특별한 특성 중 하나는 기존의 TTS 시스템을 능가하는 정확성으로, 오디오 모델링과 음성 인식에서 유망한 결과를 얻었다. </p>
<br/>

<p><a href="https://arxiv.org/abs/1806"><strong>The challenge of realistic music generation</strong></a>는 자기 회귀형 오토인코더(ADAs)를 사용하여 원시 오디오의 생성을 조사하며, argmax 오토인코더 (AMAE)를 벡터 양자화 변이형 오토인코더 (VQ-VAE)와 비교하여 오디오 웨이브폼의 장거리 상관 관계를 포착했다. </p>
<p>WaveNet 및 이와 관련된 아키텍처의 주요 단점은 <strong>상대적으로 높은 계산 복잡성</strong>으로, 이는 이러한 아키텍처를 실제 예술적 실천에 통합하는 데 장벽이 된다.</p>
<br/>

<p><strong>다중 모달 도메인 전이 관점</strong>에서 오디오 생성에 접근하는 경우, <a href="https://aimc2021.iem.at/wp-content/uploads/2021/06/AIMC_2021_Bisig_Tatar.pdf"><strong>Raw Music from Free Movements</strong></a>는 댄스 포즈 시퀀스를 오디오 웨이브폼으로 변환하며, seq-to-seq 모델과 adversarial autoencoder를 결합한 딥 러닝 아키텍처를 활용한다. </p>
<p>RAMFEM은 원시 오디오 도메인에서 기존의 음악-움직임 관계를 학습하고 재현한다. 이 파이프라인은 두 개의 오토인코더를 결합하며, 인간의 몸 포즈 공간을 생성하기 위한 RNN 기반의 seq-to-seq 네트워크와 latent audio spaces를 생성하기 위한 VAE가 포함된다. </p>
<br/>

<p>본 논문에서 제시된 아키텍처는 RAMFEM의 <strong>Adversarial VAE를 기반</strong>으로 구축되었다. RAMFEM의 오디오 VAE는 Adversarial VAE 파이프라인 내에서 판별자 네트워크를 사용하지만, 본 논문에서 제시된 아키텍처는 <strong>더 단순화된 VAE 파이프라인을 위해 판별자 네트워크를 제외</strong>한다.</p>
<p><br/><br/><br/></p>
<h2 id="23-differentiable-dsp">2.3 Differentiable DSP</h2>
<hr>
<p><a href="https://arxiv.org/abs/2001.04643">DDSP</a>는 디지털 신호 처리를 딥 러닝 프레임워크에 통합하여 고품질의 오디오를 생성하기 위해 <strong>미분 가능한 합성 블록 및 보코더의 모듈 시스템</strong>을 활용했다. </p>
<p>그들은 DDSP 구성 요소를 활용하는 모델의 모듈성을 보여주며, 추가 오디오 기능(음고 및 음량 제어, 방 음향의 모델링 및 이전)에 대한 독립적인 제어; 서로 다른 악기 간의 음색 전이; 그리고 합성 중에 새로운 음고 자료로의 추출을 가능하게 한다.</p>
<p><br/><br/><br/><br/><br/></p>
<h1 id="3-two-types-of-latent-audio-spaces">3. TWO TYPES OF LATENT AUDIO SPACES</h1>
<hr>
<br/>

<h2 id="31-continuous-latent-audio-spaces">3.1 Continuous Latent Audio Spaces</h2>
<hr>
<p>Continuous latent audio spaces는 <strong>변이형 오토인코더(VAE)와 같은 다양한 기계 학습 접근 방식을 사용하여 오디오를 잠재 공간으로 인코딩</strong>한다. 이러한 유형의 잠재 오디오 공간에서 입력은 <strong>수천 개의 샘플을 포함하며, 소수 초의 지속 시간을 가진 오디오 윈도우</strong>다. </p>
<p>연속적인 잠재 오디오 공간은 소리 제스처 또는 <strong>오디오 샘플을 잠재 공간 안의 연속적인 경로로 인코딩</strong>한다. <strong>각 지점은 하나의 오디오 창으로부터 인코딩</strong>된다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/4cb17296-7264-43da-b813-7f93389b0b41/image.png" alt=""></p>
<p>이 때, 빨간 원은 1024개의 샘플을 가진 오디오 창을 나타내며, 이러한 원들이 VAE를 사용한 잠재 오디오 공간 접근의 특성으로 나타난다. 따라서 빨간 선은 소리 제스처의 연속적인 잠재 오디오 공간 인코딩이다.</p>
<br/>

<p>오토인코더(AE)는 원래 데이터 인스턴스를 압축하고 다시 구성하여 낮은 차원 표현으로 변환하는 방법을 학습하는 신경망이다. AE는 두 개의 네트워크로 구성되어 있다. 고차원 입력 데이터를 잠재 부호로 변환하는 인코더와 잠재 부호를 가능한 정확하게 재구성하는 디코더다. 이 작업을 수행하기 위해 오토인코더는 데이터를 효율적으로 잠재 부호로 압축하는 것을 학습한다.</p>
<p>일반적인 오토인코더(AE)에서는 인코더가 데이터 인스턴스를 직접 결정론적 부호로 변환한다. </p>
<br/>

<p>이 접근 방식은 두 가지 주요 단점이 있다: </p>
<ul>
<li><p>인코더에 의해 생성된 잠재 공간은 <strong>희소하게 분포</strong>되어 있고 인코딩을 <strong>의미 있는 데이터 인스턴스로 디코딩할 수 없는 영역이 많이 포함</strong>되어 있다. </p>
</li>
<li><p><strong>데이터 공간의 유사성 측정치가 잠재 공간에 보존되지 않는다.</strong> 즉, 비슷한 데이터 인스턴스의 인코딩이 잠재 공간 내에서 서로 가깝게 위치하지 않을 수 있다. 이 두 가지 단점으로 인해 일반적인 AE에서 유효한 데이터 인스턴스로 디코딩될 수 있는 인코딩을 검색하는 것이 어렵다.</p>
</li>
</ul>
<br/>

<p>변이형 오토인코더(VAE)는 <strong>잠재 공간을 덜 희소하게 만들고 원래 데이터 공간과 유사한 유사성 측정치를 부과함으로써 이러한 단점을 완화</strong>한다. AE와 달리 VAE의 인코더는 데이터 인스턴스를 확률 분포의 매개변수로 매핑하여 잠재 코드를 샘플링할 수 있다. </p>
<p>인코더는 <strong>p(z|x)를 근사</strong>하고, 디코더의 기능은 <strong>x가 입력 데이터이고 z가 해당 입력 데이터를 나타내는 잠재 벡터임을 고려할 때 사후확률 p(x|z)의 확률을 최대화</strong>하는 것이다. </p>
<br/>

<p>VAE는 z가 확률 분포인 것으로 가정하며, 평균이 µ이고 표준 분산이 σ인 일반적인 분포 함수 N (µ, σ)를 사용하여 z를 샘플링한다. 그러나 샘플링 함수는 미분 가능하지 않다. VAE는 확률 분포에서의 확률적 샘플링을 통해 그래디언트가 역전파될 수 없는 문제를 우회하기 위해 <strong>reparameterization trick</strong>을 사용한다. </p>
<p>이 트릭은 랜덤 변수의 샘플링을 결정론적 변수와 표준 정규 분포에서 샘플링된 요소 엡실론의 조합으로 표현한다. 구체적으로, 인코더는 µ 및 σ의 두 벡터를 출력하며, 이는 분포 함수로 전달된다. 인코더는 f(x) ∈ F 인 f와 g(x) ∈ G 인 g를 사용하여 q∗(z|x) = N (z; f(x), g(x)2I)를 모델링함으로써 p(z|x)를 모델링한다. </p>
<br/>

<p>여기서 µM = f(x), f ∈ F, σM = g(x), g ∈ G이고 M은 잠재 공간에서의 차원 수다. 디코더의 입력인 z는 q(z) = N (z; f(x), g(x)2I)에서 샘플링된다. VAE의 손실 함수는 <strong>기대값 최대화</strong>와 <strong>Kullback-Leibler 발산의 정규화 항</strong> 두 가지를 포함한다.</p>
<p>VAE는 유효한 데이터 인스턴스를 생성하는 확률을 최대화하면서 사후분포 q∗(z|x)가 사전분포 p∗(z)에 가깝도록 강제하여 훈련된다. 이 <strong>두 분포 간의 유사성은 일반적으로 Kullback-Leibler 발산을 사용하여 양자화</strong>된다. 식 (1)에서와 같다. RawAudioVAE의 전체 파이프라인은 그림 1에 나와 있다. 섹션 5에서 다루는 특정 VAE 모델은 학습률이 10e−4이고 α가 10e−4인 500번의 epoch 동안 훈련된다.</p>
<p><br/><br/><br/></p>
<h2 id="32-discrete-latent-audio-spaces">3.2 Discrete Latent Audio Spaces</h2>
<hr>
<p>이산적인 잠재 오디오 공간은 연속적인 잠재 오디오 공간과 비교할 때, 몇 초의 지속 시간을 가진 소리 제스처를 조직화한다. 훈련 데이터셋의 오디오 샘플들은 종종 일련의 오디오 특징을 사용하여 섬네일로 만들어진다. </p>
<p>음악 정보 검색에서 오디오 섬네일링의 널리 알려진 접근 방식은 <strong>프레임의 평균과 표준 편차가 오디오 발췌물이나 샘플 전체에 걸쳐 계산되는 bag-of-frames 접근 방식</strong>이다. 이러한 오디오 특징의 통계 결과는 전체 오디오 샘플을 나타내는 하나의 벡터로 결합된다. </p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/31e1539a-3d50-4cb2-a3ce-791326faca6f/image.png" alt=""></p>
<p><strong>이산 잠재 오디오 공간을 생성하는 기계 학습 접근 방식은 오디오 섬네일 벡터와 이러한 벡터 사이의 거리를 사용하여 오디오 샘플을 latent space에 구성</strong>한다. </p>
<p>audiostellar와 같은 경우, 잠재 공간의 각 점은 하나의 오디오 샘플을 나타낸다. 다른 기계 학습 접근 방식인 Self-Organizing Maps에서는 각 사각형이 오디오 샘플의 클러스터를 나타낸다. </p>
<p><br/><br/><br/><br/><br/></p>
<h1 id="4-strategies-for-exploring-latent-spaces-of-audio">4. Strategies for exploring latent spaces of audio</h1>
<hr>
<p>음성의 잠재 공간을 탐색하기 위한 세 가지 전략을 제시한다. 이러한 <strong>매개변수 공간을 오디오 합성에 어떻게 활용할 것인지</strong>에 대한 문제는 아직 조사되지 않았다. </p>
<p>현재는 잠재 공간의 특성 및 음악적 품질 및 음향 미학을 고려한 잠재 오디오 공간의 분석 방법에 대한 지식이 여전히 부족하다. 이러한 잠재 공간을 분석하는 수학적 방법은 아키텍처, 하이퍼 파라미터 최적화를 배우고 모델 훈련에서 문제점을 파악하는 데 유용하지만, <strong>잠재 오디오 공간의 미적 가능성에 대한 지침</strong>을 제공하지는 않는다. </p>
<p>잠재 오디오 공간의 음향적 특성과 미학을 드러내는 방법에 대한 지식이 아직 부족하다. 이러한 지식은 예술가와 실무자들이 실제 예술적 응용 프로그램에서 중요한 매개 변수 공간을 활용하는 데 도움이 될 수 있다.</p>
<br/>


<p>또한, <strong>잠재 음향 공간의 음향 미학을 조사하기 위한 명확한 방법이 부족하며, 음악적 품질에 대한 명시적인 분류 체계도 없다.</strong> </p>
<p>VAE가 추가적인 차원으로 조건이 지정된 접근에 집중하는 대신, 본 논문의 접근 방식은 <strong>두 가지 선택된 소리 사이의 잠재 소리 공간을 탐색하는 데 초점</strong>을 맞추고 있다. </p>
<p>오디오 입력을 사용하여 잠재 오디오 공간을 탐색하는 것은 다양한 음악적 맥락과 문화에서 다양한 미학을 탐구할 수 있는 유연성을 제공한다. 이렇게 함으로써 음악적 차원을 조건으로 설정하는 것을 회피하면서도 잠재 공간 탐색을 안내할 수 있다.</p>
<br/>


<p>아래 세 가지 전략은 두 오디오 입력 파일을 사용하여 해당 두 파일 사이의 잠재 공간을 탐색한다. <strong>오디오 입력은 동일한 지속 시간을 갖도록 설정</strong>된다. 오디오 입력은 잠재 공간 탐색의 미학을 제한한다. 모든 방법에서 입력 파일은 <strong>VAE 인코더를 사용하여 잠재 벡터를 생성</strong>한다. </p>
<p>오디오 파일은 먼저 창화되고 VAE 입력은 1024개의 샘플로 이루어진 단일 오디오 창이다. <strong>각 오디오 창은 별도로 인코딩</strong>된다. 이 비자기 회귀적 접근 방식은 계산 복잡성을 크게 감소시키고 동시에 실시간 구현을 가능하게 한다. <strong>보간은 오디오 입력 파일의 잠재 벡터 쌍 사이에서 잠재 벡터를 생성함으로써 수행</strong>된다.</p>
<p><br/><br/><br/></p>
<h2 id="41-stepwise-interpolations">4.1 Stepwise Interpolations</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/effdb87f-2797-47f8-aa91-ebf21910e507/image.png" alt=""></p>
<p>첫 번째 방법은 <strong>타임라인 전체에 걸쳐 고정된 보간량을 사용</strong>한다. 즉, 알고리즘 1의 12번째와 13번째 줄에 있는 &#39;s&#39;는 상수로, 벡터가 아니다. </p>
<p>이 방법에서는 몇 초간의 짧은 오디오 샘플을 사용한다. 선택한 두 오디오 파일 중 더 긴 파일을 우선하여 단축하여 두 파일이 동일한 지속 시간이 되도록 한다. 두 오디오 파일 모두 <strong>동일한 수의 오디오 윈도우</strong>를 가져야 한다. </p>
<p>VAE는 각 오디오 윈도우를 잠재 공간에서 평<strong>균이 µ이고 표준 편차가 σ인 정규 분포 N (µ, σ)로 표현</strong>한다. 각 오디오 윈도우는 잠재 벡터를 생성하기 위해 VAE 인코더를 통과된다. 인코더는 각 오디오 윈도우당 두 개의 벡터를 출력하며, µ용 벡터와 σ용 다른 벡터다. 각 벡터는 잠재 공간 차원의 크기다. 여기서는 256 차원이다. </p>
<p>평균과 표준 편차 쌍은 정규 분포 함수로 전달된다(알고리즘 1의 14번째 줄). 정규 분포의 사용은 <strong>reparameterization trick</strong>이라고 불리며, 훈련 데이터셋에서 두 오디오 파일의 잠재 벡터 사이의 잠재 벡터를 탐색하여 새로운 소리를 합성할 수 있다.</p>
<br/>


<p>알고리즘 1의 후반부에서는 간단한 그리드 탐색을 사용하여 보간량을 적용한다. 각 보간량에 대해 새로운 잠재 벡터가 12번째와 13번째 줄의 공식을 사용하여 생성된다. </p>
<p>예를 들어, 보간량이 0.2인 경우는 오디오 1의 잠재 벡터의 80%가 오디오 2의 잠재 벡터의 20%에 추가됨을 의미한다. 본질적으로, 두 잠재 벡터 사이에 다차원 평면을 정의한다면 보간량 0.2는 한 소리에 대한 거리가 다른 소리에 대한 거리의 네 배임을 나타낸다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0a290fa9-b3f2-47fb-b260-72a810abd7ca/image.png" alt=""></p>
<p>정적 보간량 범위에 집중함으로써 각 단계에서 보간량을 변경하여 <strong>하나의 오디오 입력 파일의 재구성에서 시작하여 각 단계에서 보간량을 변경하여 다른 오디오 파일로 점진적으로 변환</strong>할 수 있다. 이러한 전략은 사용자가 훈련된 RawAudioVAE 모델의 <strong>잠재 공간에서 소리가 어떻게 이동하는지</strong>를 듣게 해준다.</p>
<p><br/><br/><br/></p>
<h2 id="42-interpolations-in-meso-scale">4.2 Interpolations in Meso-scale</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0c264c73-166d-4d24-aa02-5d98928548af/image.png" alt=""></p>
<p>두 번째 전략은 잠재 오디오 공간을 탐색하는 첫 번째 전략과 두 가지 측면에서 차이가 있다. 첫 번째 차이점은 <strong>잠재 공간 탐색 이전에 추가 단계로서 오디오 입력 파일을 생성</strong>하는 방식이다. <strong>훈련 데이터셋에서 유사한 오디오 샘플을 연결하여 비교적 긴 두 개의 오디오 발췌문을 생성한다.</strong> </p>
<p>오디오 유사성은 훈련 데이터셋의 <strong>오디오 샘플 썸네일에 대해 훈련된 Self-Organizing Map에 대한 오디오 클러스터링을 활용</strong>함으로써 수행된다.</p>
<p>이러한 클러스터링 과정에 대한 자세한 내용은 <a href="https://archives.ismir.net/ismir2019/paper/000063.pdf"><strong>Fast and Flexible Neural Audio Synthesis</strong></a>와 <a href="https://www.researchgate.net/publication/317357259_MASOM_A_Musical_Agent_Architecture_based_on_Self-Organizing_Maps_Affective_Computing_and_Variable_Markov_Models"><strong>MASOM</strong></a>에서 확인할 수 있다. 이런 클러스터링 과정을 통해 <strong>오디오 파일을 제약하는 것을 돕고, 임의로 선택한 오디오 샘플들과 비교하여, 연결된 오디오 파일 내의 일관성을 향상</strong>시킨다.</p>
<br/>


<p>오디오 샘플의 연결을 통해 두 개의 입력 오디오 파일을 생성하는 것은 10-30초의 길이를 가진 오디오 파일들과 함께 작업할 수 있게 해준다. 이런 길이의 오디오 파일은 <strong>동적으로 변하는 보간 양이 타임라인을 따라 진행</strong>되므로 이 두 번째 보간 전략에 유익하다. </p>
<p>이전 연구에서 작곡가 참가자들이 작곡 실천에서 잠재 오디오 공간을 탐색하기 위해 동적 보간 양을 설계하는 과정을 수행한 연구를 진행했다. 이전 연구에서 작곡가들이 두 개의 입력 오디오 파일 사이의 잠재 오디오 공간을 음악적으로 유의미하게 탐색하는 보간 곡선을 설계하는 것을 발견했다.</p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/8ea35c1f-48e4-4653-8410-ee5fe06ada07/image.png" alt=""></p>
<p>이 두 번째 전략의 <strong>동적 보간</strong> 개념은 정적 보간 양을 사용한 첫 번째 전략과 다르다. 두 번째 전략의 동적 보간 접근 방식은 <strong>각 오디오 윈도우 쌍에 대해 다른 보간 양을 적용</strong>한다. </p>
<p>오디오 타임라인을 따라, 보간 양은 <strong>주어진 오디오 입력 파일의 전체 오디오 윈도우 수에 해당하는 크기의 곡선을 따른다.</strong> 다양한 수학적 함수를 적용하여 보간 곡선을 생성할 수 있다.(sin 함수와 같은 다양한 주기의 함수 등)</p>
<p><br/><br/><br/></p>
<h2 id="43-interpolations-with-extensions">4.3 Interpolations with Extensions</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/02330c15-bf43-4664-9c28-76b6fb7e49ff/image.png" alt=""></p>
<p>두 번째 보간 전략과 유사하게, 세 번째 전략은 오디오 샘플 클러스터를 활용하여 동일한 클러스터 내의 오디오 샘플을 연결하여 음향적 일관성을 갖춘 보다 긴 지속 시간 오디오 파일을 생성한다. </p>
<br/>

<p>그러나 세 번째 전략은 <strong>윈도잉 트릭을 사용하여 연결된 오디오의 지속 시간을 더욱 증가시킨다.</strong> 이는 VAE에 공급되는 오디오 입력 파일을 로드할 때 <strong>AudioDataset 클래스 대신 TestDataset 클래스를 사용하는 오류에서 비롯된 것</strong>이다. </p>
<p>이 두 클래스의 차이점은 <strong>훈련 데이터셋의 오디오 파일에 대한 오디오 윈도잉을 처리하는 방식</strong>이다. 1024개의 샘플 윈도잉과 256개의 샘플 간격을 사용하여 오디오 파일을 4배로 늘릴 수 있다(알고리즘 3의 16~23줄 참조). 두 번째 전략과 마찬가지로, 이 세 번째 전략은 오디오 타임라인의 다른 섹션에 서로 다른 보간량을 적용하는 동적 보간 접근 방식을 적용한다.</p>
<p><br/><br/><br/><br/><br/></p>
<h1 id="6-conclusions-and-future-work">6. Conclusions and future work</h1>
<hr>
<p>이 작업은 잠재 공간을 생성하는 기계 학습 알고리즘 및 이러한 알고리즘을 원시 오디오 데이터에 적용하는 방법에 대한 의문에서 나왔다. </p>
<p>문헌에서 등장하는 두 가지 유형의 잠재 오디오 공간인 연속적 및 이산적인 것을 명확히하고, 이 작업에서 이를 활용했다. 잠재 오디오 공간을 탐색하는 데 적용할 수 있는 세 가지 간단한 알고리즘적 전략을 제안했다. </p>
<br/>

<p>미래의 연구에서는 음질 및 원시 오디오 접근 방식을 포함한 다양한 잠재 오디오 공간을 비교하여 그들의 수학적 특성과 가능성을 분석하는 것을 목표로 한다. ML에서 잠재 오디오 공간을 분석하기 위한 분석적 방법을 살펴보는 것은 음향 미학과 음악적 품질에 대한 가능성을 알려줄 수 있으며, 이를 음악 실천에 포함시키는 것이 중요하다. 이러한 프레임워크를 음악 창작 및 공연 컨텍스트에서 평가하는 것도 우선 순위다. </p>
<p>마지막으로, 우리가 이 작업에서 사용하는 RawAudioVAE 프레임워크는 가벼우며, 1초 오디오를 10ms 미만으로 생성할 수 있다. 이 저 연산 복잡성은 RawAudioVAE를 미래의 디지털 음악 악기 디자인에 기술과 결합시킬 수 있는 유망한 아키텍처로 만든다.</p>
<p><br/><br/><br/></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[DLT: Conditioned layout generation with
Joint Discrete-Continuous Diffusion Layout Transformer]]></title>
            <link>https://velog.io/@yun_haaaa/DLT-Conditioned-layout-generation-withJoint-Discrete-Continuous-Diffusion-Layout-Transformer</link>
            <guid>https://velog.io/@yun_haaaa/DLT-Conditioned-layout-generation-withJoint-Discrete-Continuous-Diffusion-Layout-Transformer</guid>
            <pubDate>Sun, 05 May 2024 00:50:02 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2303.03755">https://arxiv.org/abs/2303.03755</a>
Github : <a href="https://github.com/wix-incubator/DLT">https://github.com/wix-incubator/DLT</a></p>
<blockquote>
<p>💡 로 표시된 부분은 제가 이해한 내용을 적은 부분입니다. 오류가 있다면 댓글로 남겨주세요 🙏🏻</p>
</blockquote>
<br/>
<br/>
<br/>

<h2 id="abstract">Abstract</h2>
<p>시각적 레이아웃 생성은 그래픽 디자인의 중요한 구성 요소다. 구성 요소 속성의 부분 집합에 레이아웃 생성을 조건부로 할 수 있는 기능은 사용자 상호 작용이 포함된 실제 애플리케이션에서 매우 중요하다. </p>
<p>최근에는 diffusion 모델이 다양한 영역에서 고품질의 생성 성능을 보여 주었다. 그러나 <strong>이산(클래스) 및 연속(위치, 크기) 속성의 혼합으로 이루어진 레이아웃의 자연적 표현에 diffusion 모델을 적용하는 방법</strong>은 불명확하다. </p>
<br/>

<p>조건부 레이아웃 생성 문제에 대처하기 위해, 본 논문에서는 <strong>DLT</strong>라는 <strong>joint discrete-continuous diffusion model</strong>을 소개한다. DLT는 transformer-based 모델로, 모든 레이아웃 구성 요소 클래스, 위치 및 크기의 임의의 하위 집합에 대한 조건부를 가능하게 하는 유연한 conditioning 메커니즘을 갖추고 있다. </p>
<p>본 논문의 방법은 다양한 레이아웃 생성 데이터셋에서 다양한 메트릭과 조건 설정에 따라 최신의 생성 모델을 능가한다. 또한, 제안한 conditioning 메커니즘과 joint continuous-diffusion 프로세스의 효과를 검증한다. 이 joint 프로세스는 다양한 범위의 혼합 discrete-continuous generative 테스크에 효과적으로 적용될 수 있다.</p>
<p><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>그래픽 디자인의 중요한 측면은 <strong>레이아웃 생성</strong>이다. <strong>캔버스나 문서에 시각적 구성 요소를 배열하고 크기를 조절</strong>하는 것이다. 잘 설계된 레이아웃은 사용자가 제시된 정보를 쉽게 이해하고 효율적으로 상호 작용할 수 있도록 한다. </p>
<p>고품질의 레이아웃을 생성하는 능력은 모바일 앱 및 웹 사이트의 사용자 인터페이스, 정보 슬라이드를 위한 그래픽 디자인, 잡지, 과학 논문, 인포그래픽, 실내 장면 등 다양한 응용 분야에서 필수적이다.</p>
<br/>

<p>이를 위해, <strong>생성적 적대 신경망(GANs), 변이형 오토인코더(VAEs), masking completion</strong>과 같은 모델링 접근 방식이 새로운 레이아웃을 생성하기 위해 탐구되었다. </p>
<p>이러한 접근 방식은 <strong>Recurrent Neural Networks (RNNs)  및 Graph Neural Networks (GNNs)</strong>과 같은 다양한 아키텍처를 사용한다. 최근에 제안된 <strong>Transformer</strong> 기반 접근 방식은 다양한 응용 프로그램 및 사용자 요구 사항에 대한 다양하고 신뢰할 수 있는 레이아웃을 생성하는 데 효과적이다.</p>
<br/>
<br/>


<p>레이아웃은 종종 여러 속성으로 구성된 구성 요소의 집합으로 나타낸다. 이는 <strong>클래스, 위치 및 크기와 같은 여러 속성으로 구성</strong>된다. </p>
<p>NLP의 최근 발전에 따라, 일반적인 방법은 </p>
<ul>
<li><p><strong>구성 요소를 discrete attribute tokens의 시퀀스로 모델링</strong>하고 </p>
</li>
<li><p><strong>모든 속성 토큰을 연결한 것으로 레이아웃을 모델링</strong>하는 것이다. </p>
</li>
</ul>
<br/>
<br/>


<p>모델은 출력 시퀀스를 생성하기 위해 <strong>self-supervised objective</strong> (다음 단어 완성 또는 unmasking)을 사용하여 훈련된다. </p>
<p><strong>Discretization process</strong>는 위치 및 크기와 같은 기하 속성을 구간으로 나누는 과정이다. 그러나 이산 토큰을 사용하면 (기하학) <strong>데이터의 자연적 표현, 즉 연속적인 데이터를 고려하지 못하며, 이는 레이아웃 구성의 해상도가 낮거나 더 작은 데이터셋에서 잘 표현되지 않는 큰 sparse vocabulary로 이어질 수 있다.</strong></p>
<br/>
<br/>


<p>사용자 상호 작용이 필요한 많은 실제 그래픽 디자인 응용 프로그램에 대한 <strong>제어 가능한 레이아웃 생성을 제공</strong>하는 것이 중요하다. </p>
<ul>
<li><p>사용자가 <strong>구성 요소 클래스 또는 일부 구성 요소와 같은 특정 구성 요소 속성을 고정</strong>하고 </p>
</li>
<li><p><strong>나머지 속성 (위치 및 크기) 또는 구성 요소를 생성</strong>할 수 있도록 하려고 한다. </p>
</li>
</ul>
<br/>
<br/>


<p><strong>반복 기반 masking completion 접근 방식</strong>에서 이러한 조건이 추론 중에만 수행되는데, 이는 모델에게 반복적인 개선 과정 중에 <strong>조건이 부분적으로 주어진 부분과 생성된 부분을 구분할 수 있는 능력을 제공하지 않는다.</strong> 이러한 분리의 부족은 생성 프로세스에서 모호성을 야기할 수 있으며, 결과적으로 최적의 성능을 발휘하지 못할 수 있다.</p>
<br/>

<p><strong>Diffusion 모델</strong>은 최근에 상당한 관심을 받은 생성적 접근 방식이다. 연속적인 diffusion 모델은 텍스트에서 이미지로의 변환, 비디오 생성, 오디오와 같은 다양한 작업 및 도메인에서 놀라운 생성 능력을 보여 주었다. </p>
<p>Diffusion 모델이 이산 공간으로 확장되었음에도 불구하고, 여전히 연속적이고 <strong>이산적 특징으로 구성된 표현을 가진 생성 작업에 이러한 모델을 적용하는 방법</strong>에 대한 도전이 남아 있다. </p>
<p>본 논문에서는 레이아웃 생성 및 유연한 편집을 위한 <strong>Diffusion Layout Transformer (DLT)</strong>를 소개한다. </p>
<br/>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/685921d4-599c-4d24-a512-5b67a892aac3/image.png" alt=""></p>
<p>전통적인 diffusion 모델과는 달리, 연속-이산 결합 diffusion 프로세스에 기반한 새로운 프레임워크를 제안하고 유도된 최적화 목적에 대한 이론적 근거를 제시한다. </p>
<br/>

<p><strong>트랜스포머-인코더 아키텍처</strong>를 사용하여, <strong>레이아웃 구성 요소의 연속적인 속성 (크기 및 위치)과 이산적인 속성 (클래스)에 대해 diffusion 프로세스를 함께 적용</strong>한다. </p>
<p>모델은 <strong>레이아웃의 이산적 표현에 의존하는 트랜스포머 기반 모델의 중요한 한계를 해결</strong>한다. 이는 레이아웃 구성의 해상도가 낮아지고 레이아웃 구성의 다양성이 제한될 수 있다.</p>
<br/>

<p>본 논문의 프레임워크는 <strong>유연한 레이아웃 편집</strong>을 제공한다. 이는 제공된 레이아웃 구성 요소의 속성 (클래스, 크기 및 위치) 중 <strong>임의의 하위 집합에 조건을 걸 수 있도록</strong> 한다. </p>
<p>마스킹 완성 접근 방식과 달리, 추론 중에만 조건이 적용되는 것이 아니라, <strong>diffusion 이미지 인페인팅 기술에서 영감을 받아 모델이 레이아웃 조건부 작업을 수행하도록 명시적으로 훈련</strong>시킨다.</p>
<br/>

<p><strong>조건 임베딩</strong>을 사용하여 <strong>어떤 레이아웃 속성에 diffusion 프로세스를 적용할지 제어</strong>한다. 이렇게 하면 모델이 반복적인 개선 과정 중에 <strong>조건 부분과 생성 부분을 분리</strong>할 수 있다. 실험 결과는 이러한 설계 선택이 추론 기반 조건부보다 모델의 성능을 크게 향상시킨다는 것을 보여준다.</p>
<br/>
<br/>


<p>DLT 모델의 효과성을 다양한 그래픽 디자인 작업의 인기 있는 레이아웃 데이터셋을 사용하여 여러 일반적인 메트릭에 대해 평가함으로써 연구한다. 광범위한 실험을 통해 제안된 모델이 <strong>레이아웃 합성 및 편집 작업에서 최신의 레이아웃 생성 모델을 능가</strong>하는 것을 보여준다. 이때 <strong>모델의 런타임 복잡성은 이러한 모델과 동등</strong>하다. </p>
<p>다양한 대안을 비교함으로써, joint diffusion 프로세스 와 conditioning 메커니즘이 모델의 강력한 생성 능력에 기여하는 것을 보여준다. 본 논문의 joint discretecontinuous diffusion 프레임워크는 일반적인 설계를 갖고 있으며, 따라서 텍스트+이미지, 텍스트+오디오 등의 다른 도메인에도 적용할 수 있다.</p>
<p><br/><br/><br/></p>
<h1 id="2-related-work">2. Related work</h1>
<hr>
<h3 id="layout-synthesis">Layout synthesis</h3>
<p>데이터 기반 생성적 방법을 사용하여 고품질, 현실적이고 다양한 레이아웃을 생성하는 작업은 최근 몇 년간 계속해서 주목받고 있다. 이 문제를 해결하기 위해 여러 생성적 방법이 제안되었다. </p>
<ul>
<li><p><strong>LayoutGAN :</strong> Generator를 훈련하여 가우시안/균일 분포를 레이아웃 구성 요소의 위치/카테고리로 매핑하는 것으로, 와이어프레임을 렌더링하고 픽셀 기반 discriminator를 훈련시키는 방식이다.</p>
</li>
<li><p><strong>LayoutVAE :</strong> 두 가지 유형의 변이형 오토인코더를 소개한다. 첫 번째 유형은 구성 요소의 카테고리 수의 분포를 학습하고, 두 번째 유형은 카테고리에 따라 조건을 걸어 구성 요소의 위치와 크기를 예측한다. </p>
</li>
</ul>
<br/>

<p>최근 NLP의 발전으로, 트랜스포머 기반 언어 모델을 레이아웃 생성 작업을 해결하기 위해 제안했다.</p>
<ul>
<li><p><strong>LayoutTransformer :</strong> 표준 <strong>트랜스포머 디코더 모델이 사용되어 레이아웃 구성 요소의 속성을 생성</strong>하는 데 적용되었으며, 이러한 구성 요소는 사전순으로 정렬된다. 훈련은 <strong>이전 구성 요소의 속성을 주어졌을 때 다음 속성을 예측</strong>하는  selfsupervised objective으로 수행된다. </p>
</li>
<li><p><strong>BLT :</strong> <strong>양방향 트랜스포머 인코더</strong>가 사용되어 레이아웃 구성 요소의 속성을 예측한다. 생성된 레이아웃의 품질을 향상시키기 위해, <strong>가장 낮은 확률의 속성을 다시 마스킹하여 반복적으로 레이아웃 속성을 개선</strong>한다. </p>
</li>
</ul>
<p>이전 방법과는 달리, 본 논문의 생성적 방법은 <strong>diffusion 프로세스를 기반</strong>으로 한다. 이는 다양한 분야에서 강력한 생성 능력을 보여주고 있다.</p>
<p><br/><br/></p>
<h3 id="layout-conditioning">Layout conditioning</h3>
<p>사용자 상호 작용이 필요한 많은 실제 그래픽 디자인 응용 프로그램에 적용 가능하도록 하기 위해, 조절 가능한 레이아웃 생성을 위한 다양한 방법이 제안되었다. </p>
<ul>
<li><strong>LayoutGAN++ :</strong> Generator와 discriminator를 <strong>트랜스포머 기반 아키텍처로 대체</strong>하여 LayoutGAN을 개선한다. <strong>잠재 공간에서 비선형 최적화 문제를 정의하고 해결</strong>함으로써 레이아웃 생성에 대한 제약 조건을 추가하는 방식을 제안한다.</li>
</ul>
<br/>

<p><strong>VAE</strong>의 경우, </p>
<ul>
<li><p><strong>Neural design network :</strong> <strong>그래프 기반 조건부 VAE</strong> 모델을 사용하여 레이아웃 생성을 일련의 상대적인 <strong>디자인 속성 집합에 제한</strong>하는 방법을 제안했다. </p>
</li>
<li><p><strong>VTN :</strong> 조건부 VAE 접근 방식으로, <strong>조건이 RNN에 의해 사전 분포로 매핑되거나 트랜스포머 인코더에 의해 수행</strong>된다. </p>
</li>
<li><p><strong>BLT :</strong> 잠재 공간에서 제한을 가하는 조건부 접근 방식과 달리, 단순히 <strong>conditioned component attributes를 unmasking 함으로써 수행</strong>된다. </p>
</li>
</ul>
<br/>

<p>BLT과 유사하게, 본 논문의 접근 방식도 동일한 <strong>유연한 조절 가능한 conditioning</strong>을 허용하며, 추론 중에 모델은 명시적으로  conditioning attributes에 대한 정보를 받는다. 그러나 <strong>훈련 중 조건부 시나리오의 최적화를 수행</strong>하는 것을 제안하여 모델의 성능을 향상시킨다.</p>
<p><br/><br/></p>
<h3 id="diffusion-generative-models">Diffusion Generative Models</h3>
<p>Diffusion 모델은 <strong>reverse Markov noising 프로세스를 parameterize</strong>하는 신경 생성 모델의 한 종류다. Continuous diffusion의 경우, 샘플에 작은 양의 가우시안 노이즈가 추가된다. </p>
<p>Continuous diffusion 모델은 텍스트에서 이미지로의 변환, 비디오 생성, 텍스트에서 3D로의 변환, 그리고 오디오와 같은 다양한 작업 및 모달리티에서 강력한 생성 능력을 보여 주었다. </p>
<p>최근에는 트랜스포머 기반 diffusion 모델이 텍스트에서 이미지로의 생성  및 인간의 동작 생성과 같은 다양한 작업에서 최고 수준의 성능을 보여주었다. 이러한 연구를 바탕으로, 본 논문의 <strong>diffusion 모델도 트랜스포머-인코더 아키텍처를 기반</strong>으로 한다.</p>
<p><br/><br/></p>
<h3 id="discrete-diffusion-process">Discrete diffusion process</h3>
<p>Diffusion 프로세스를 이산적인 경우로 일반화하기 위해, <a href="https://arxiv.org/abs/2107.03006">Structured denoising diffusion models in discrete state-spaces</a>는 <strong>카테고리의 확률 벡터에 Markov noising 프로세스를 적용</strong>하는 것을 제안한다. 
<br/></p>
<p>이 방법의 효과는 <strong>image captioning 테스크</strong>에서 나타났으며, 여기서 stationary distribution은 [MASK] 흡수 클래스에 모든 질량을 가지고 있다.</p>
<blockquote>
<p><strong>stationary distribution (정적 분포)</strong>
: Markov chain의 균형 상태를 나타낸다. <br/>
💡 &quot;[MASK] 흡수 클래스에 모든 질량을 가지고 있다&quot;는 것은 <strong>마스크로 지정된 특정 클래스가 나타날 확률이 가장 높다</strong>는 것을 의미한다.</p>
</blockquote>
<p>레이아웃 생성 작업의 자연적인 표현은 <strong>연속적인 (크기와 위치) 및 이산적인 (카테고리) 구성 요소 속성을 모두 포함</strong>한다. 
<br/></p>
<p>본 논문의 접근 방식은 이전 방법과 달리 연속적인 또는 이산적인 diffusion 프로세스를 적용하는 대신, <strong>joint distribution에 diffusion 프로세스를 적용</strong>한다.</p>
<p><br/><br/><br/></p>
<h1 id="3-method">3. Method</h1>
<hr>
<p>본 논문의 목표는 제약 조건 c에 의존하여 레이아웃을 생성하는 것이다. 레이아웃은 각각의 <strong>구성 요소 Bi가 포함된 N개의 구성 요소 집합</strong>으로 나타내어진다. </p>
<p>여기서 각 <strong>구성 요소 Bi</strong>는 레이아웃 내에서 <strong>구성 요소의 위치와 크기를 설명하는 바운딩 박스와 구성 요소 클래스</strong>로 구성된다. </p>
<p>BLT와 유사하게, <strong>조건</strong>은 <strong>레이아웃 구성 요소의 모든 위치, 크기 및 클래스의 하위 집합</strong>이다. 특히, 무조건적인 레이아웃 생성도 c = ∅로 설정함으로써 지원된다.</p>
<blockquote>
<p> 💡 c = ∅로 설정함으로써 제약 조건을 적용하지 않고 레이아웃을 생성할 수 있다. 사용자가 특정한 제약이나 조건을 주지 않고 모든 구성 요소의 위치, 크기, 클래스를 자유롭게 생성할 수 있다. 따라서 무제한의 자유도를 가진 레이아웃을 생성할 수 있는 옵션을 제공한다.</p>
</blockquote>
<p><br/><br/></p>
<h2 id="31-diffusion-model">3.1. Diffusion model</h2>
<hr>
<p><a href="https://arxiv.org/abs/2006.11239">Denoising diffusion probabilistic models</a>의 프레임워크를 따르면, Diffusion 프로세스는 T step {x¯t}_t^T=0으로 모델링된다. 여기서 <strong>x¯0 ∼ q(¯x0)는 실제 데이터 분포에서 샘플링</strong>되고, 순방향 프로세스는 <strong>x¯t+1 ∼ q(¯xt+1|x¯t)에 따라 샘플링</strong>된다. 여기서 <strong>q(¯xt+1|x¯t)는 미리 정의된 (알려진) 분포</strong>다. </p>
<p>Diffusion 모델은 <strong>parameterized된 reverse diffusion 프로세스</strong>를 다음과 같이 정의한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/8491e68f-071a-46fb-af07-d23635937c2e/image.png" alt=""></p>
<br/>

<p><strong>pθ(¯x0)을 실제 데이터 분포 q(x0)와 일치</strong>하도록 맞추는 작업은 <strong>negative loglikelihood에 대한 variational bound를 최적화</strong>함으로써 수행된다. </p>
<p>이 <strong>variational bound</strong>는 세 가지 항의 합으로 표현될 수 있다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/16003ed8-3baf-4562-b364-e50f48672f2f/image.png" alt=""></p>
<p>LT가 상수이므로 최적화 프로세스에서 무시할 수 있다.</p>
<br/>
<br/>

<h3 id="continuous-diffusion-models">Continuous diffusion models</h3>
<p>연속적인 프로세스에서 함수들은 위첨자 c로 표시한다. 순방향 프로세스는 가우시안 노이즈를 추가함으로써 수행된다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/c7dc3232-795f-4313-ba34-43ae3cb5aec8/image.png" alt=""></p>
<p>여기서 <strong>상수 분산 βt ∈ (0, 1) (초매개변수)가 단계의 크기를 제어</strong>한다. </p>
<p>T → ∞일 때, <strong>x¯T ∼ N(0, I)를 근사화</strong>할 수 있다. 이 경우, pcθ(¯xt−1|x¯t)는 가우시안 분포의 특성을 따르는 모수(parameter)를 사용하여 정의되며, Lct는 닫힌 형식으로 계산할 수 있다.</p>
<br/>

<p>본 논문의 설정에서, <strong>레이아웃 내의 모든 바운딩 박스에 diffusion 프로세스를 적용</strong>한다: x¯0 ∈ R^NX4, 여기서 N은 구성 요소의 최대 수다. </p>
<p>Reverse diffusion 프로세스의 경우, 모델 <strong>Fcθ(¯xt, c, y¯t)를 훈련하여 직접 노이즈에서 x¯0을 예측</strong>한다. 여기서 <strong>y¯t</strong>는 다음 단락에 설명된 것처럼 <strong>diffusion 프로세스에서 클래스 정보를 전달</strong>한다. </p>
<br/>

<p><strong>최종 손실 Lbox</strong>는 손실 Lct의 reweighted 버전으로, 목적을 간소화하고 경험적으로 더 나은 결과를 이끌어 낸다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/d6a8cacb-a8ad-48b3-914f-90cc7b091754/image.png" alt=""></p>
<p><br/><br/><br/></p>
<h3 id="discrete-diffusion-models">Discrete diffusion models</h3>
<p>Discrete 프로세스에서 함수들을 위첨자 d로 표시한다. Discrete diffusion 프로세스는 <a href="https://arxiv.org/abs/2107.03006">Structured denoising diffusion models in discrete state-spaces</a>에서 정의되었다.</p>
<p>이 설정에서, K개의 범주를 가진 이산 확률 변수 y0 . . . , yT ∈ {1, . . . , K}가 있다. <strong>y0</strong>은 <strong>데이터 분포에서 샘플링</strong>되며, <strong>forward noising  프로세스는 Markov transition matrix에 의해 정의</strong>된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/98667b86-9285-40c6-9043-50cfcef13e85/image.png" alt=""></p>
<br/>


<p>본 논문의 경우, <strong>레이아웃 구성 요소의 모든 클래스에 이산 diffusion 프로세스를 적용</strong>한다: y¯0 ∈ {0, .., K}^N. K번째 범주로 absorbing state를 가진 transition matrix를 선택한다. </p>
<blockquote>
<p>💡 <strong>transition matrix with an absorbing state</strong>
: Markov chain에서 <strong>특정 상태로 이동한 후 더 이상 다른 상태로 이동할 수 없는 상태</strong>를 나타낸다. 이러한 상태를 &quot;흡수 상태&quot; 또는 &quot;흡수 상태로의 이동&quot;이라고도 한다. <br/>
따라서 특정 상태로의 이동이 흡수 상태로만 가능한 Markov chain의 transition matrix를 의미한다.</p>
</blockquote>
<br/>

<p>이 경우 <strong>i &lt; K</strong>일 때:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/26c11fd6-285d-4478-b11a-76308c82eab9/image.png" alt=""></p>
<p>그리고 <strong>i = K</strong>일 때:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/516b2afa-bdcf-42ec-afd3-4b04cae9af97/image.png" alt=""></p>
<p>다시 말해, 만약 클래스가 [Mask]이면 <strong>동일한 상태로 유지</strong>된다. 그렇지 않으면, <strong>확률 β로 클래스가 그대로 유지되고, 확률 1 − β로 [Mask]로 변경</strong>된다. T → ∞일 때 y¯T = [Mask]^N을 근사화할 수 있다는 것에 주목해야 한다. </p>
<p><strong>Reverse diffusion 프로세스</strong>에서는, 모델 Fdθ(¯xt, c, y¯t)를 훈련하여 <strong>구성 요소의 클래스 확률 P˜θ(˜y0|y¯t, x¯t, c)를 직접 예측</strong>한다. Reverse diffusion probability의 parameterization은 forward process를 사용하여 정의된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/03adf997-7216-48f8-931f-f91aaf15d1af/image.png" alt=""></p>
<p>이 경우, 일반적인 교차 엔트로피 손실은 <strong>Ldt의 reweighted function</strong>이다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/f3213c80-c436-46fe-916f-59677494544e/image.png" alt=""></p>
<p><strong>Class category</strong>에 대한 objective은 다음과 같다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/6a8d1f43-ad2d-4d70-bacb-8973a47d20e6/image.png" alt=""></p>
<p><br/><br/><br/></p>
<h3 id="combined-diffusion-process">Combined diffusion process</h3>
<p>Layout diffusion process는 데이터 분포에서 (¯x0, y¯0)를 샘플링하여 얻는다. forward diffusion 프로세스는 x¯0, y¯0에 <strong>독립적으로 연속 프로세스 qc와 이산 프로세스 qd를 적용</strong>하여 얻는다. </p>
<p>모델은 결합된 목적 함수로 훈련된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/a01eb10b-003a-4487-8fa2-97bd7e413fe5/image.png" alt=""></p>
<br/>

<p>결합된 손실의 이론적 동기는 <strong>reverse process의 joint distribution을 이전 단계에 대해 독립적으로 parameterizing</strong>함으로써 설명된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/9d3f2e3c-4b2b-4bb1-aea8-19e4d1cebbf1/image.png" alt=""></p>
<p>이 분해에서, 연속 부분과 이산 부분의 확률은 여전히 <strong>이전 diffusion 단계의 연속 좌표와 이산 클래스에 모두 의존</strong>한다. </p>
<br/>

<p>이러한 매개변수화를 통해 독립적인 분포에 대한 <strong>KL-divergence</strong>의 가벼운 특성으로 인해 다음과 같이 얻을 수 있다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/41b9f21e-1ab3-456a-b8ff-2c8bad4c42b9/image.png" alt=""></p>
<p>따라서 최종 손실은 joint distribution negative log-likelihood 함수의 <strong>간소화된 reweight optimization</strong>이다.</p>
<p><br/><br/><br/></p>
<h3 id="sampling">Sampling</h3>
<p>추론 단계에서는 x¯0 ∼ N(0, I), y¯0 = [Mask]^N을 샘플링한다. 각 단계 t에서는 <strong>Fcθ(¯xt, c, y¯t), Fdθ(¯xt, c, y¯t)를 적용하여 x¯pred, y¯pred</strong>를 얻는다(여기서 클래스 예측은 확률 벡터로 유지된다). </p>
<p>그런 다음 노이즈를 적용하고 다음과 같이 샘플링한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/dc2d6fa8-1459-4187-9ebe-c5f129c6b876/image.png" alt=""></p>
<p><br/><br/><br/></p>
<h2 id="32-model">3.2. Model</h2>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/7cfe235a-f4e4-49e5-ac50-151d21c5c9aa/image.png" alt=""></p>
<p>Fθ의 기본은 <strong>다층 Transformer 인코더</strong>다. 
<br/></p>
<p> <strong>Transformer 네트워크의 입력</strong></p>
<p><strong>: 구성 요소의 임베딩 벡터 세트와 프로세스의 시간 단계 t를 인코딩하는 임베딩</strong></p>
<ul>
<li>시간 임베딩은 MLP 네트워크의 결과로, 시간을 Transformer 임베딩 차원으로 주입한다.</li>
</ul>
<br/>

<p><strong>Transformer 인코더의 출력</strong></p>
<p><strong>: 각 구성 요소에 대한 임베딩</strong></p>
<ul>
<li><p>이는 상자 헤드와 클래스 헤드로 전달된다.</p>
</li>
<li><p>상자 헤드는 상자 좌표를 직접 예측하고, 클래스 헤드는 클래스 로짓을 예측한다.</p>
</li>
<li><p>클래스 임베딩은 세 가지 다른 임베딩의 연결로 구성된다.</p>
<ul>
<li><p>위치 임베딩</p>
</li>
<li><p>크기 임베딩</p>
<ul>
<li>위치 및 크기 임베딩은 각각 구성 요소의 중심과 크기를 가져와 Linear 레이어로 구현된다.</li>
</ul>
</li>
<li><p>클래스 임베딩</p>
<ul>
<li>클래스 임베딩은 각 클래스에 대한 별도의 임베딩 벡터를 보유하는 임베딩 레이어로 구현된다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><br/><br/><br/></p>
<h2 id="33-conditioning-mechanisms">3.3. Conditioning Mechanisms</h2>
<hr>
<p>레이아웃 편집을 유연한 conditioning 아키텍처를 사용하여 제안한다. 이 아키텍처는 <strong>사용자가 conditioning의 일부로 지정되는 특정 레이아웃 정보를 선택할 수 있는 기능을 제공</strong>한다. 이는 BLT와 유사한 기능이다. </p>
<p>초기 diffusion image-inpainting 작업을 따라, BLT에서의 편집 과정은 추론 단계에서만 수행되며 알려진 정보를 reverse diffusion 과정에서 노이즈로 대체함으로써 이루어진다. 그러나 최근 diffusion image-inpainting 분야의 발전을 바탕으로, <strong>명시적으로 모델을 레이아웃 편집을 수행하도록 훈련</strong>시킨다. </p>
<p><strong>Condition 임베딩(이진 임베딩 레이어로 구현)을 추가하여 편집</strong>을 수행하는데, 이는 모델에게 <strong>입력 중 어느 부분이 condition되었는지와 diffusion 프로세스의 일부인지</strong>를 알려준다. </p>
<p>훈련 중에는 <strong>모든 구성 요소의 위치, 크기 및 클래스 중 무작위 하위 집합</strong>에 대해 condition을 부여한다. 본 논문에서는 <strong>손실을  unconditioned information에만 적용</strong>한다.</p>
<p><br/><br/><br/></p>
<h1 id="47-results">4.7. Results</h1>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/17d9d1f4-e74e-4d29-88af-73377bc4ac7f/image.png" alt=""></p>
<p>각 모델은 네 번의 시험을 거쳤다. Table 1에서 메트릭의 평균 결과를 보고한다. BLT 모델은 조건부 시나리오에서 LT 모델보다 더 잘 수행되지만, LT 모델은 무조건적인 설정에서 더 나은 성능을 보인다. </p>
<p>그러나 본 논문의 모델은 모든 테스트된 메트릭에 대해 두 시나리오 모두에서 테스트된 방법을 통계적으로 유의한 마진으로 능가한다. </p>
<p>유일한 예외는 일부 경우에 BLT 모델이 더 잘 수행되는 정렬 점수다. 이는 바운딩 박스 차원의 이산화에서 작은 bin 수(32) 때문이다. 이 이산화는 생성된 레이아웃의 구성 요소의 해상도를 제한한다. </p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/43f5f3be-b5d4-4da0-9e9b-9dd45559b9be/image.png" alt=""></p>
<p>생성된 레이아웃과 조건부 레이아웃 사이의 Docsim 측정 결과는 Table 2에서 확인할 수 있다. 본 논문의 모델은 이 메트릭에 대해서도 조건부 시나리오에서 베이스라인 모델을 능가한다. </p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/32b8d739-378e-4540-b646-292a30e0d7de/image.png" alt=""></p>
<p>더 나아가, Figure 4는 일반적인 실패 사례를 강조하는 생성된 레이아웃의 질적 비교를 제공한다.</p>
<p><br/><br/><br/></p>
<h1 id="48-key-components-analysis">4.8. Key components Analysis</h1>
<hr>
<p>제안한 방법의 효과를 조사하기 위해 모델의 주요 구성 요소에 대한 제거 연구를 실시했다.</p>
<br/>

<h3 id="conditioning-mechanism">Conditioning Mechanism</h3>
<hr>
<p>3.3에 제시된 조건부 메커니즘을 다음 두 가지 대안과 비교한다:</p>
<ul>
<li>추론 중에만 편집 수행하기</li>
<li>조건 임베딩 제거</li>
</ul>
<br/>

<p><strong>추론 중에만 편집 수행하기</strong></p>
<p>모델을 무조건적인 설정에 따라 훈련시킨다. 추론 단계에서는 reverse diffusion 과정에서 노이즈를 조건부 정보로 재정의한다. 이 접근 방법(이산 경우)은 BLT의 조건부 접근 방법과 동등하다. </p>
<br/>


<p><strong>조건 임베딩 제거</strong></p>
<p>여전히 훈련 중에 4.5절에 설명된 세 가지 조건부 설정 중에서 샘플링하되, 약간의 수정으로 구성 요소의 절반에 대한 조건을 추가로 부여한다(무작위 선택). 이 옵션에서 조건 임베딩을 제거한다. </p>
<p>이것은 모델이 입력이 diffusion 프로세스의 일부인지 실제 조건 입력인지에 대한 명시적인 정보를 갖지 않음을 의미한다. DLT 모델은 옵션 (2)에서와 동일한 샘플링으로 훈련되었다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/85740032-17f1-46c8-907e-22d99de2729a/image.png" alt=""></p>
<p>Publaynet 데이터 세트에서 모든 구성 요소의 카테고리 + 크기를 조건으로 하거나 구성 요소의 절반의 모든 정보를 조건으로 하는 경우에 대한 비교는 Table 3에 제공된다. 추론 중에만 조건을 부여하는 것은 모델의 성능을 상당히 저하시켰으며, 조건 임베딩을 추가하면 결과가 더 개선된다. 이 정보(어떤 구성 요소가 조건부인지)는 모델이 조건부 모호성을 해결하고 생성된 구성 요소를 조건부 구성 요소에 맞추는 데 도움이 된다.</p>
<p><br/><br/><br/></p>
<h3 id="joint-continues-discrete-diffusion-process">Joint Continues-Discrete diffusion process</h3>
<p>제안한 연속-이산 결합 diffusion 과정의 효과를 평가하기 위해 두 개의 순차적인 diffusion 과정을 독립적으로 실행하는 것과 비교한다. 첫 번째 비교된 모델에서는 먼저 카테고리에 대한 이산 diffusion 과정을 실행한다. </p>
<br/>

<p>훈련 중에는 섹션 4.5에서 설명한 <strong>무조건적인 설정을 박스 위치와 크기에 대한 조건으로 대체하여 모든 상자의 위치와 크기를 제로로 설정</strong>한다. 이렇게 함으로써 모델은 <strong>각 샘플마다 이산 프로세스 또는 연속 프로세스 (둘 다가 아닌 하나만)를 반전시키도록 훈련</strong>된다. </p>
<p>추론에서는 먼저 <strong>구성 요소 카테고리에 대한 이산 diffusion 프로세스를 실행</strong>한 다음 <strong>예측된 카테고리를 고려하여 이산 diffusion 프로세스 결과에 대한 연속 reverse diffusion 프로세스를 실행</strong>한다. 두 번째 비교 방법에서는 먼저 연속 reverse diffusion 프로세스를 실행한 다음 이산 reverse 프로세스를 실행한다. </p>
<br/>

<p>훈련 중에는 무조건적인 설정을 두 가지 설정으로 대체하여 이를 수행한다. </p>
<ul>
<li><p><strong>모든 카테고리가 마스크 토큰과 같은 상태</strong>로 condition이 지정된 구성 요소 위치 + 크기에서 연속 diffusion 프로세스를 실행한다. </p>
</li>
<li><p><strong>구성 요소의 위치 + 크기에 대한 condition으로 이산 diffusion 프로세스를 실행</strong>한다. 또한 이 방법에서도 각 샘플에 대해 모델을 이산 diffusion 프로세스 또는 연속 diffusion 프로세스를 반전시키도록 훈련한다. </p>
</li>
</ul>
<br/>

<p>추론에서는 먼저 <strong>모든 카테고리가 마스크 토큰과 같은 상태로 condition이 지정된 연속 역 diffusion 프로세스를 실행</strong>하여 구성 요소 위치를 예측한 다음 <strong>박스 위치를 조건으로하는 이산 역 diffusion 프로세스를 실행</strong>한다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/2b3920dd-7dcf-49a2-a2e9-eb6fab77abac/image.png" alt=""></p>
<p>Publaynet 데이터 세트에서 무조건적인 설정에 대한 결과를 Table 4에 제공한다. 제안한 연속-이산 결합 diffusion 프로세스가 순차적인 diffusion 프로세스를 능가한다. 또한 주의할 점은 연결 모델의 추론 시간이 두 배 빠르다는 것이다.</p>
<p><br/><br/><br/></p>
<h1 id="5-conclusions-and-future-work">5. Conclusions and future work</h1>
<hr>
<p>이 연구에서는 레이아웃 구조의 부분 정보가 주어진 상황에서 합성 레이아웃을 생성하기 위한 새로운 방법을 제안한다. DLT 모델은 레이아웃 구성 요소의 카테고리와 차원에 대해 연속-이산 결합 diffusion 프로세스를 수행하는 Diffusion layout transformer다. </p>
<br/>

<p>모델은 <strong>조건 임베딩을 사용하여 입력에 대한 유연한 조건을 제공하여 어느 구성 요소 부분에 diffusion 프로세스가 적용되는지 명시적으로 지정</strong>한다. </p>
<br/>

<p>세 가지 다른 조건 설정에 대한 세 공개 데이터 세트에서의 실험 결과는 제안한 방법의 효과성과 유연성을 보여주며 기존 방법을 능가한다는 것을 입증한다. 또한 모델의 주요 구성 요소의 효과를 탐구한다. </p>
<p>다양한 대안을 비교함으로써 연속-이산 결합 프로세스와 조건 메커니즘의 추가 가치를 보여준다. 현재 작업의 한계는 구성 요소의 내용을 고려하지 않고 생성 프로세스를 진행한다는 점이다. 이 정보는 생성 프로세스의 많은 모호성을 해소하는 데 매우 중요하며 결과를 크게 개선할 수 있다. </p>
<br/>

<p>DLT 변환기의 임베딩 입력이 레이아웃 구성 요소를 나타내므로 <strong>구성 요소 임베딩에 구성 요소 내용에 대한 더 많은 정보를 인코딩하여 본 논문의 솔루션을 확장</strong>하는 것이 자연스럽다. 앞으로 이 방향을 더 탐구할 계획이다.</p>
<p><br/><br/></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[UROP #14] Exploring Gender Bias in Pre-Trained Transformer-based Language Models Using Movement Pruning]]></title>
            <link>https://velog.io/@yun_haaaa/UROP-14-Exploring-Gender-Bias-in-Pre-Trained-Transformer-based-Language-Models-Using-Movement-Pruning</link>
            <guid>https://velog.io/@yun_haaaa/UROP-14-Exploring-Gender-Bias-in-Pre-Trained-Transformer-based-Language-Models-Using-Movement-Pruning</guid>
            <pubDate>Fri, 03 May 2024 05:20:45 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2207.02463">https://arxiv.org/abs/2207.02463</a>
Github : <a href="https://github.com/kainoj/pruning-bias">https://github.com/kainoj/pruning-bias</a></p>
<blockquote>
<p>💡 로 표시된 부분은 제가 이해한 내용을 적은 부분입니다. 오류가 있다면 댓글로 남겨주세요 🙏🏻</p>
</blockquote>
<p><br/><br/><br/></p>
<h1 id="abstract">Abstract</h1>
<hr>
<p>언어 모델의 편향 제거는 NLP 커뮤니티에서 중요한 연구 분야로 떠오르고 있다. 다양한 편향 제거 기술이 제안되었지만, 편향 제거는 아직 다루지 않은 문제다. 본 논문에서는 <strong>pre-trained transformer 기반 언어 모델에서 편향</strong>을 조사하기 위한 새로운 프레임워크를 소개한다.
<br/></p>
<p>주어진 모델과 편향 제거 목적에 대해, 원본 모델보다 편향을 적게 포함하는 모델 하위 집합을 찾는다. <strong>모델을 편향 제거 목적으로 fine-tuning하면서 모델을 pruning하는 프레임워크</strong>를 구현한다. </p>
<p>최적화 대상은 모델의 가중치와 결합된 가중치와 함께 작동하는 게이트 역할을 하는 가중치다. Pruning 대상은 트랜스포머의 중요한 구성 요소인 어텐션 헤드다. <strong>정사각형 블록을 제거하고 전체 헤드를 pruning</strong>하는 새로운 방법을 도입한다. </p>
<p>마지막으로, 본 논문의 프레임워크를 성별 편향을 사용하여 시연하고, 발견된 내용을 기반으로 기존의 편향 제거 방법을 개선할 수 있는 방법을 제안한다. <strong>모델이 성능이 더 우수할수록 더 많은 편향이 포함된다는 편향-성능 트레이드오프를 재발견</strong>했다.</p>
<p><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p><strong>언어 모델(LM)에서 편향은 어디에 저장되어 있을까?</strong></p>
<p><strong>신경망 아키텍처 자체가 편향을 부과할 수 있을까?</strong></p>
<br/>

<p><a href="https://aclanthology.org/2021.eacl-main.107/">Debiasing Pre-trained Contextualised Embeddings</a>은 <strong>성별 편향이 트랜스포머 기반 LM의 모든 레이어에 존재</strong>한다고 제안한다. 그러나 이는 어떤 측면에서는 모호하다. 트랜스포머 레이어는 더 작은 구성 요소인 어텐션 헤드로 분해될 수 있으며, 이는 또한 행렬로 더 세분화될 수 있다. </p>
<p>반면에 <a href="https://aclanthology.org/P19-1580/">Analyzing Multi-Head Self-Attention: Specialized Heads Do the Heavy Lifting, the Rest Can Be Pruned</a>의 연구 결과는 <strong>몇몇 어텐션 헤드가 특정 작업에 특화되어 있다</strong>는 것을 보여준다. 이러한 작업에는 구문 및 위치 종속성이 포함된다. 이는 어떤 헤드나 그 부분이 편향을 학습하는 데 특화될 수 있다는 직관을 제공한다. </p>
<p>언어 모델에서 편향을 더 세부적으로 분석할 수 있다면, 모델 및 편향 현상에 대한 더 나은 이해를 얻을 수 있다. <strong>편향이 어디에 저장되어 있는지를 알면 모델의 특정 부분을 대상으로 하는 편향 제거 기술을 설계</strong>하여 편향 제거를 더 정확하고 효율적으로 수행할 수 있다.</p>
<br/>

<p>Movement pruning을 활용하여 언어 모델에서 편향을 조사하는 새로운 프레임워크를 소개한다. 이는 원래 신경망 모델을 압축하고 추론 속도를 빠르게 하는 데 사용되었다. </p>
<p>Movement pruning의 수정 버전을 소개하여 주어진 모델의 저편향 하위 집합을 선택하거나 동등하게 임의의 편향 제거 목적의 수렴을 이끄는 가중치를 찾을 수 있게 했다. 구체적으로 <strong>모델의 신경 가중치를 고정하고 가중치와 결합된 가중치 및 게이트 역할을 하는 pruning scores만 최적화</strong>한다. 이렇게 하면 어텐션 헤드와 같은 트랜스포머의 구성 요소가 어떤 것이 편향을 유발할 수 있는지를 조사할 수 있다. </p>
<p>헤드가 pruning으로 제거되고 편향 제거 목적이 수렴하면 해당 헤드에는 편향이 포함되어 있었을 것이라 가정한다. </p>
<br/>

<p>편향은 광범위하게 연구되어 많은 편향 제거 방법이 제안되었다. 그러나 이 작업들의 대다수는 편향 감지 또는 완화의 문제만 다루고 있다. </p>
<p>본 논문에서는 다음을 수행했다: </p>
<ol>
<li><p><strong>LMs에서 편향을 조사하기 위한 독창적인 프레임워크</strong>를 시연했다. 이는 movement pruning, weight freezing 및 편향 제거의 혼합이다. </p>
</li>
<li><p><strong>BERT 모델에서 성별 편향의 존재</strong>를 조사한다. </p>
</li>
<li><p>기존의 편향 제거 방법을 개선한다. </p>
</li>
</ol>
<p><br/><br/><br/></p>
<h1 id="2-background">2. Background</h1>
<hr>
<br/>

<h2 id="21-language-model-debiasing">2.1 Language Model Debiasing</h2>
<hr>
<p>언어 모델 편향 제거를 위한 다양한 패러다임이 제안되었다. 이에는 특징 추출 기반, 데이터 증강, 또는 어구 변형과 같은 방법들이 포함된다. 이들은 모두 특징 엔지니어링, 재훈련 또는 보조 모델 구축과 같은 추가 노력이 필요하다.</p>
<br/>

<p>본 논문에서는 성별 편향된 편견적 연상을 제거하기 위한 <a href="https://aclanthology.org/2021.eacl-main.107/">Debiasing Pre-trained Contextualised Embeddings</a> 알고리즘을 선택했다. 이는 많은 트랜스포머 기반 모델에 적용될 수 있으며 최소한의 데이터 주석이 필요하다. </p>
<p>이 알고리즘은 <strong>미리 정의된 성별 관련 단어의 임베딩(예: 남자, 여자)이 그들의 편견적인 동등물(예: 의사, 간호사)과 직교하도록 fine-tuning</strong>을 통해 이루어진다. </p>
<p><strong>손실 함수</strong>는 이러한 임베딩의 squared dot product 및 원래 모델과 편향 제거된 모델 간의 정규화 항으로 구성된다. </p>
<blockquote>
<p>💡 <strong>임베딩의 squared dot product</strong> <br/>
두 벡터가 서로 직교할 때, 내적은 0이 되며, 이는 두 벡터가 서로 독립적이고 관련이 없음을 의미한다. 따라서, 편향을 제거하기 위해서는 성별과 같은 특정 편향을 나타내는 단어의 임베딩을 그와 관련이 없는 단어의 임베딩과 직교하도록 학습해야 한다. <br/>
임베딩의 squared dot product를 최소화하면 직교를 촉진하는 효과를 얻을 수 있다. 편향을 줄이고 서로 다른 특성 간의 독립성을 유지하게 된다. </p>
</blockquote>
<blockquote>
<p>💡 <strong>원래 모델과 편향 제거된 모델 간의 정규화 항</strong> <br/>
정규화 항은 모델이 학습하는 파라미터의 값을 제한해, 모델이 특정한 패턴을 따르도록 제약을 가할 수 있다. <br/>
원래 모델과 편향 제거된 모델 간의 정규화 항은 두 모델간의 유사도를 유지하도록 유도하여 구문 정보를 보존하는 데 도움이 된다.</p>
</blockquote>
<br/>


<p>저자들은 임베딩의 소스 (트랜스포머 기반 모델의 모든 레이어의 첫 번째, 마지막 또는 모든 토큰) 및 손실의 대상 (대상 토큰 또는 문장의 모든 토큰)에 따라 여섯 가지의 편향 제거 모드를 제안했다. </p>
<p>이 모드들은 &quot;all-token&quot;, &quot;all-sentence&quot;, &quot;first-token&quot;, &quot;first-sentence&quot;, &quot;last-token&quot;, 그리고 &quot;last-sentence&quot;다. 본 연구에서는 &quot;first-*&quot; 모드를 생략하였는데, 이는 이러한 모드가 편향 제거 효과가 미미하다는 것이 실험적으로 나타났기 때문이다.</p>
<p><br/><br/><br/></p>
<h2 id="22-block-movement-pruning">2.2 Block Movement Pruning</h2>
<hr>
<p>Pruning은 신경망에서 일부 가중치를 비활성화하거나 제거할 때 사용된다. 이는 높은 희소성을 유발하여 모델을 더 빠르고 작게 만들면서 원래의 성능을 유지할 수 있다. 가중치가 0에 가까워질 때 해당 가중치를 제거한다. </p>
<p>각 가중치 행렬 W ∈ R^M×N에는 점수 행렬 S ∈ R^M/M0×N/N0이 관련되어 있으며, 여기서 (M0, N0)는 pruning block 크기다. 순전파에서 W는 그 마스크 버전인 W0 ∈ R^M×N으로 대체된다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/b1cb59e0-52b7-4a2c-833b-03d9c9bebfe3/image.png" alt=""></p>
<blockquote>
<p><strong>τ :</strong> 임계값
<strong>1 :</strong> 지시 함수</p>
</blockquote>
<ul>
<li>특정 집합에 특정 값이 속하는지를 표시하는 함수로, 특정 값이 집합에 속한다면 1, 속하지 않는다면 0의 값을 가진다.</li>
<li>출처 : <a href="https://ko.wikipedia.org/wiki/%EC%A7%80%EC%8B%9C_%ED%95%A8%EC%88%98">https://ko.wikipedia.org/wiki/%EC%A7%80%EC%8B%9C_%ED%95%A8%EC%88%98</a></li>
</ul>
<br/>

<p>역전파에서는 W와 S 모두 업데이트된다. 원래 모델의 성능을 보존하기 위해 <strong><a href="https://aclanthology.org/2021.emnlp-main.829/">Block Pruning For Faster Transformers</a>는 Distilbert에서처럼 교사 모델을 사용</strong>하는 것을 제안했다.</p>
<p>본 논문은 점수 S의 메커니즘 때문에 <strong>movement pruning</strong>을 사용하기로 결정했다. 이 점수는 <strong>가중치와 독립적으로 최적화될 수 있으므로 가중치를 고정</strong>시킬 수 있다. 이는 가중치 값(크기)에 직접 작용하는 magnitude pruning으로는 불가능하다.</p>
<p><br/><br/><br/></p>
<h1 id="3-exploring-gender-bias-using-movement-pruning">3. Exploring Gender Bias Using Movement Pruning</h1>
<hr>
<p>남성과 여성 엔터티 간의 편견적 연상으로 정의되는 성별 편향에 중점을 두었다. 본 논문의 연구는 영어 언어 및 이진 성별에만 한정되어 있다.</p>
<p>다음과 같은 질문에 답하려고 노력했다: </p>
<ul>
<li><strong>트랜스포머 기반 사전 훈련 언어 모델에서, 어떤 특정 레이어 또는 인접 영역이 편향을 담당하는지를 식별할 수 있을까?</strong> </li>
</ul>
<br/>

<p>본 논문에서는 Pre-trained 모델과 Fine-tuning 목적이 주어졌을 때, <strong>어떤 어텐션 블록을 비활성화할 수 있는지</strong> 찾아내어 모델이 작업에서 잘 수행되도록 한다. </p>
<p>모델을 pruning하면서 §2.1에서 설명한 것과 같은 <strong>편향 제거 목적으로 fine-tuning</strong>한다. <strong>가중치 W는 그대로 두고(고정된 채로 두고), Pruning score S만을 최적화</strong>한다.</p>
<br/>

<p>트랜스포머 기반 모델의 구성 요소인 <strong>어텐션 헤드를 pruning</strong> 한다. 각 헤드는 네 개의 학습 가능한 행렬로 구성되어 있으며, 우리는 이들을 모두 pruning한다. §3.1에서는 <strong>행렬의 정사각형 블록을 pruning</strong>하는 전략과 <strong>전체 어텐션 헤드를 pruning</strong>하는 두 가지 전략을 시험한다.</p>
<br/>

<p>편향을 평가하기 위해 Sentence Encoder Association Test (SEAT) 및 StereoSet Stereotype Score (SS)를 활용하며, 이는 성별 도메인에서 평가된다. 모델 성능을 측정하기 위해 표준 NLP 벤치마크인 GLUE를 사용한다.</p>
<p><br/><br/><br/></p>
<h2 id="31-experiments">3.1 Experiments</h2>
<hr>
<p>모든 실험에서는 BERT-base 모델을 사용했다.
<br/></p>
<h3 id="square-block-pruning">Square Block Pruning</h3>
<p>어텐션 헤드 행렬에서의 square block pruning이 전체 어텐션 헤드를 제거하는 결과를 보였다. 본 논문의 목적은 그들과 다르지만, 이러한 행동을 재현하려고 노력했다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/97a33da9-989f-4c89-8211-f57f7d10501d/image.png" alt=""></p>
<p>최적의 정사각형 블록 크기(B, B)를 찾기 위해 B = 32, 64, 128과 함께 실험을 진행했다. 또한 B = 256, 384, 768로 시도해 보았지만 수렴 문제가 발생하여 이러한 값들은 폐기했다. 적절한 블록 크기를 선택하는 것이 작업의 주요 제약사항 중 하나다.</p>
<br/>

<h3 id="attention-head-pruning">Attention Head Pruning</h3>
<p>전체 어텐션 헤드를 제거하려면 한 번에 모든 헤드 행렬을 pruning할 수 없다. 대신 값 행렬의 64×768 블록 (BERT-base의 어텐션 헤드 크기)만을 pruning한다.</p>
<p><br/><br/><br/></p>
<h2 id="32-discussion">3.2 Discussion</h2>
<hr>
<h3 id="square-block-pruning-does-not-remove-entire-heads">Square Block Pruning Does Not Remove Entire Heads</h3>
<p><a href="https://aclanthology.org/2021.emnlp-main.829/">Block Pruning For Faster Transformers</a>에서는 Square block pruning이 전체 헤드를 제거한다는 결과를 얻었다. 그러나 본 논문에서는 편향 제거 설정에서 이 현상을 관찰하지 못했다. 최대 8개의 헤드만을 상대적으로 큰 블록 크기, 128 × 128에 대해서만 pruning할 수 있다. </p>
<p><strong>사전 훈련된 모델의 가중치를 고정하는 것이 그 이유</strong>라고 가설을 세운다. 이를 확인하기 위해 32 × 32 블록 크기로 실험을 반복하지만, 가중치를 고정하지 않는다. </p>
<p>편향이 크게 변하지 않았지만 어텐션 헤드가 완전히 pruning되지 않았다. 이는 <strong>편향이 특정 헤드에 인코딩되어 있지 않을 수 있으며, 대신 여러 헤드에 분산되어 있을 수 있다는 것을 시사</strong>한다.</p>
<p><br/><br/></p>
<h3 id="performance-bias-trade-off">Performance-Bias Trade-off</h3>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b1e02519-af36-4762-ad21-f9e7900beb5d/image.png" alt=""></p>
<p>모델 성능과 그 편향 간에 부정적인 상관 관계를 관찰했다. 편향이 없는 모델, 즉 SS가 50에 가까운 모델은 성능이 낮다. <strong>최고의 GLUE를 가진 모델이 가장 많은 편향을 포함</strong>하고 있다. 이 현상은 편향 제거 알고리즘의 내재적인 약점일 수 있다. </p>
<p>이 문제를 완화하기 위해서는 알고리즘을 개선하거나 더 나은 알고리즘을 개발하거나, 또는 편향 제거 데이터에 중점을 둘 필요가 있을 수 있다. 또한 <strong>편향 제거와 하향 작업 목표를 동시에 최적화</strong>하는 것도 흥미로울 것이다. 그러나 이는 연구의 범위를 벗어나며, 향후 연구에 남겨두었다.</p>
<br/>

<p>본 논문의 모델은 언어 수용성 작업 (CoLA)에서 성능이 좋지 않다. 대부분의 모델은 거의 제로에 가까운 점수를 가지고 있어 무작위로 정보가 없는 추측을 하는 것으로 해석된다. 이는 작업의 복잡성에 기인할 수 있다. CoLA는 전체 GLUE 스위트 중에서 가장 어려운 작업으로, 깊은 문법 및 구문 지식이 필요하다. </p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/e90cc7de-1411-4e1f-89c2-b53b712c2568/image.png" alt=""></p>
<p>언어 모델이 문법적 추론에서 뛰어나지 않을 수 있다는 제안이 있었으며, <strong>Pruning으로 인한 가중치의 부재와 같은 변형이 이미 약한 문법 능력을 더욱 약화</strong>시킬 수 있다. 위 결과는 이 가설을 지원한다. &#39;frozen&#39; 설정과 비교하여 CoLA 점수가 현저히 높아지는 반면, 다른 작업에서는 약간의 증가만 나타났다.</p>
<p><br/><br/><br/></p>
<h1 id="4-debiasing-early-intermediate-layers-is-competitive">4. Debiasing Early Intermediate Layers Is Competitive</h1>
<hr>
<p><a href="https://aclanthology.org/2021.eacl-main.107/">Debiasing Pre-trained Contextualised Embeddings</a>은 세 가지 휴리스틱을 제안했다: </p>
<ul>
<li><strong>첫 번째 레이어</strong>의 편향 제거</li>
<li><strong>마지막 레이어</strong>의 편향 제거</li>
<li><strong>모든 레이어</strong>의 편향 제거</li>
</ul>
<p>그러나 편향 제거가 가능한 레이어 부분집합은 훨씬 많다. 모든 부분집합을 시도하여 최상의 부분집합을 찾는 것은 계산 비용이 많이 든다. 본 논문의 프레임워크를 사용하면 <strong>낮은 계산 비용으로 더 좋은 부분집합을 찾을 수 있다.</strong></p>
<br/>

<p>실험으로 다음을 관찰했다: </p>
<ol>
<li><p><strong>Square block pruning은 일반적으로 다른 레이어보다 첫 번째와 마지막 레이어에는 큰 영향을 미치지 않는다.</strong> 이러한 레이어의 밀도는 일반적으로 다른 레이어보다 높다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/0515319d-872e-4f9c-8455-76e4ed1717be/image.png" alt=""></p>
</li>
<li><p><strong>어텐션 헤드 pruning은 주로 중간 레이어에 영향을 미친다.</strong> 이를 기반으로 우리는 중간 레이어를 편향 제거하기로 제안한다. 
<img src="https://velog.velcdn.com/images/yun_haaaa/post/18c9925f-3426-424a-b62b-db61d2459f3f/image.png" alt=""></p>
<p>구체적으로, 레이어 인덱스 1에서 4까지의 임베딩을 취하고 §2.1에서 설명한 편향 제거 알고리즘을 실행한다. 일반적으로 레이어 0은 높은 밀도를 나타내므로 포함하지 않고, 레이어 5는 모든 실험에서 pruning되지 않은 가장 많은 헤드를 포함하고 있기 때문에 포함하지 않는다. </p>
</li>
</ol>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/53b522b8-15b3-4e87-a786-95be48ece0dc/image.png" alt=""></p>
<p>  결과적으로 intermediate-token 및 intermediate-sentence라는 두 가지 모드가 더 추가되었다. 위 표는 본 논문의 모드 및 다른 모드에 대한 결과다.</p>
<p><strong>중간 레이어의 편향 제거는 모든 레이어 및 마지막 레이어의 편향 제거와 경쟁력이 있다.</strong> 중간 모드의 SS는 해당 모든 및 마지막 모드의 SS보다 낮다. 중간-sentence의 SS는 50에 가까워진다.</p>
<p><br/><br/><br/></p>
<h1 id="5-conclusion">5. Conclusion</h1>
<hr>
<p>Pre-trained 트랜스포머 기반 언어 모델에서 편향의 원천을 검사하기 위한 새로운 프레임워크를 소개한다. 모델과 편향 제거 목적이 주어지면, 이 프레임워크는 <strong>Movement pruning을 활용하여 원래 모델보다 더 적은 편향을 포함하는 하위 집합을 찾는다.</strong> </p>
<p>이 프레임워크를 성별 편향을 사용하여 실험하고, <strong>편향이 주로 BERT의 중간 레이어에 인코딩되어 있다</strong>는 것을 발견했다. 이러한 결과를 기반으로 기존 모드보다 더 많은 편향을 감소시키는 두 가지 새로운 편향 제거 모드를 제안한다. 편향은 SEAT 및 Stereotype Score 메트릭을 사용하여 평가된다. </p>
<p><strong>성능-편향 트레이드 오프</strong>를 탐구했다: 모델이 작업에서 더 잘 수행될수록 성별 편향이 더 많이 나타난다. 추후에 이 프레임워크가 성별 편향에만 국한되지 않고 더 많은 응용 분야를 찾을 것을 기대한다.</p>
<p><br/><br/><br/></p>
<br/>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Capstone #8] SK TECH SUMMIT 2023: VITS2]]></title>
            <link>https://velog.io/@yun_haaaa/Capstone-8-SK-TECH-SUMMIT-2023-VITS2</link>
            <guid>https://velog.io/@yun_haaaa/Capstone-8-SK-TECH-SUMMIT-2023-VITS2</guid>
            <pubDate>Fri, 26 Apr 2024 06:54:01 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2307.16430">https://arxiv.org/abs/2307.16430</a>
Youtube : <a href="https://www.youtube.com/watch?v=Abov0q9T4jU">https://www.youtube.com/watch?v=Abov0q9T4jU</a></p>
<blockquote>
<p><strong>VITS2</strong> 논문은 <a href="https://velog.io/@yun_haaaa/Capstone-6-VITS2-Improving-Quality-and-Efficiency-of-Single-Stage-Text-to-Speech-withAdversarial-Learning-and-Architecture-Design"><strong>[Capstone #6] VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design</strong></a>에서 확인하실 수 있습니다.</p>
</blockquote>
<br/>
<br/>
<br/>


<h1 id="sk-tech-summit-2023-개인화-ai-보이스">[SK TECH SUMMIT 2023] 개인화 AI 보이스</h1>
<hr>
<h3 id="single-speaker-model">Single-Speaker Model</h3>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/4a24dff0-23c7-4f57-9ef9-f1a36e9ed575/image.png" alt=""></p>
<br/>

<h3 id="multi-speaker-model">Multi-Speaker Model</h3>
<p>: 하나의 모델 안에 여러 화자를 모델링
<img src="https://velog.velcdn.com/images/yun_haaaa/post/0ccae8cd-ba80-42ea-9873-af09cb8cdc04/image.png" alt=""></p>
<p>Speaker Embedding Matrix에 각 화자들의 벡터를 하나씩 지정해서 화자들의 발화 특성을 표현
<br/></p>
<p><strong>화자 확장에 제한</strong>
: 새로운 화자를 추가할 경우 Embedding Matrix에 vector가 추가되어야하는데, 이 임베딩 벡터는 Encoder, Decoder와 함께 학습되는 파라미터이기 때문에 모델 구조의 변경이 됨을 의미</p>
<ul>
<li>Encoder, Decoder의 변경</li>
<li>다른 파라미터들도 업데이트되어야 함</li>
<li>결론적으로 모델 전체를 다시 학습되어야 함</li>
</ul>
<br/>

<h3 id="zero-shot-approch">Zero-Shot Approch</h3>
<p>: 별도의 외부의 대량의 Speaker로 일반화 되어있는 Speaker Encoder를 사용하여 기존에 모델 안에서 학습되던 <strong>Speaker vector를 외부에서 받아온 뒤 이를 컨디셔닝</strong> 하여 합성 모델을 학습
<img src="https://velog.velcdn.com/images/yun_haaaa/post/32a9b20a-f924-46d9-aca9-e36a2a683be6/image.png" alt=""></p>
<p>화자 확장에 제한이 생기는 문제를 해결하기 위해 <strong>비학습적인 방법</strong>을 고안</p>
<ul>
<li>inference 시 새로운 speaker가 들어오면 해당 음성을 encoder에 넣고, 벡터를 뽑은 뒤, 이를 컨디셔닝 하여 음성을 생성하면 화자와 유사한 음성이 나올것이라는 것을 전제로 두고 개발</li>
</ul>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/534025a4-6b87-46dc-a8b1-919954389bb9/image.png" alt=""></p>
<p><strong>한계</strong></p>
<ul>
<li><p>Speaker Encoder가 speaker를 구분하기 위한 모델임. 따라서 decision boundary를 잘 긋기 위해서 모델은 speaker들을 다 떨어뜨려둠</p>
<ul>
<li><strong>학습된 화자 공간이 sparse 함</strong></li>
</ul>
</li>
<li><p>같은 사람이지만 의미가 다른 문장을 읽었을 경우 다른 발화 특성을 보임</p>
<ul>
<li>짧은 오디오에서 관찰할 수 있는 발화 특성은 contents에 align되어있는데, contents를 여러가지를 보지 못한 상태에서 <strong>화자의 전반적인 발화 특성을 모델링하기 어려움</strong></li>
</ul>
</li>
</ul>
<br/>
<br/>

<h3 id="vits2">VITS2</h3>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/6b368ef0-d3f8-4c67-9309-78c242b2b96e/image.png" alt=""></p>
<p>화자의 음성 오디오가 많을 경우 <strong><em>&quot;음성 각 부분의 발화 특성을 모두 추출해서 보관 후 합성 시 각 부분에 맞도록 입혀주는 것이 가능하다면, 해당 인물의 모든 contents에서의 발화 특성을 모두 표현할 수 있는 것이 아닐까?</em></strong>&quot;
<br/>
<br/></p>
<p><strong>해결해야 할 점</strong></p>
<ol>
<li><p>상당히 많은 <strong>화자의 음성 특징을 어떻게 추출하고 어떻게 효율적으로 보관</strong>할것인가</p>
</li>
<li><p>음성 특징을 <strong>어떻게 합성되는 오디오에 입혀줄것인가</strong></p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/e766b345-fb0e-4f81-a59d-66a3740ec31c/image.png" alt=""></p>
<ul>
<li><p>음성 오디오의 분포를 알 수 없기 때문에 예측하고 다룰 수 있는 분포로 Transform </p>
<ul>
<li>VAE를 사용하여 Gaussian 분포에 fit이 되도록 학습</li>
</ul>
</li>
</ul>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b7ede763-2f97-491c-a639-73dc3a171cb9/image.png" alt=""></p>
<p>Target Speaker의 다양한 오디오로부터 분포에 매핑된 데이터 포인트를 찍는데, 클러스터링을 통해 여기서 대표되는 feature를 뽑음</p>
<ul>
<li><p>클러스터링 한 센트로이드들을 모아서 화자의 음성 특징이라 정의</p>
</li>
<li><p>연속공간에서 데이터가 분포되어 있었을 것이기 때문에 중간점이 있어야 음성을 복원할 수 있음</p>
<br/>

</li>
</ul>
<p><strong>중간점을 어떻게 뽑아올 것인가에 대한 솔루션</strong></p>
<ul>
<li><p>두 개의 벡터의 선형 결합을 하면 벡터 사이의 어떤 점이라도 연속적인 공간에서 샘플링하는 것이 가능</p>
<ul>
<li>Sum to one이 되는 weight를 사용하는 <strong>Weighted Sum</strong>을 사용함으로써 해결</li>
<li><strong>Attention</strong>이 softmax attention score를 사용하는 경우에 sum to one이 되는 weight로 weighted sum을 하게 됨</li>
</ul>
</li>
</ul>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/b3a63e4d-b8fc-48e9-912c-f21a52202d2f/image.png" alt=""></p>
<ul>
<li><strong>SFEN :</strong> speaker를 인코딩, featre를 뽑아 학습/추론 시 텍스트 인코더에 컨디셔닝</li>
</ul>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/e20c4e04-e2ea-4b3c-adb0-e287b3740cb1/image.png" alt=""></p>
<ul>
<li><p>Phoneme Sequence가 Encoder에 들어갈 경우 각 time step에 대한 hidden representation이 만들어짐</p>
</li>
<li><p>Time step에 대한 hidden representation과 Speech feature matrix와 attention</p>
</li>
<li><p>구해진 attention score matrix는 해당 알파벳을 화자에 맞게 가장 잘 표현할 수 있도록 feature들을 조합하는 방법을 나타냄</p>
</li>
<li><p>Vector들을 attention score에 맞게 weighted sum 후 다시 넣어주면 continuous discretize된 데이터 포인트에서 continuous space에서 샘플링하는 효과를 얻을 수 있게 됨</p>
</li>
<li><p>Attention matrix는 표현하려고 하는 contents를 대상 화자로 가장 잘 표현할 수 있게 해주는 speech feature를 조합하는 방법을 나타냄</p>
</li>
</ul>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/4b0b61ca-2635-4e95-bce6-3942af575330/image.png" alt="">
비학습적인 방법이 유사도가 높게 나옴을 확인</p>
<ul>
<li><strong>VITS multi-speaker :</strong> 대상 화자 데이터셋으로 학습이 된 모델</li>
<li><strong>ELF :</strong> 비학습적인 본 논문의 방법</li>
</ul>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/ef793f40-f62d-491a-9f83-1dddcc3fad52/image.png" alt=""></p>
<p><strong>Speaker blending :</strong> speaker feature space에서 다른 speaker의 feature들을 잘 조합한다고 하면 또 다른 speaker를 만들어 낼 수 있음</p>
<ul>
<li>Speaker space가 sparse 하기 때문에 out of distribution data point가 뽑힐 수 있는 가능성이 높았는데, 본 논문에서 제시한 모델의 경우 Speaker blending에서도 좋은 성능을 보여줌</li>
</ul>
<br/>
<br/>
<br/>

<blockquote>
<h3 id="소감">소감</h3>
<p>Speaker encoder에서 추출된 hidden representation을 클러스터링 하는 방법을 적용하여 화자 확장의 제한을 극복했으며, 같은 인물이라도 contents 별로 음성의 특성이 달라 화자의 전반적인 발화 특성을 모델링하기 어렵다는 문제점을 해결했다.  <br/>
학습된 화자 공간이 불연속적이기 때문에 OOD가 발생할 확률이 높다는 문제점도 있었는데, weighted sum을 사용하는 attention을 적용함으로써 continuous space로 복원이 가능하게 했다. <br/>
위 내용은 논문만 읽었을 때 알기 힘든 부분인데, TECH SUMMIT에서 설명해 주셔서 감사하다. VITS2를 구현해 둔 커뮤니티 코드 2개 버전이 있는데, 두 리포지토리 모두 음성을 클러스터링 하여 화자의 특성을 모델링 하는 부분은 구현되어 있지 않은 것으로 확인했다. 프로젝트 마감일이 얼마 남지 않았으니 빠르게 구현해 봐야겠다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Capstone #7] Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech]]></title>
            <link>https://velog.io/@yun_haaaa/Capstone-7-Conditional-Variational-Autoencoder-with-Adversarial-Learning-for-End-to-End-Text-to-Speech</link>
            <guid>https://velog.io/@yun_haaaa/Capstone-7-Conditional-Variational-Autoencoder-with-Adversarial-Learning-for-End-to-End-Text-to-Speech</guid>
            <pubDate>Fri, 19 Apr 2024 13:31:49 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2106.06103">https://arxiv.org/abs/2106.06103</a>
Github : <a href="https://github.com/jaywalnut310/vits">https://github.com/jaywalnut310/vits</a></p>
<br/>

<h2 id="abstract">Abstract</h2>
<hr>
<p>최근 single-stage training과 parallel sampling이 가능한 end-to-end TTS 모델들이 제안되었지만, two-stage TTS 시스템보다 샘플 품질이 뛰어나지 않다. 본 논문에서는 현재의 two-stage 모델보다 더 자연스러운 소리를 생성하는 <strong>병렬 end-to-end TTS</strong> 방법을 제안한다. </p>
<br/>

<p><strong>Normalizing flows로 확장된 variational inference</strong>와 <strong>adversarial training process</strong>를 도입하여 generative modeling의 표현력을 향상시킨다. </p>
<p>또한 입력 텍스트에서 다양한 리듬으로 음성을 합성하기 위해 stochastic duration predictor를 제안한다. <strong>Latent variables에 대한 불확실성 모델링</strong>과 <strong>stochastic duration predictor</strong>를 통해 텍스트 입력이 다양한 pitch와 rhythm으로 여러 가지 방법으로 발음될 수 있는 자연스러운 1:N 관계를 표현한다. </p>
<br/>

<p>Single speaker dataset LJ Speech에 대한 MOS는 본 논문의 방법이 가장 좋은 공개적으로 사용 가능한 TTS 시스템보다 더 뛰어나며, 실제와 비교 가능한 MOS를 달성한다는 것을 보여준다.</p>
<br/>
<br/>
<br/>

<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>TTS 시스템은 주어진 텍스트로부터 raw speech waveform을 합성한다. Deep neural network의 빠른 발전으로 인해, TTS 시스템 파이프라인은 normalization과 phonemization과 같은 텍스트 전처리를 제외하고 <strong>two-stage generative modeling으로 단순화</strong>되었다. </p>
<ul>
<li><p>전처리된 <strong>텍스트</strong>로부터 melspectrogram이나 linguistic features과 같은 <strong>중간 음성 표현</strong>을 생성</p>
</li>
<li><p>중간 표현에 대한 <strong>condition</strong>으로 <strong>raw waveforms</strong>을 생성</p>
</li>
</ul>
<p>two-stage pipeline의 각 단계 모델은 독립적으로 개발되었다.</p>
<p><br/><br/></p>
<p>Neural network-based autoregressive TTS system은 실제같은 음성을 합성하는 능력을 보였지만, <strong>sequential한 generative process</strong> 때문에 현대 병렬 프로세서를 완전히 활용하기 어렵다. 이러한 제한을 극복하고 합성 속도를 향상시키기 위해 여러 <strong>non-autoregressive 방법이 제안</strong>되었다. </p>
<ul>
<li><p><strong>Text-to-spectrogram generation step :</strong>  pre-trained autoregressive teacher network에서 attention map을 추출하여 텍스트와 <strong>spectrogram 간의 정렬 학습 난이도를 줄이려</strong> 시도</p>
</li>
<li><p><strong>Likelihood-based method :</strong> 목표 mel-spectrogram의 likelihood를 최대화하는 alignment를 추정하거나 학습함으로써 <strong>외부 정렬기에 대한 의존성을 제거</strong></p>
</li>
<li><p><strong>Generative adversarial network :</strong> second stage model에서 다양한 판별자를 가진 GAN-based feed-forward network는 <strong>각각 다른 scales나 periods에서 샘플을 구별하여 고품질의 raw waveform 합성</strong></p>
</li>
</ul>
<p><br/><br/></p>
<p>병렬 TTS 시스템의 발전에도 불구하고, two-stage pipeline은 여전히 문제가 남아 있다. </p>
<ul>
<li><p>높은 품질의 생성을 위해 <strong>후반 단계 모델이 초기 단계 모델의 생성 샘플로 훈련 또는 미세 조정을 요구</strong></p>
</li>
<li><p>사전에 정의된 mediate features에 대한 의존성으로 인해 <strong>learned hidden representation을 적용하여 성능을 더 개선하는 것이 불가능</strong></p>
</li>
</ul>
<p><br/><br/></p>
<p>최근에는 FastSpeech 2s와 EATS와 같은 여러 연구에서 효율적인 end-to-end 훈련 방법을 제안했다.</p>
<ul>
<li><p>전체 파형이 아닌 짧은 오디오 클립을 기반으로 훈련</p>
</li>
<li><p>mel-spectrogram decoder를 활용하여 <strong>text representation learning</strong>을 지원</p>
</li>
<li><p>target과 생성된 <strong>음성 간의 길이 불일치를 완화</strong>하기 위해 전용 <strong>spectrogram loss</strong>를 설계 </p>
</li>
</ul>
<p>그러나 학습된 표현을 활용하여 성능을 향상시킬 수 있음에도 불구하고, 합성 품질은 two-stage 시스템에 비해 뒤떨어진다.</p>
<p><br/><br/></p>
<p>본 논문에서는 현재의 two-stage 모델보다 더 자연스러운 음성을 생성하는 parallel end-to-end TTS 방법을 제안한다. <strong>VAE를 사용하여 TTS 시스템의 두 모듈을 잠재 변수를 통해 연결하여 효율적인 end-to-end 학습을 가능하게</strong> 한다. </p>
<p>고품질의 음성 파형이 합성될 수 있도록 모델의 표현력을 향상시키기 위해 다음 방법을 수행한다.</p>
<ul>
<li><p><strong>conditional prior distribution</strong>에 <strong>normalizing flow</strong> 적용</p>
</li>
<li><p><strong>waveform</strong> 도메인에서 <strong>adversarial training</strong>을 시행</p>
<br/>


</li>
</ul>
<p>고해상도 오디오를 생성하는 것 외에도, TTS 시스템이 <strong>텍스트 입력이 pitch, duration 등이 여러 가지 방식으로 발음될 수 있는 1:N 관계를 표현</strong>하는 것이 중요하다. 1:N 문제에 대처하기 위해 본 논문에서는 입력 텍스트로부터 다양한 리듬으로 음성을 합성하기 위한 <strong>stochastic duration predictor</strong>를 제안한다. Latent variable에 대한 불확실성 모델링과 stochastic duration predictor를 통해 텍스트로 표현할 수 없는 speech variations를 포착한다.</p>
<br/>
<br/>
<br/>

<h1 id="2-method">2. Method</h1>
<hr>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/6f27c1f6-8813-49ea-8afb-45b36a70f68b/image.png" alt=""></p>
<ul>
<li>Conditional VAE 공식</li>
<li>Variational inference에서 유도된 alignment estimation</li>
<li>합성 품질 향상을 위한 adversarial training</li>
</ul>
<br/>
<br/>
<br/>

<h2 id="21-variational-inference">2.1. Variational Inference</h2>
<hr>
<h3 id="overview">Overview</h3>
<p>VITS는 variational lower bound, 즉 <strong>Evidence Lower Bound (ELBO)를 최대화하는 conditional VAE</strong>로 표현될 수 있다. 이는 intractable marginal log-likelihood인 log pθ(x|c)의 variational lower bound이다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/4f7fe7de-cd35-4c8d-ac9f-996abda803f5/image.png" alt=""></p>
<blockquote>
<p><strong>pθ(z|c) :</strong> condition c가 주어졌을 때 latent variable z의 prior distribution
<strong>pθ(x|z) :</strong> 데이터 점 x의  likelihood function 
<strong>qφ(z|x) :</strong> approximate posterior distribution</p>
</blockquote>
<br/>

<p>training loss는 음의 ELBO로, <strong>reconstruction loss -log pθ(x|z)</strong>와 <strong>KL divergence log qφ(z|x) - log pθ(z|c)</strong>의 합으로 볼 수 있다. 여기서 z ∼ qφ(z|x)다.</p>
<br/>
<br/>
<br/>

<h3 id="reconstruction-loss">Reconstruction loss</h3>
<br/>

<ol>
<li><p>Reconstruction loss에서 <strong>target data point로</strong> raw waveform이 아닌 <strong>mel-spectrogram을 사용</strong>하며, 이를 x_mel로 표시한다. </p>
</li>
<li><p>latent variable z를 waveform 도메인 y hat으로 업샘플링하여 디코더를 통해 mel-spectrogram 도메인 x hat_mel로 변환한다. </p>
</li>
<li><p>예측된 mel-spectrogram과 대상 mel-spectrogram 간의 L1 loss를  reconstruction loss로 사용한다.</p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/02eae047-2653-4a3b-99fd-9dd3af8e2d26/image.png" alt=""></p>
<br/>

<p>이는 데이터 분포에 대해 Laplace distribution을 가정하고 상수항을 무시하여 <strong>maximum likelihood estimation</strong>으로 볼 수 있다. Mel-scale을 사용하여 인간의 청각 시스템의 응답을 근사화하는 mel-spectrogram 도메인에서 reconstruction loss를 정의한다. </p>
<br/>

<p>Raw waveform에서 mel-spectrogram 추정은 <strong>STFT 및 mel-scale로의 linear projection</strong>만 사용하므로 <strong>학습 가능한 매개변수가 필요하지 않다.</strong> 또한, 추정은 훈련 중에만 사용되며 추론 중에는 사용되지 않는다. </p>
<p>실제로 전체 잠재 변수 z를 업샘플링하지 않고 디코더의 입력으로 부분 시퀀스를 사용한다. 이것은 효율적인 end-to-end 훈련에 사용되는 <strong>windowed generator training</strong>이다.</p>
<blockquote>
<p> <strong>Laplace distribution</strong>
<img src="https://velog.velcdn.com/images/yun_haaaa/post/14175ed3-8f23-4108-9a37-5ea7abd9e0d7/image.png" alt=""></p>
</blockquote>
<br/>
<br/>
<br/>

<h3 id="kl-divergence">KL-Divergence</h3>
<p><strong>Prior Encoder의 입력 조건 c</strong>는 다음과 같이 구성된다.</p>
<ul>
<li>텍스트에서 추출된 음소 <strong>c_text</strong></li>
<li>음소와 잠재 변수 간의 <strong>alignment A</strong></li>
</ul>
<p>Alignment은 |c_text| × |z| 크기의 hard monotonic attention matrix로, <strong>각 입력 음소가 목표 음성에 시간 정렬될 때 얼마나 확장되는지</strong>를 나타낸다. Alignment에 대한 정답 레이블이 없기 때문에, <strong>각 학습 반복마다 정렬을 추정</strong>해야 한다. </p>
<p>본 논문의 문제 설정에서는 <strong>Posterior Encoder에 더 높은 해상도의 정보를 제공</strong>하는 것이 목표다. 따라서 mel-스펙트로그램 대신 <strong>타겟 음성의 선형 스케일 스펙트로그램 x_lin을 입력으로 사용</strong>한다. </p>
<p>수정된 입력은 variational inference의 특성을 위반하지 않는다. <strong>KL Divergence</strong>는 다음과 같다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/dab7a9e8-b0f4-4cc2-aa3d-e79fd3bdfc85/image.png" alt=""></p>
<p>Prior와 Posterior 인코더를 매개변수화하기 위해 인수분해된 정규 분포를 사용한다. <strong>Prior 분포의 표현력을 증가시키는 것이 현실적인 샘플을 생성하는 데 중요</strong>하다는 것을 발견했다. 따라서 간단한 분포의 가역 변환을 통해 더 복잡한 분포로 변환할 수 있게 해주는 <strong>Normalizing flow fθ를 인수분해된 정규 prior 분포 위에 적용</strong>한다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/934b0cd5-52ee-4ecc-b2a1-46a062c98185/image.png" alt=""></p>
<br/>
<br/>
<br/>

<h2 id="22-alignment-estimation">2.2. Alignment Estimation</h2>
<hr>
<h3 id="monotonic-alignment-search">Monotonic Alignment Search</h3>
<p>입력 텍스트와 목표 음성 간의 Alignment A를 추정하기 위해 <strong>Monotonic Alignment Search (MAS)</strong>를 채택한다. 이는 <strong>Normalizing flow f에 의해 매개변수화된 데이터의 가능도를 최대화하는 정렬을 찾는 방법</strong>이다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/4cd9cee3-3312-4708-a5ed-5f1bef6fc66d/image.png" alt=""></p>
<p>여기서 후보 alignments는 <strong>사람이 텍스트를 순서대로 읽으며 단어를 건너뛰지 않는다는 사실에 따라 단조롭고 건너뛰지 않는 것으로 제한</strong>된다. 최적 정렬을 찾기 위해 Kim et al. (2020)은 동적 프로그래밍을 사용한다. </p>
<p>본 논문의 목표는 정확한 log likelihood가 아니라 ELBO이기 때문에 MAS를 직접 적용하기 어렵다. 따라서 ELBO를 최대화하는 정렬을 찾기 위해 <strong>MAS를 재정의하여 잠재 변수 z의 likelihood를 최대화하는 정렬을 찾는다</strong>:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0350fc28-9e8d-47f3-9274-35a95c87c200/image.png" alt=""></p>
<p>식 5와 식 6의 유사성 덕분에, 원래 MAS 구현을 수정 없이 사용할 수 있다. 부록 A에는 MAS의 의사 코드가 포함되어 있다.</p>
<br/>
<br/>
<br/>

<h3 id="duration-prediction-from-text">Duration Prediction From Text</h3>
<p>추정된 정렬의 각 행의 모든 열을 합산하여 <strong>각 입력 토큰의 지속 시간 d_i</strong>를 계산할 수 있다 : <strong>∑<em>j A</em>{i,j}</strong></p>
<p>Duration은 이전 연구 (Kim et al., 2020)에서 제안한 것처럼 결정론적 Duration Predictior를 훈련하는 데 사용할 수 있지만, 이는 사람이 <strong>매번 다른 말하기 속도로 발음하는 방식을 표현할 수 없다.</strong> </p>
<p>인간과 같은 말하기 리듬을 생성하기 위해 <strong>주어진 음소의 지속 시간 분포를 따르는 샘플을 생성하는 Stochastic Duration Predictior</strong>를 설계한다. </p>
<br/>

<p>Stochastic Duration Predictior는 보통 <strong>maximum likelihood estimation을 통해 훈련되는 flow-based generative model</strong>이다. </p>
<p>그러나 각 입력 음소의 지속 시간이 </p>
<ul>
<li><strong>이산 정수</strong>이므로 연속적인 정규화 흐름을 사용하기 위해 <strong>dequantizing이 필요</strong>하고, </li>
<li><strong>스칼라</strong>이므로 <strong>가역성으로 인해 고차원 변환을 방해</strong>한다. </li>
</ul>
<br/>

<p>이러한 문제를 해결하기 위해 <strong>Variational Dequantization</strong>과 <strong>Variational Data Augmentation</strong>을 적용한다. 구체적으로, Variational Dequantization과 Variational Data Augmentation을 위해 <strong>지속 시간 시퀀스 d와 같은 시간 해상도 및 차원을 가진 두 개의 랜덤 변수 u와 ν를 도입</strong>한다. </p>
<ul>
<li>u의 지원을 [0, 1)로 제한하여 d−u가 양의 실수 시퀀스가 되도록 하고, </li>
<li>ν와 d를 채널 방식으로 연결하여 고차원 잠재 표현을 만든다. </li>
<li>두 변수는 qϕ(u,ν_∣d,c_text)의 근사 후방 분포를 통해 샘플링된다. </li>
</ul>
<br/>

<p>결과 objective는  <strong>Phoneme Duration의 log-likelihood의 variational lower bound</strong>다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/5990e12e-0fa0-46cd-ba05-280d2b376388/image.png" alt=""></p>
<p>훈련 손실 L_dur는 variational lower bound의 음수이다. <strong>Duration Predictior의 훈련이 다른 모듈에 영향을 미치지 않도록 입력 조건에 대해 그라디언트 역전파를 방지</strong>하는 정지 그라디언트 연산자를 적용한다. </p>
<p>샘플링 절차는 비교적 간단하다. Phoneme Duration은 Stochastic Duration Predictior의 역변환을 통해 랜덤 노이즈에서 샘플링되고, 그런 다음 정수로 변환된다.</p>
<br/>
<br/>
<br/>

<h2 id="23-adversarial-training">2.3. Adversarial Training</h2>
<hr>
<p>학습 시스템에 Adversarial Training을 도입하기 위해, 디코더 G가 생성한 출력과 실제 파형 y를 구별하는 Discriminator D를 추가한다. 이 작업에서는 음성 합성에 성공적으로 적용된 두 가지 손실 유형을 사용한다. </p>
<ul>
<li><strong>적대적 학습을 위한 least-squares loss</strong></li>
<li><strong>생성기 훈련을 위한 additional feature matching loss</strong></li>
</ul>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/709d8da8-d1ee-4625-a0bc-7ca4d7887f70/image.png" alt=""></p>
<blockquote>
<p><strong>T :</strong> 판별자의 전체 레이어 수
<strong>D^l :</strong> 판별자의 l번째 레이어의 특징 맵을 출력
<strong>N_l :</strong> 특징의 수</p>
</blockquote>
<p>특히, feature matching loss는 VAE의 요소별 재구성 손실의 대안으로 제안된 판별자의 숨겨진 레이어에서 측정되는 reconstruction loss로 볼 수 있다.</p>
<br/>
<br/>
<br/>

<h2 id="24-final-loss">2.4. Final Loss</h2>
<hr>
<p>VAE와 GAN 훈련을 결합하여 조건부 VAE를 훈련하기 위한 총 손실은 다음과 같이 표현된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/94b2030c-1dd6-4ae3-a9e8-a0fb9cbe35ee/image.png" alt=""></p>
<br/>
<br/>
<br/>

<h2 id="25-model-architecture">2.5. Model Architecture</h2>
<hr>
<p>제안된 모델의 전체 아키텍처는 Posterior Encoder, Prior Encoder, Decoder, Discriminator, Stochastic Duration Predictor로 구성된다. Posterior Encoder와 Discriminator는 추론에 사용되지 않고 학습에만 사용된다. </p>
<br/>

<h3 id="posterior-encoder">Posterior Encoder</h3>
<p>Posterior Encoder는 WaveGlow와 Glow-TTS에서 사용된 <strong>비인과적 WaveNet residual block</strong>을 사용한다. WaveNet residual block은 gated activation unit과 skip connection이 있는 확장된 합성곱 레이어들로 구성된다. </p>
<p>Residual block 위의 linear projection layer는 normal posterior distribution의 평균과 분산을 생성한다. 다중 화자 설정에서는 <strong>residual block에 글로벌 컨디셔닝을 사용하여 화자 임베딩을 추가</strong>한다.</p>
<br/>
<br/>
<br/>

<h3 id="prior-encoder">Prior Encoder</h3>
<p>Prior Encoder는 다음과 같이 구성된다:</p>
<ul>
<li>입력 음소 c_text를 처리하는 <strong>텍스트 인코더</strong></li>
<li>사전 분포의 유연성을 향상시키는 *<em>Normalizing flow f_θ *</em></li>
</ul>
<p><strong>텍스트 인코더</strong>는 절대 위치 인코딩 대신 <strong>상대 위치 표현을 사용하는 트랜스포머 인코더</strong>이다. 텍스트 인코더와 그 위의 linear projection layer를 통해 c_text로부터 숨겨진 표현 h_text를 얻을 수 있으며, 이는 사전 분포를 구성하는 데 사용되는 평균과 분산을 생성한다. </p>
<p><strong>Normalizing flow</strong>는 WaveNet residual block으로 구성된 affine coupling layers 스택이다. 단순성을 위해 <strong>normalizing flow은 Jacobian 행렬식이 1인 부피 보존 변환으로 설계</strong>되었다. </p>
<p>다중 화자 설정에서는 <strong>전역 조건화</strong>를 통해 <strong>화자 임베딩을 normalizing flow의 residual block에 추가</strong>한다.</p>
<br/>
<br/>
<br/>

<h3 id="decoder">Decoder</h3>
<p>Decoder는 본질적으로 HiFi-GAN V1 generator다. 이는 각 레이어마다 <strong>multireceptive field fusion module (MRF)이 뒤따르는 transposed convolution 스택</strong>으로 구성된다. </p>
<p>MRF의 출력은 <strong>서로 다른 수용 영역 크기를 가진 residual block의 출력을 합한 것</strong>이다. 다중 화자 설정에서는 linear layer를 추가하여 화자 임베딩을 변환하고 이를 입력 잠재 변수 z에 추가한다.</p>
<br/>
<br/>
<br/>

<h3 id="discriminator">Discriminator</h3>
<p>Discriminator는 HiFi-GAN에서 제안된 multi-period discriminator 의 아키텍처를 따른다. <strong>Multi-period discriminator</strong>는 입력 파형의 다양한 주기 패턴에서 작동하는 <strong>Markovian 윈도우 기반 sub-discriminators</strong>의 혼합물이다.</p>
<br/>
<br/>
<br/>

<h3 id="stochastic-duration-predictor">Stochastic Duration Predictor</h3>
<p>Stochastic Duration Predictor는 <strong>조건부 입력 h_text에서 음소 지속 시간의 분포를 추정</strong>한다. Stochastic Duration Predictor의 효율적인 매개변수화를 위해 확장 및 깊이 분리 합성곱 레이어가 있는 residual block을 스택한다. </p>
<p>또한 coupling layers에 <strong>monotonic rational-quadratic splines를 사용하여 가역적 비선형 변환을 수행하는 neural spline flows을 적용</strong>한다. Neural spline flows은 일반적으로 사용되는 affine coupling layers와 비교하여 유사한 수의 매개변수로 변환 표현력을 향상시킨다. </p>
<p>다중 화자 설정에서는 선형 레이어를 추가하여 화자 임베딩을 변환하고 이를 입력 h_text에 추가한다.</p>
<br/>
<br/>
<br/>
<br/>
]]></description>
        </item>
        <item>
            <title><![CDATA[[UROP #13] Block Pruning For Faster Transformers]]></title>
            <link>https://velog.io/@yun_haaaa/UROP-13-Block-Pruning-For-Faster-Transformers</link>
            <guid>https://velog.io/@yun_haaaa/UROP-13-Block-Pruning-For-Faster-Transformers</guid>
            <pubDate>Fri, 12 Apr 2024 04:45:53 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2109.04838">https://arxiv.org/abs/2109.04838</a>
Github : <a href="https://github.com/huggingface/nn_pruning">https://github.com/huggingface/nn_pruning</a></p>
<br/>

<h1 id="abstract">Abstract</h1>
<hr>
<p>Pre-training은 분류 및 생성 작업에서 모델 정확도를 향상시켰지만, 이는 훨씬 크고 느린 모델을 도입하는 비용이 따른다. Pruning은 모델 크기를 줄이는 효과적인 방법으로 입증되었으며, Distillation은 추론 속도를 높이는 데 효과적으로 입증되었다. </p>
<p>본 논문에서는 작고 빠른 모델을 대상으로 하는 <strong>block pruning</strong>을 소개한다. <strong>임의의 크기의 블록을 고려함으로써 구조화된 방법을 확장하고, 이 구조를 fine-tuning을 위한 movement pruning 패러다임에 통합</strong>한다. </p>
<p>이 방법이 기본 모델의 전체 구성 요소를 제거하는 것과 같은 결과를 얻는다는 것을 발견했다. 실험은 분류 및 생성 작업을 고려하며, SQuAD v1에서 BERT의 크기를 74% 줄이고 속도를 2.4배 높인 가지치기된 모델을 얻었으며, F1에서 1% 감소했다.</p>
<p><br/><br/><br/></p>
<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>NLP 테스크에서 pre-trained 트랜스포머 모델은 분류 및 생성 작업 모두에서 표준으로 사용되고 있으며, 표준 벤치마크에서 성능이 향상되는 동안 모델 크기가 계속해서 증가하고 있다. 이러한 발전은 사전 훈련된 모델의 저장 크기를 줄이고 효율성을 향상시키는 필요성을 강조한다. </p>
<p>Pruning은 특정 작업에 대해 미세 조정된 모델의 저장 크기를 줄이는 데 효과적임이 입증되었다. Magnitude pruning, L0 regularization, lottery ticket hypothesis, diff pruning, 및 movement pruning과 같은 접근 방법들은 모델 크기를 현저하게 줄이는 데 성공했다. </p>
<ul>
<li><p><strong>Movement pruning :</strong> SQuAD v1.1에서 정확도 1% 하락에 대해 매개 변수 저장에서 77%의 절약을 달성했다. 그러나 이러한 모델들은 <strong>원래의 dense 구조를 재구성하기 위해 표준 하드웨어에서 실행하는 데 많은 비효율적</strong>인 부분이 있다.</p>
</li>
<li><p><strong>Distillation :</strong> DistilBERT, TinyBERT,  MobileBERT에서 확인되었듯이 보다 빠른 모델을 생성하는 데 더 효과적이었다. 이러한 접근 방식은 대상 증류를 활용하여 표준 하드웨어에서 빠른 밀집 구조를 갖는 더 작은 모델을 생성한다. 그러나 <strong>신중한 엔지니어링과 크기 선택 없이는 이러한 모델이 pruning된 모델보다 훨씬 크다.</strong></p>
</li>
</ul>
<br/>

<p>본 논문에서는 이러한 간극을 메우기 위해 block pruning에 중점을 두고 있다. 개별 파라미터의 pruning과 달리 이 방법은 dense 구조의 하드웨어에서 최적화될 수 있는 pruning을 촉진한다. 이는 일반적으로 structured 방법에서 사용되는 행 또는 열 기반 pruning보다 유연한 방법이며, 트랜스포머에 효과적으로 적용하기 어려웠던 방법이다. </p>
<p>이 방법을 Movement pruning과 통합하였는데, 이는 fine-tuning 중에 pre-trained 모델을 pruning하는 간단한 방법이다. 최종 방법은 추가적인 하이퍼파라미터나 훈련 요구사항을 필요로 하지 않는다.</p>
<br/>

<p>실험은 정확도와 효율성을 비교하여 다양한 벤치마크 데이터셋을 고려한다. 훈련 중에 <strong>하위 행 정사각형 블록을 사용하더라도, 이 방법이 모델의 전체 구성 요소를 제거하는 데 효과적으로 학습되어, 많은 어텐션 헤드를 효과적으로 제거</strong>한다는 결과를 찾았다. </p>
<p>이는 모델이 feed-forward 레이어의 표준 structured pruning을 초과하는 속도 향상을 가능하게 한다. 결과는 F1에서 1% 하락과 함께 SQuAD v1.1에서 2.4배의 속도 향상 및 QQP에서 F1의 1% 손실과 함께 2.3배의 속도 향상을 보여준다. </p>
<p>Summarization에 대한 실험은 CNN/DailyMail의 모든 ROUGE 메트릭에서 2점 평균 하락과 함께 1.39배의 속도 향상을 보여주며, 디코더 가중치를 3.5배 감소시키는 결과를 나타낸다.</p>
<p><br/><br/><br/></p>
<h1 id="2-related-work">2. Related Work</h1>
<hr>
<h3 id="knowledge-distillation">Knowledge distillation</h3>
<p>경쟁력 있는 성능을 달성하는 훨씬 작은 BERT 모델을 얻기 위해 사용되었다. <a href="https://arxiv.org/abs/1503.02531"><strong>Distilling the Knowledge in a Neural Network</strong></a>에서 처음 소개된 인기있는 compression 방법이다. </p>
<ul>
<li><strong>DistilBERT</strong>는 BERT를 pre-triaining 단계 및 선택적으로 fine-tuning 단계에서 더 얕은 학생 모델로 증류한다. </li>
<li><strong>MobileBERT 및 TinyBERT</strong>는 레이어별 증류 전략을 통해 얻어졌다. MobileBERT는 작업에 무관하지만, TinyBERT는 task-specific하다.</li>
</ul>
<br/>

<h3 id="unstructured-pruning">Unstructured pruning</h3>
<p>트랜스포머 모델을 대상으로 할 때, 일반적으로 가중치의 크기를 기준으로 pruning하는 것이 일반적이다. </p>
<ul>
<li><strong>Movement Pruning</strong>은 일차 방법을 사용하여 중요도 점수를 계산한다. </li>
</ul>
<p>이러한 방법은 모델 크기를 상당히 줄일 수 있게 해주지만, 결과적으로 나오는 unstructured sparse matrix를 활용하여 추론을 가속화하기 위해서는 특수한 하드웨어가 필요하다.</p>
<br/>

<h3 id="stuructured-pruning">Stuructured pruning</h3>
<p>일관된 그룹의 가중치를 제거한다. </p>
<ul>
<li><p>최근 연구들은 일부 <strong>어텐션 헤드가 성능에 중대한 저하 없이 제거</strong>될 수 있다는 것을 보여주었으며, 대부분의 헤드가 중복 정보를 제공한다는 결론을 내렸다. </p>
</li>
<li><p>다른 연구자들은 <strong>행렬 인수분해와 가중치 pruning을 결합</strong>하는 데 노력해왔다. </p>
<ul>
<li><a href="https://arxiv.org/abs/2004.04124"><strong>LadaBERT</strong></a>는 SVD 기반 행렬 인수분해와 unstructured pruning을 결합한다.</li>
<li><a href="https://arxiv.org/abs/1910.04732"><strong>Structured Pruning of Large Language Models</strong></a>는 stuructured pruning을 사용하여 rank를 감소시킨다. <blockquote>
<p><strong>특이값분해 (Singular Value Decomposition, SVD)</strong>
: 임의의 행렬을 세 개의 행렬로 분해하는 기술이다. 이 세 행렬은 특이값 분해의 고유한 특성을 가지며, 주어진 행렬의 모든 정보를 표현할 수 있다.
참고 : <a href="https://angeloyeo.github.io/2019/08/01/SVD.html">https://angeloyeo.github.io/2019/08/01/SVD.html</a>
​
<strong>Rank</strong>
: 랭크는 행렬의 선형 독립적인 행 또는 열의 최대 개수를 나타낸다. 다시 말해, 행렬의 랭크는 해당 행렬이 담고 있는 정보의 차원을 나타내는 지표다. 랭크가 높을수록 행렬이 담고 있는 정보가 많고, 랭크가 낮을수록 정보의 손실이 크다. </p>
</blockquote>
</li>
</ul>
</li>
<li><p>본 논문의 방법과 관련된 연구는 <strong>multi-head attention과 feed-forward network의 내부 레이어 노드에 structured pruning을 적용</strong>했다. </p>
<ul>
<li><p><a href="https://arxiv.org/abs/2010.13382"><strong>FastFormers: Highly Efficient Transformer Models for Natural Language Understanding</strong></a>는 중요도 점수를 기준으로 정렬한 후 모든 레이어에서 공유되는 미리 정의된 pruning 비율을 사용하여 pruning할 모듈을 선택한다. </p>
</li>
<li><p><a href="https://arxiv.org/abs/1910.06360"><strong>Structured Pruning of a BERT-based Question Answering Model</strong></a>는 pruning 가능한 모듈 마스크를 계산하기 위한 다양한 방법을 비교하고, <strong>L0 정규화</strong>가 가장 우수한 성능을 보인다고 결론지었다.</p>
</li>
</ul>
</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="3-background">3. Background</h1>
<hr>
<p>파라미터 θ를 가진 트랜스포머 모델에서 시작하여, 본 논문의 목표는 <strong>특정 end-task에 대해 fine-tuning된 동시에 병렬 하드웨어에서 효율적으로 계산할 수 있는 작은 파라미터 세트인 θ₀를 생성</strong>하는 것이다.</p>
<br/>

<p>트랜스포머 파라미터 중 가장 큰 범위를 차지하는 두 부분은 feed-forward network와 multi-head attention의 sub-layer다. </p>
<ul>
<li><p><strong>FFN :</strong> R^d_model×d_ff 형태의 두 행렬 (W1 및 W2)으로 이루어져 있다. </p>
</li>
<li><p><strong>MHA :</strong> R^d_model×d_model (query, key, value, out) 크기의 4개의 프로젝션 행렬 (Wq, Wk, Wv 및 Wo)으로 이루어져 있다. </p>
</li>
</ul>
<p>이러한 행렬은 hidden vector를 component attention parts로 projection하고 해당 부분에서 다시 projection하는 데 사용된다. 구현에서 이 projection은 텐서 형태의 행렬로 이루어진 R^n_heads×n_heads×d_model 폴딩된 형태로 이루어진다. </p>
<blockquote>
<p><strong>d_model :</strong> hidden size
<strong>d_ff :</strong> inner size
<strong>n_heads :</strong> attention heads number</p>
</blockquote>
<br/>

<h3 id="standard-fine-tuning">Standard fine-tuning</h3>
<p>θ에서 시작하여 손실 L(예를 들어, 분류를 위한 교차 엔트로피)을 최적화한다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/6d4bd013-3b8f-4d32-b7f9-d0c2624c85e8/image.png" alt=""></p>
<br/>

<h3 id="score-based-pruning"><a href="https://arxiv.org/abs/1911.13299">Score-based pruning</a></h3>
<p>각 파라미터 i에 대한 score 파라미터 S를 도입하여 모델을 수정하고 원래의 파라미터 행렬을 마스크된 버전인 W&#39; = W * M(S)로 대체한다. 가장 간단한 형태의 크기 가지치기에서는 <strong>낮은 절대값을 가진 파라미터를 단순히 zero-out</strong>하는 마스크가 될 것이다.</p>
<br/>

<h3 id="movement-pruning">Movement pruning</h3>
<p>모델이 이러한 스코어 파라미터를 최적화하도록 하는 score-based pruning 방법이다. 구체적으로, 우리는 이러한 score 파라미터를 최적화하는 movement pruning의 <strong>soft-movement variant</strong>에 중점을 둔다. 이는 임계값 파라미터 τ에 대해 M(S) = 1(S &gt; τ)로 설정되며, 정규화된 목적 함수를 최적화한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/7b6d7196-bc4b-45b9-8838-dc518accd37d/image.png" alt=""></p>
<blockquote>
<p><strong>λ :</strong> hyper-parameter
<strong>σ :</strong> sigmoid function
<img src="https://velog.velcdn.com/images/yun_haaaa/post/ca440fd5-6bbc-4df0-89cc-5b4e49c1c727/image.png" alt=""></p>
</blockquote>
<br/>

<p>Pruning objective는 모델이 파라미터를 <strong>fine-tune하면서 중요하지 않은 파라미터의 score를 낮추어 더 많은 sparsity를 유도</strong>하도록 장려한다. threshold를 훈련하기 위해, <strong>Straight-Through Estimator</strong>가 사용된다.</p>
<br/>

<p>Movement pruning은 distillation과 결합된 경우, 기존 모델의 파라미터 수를 줄이는 매우 효과적인 방법으로 나타났다. 예를 들어 SQuAD v1.1에서 F1이 87.5인 경우 94% 가지치기가 이루어졌다 (BERT-base는 88.5다). 이로써 증류만 사용하는 것보다 훨씬 작은 모델이 생성된다. 그러나 이러한 희소성 수준에서도 <strong>대부분의 표준 하드웨어에서는 이러한 유형의 sparse matrix-vector 곱을 효과적으로 활용할 수 없다.</strong></p>
<p><br/><br/><br/><br/></p>
<h1 id="4-model-block-movement-pruning">4. Model: Block Movement Pruning</h1>
<hr>
<p><strong>Movement pruning을 로컬 파라미터 블록에 적용하여 확장</strong>한다. 구체적으로 트랜스포머의 각 행렬은 고정 크기의 블록으로 분할된다. 이 설정은 임의의 unstructured 메서드의 pruning을 넘어서 <strong>효율성을 위해 데이터 근접성을 장려</strong>하는 것을 목표로 한다.
<br/></p>
<p>본 논문의 방법은 매우 간단하다. 각 파라미터 행렬 W ∈ R^M×N에 대해 고정 크기의 블록 구조 (M₀, N₀)를 가정한다. 이러한 <strong>각 블록은 regularization에서 shared score parameter를 가진 개별 그룹 역할</strong>을 한다. 이 score parameter는 해당 score matrix S ∈ R^M/M₀×N/N₀에서 파생된다.
<br/></p>
<p>Masked weight를 계산하는 것은 <strong>thresholded values를 확장</strong>하여 수행된다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/b04f42f2-98be-4a91-a54a-f918b94ba837/image.png" alt=""></p>
<p>과거 연구와 마찬가지로, 이 모델은 선생 모델의 성능과 일치하도록 distillation으로 훈련된다. 다른 distillation 방법이 새로운 모델 구조를 완전히 지정해야 하는 반면, 본 논문의 방법은 모델의 <strong>각 파라미터 행렬에 대한 (M₀, N₀) 집합, 즉 블록의 크기와 모양만 지정하면 된다.</strong> 블록이 너무 크면 pruning이 어렵지만 너무 작으면 효율적인 추론을 지원하지 않는다.</p>
<br/>

<p>검색 공간을 줄이기 위해 <strong>(M₀, N₀) att와 (M₀, N₀) ff에 대해서만 테스트</strong>한다. 동일한 블록 크기가 모든 레이어의 attention weights Wq, Wk, Wv 및 Wo에 사용되며, feed-forward weights W1 및 W2에 사용될 것이다. </p>
<p><br/><br/></p>
<p>Movement pruning <strong>regularization term</strong>을 다음과 같이 분할한다:
<img src="https://velog.velcdn.com/images/yun_haaaa/post/81259806-9b31-49e9-8f0c-0a679a8b248e/image.png" alt=""></p>
<p>이를 통해 <strong>score parameter가 받는 gradient의 차이를 고려</strong>할 수 있다.</p>
<p><br/><br/></p>
<p>검색 공간을 더욱 줄이기 위해 두 종류의 블록에서 테스트했다:</p>
<ul>
<li><strong>(32, 32):</strong> square blocks</li>
<li><strong>(1, dmodel) 및 (dmodel, 1):</strong> FFN 행과 열에 대한 dimension pruning (Dim)</li>
</ul>
<p><br/><br/></p>
<p>이러한 블록 크기는 효율적인 모델을 가능하게 한다.</p>
<ul>
<li><strong>최소 (16, 16) 크기의 블록은 적절한 GPU 커널을 사용하여 효율적으로 계산</strong>할 수 있다.</li>
<li>전체 행, 열 또는 헤드를 행렬에서 완전히 제거할 수 있다.</li>
<li>나머지 행렬은 그 후 dense 형태가 된다.</li>
</ul>
<p><br/><br/></p>
<p>접근 방식을 확인하기 위해 두 가지 추가 기준 블록 유형을 포함시켰다:</p>
<ol>
<li><p><strong>(2^n, 2^n), n ∈ [2, 5] :</strong> 성능에 대한 크기의 영향을 연구하기 위한 작은 2의 거듭제곱 정사각형 블록 크기 (Block)</p>
</li>
<li><p><strong>(d_model/n_heads, d_model) :</strong> attention head를 위한 블록 크기 (Heads)</p>
</li>
</ol>
<p>첫 번째는 작은 블록을 고려하고, 두 번째는 매우 큰 functional 블록을 고려한다.</p>
<p><br/><br/><br/><br/></p>
<h1 id="5-experimental-setup">5. Experimental Setup</h1>
<hr>
<p>Pre-trained language model을 평가하는 데 일반적으로 사용되는 다섯 가지 (영어) 작업에 대한 실험을 수행한다: </p>
<ul>
<li>질문 응답 (SQuAD)</li>
<li>자연어 추론 (MNLI)</li>
<li>감정 분류 (SST2 Socher et al., 2013)</li>
<li>개요 생성 (CNN/DailyMail)</li>
</ul>
<br/>

<p>트랜스포머 언어 모델의 task별 pruning 실험을 진행한다. 문장 분류 및 질문 응답을 위해 BERT를 사용하며(110M 파라미터의 인코더 전용 트랜스포머 언어 모델, 그 중 85M은 트랜스포머 레이어의 선형 레이어에 포함됨), 요약을 위해 BART를 사용한다(139M 파라미터의 인코더-디코더 언어 모델, 그 중 99M은 트랜스포머 레이어의 선형 레이어에 포함됨). 
<br/></p>
<p><strong>Movement pruning</strong> 완전히 unstructured 방법이며 속도 이점이 거의 없지만 본 논문이 달성하길 희망하는 희소성 교환의 상한을 제공한다. 또한 트랜스포머 기반 언어 모델의 빠른 추론을 위해 개발된 최첨단 접근 방식과 비교한다. </p>
<ul>
<li><p><strong>DistilBERT :</strong> 사전 훈련된 BERT를 더 작은 모델로 증류하여 얻는다. </p>
</li>
<li><p><strong>TinyBERT :</strong> 데이터 증강을 사용하여 미세 조정된 모델을 증류한다. </p>
</li>
<li><p><strong>MobileBERT :</strong> 대규모 아키텍처 탐색의 결과다. </p>
</li>
<li><p><strong>dBART :</strong> 큰 모델의 일부 레이어를 작은 모델로 임의로 복사하여 얻는다. </p>
</li>
</ul>
<br/>

<p>GPU에서 추론 속도를 측정하기 위해 24GB 3090 RTX 및 Intel i7 CPU를 사용하며 평가에 대한 대형 배치 크기(128)와 PyTorch CUDA 타이밍 프리미티브를 사용해서 측정했다. 결과는 플랫폼마다 지연 및 처리량 특성이 다르기 때문에 원래 논문과 다를 수 있다. 또한 각 모델 및 참조 모델의 트랜스포머 레이어의 선형 레이어에 있는 파라미터 수를 제공한다. 선형 레이어는 대부분의 FLOPS를 나타내므로 계산이 필요하며 모델 특성이 동등한 경우에는 어느 정도 계산 시간에 대한 좋은 proxy다.</p>
<p><br/><br/></p>
<h3 id="resources-and-reproducibility">Resources and Reproducibility</h3>
<p>최소한의 하이퍼파라미터 세트를 사용하고 있다. λatt 및 λffn의 비율은 상대적인 크기에 의해 고정된다. 이러한 매개변수에 대해 수동으로 다양한 값을 사용하여 몇 가지 실험을 수행했지만 그 영향은 미미했다.</p>
<p>주요 하이퍼파라미터는 <strong>training epoch</strong>다. SQuAD v1.1의 경우 BERT 모델에 대해 일반적으로 2 대신 20 epoch을 사용하고 있다. 이는 표준 fine-tuning 설정에서 45분이 소요되는 것 대비 본 논문의 방법에서는 약 12시간이 소요됨을 의미한다. 이 숫자는 <strong>주어진 작업에 대한 pruning이 충분히 느리게 진행되도록 충분히 커야 한다.</strong> </p>
<p>Warming up 단계 및 pruning 이후의 cool-down 단계가 도움이 되지만 정확한 길이는 최종 성능에 큰 영향을 미치지 않는다. 에너지 고려를 위해 훈련 시간이 추론 시간보다 덜 중요하다. 추론은 반복적으로 수행되기 때문에 우리의 방법은 추론을 크게 최적화하고 있으며 훈련 에너지는 추론 절약으로 큰 폭으로 회복될 수 있다.</p>
<p><br/><br/></p>
<h3 id="pruning-methods">Pruning Methods</h3>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/4f689214-abb3-4c99-a0ee-8730a81fccf3/image.png" alt=""></p>
<p>Pruning 접근 방법은 위와 같다. </p>
<ul>
<li><p><strong>Block pruning :</strong> original movement pruning의 확장으로 모든 선형 레이어에서 정사각형 블록 크기를 사용한다. 원래 movement pruning의 경우 블록 크기가 1이었다. </p>
</li>
<li><p><strong>Hybrid pruning :</strong> movement pruning을 사용하여 feed-forward 레이어 W1 및 W2의 hidden dimension을 동시에 제거하며, 이를 통해 차원 마스크를 생성한다. 이는 매개변수 행렬에서 전체 행 또는 열에 해당한다. pruning된 W01 및 W02은 그런 다음 완전히 밀집되도록 압축될 수 있다. crop된 행렬에 대해 dense operation을 수행한다. </p>
<p><strong>어텐션 레이어의 경우 Wq, Wk, Wv 및 Wo에서 일부 행 또는 열만 pruning하면 실용적으로 활용할 수 없다. 이는 계산의 구조 때문에 텐서 크기를 조절하는 추가 비용이 비효율적이기 때문</strong>이다. 따라서 어텐션 레이어에 대해 정사각형 블록 가지치기를 사용하며 성능과 정확도 간의 최상의 균형을 보여주는 (32, 32) 크기의 블록을 사용한다.
<img src="https://velog.velcdn.com/images/yun_haaaa/post/a2915344-7fe7-47ed-9aaa-acee1dc94f1d/image.png" alt=""></p>
</li>
<li><p><strong>Struct pruning :</strong> FFN 레이어에 대해 동일한 방법을 사용하지만 모델 어텐션 헤드를 직접 제거하려고 한다. 이를 위해 어텐션에 대한 블록 크기를 헤드 크기와 동일하게 선택하면서 여전히 동일한 soft movement pruning 전략을 사용한다. 이 접근 방식에 대해 λatt를 1/32로 사용한다. 어텐션 블록에는 피드포워드 차원에 비해 매개변수가 32배 더 많기 때문이다.</p>
<ul>
<li>Block Pruning이 attention head와 같은 구성요소를 완전히 제거하지 않을 때, 모델을 가속화할 수 없다. 그러나 zero weights를 사용하여 만들어진 sparsity로 인해 speed와 marginal cost 없이 성능의 일부를 개선할 수 있다.</li>
</ul>
</li>
<li><p><strong>Hybrid Filled pruning :</strong> 모델이 이러한 회수된 가중치를 균일하게 무작위로 다시 초기화하고 더 작은 모델에 대한 몇 단계 동안 계속해서 fine-tuning할 수 있게 한다. 또한 <a href="https://arxiv.org/abs/1803.03635">&quot;rewinding&quot;</a>을 통해 pruning해서는 안 되는 가중치(비어 있지 않은 어텐션 헤드의 일부)를 식별하고 pre-trained 모델을 re-fine-pruning하는 것도 있다. </p>
<ul>
<li><p>첫 번째 실행에서는 pruning되지 않은 attention head를 표시하고</p>
</li>
<li><p>두 번째 실행에서는 이 정보를 사용하여 pruning에서 보호되는 가중치의 positive mask를 생성한다. 두 방법 간에 중요한 차이를 찾지 못했다. 여기 제시된 결과는 rewinding을 사용하지 않았다.</p>
</li>
</ul>
</li>
</ul>
<br/>
<br/>
<br/>

<blockquote>
<h3 id="소감">소감</h3>
<p>4달 전에 읽었던 논문이었는데, 그동안에 논문 중 일부를 다시 찾아볼 일이 여러 번 있었고, 그때마다 논문을 다시 읽느라 시간이 많이 소요되었다. 블로그에 정리해두는 데에 시간이 좀 걸리더라도 미래에 다시 참고할 필요가 있을 때를 대비해서 정리하는 시간을 아끼지 말아야겠다.<br/>
기존의 movement pruning을 블록 단위로 적용하는 방식이다. Pruning에 다양한 방법론들이 제안되고 있다는 것을 확인할 수 있었고, 트랜스포머에서 어떤 레이어에 pruning을 적용하는지 파악할 수 있었다. Hugging face에서 block movement pruning을 적용할 수 있도록 코드를 제공해 주고 있어서 코드 상으로 어떻게 적용되는지까지 알 수 있다. </p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Clean Code #8] 10. 클래스]]></title>
            <link>https://velog.io/@yun_haaaa/Clean-Code-7-10.-%ED%81%B4%EB%9E%98%EC%8A%A4</link>
            <guid>https://velog.io/@yun_haaaa/Clean-Code-7-10.-%ED%81%B4%EB%9E%98%EC%8A%A4</guid>
            <pubDate>Fri, 05 Apr 2024 05:14:36 GMT</pubDate>
            <description><![CDATA[<h2 id="클래스-체계">클래스 체계</h2>
<br>

<p>추상화 단계가 순차적으로 내려간다. 그래서 프로그램은 신문 기사처럼 읽힌다.
<img src="https://velog.velcdn.com/images/shin_mg/post/29027362-0373-4e93-888a-5695b7b4db4e/image.png" alt="추상화단계"></p>
<p><br><br></p>
<h3 id="캡슐화">캡슐화</h3>
<br>
변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 한다는 법칙도 없다.

<p>같은 패키지 안에서 테스트 코드가 함수를 호출하거나 변수를 사용해야 한다면, 그 함수나 변수를 protected로 선언하거나 패키지 전체로 공개한다.</p>
<p>하지만 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다.</p>
<p><br><br><br></p>
<h2 id="클래스는-작아야-한다">클래스는 작아야 한다!</h2>
<br>
클래스는 작아야 한다. 클래스를 설계할 때도, 함수와 마찬가지로, ‘작게’가 기본 규칙이다.

<p><strong>“얼마나 작아야 하는가?”</strong></p>
<p>함수는 물리적인 행 수로 크기를 측정했다. 클래스는 다른 척도를 사용한다. 클래스가 맡은 책임을 센다.</p>
<br>

<p>메서드 다섯 개 정도면 괜찮을까? </p>
<pre><code class="language-java">public class SuperDashboard extends JFrame implements MetaDataUser 
  public Component getLastFocusedComponent()
  public void setLastFocused(Component lastFocused)
  public int getMajorVersionNumber()
  public int getMinorVersionNumber()
  public int getBuildNumber() 
  }</code></pre>
<p>여기서는 아니다. SuperDashboard 는 메서드 수가 작음에도 불구하고 책임이 너무 많다.</p>
<br>

<p>클래스 이름은 해당 클래스 책임을 기술해야 한다. 실제로 작명은 클래스 크기를 줄이는 첫 번째 관문이다. </p>
<ul>
<li>간결한 이름이 떠오르지 않는다면 필경 클래스 크기가 너무 커서 그렇다. </li>
<li>클래스 이름이 모호하다면 필경 클래스 책임이 너무 많아서다.</li>
</ul>
<p>또한 클래스 설명은 만일(“if”), 그리고(“and”), -(하)며(“or”), 하지만(“but”)을 사용하지 않고서 25단어 내외로 가능해야 한다.</p>
<p><br><br></p>
<h3 id="단일-책임-원칙-single-responsibility-principle-srp">단일 책임 원칙 (Single Responsibility Principle, SRP)</h3>
<br>

<p>단일 책임 원칙(SRP)은 클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙이다.</p>
<p>이는 ‘책임’이라는 개념을 정의하며 적절한 클래스 크기를 제시한다. 클래스는 책임, 즉 변경할 이유가 하나여야 한다는 의미다. 책임, 즉 변경할 이유를 파악하려 애쓰다 보면 코드를 추상화하기도 쉬워진다.</p>
<br>

<p>SRP는 객체 지향 설계에서 더욱 중요한 개념이다. 하지만 이상하게도 SRP는 클래스 설계자가 가장 무시하는 규칙 중 하나다. 왜일까? 소프트웨어를 돌아가게 만드는 활동과 소프트웨어를 깨끗하게 만드는 활동은 완전히 별개다. 우리들 대다수는 두뇌 용량에 한계가 있어 ‘깨끗하고 체계적인 소프트웨어’보다 ‘돌아가는 소프트웨어’에 초점을 맞춘다. </p>
<p>전적으로 올바른 태도다. <strong>문제는 우리들 대다수가 프로그램이 돌아가면 일이 끝났다고 여기는 데 있다.</strong> ‘깨끗하고 체계적인 소프트웨어’라는 다음 관심사로 전환하지 않는다. 프로그램으로 되돌아가 만능 클래스를 단일 책임 클래스 여럿으로 분리하는 대신 다음 문제로 넘어가버린다.</p>
<br>

<p>많은 개발자는 자잘한 단일 책임 클래스가 많아지면 큰 그림을 이해하기 어려워진다고 우려한다. 큰 그림을 이해하려면 이 클래스 저 클래스를 수없이 넘나들어야 한다고 걱정한다.</p>
<ul>
<li>하지만 작은 클래스가 많은 시스템이든 큰 클래스가 몇 개뿐인 시스템이든 돌아가는 부품은 그 수가 비슷하다. 어느 시스템이든 익힐 내용은 그 양이 비슷하다.</li>
</ul>
<br>

<p>규모가 어느 수준에 이르는 시스템은 논리가 많고도 복잡하다. 이런 복잡성을 다루려면 체계적인 정리가 필수다. 그래야 개발자가 무엇이 어디에 있는지 쉽게 찾는다. 그래야 (변경을 가할 때) 직접 영향이 미치는 컴포넌트만 이해해도 충분하다. 큼직한 다목적 클래스 몇 개로 이뤄진 시스템은 (변경을 가할 때) 당장 알 필요가 없는 사실까지 들이밀어 독자를 방해한다.</p>
<br>

<p><strong>큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.</strong> </p>
<p>작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다.</p>
<p><br><br></p>
<h3 id="응집도cohesion">응집도(Cohesion)</h3>
<br>
클래스는 인스턴스 변수 수가 작아야 한다. 

<p>각 클래스 메서드는 클래스 인스턴스 변수를 하나 이상 사용해야 한다. 일반적으로 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 더 높다. 모든 인스턴스 변수를 메서드마다 사용하는 클래스는 응집도가 가장 높다.</p>
<br>

<p>응집도가 가장 높은 클래스는 가능하지도 바람직하지도 않다. 그렇지만 우리는 응집도가 높은 클래스를 선호한다. </p>
<p>응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미기 때문이다.</p>
<br>

<p>아래 클래스는 응집도가 아주 높다. size()를 제외한 다른 두 메서드는 두 변수를 모두 사용한다.</p>
<pre><code class="language-java">public class Stack {
  private int topOfStack = 0;
  List&lt;Integer&gt; elements = new LinkedList&lt;Integer&gt;();

  public int size() { 
    return topOfStack;
  }

  public void push(int element) { 
    topOfStack++; 
    elements.add(element);
  }

  public int pop() throws PoppedWhenEmpty {
    if (topOfStack == 0)
      throw new PoppedWhenEmpty();
    int element = elements.get(--topOfStack); 
    elements.remove(topOfStack);
    return element;
  } 
}</code></pre>
<br>
‘함수를 작게, 매개변수 목록을 짧게’라는 전략을 따르다 보면 때때로 몇몇 메서드만이 사용하는 인스턴스 변수가 아주 많아진다. 이는 십중팔구 새로운 클래스로 쪼개야 한다는 신호다. 응집도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다.
<br>
<br><br>

<p><strong>응집도를 유지하면 작은 클래스 여럿이 나온다.</strong></p>
<p>큰 함수를 작은 함수 여럿으로 나누기만 해도 클래스 수가 많아진다.</p>
<p>예를 들어, 변수가 아주 많은 큰 함수 하나가 있다. 큰 함수 일부를 작은 함수 하나로 빼내고 싶은데, 빼내려는 코드가 큰 함수에 정의된 변수 넷을 사용한다. 그렇다면 변수 네 개를 새 함수에 인수로 넘겨야 옳을까? 
<br></p>
<p>만약 네 변수를 <strong>클래스 인스턴스 변수로 승격한다면 새 함수는 인수가 필요없다.</strong> 그만큼 함수를 쪼개기 쉬워진다.</p>
<p>불행히도 이렇게 하면 클래스가 응집력을 잃는다. 몇몇 함수만 사용하는 인스턴스 변수가 점점 더 늘어나기 때문이다. 몇몇 함수가 몇몇 변수만 사용한다면 독자적인 클래스로 분리해도 되지 않는가? 
<br></p>
<p>당연하다. <strong><em>클래스가 응집력을 잃는다면 쪼개라!</em></strong></p>
<br>

<p>큰 함수를 작은 함수 여럿으로 쪼개다 보면 종종 작은 클래스 여럿으로 쪼갤 기회가 생긴다. 그러면서 프로그램에 점점 더 체계가 잡히고 구조가 투명해진다.</p>
<p>이렇게 리팩터링 후 가장 먼저 눈에 띄는 변화는 프로그램이 길어졌다는 사실이다. 길이가 늘어난 이유는 여러 가지다.</p>
<ul>
<li>좀 더 길고 서술적인 변수 이름을 사용한다. </li>
<li>코드에 주석을 추가하는 수단으로 함수 선언과 클래스 선언을 활용한다. </li>
<li>가독성을 높이고자 공백을 추가하고 형식을 맞추었다.<br>

</li>
</ul>
<p>이는 재구현이 아니다! 프로그램을 처음부터 다시 짜지 않았다. 실제로 두 프로그램을 자세히 살펴보면 알고리즘과 동작 원리가 동일하다는 사실을 눈치채리라.</p>
<p><br><br><br></p>
<h2 id="변경하기-쉬운-클래스">변경하기 쉬운 클래스</h2>
<br>
대다수 시스템은 지속적인 변경이 가해진다. 그리고 뭔가 변경할 때마다 시스템이 의도대로 동작하지 않을 위험이 따른다. 깨끗한 시스템은 클래스를 체계적으로 정리해 변경에 수반하는 위험을 낮춘다.

<p>경험에 의하면 클래스 일부에서만 사용되는 비공개 메서드는 코드를 개선할 잠재적인 여지를 시사한다. 하지만 실제로 개선에 뛰어드는 계기는 시스템이 변해서라야 한다. 하지만 클래스에 손대는 순간 설계를 개선하려는 고민과 시도가 필요하다.</p>
<br>

<p>클래스가 서로 분리되면 각 클래스는 극도로 단순해진다. 코드는 순식간에 이해된다. 함수 하나를 수정했다고 다른 함수가 망가질 위험도 사실상 사라졌다. 테스트 관점에서 모든 논리를 구석구석 증명하기도 쉬워졌다. </p>
<p>OCP(Open-Closed Principle)란 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다는 원칙이다. 
새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하다. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다.</p>
<p><br><br></p>
<h3 id="변경으로부터-격리">변경으로부터 격리</h3>
<br>
요구사항은 변하기 마련이다. 따라서 코드도 변하기 마련이다.

<p>상세한 구현에 의존하는 클라이언트 클래스는 구현이 바뀌면 위험에 빠진다. 그래서 우리는 인터페이스와 추상 클래스를 사용해 구현이 미치는 영향을 격리한다.
<br></p>
<p>시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다. 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다. 시스템 요소가 서로 잘 격리되어 있으면 각 요소를 이해하기도 더 쉬워진다.
<br></p>
<p>이렇게 결합도를 최소로 줄이면 자연스럽게 또 다른 클래스 설계 원칙인 DIP(Dependency Inversion Principle)를 따르는 클래스가 나온다. 본질적으로 DIP는 클래스가 상세한 구현이 아니라 추상화에 의존해야 한다는 원칙이다.</p>
<p><br><br><br></p>
<blockquote>
<h3 id="소감">소감</h3>
<p>2022년 배리어프리 앱개발 콘테스트로 개발했던 애플리케이션에 새로운 기능을 추가하고 디자인을 변경하며 시작했던 클린코드 스터디를 드디어 완료했다. 책의 내용만 학습하는 것이 아니라 팀원과 생각을 공유하고, 공부한 내용을 직접 코드에 반영해 리팩터링하는 과정을 함께 진행했다. 시간은 오래 걸렸지만, 그 덕분에 2023 공개 SW 개발자 대회에서 수상도 할 수 있었기에 의미 있는 시간이었다고 생각한다.</p>
</blockquote>
<ul>
<li><a href="https://github.com/GYEOTEURO/Dead-Developers-Society">https://github.com/GYEOTEURO/Dead-Developers-Society</a></li>
<li><a href="https://github.com/GYEOTEURO/Byourside">https://github.com/GYEOTEURO/Byourside</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Capstone #6] VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with
Adversarial Learning and Architecture Design]]></title>
            <link>https://velog.io/@yun_haaaa/Capstone-6-VITS2-Improving-Quality-and-Efficiency-of-Single-Stage-Text-to-Speech-withAdversarial-Learning-and-Architecture-Design</link>
            <guid>https://velog.io/@yun_haaaa/Capstone-6-VITS2-Improving-Quality-and-Efficiency-of-Single-Stage-Text-to-Speech-withAdversarial-Learning-and-Architecture-Design</guid>
            <pubDate>Fri, 29 Mar 2024 10:28:48 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2307.16430">https://arxiv.org/abs/2307.16430</a>
Youtube : <a href="https://www.youtube.com/watch?v=Abov0q9T4jU">https://www.youtube.com/watch?v=Abov0q9T4jU</a></p>
<blockquote>
<p><strong>SK TECH SUMMIT 2023</strong>에서 언급된 내용은 <a href="https://velog.io/@yun_haaaa/Capstone-8-SK-TECH-SUMMIT-2023-VITS2"><strong>[Capstone #8] SK TECH SUMMIT 2023: VITS2</strong></a> 에서 확인하실 수 있습니다.</p>
</blockquote>
<br/>
<br/>

<h1 id="abstract">Abstract</h1>
<hr>
<p>VITS2는 Single-stage TTS 모델의 품질과 효율성을 향상시켰다. 이 모델은 이전의 작업에 비해 <strong>개선된 구조와 훈련 메커니즘</strong>을 제안하고, 제안된 방법이 자연스러움, 다중 화자 모델에서 음성 특성의 유사성, 훈련 및 추론의 효율성을 향상시키는 데 효과적임을 보인다. 또한, 이전 작업에서의 <strong>음운 변환에 대한 강한 의존성</strong>을 본 논문의 방법으로 크게 줄일 수 있음을 보인다. 이는 end-to-end single-stage 접근을 가능하게 한다.</p>
<br/>
<br/>

<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p>최근 딥러닝 기반의 텍스트 음성 변환 기술은 상당한 발전을 이루었다. 딥러닝 기반의 텍스트 음성 변환은 입력 텍스트로부터 해당하는 원시 파형을 생성하는 방법으로, 텍스트 음성 변환 작업을 어렵게 만드는 몇 가지 특징을 가지고 있다. </p>
<ol>
<li><p>텍스트 음성 변환 <strong>작업은 불연속적인 특징인 텍스트를 연속적인 파형으로 변환</strong>하는 작업이다. 고품질 음성 오디오를 합성하기 위해서는 입력과 출력의 time step 차이가 수백 배에 달하며, 이들 간의 <strong>정렬</strong>이 매우 정확해야 한다.</p>
</li>
<li><p>입력된 텍스트에 존재하지 않는 <strong>운율적 특성과 화자적 특성</strong>이 자연스럽게 표현되어야 하며, 텍스트 입력이 다양하게 발화될 수 있는 <strong>일대다 문제</strong>다. </p>
</li>
<li><p><strong>사람들이 오디오를 들을 때 개별 구성 요소에 주의를 기울인다.</strong> 따라서 수십만 개의 신호로 구성된 전체 오디오 중 일부라도 부자연스러울 경우, 사람들은 쉽게 감지할 수 있다. </p>
</li>
<li><p>합성된 오디오는 일반적으로 <strong>초당 20,000개 이상의 데이터로 구성된 상당한 시간 해상도</strong>를 가지고 있으며, 이는 매우 <strong>효율적인 샘플링 방법</strong>을 요구한다.</p>
</li>
</ol>
<p><br/><br/></p>
<p>따라서 이전의 연구들은 입력 텍스트로부터 파형을 생성하는 과정을 두 단계로 나누어 해결했다. </p>
<ul>
<li>첫 번째 단계에서 <strong>입력 텍스트로부터 mel-spectrogram 또는 언어적 특성과 같은 중간 음성 표현을 생성</strong>하고, </li>
<li>두 번째 단계에서는 이러한 <strong>중간 표현을 조건으로 하는 원시 파형을 생성</strong>하는 것이다. </li>
</ul>
<br/>

<p>두 단계 파이프라인 시스템은 각 모델을 단순화하고 훈련을 용이하게 하는 장점이 있지만, 다음과 같은 제한 사항도 있다. </p>
<ol>
<li><p>첫 번째 단계에서 두 번째 단계로의 <strong>오류 전파</strong></p>
</li>
<li><p>모델 내부에서 학습된 표현을 활용하는 대신, <strong>mel-spectrogram이나 언어적 특성과 같이 인간이 정의한 특성을 통해 전달</strong></p>
</li>
<li><p>중간 특성을 생성하는 데 필요한 <strong>계산</strong></p>
</li>
</ol>
<p><br/><br/></p>
<p>최근에는 이러한 제한 사항을 해결하기 위해 <strong>입력 텍스트로부터 직접 파형을 생성하는 single-stage 모델</strong>이 활발히 연구되고 있다. Single-stage 모델은 두 단계 파이프라인 시스템보다 우수한 성능을 보여주었을 뿐만 아니라, 거의 인간과 구별할 수 없는 고품질의 음성을 생성할 수 있는 능력을 보여주었다.</p>
<p>이전 single-stage 접근법을 사용한 작업은 다음과 같은 문제점을 가지고 있다: </p>
<ol>
<li><p>간헐적인 <strong>부자연스러움</strong></p>
</li>
<li><p><strong>duration predictor의 효율성</strong> 저하</p>
</li>
<li><p>alignment 및 duration 모델링의 한계를 완화하기 위한 <strong>복잡한 입력 형식</strong> (공백 토큰 사용)</p>
</li>
<li><p>다중 화자 모델에서 충분한 <strong>화자 유사성 부족</strong></p>
</li>
<li><p><strong>훈련 속도</strong> 저하</p>
</li>
<li><p>음소 변환에 대한 강한 <strong>의존성</strong></p>
</li>
</ol>
<p><br/><br/></p>
<p>본 연구에서는 이러한 문제를 해결하기 위한 방법을 제공한다. 
여러 화자의 특성을 더 잘 모델링하기 위해 <strong>트랜스포머 블록과 화자 조건 텍스트 인코더를 활용하여 개선된 normalizing flows</strong>와 <strong>adversarial learning을 통해 훈련된 stochastic duration predictor</strong>를 제안한다.</p>
<br/>
<br/><br/>

<h1 id="2-method">2. Method</h1>
<hr>
<p>이 섹션에서는 네 가지 하위 섹션에서의 개선 사항에 대해 설명한다: </p>
<ol>
<li><p><strong>Duration predictor :</strong> adversarial learning을 통해 duration predictor를 훈련시켜 훈련 및 합성 모두에서 높은 효율성으로 자연스러운 음성을 합성하는 방법을 제안한다. </p>
</li>
<li><p><strong>Normalizing flow :</strong> 트랜스포머 블록을 normalizing flow에 도입하여 자연스러움을 향상시키는 방법을 제안한다. 이는 분포를 변환할 때 long-term dependencies를 캡처할 수 있게 한다. </p>
</li>
<li><p><strong>Alignment Search :</strong> 이전 작업에서 제안된 Monotonic Alignment Search (MAS)를 사용하여 정렬을 학습하며, 품질을 향상시키기 위한 수정을 제안한다. </p>
</li>
<li><p><strong>Speaker Conditioning :</strong> 다중 화자 모델에서 화자 유사성을 개선하기 위해 speaker conditioning을 수정한다.</p>
</li>
</ol>
<br/>
<br/>

<h2 id="21-stochastic-duration-predictor-with-time-step-wise-conditional-discriminator">2.1. Stochastic Duration Predictor with Time Step-wise Conditional Discriminator</h2>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/d339820d-e5f3-43cc-b878-7e5282f87fac/image.png" alt=""></p>
<p>이전 작업에서는 flow-based stochastic duration predictor가 결정론적 접근 방식보다 합성 음성의 자연스러움을 향상시키는 데 더 효과적임을 보였다. 이 방법은 훌륭한 결과를 보여 주었지만, flow-based 방법은 비교적 더 많은 계산과 일부 정교한 테크닉이 필요하다. 본 논문에서는 이전 작업보다 훈련 및 합성 모두에서 더 자연스러운 음성을 더 높은 효율성으로 합성하기 위해 <strong>adversarial learning을 통한 stochastic duration predictor</strong>를 제안한다. 
<br/></p>
<p>Adversarial learning을 적용하여 generator와 동일한 입력을 제공하는 conditional discriminator로 지속 예측기를 훈련한다. </p>
<blockquote>
<ul>
<li><strong>Generator와 G의 입력</strong></li>
</ul>
</blockquote>
<ul>
<li><strong>h_text :</strong> 텍스트의 숨겨진 표현 </li>
<li><strong>z_d :</strong> 가우시안 노이즈 <br/><br/>  <ul>
<li><strong>Discriminator D의 입력</strong></li>
</ul>
</li>
<li><strong>h_text :</strong> 텍스트의 숨겨진 표현</li>
<li><strong>d :</strong> MAS로부터 얻은 로그 스케일의 duration</li>
<li><strong>dˆ :</strong> Duration predictor의 예측</li>
</ul>
<br/>

<p>일반적인 generative adversarial network의 discriminator는 패딩된 고정된 길이의 입력을 사용하지만, 각 입력 토큰의 예측된 지속 시간과 입력 시퀀스의 길이는 각 훈련 인스턴스마다 다르다. 가변 길이의 입력을 적절하게 판별하기 위해 <strong>모든 토큰의 예측된 지속 시간 각각을 개별적으로 판별하는 time step-wise discriminator</strong>를 제안한다.
<br/></p>
<p>손실 함수는  adversarial learning을 위한 <strong>최소 제곱 손실 함수</strong> 및 <strong>평균 제곱 오차 손실 함수</strong>를 사용한다 :</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/6498ab11-0f70-47df-b9a5-a10ca30b140b/image.png" alt=""></p>
<p>본 논문에서 제안하는 duration predictor와 훈련 메커니즘은 짧은 단계로 지속 시간을 학습할 수 있게 하며, <strong>duration predictor는 마지막 훈련 단계로 별도로 훈련</strong>되어 학습에 사용되는 전반적인 computation time을 줄인다.</p>
<br/>
<br/>
<br/>

<h2 id="22-monotonic-alignment-search-with-gaussian-noise">2.2. Monotonic Alignment Search with Gaussian Noise</h2>
<br/>

<p>이전 작업을 따라, 모델에 MAS를 도입하여 정렬을 학습한다. 이 알고리즘은 가능한 모든 단조 정렬 중에서 가장 높은 확률을 갖는 텍스트와 오디오 간의 정렬을 산출하고, 모델은 그 확률을 최대화하도록 훈련된다. 이 방법은 효율적이지만, <strong>특정 정렬을 검색하고 최적화한 후, 더 적절한 다른 정렬을 찾기 위한 탐색에 제한</strong>이 있다. </p>
<p>이를 완화하기 위해 <strong>계산된 확률에 작은 가우시안 노이즈를 추가</strong>했다. 이렇게 하면 모델이 다른 정렬을 찾을 수 있는 추가 기회를 제공한다. MAS를 통해 모델이 빠르게 정렬을 학습할 수 있기 때문에 <strong>훈련의 초기에만</strong> 이 노이즈를 추가한다. </p>
<br/>

<p><a href="https://arxiv.org/abs/2005.11129">Glow-TTS</a>를 참조하면, Q 값은 순방향 연산에서 가능한 모든 위치에 대해 계산된 최대 로그 우도를 갖는다. 본 논문에서는 이 연산에서 계산된 Q 값에 작은 가우시안 노이즈 ϵ를 추가한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/cfb3825b-18be-4b05-99a6-f50ede462c54/image.png" alt=""></p>
<blockquote>
<p><strong>i, j :</strong> 입력 시퀀스와 사후의 특정 위치
<strong>z :</strong> 정규화 플로우에서 변환된 잠재 변수
<strong>ϵ :</strong> 표준 정규 분포에서 샘플링된 노이즈</p>
</blockquote>
<ul>
<li>P의 표준 편차 및 0.01에서 시작하여 단계별로 2 × 10^-6씩 감소하는 노이즈 스케일의 곱으로 얻어진다.</li>
</ul>
<br/>
<br/>
<br/>

<h2 id="23-normalizing-flows-using-transformer-block">2.3. Normalizing Flows using Transformer Block</h2>
<br/>

<p><a href="https://arxiv.org/abs/2106.06103">VITS</a>는 normalizing flow를 이용한 variational autoencoder의 능력을 보여주어 고품질의 음성 오디오를 합성할 수 있음을 입증했다. Normalizing Flow는 <strong>인접 데이터의 패턴을 캡처하는 데 효과적인 Convolution Block으로 구성</strong>되어 있다. 이는 모델이 고품질 음성을 합성할 수 있도록 돕는다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/d39a8fad-4529-473f-850f-d75a4cefb560/image.png" alt=""></p>
<p>스피치의 각 부분이 인접하지 않은 다른 부분과 관련이 있기 때문에 분포를 변환할 때 장기 의존성을 포착하는 능력이 중요할 수 있다. 그러나 Convolution Block은 인접 패턴을 효과적으로 캡처하지만 receptive field의 제한으로 인해 장기 종속성을 캡처하는 데 단점이 있다. 따라서 <strong>장기 종속성을 캡처할 수 있도록 소규모의 트랜스포머 블록을 잔차 연결과 함께 normalizing flow에 추가</strong>한다. 
<br/></p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/7530906b-ac96-4a77-946e-7fb5aa286db7/image.png" alt=""></p>
<p>실제 어텐션 점수 맵과 컨볼루션 블록의 수용 영역을 보여준다. <strong>트랜스포머 블록이 분포를 변환할 때 여러 위치에서 정보 수집을 가능하게</strong> 하는 것을 확인할 수 있는데, 이는 CNN의 receptive field로는 불가능했다.</p>
<br/>
<br/>
<br/>

<h2 id="24-speaker-conditioned-text-encoder">2.4. Speaker-Conditioned Text Encoder</h2>
<br/>

<p>Multi-speaker 모델은 하나의 단일 모델로 speaker condition에 따른 음성을 다중 특성으로 합성하는 것이기 때문에 자연스러움뿐만 아니라 각 화자의 개별 음성 특성을 표현하는 것이 중요한 품질 요소다. 이전 연구에서는 단일 단계 모델이 고품질로 다중 화자를 모델링할 수 있음을 보여줬다. </p>
<p><strong>화자의 특수한 발음과 억양과 같은 일부 특징을 고려</strong>하는 것이 각 화자의 음성 특성을 표현하는 것에 중요한 영향을 미치지만, 이는 *<em>입력 텍스트에 포함되어 있지 않다. *</em></p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/612bb84b-f83b-4d2a-b9b0-e440268507b0/image.png" alt=""></p>
<p>따라서 <strong>speaker information에 condition을 걸은 텍스트 인코더를 통해 입력 텍스트를 인코딩하면서 feature를 학습</strong>하여 각 화자의 다양한 음성 특성을 더 잘 모방하도록 했다. </p>
<p>본 연구에서는 텍스트 인코더의 세 번째 트랜스포머 블록에서 화자 벡터에 조건을 걸었다. </p>
<br/>
<br/>
<br/>
<br/>

<blockquote>
<h3 id="소감">소감</h3>
<p>TTS 모델에 화자의 특성을 추가해주기 위해 Multi modal, Diffusion 모델들을 찾아봤었다. 어떤 방식으로 encoder-decoder 모델의 condition으로 특성 정보를 주는 것이 효과적일지 고민하던 중에 해당 방법이 이미 구현되어 있는 Vits2 논문을 발견했다. <br/>
이러한 방법들을 생각해내고 구현했다는 사실이 대단하게 느껴진다. 나도 이렇게 전문적인 지식을 갖고, 문제점을 파악할 수 있도록, 더 나아가 그것을 해결할 방법들을 찾아낼 수 있도록 노력해야겠다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Capstone #5] Matcha-TTS: A fast TTS architecture with conditional flow matching]]></title>
            <link>https://velog.io/@yun_haaaa/Capstone-5-Matcha-TTS-A-fast-TTS-architecture-with-conditional-flow-matching</link>
            <guid>https://velog.io/@yun_haaaa/Capstone-5-Matcha-TTS-A-fast-TTS-architecture-with-conditional-flow-matching</guid>
            <pubDate>Fri, 22 Mar 2024 09:16:28 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2309.03199">https://arxiv.org/abs/2309.03199</a>
GitHub : <a href="https://github.com/shivammehta25/Matcha-TTS">https://github.com/shivammehta25/Matcha-TTS</a></p>
<h1 id="abstract">Abstract</h1>
<p>Matcha-TTS는 <strong>optimal-transport conditional flow matching (OT-CFM)</strong>을 사용하여 훈련된 빠른 TTS 음향 모델링을 위한 새로운 encoder-decoder 아키텍처다. 이를 통해 높은 출력 품질을 가진 ordinary differential equation (ODE) 기반 디코더가 만들어지며, score matching을 사용하여 훈련된 모델보다 <strong>적은 synthesis 단계에서도 빠르게 synthesis</strong>할 수 있다.</p>
<p>이 방법은 확률적이며 non-autoregressive하며, 외부 정렬 없이 처음부터 말하기를 학습한다. 강력한 사전 훈련된 기준 모델과 비교할 때, Matcha-TTS 시스템은 가장 작은 메모리 풋프린트를 가지며, 긴 발화에서 가장 빠른 모델과 속도를 겨루며, 청취 테스트에서 가장 높은 평균 의견 점수를 얻었다.</p>
<br/>
<br/>

<h1 id="1-introduction">1. Introduction</h1>
<hr>
<p><strong>Diffusion probabilistic models (DPMs)</strong>은 현재 연속값 데이터 생성 작업에서 새로운 기준을 설정하고 있다. 이미지 synthesis, 동작 synthesis, 그리고 음성 synthesis과 같은 작업에서 심층 생성 모델링에 대한 새로운 표준을 정의하고 있다. </p>
<ul>
<li>데이터(target) 분포를 사전(source) 분포로 변환하는 <strong>diffusion 과정</strong> (ex Gaussian)</li>
<li>diffusion 과정을 반전시키는 <strong>샘플링 과정</strong>을 학습한다. </li>
</ul>
<br/>

<h3 id="stochastic-differential-equations">Stochastic Differential Equations</h3>
<p>두 과정은 <strong>순방향 및 역방향 stochastic differential equations (SDEs)</strong>으로 정의할 수 있다. 역방향 SDE 초기 값 문제를 해결하면 학습된 데이터 분포에서 샘플을 생성한다. 각 역방향 SDE에는 <strong>probability flow ODE</strong>가 있다. 이 ODE는 <strong>SDE와 정확히 같은 분포를 설명하고 샘플링</strong>한다. 
<br/></p>
<p><strong>probability flow ODE</strong>는 source 샘플을 target 샘플로 변환하는 결정론적 프로세스다. Continuous-Time Normalizing Flows (CNF)와 유사하지만, 비용이 많이 드는 수치 미분 방정식 (ODE) 알고리즘을 통해 ODE를 역전파하거나 adjoint 변수를 사용하여 역 ODE를 근사화할 필요가 없다.
<br/></p>
<p>DPMs의 SDE 형식은 <strong>데이터 분포의 score 함수(로그 확률 밀도의 그래디언트)를 근사화하여 훈련</strong>된다. 훈련 목표는 likelihood에 대한 Evidence Lower Bound (ELBO)에서 유도될 수 있는 평균 제곱 오차 (MSE) 형식을 취한다. 이는 빠르고 간단하며, 일반적인 정규화 플로우 모델과 달리 모델 구조에 어떤 제한도 가하지 않는다. </p>
<p>그러나 수치적인 SDE/ODE 해법을 찾는 알고리즘 없이 효율적인 훈련을 허용하지만, DPMs는 각 샘플이 SDE를 정확하게 해결하기 위해 <strong>연속적으로 계산된 여러 번의 iteration을 필요로 하므로 synthesis 속도가 느리다.</strong> 이러한 각 단계에서는 전체 신경망을 평가해야 한다. 이러한 느린 synthesis 속도는 DPMs의 주요 실용적인 문제였다.</p>
<br/>
<br/>

<h3 id="matcha-tts">Matcha-TTS</h3>
<p>본 논문에서는 continuous normalising flows를 기반으로 한 확률적이고 non-autoregressive 하면서도 빠르게 샘플링할 수 있는 TTS 음향 모델인 <strong>Matcha-TTS</strong>를 소개한다.</p>
<ol>
<li><p>개선된 encoder-decoder TTS 아키텍처를 제안한다. 이는 <strong>decoder에서 1D CNNs와 트랜스포머의 조합</strong>을 사용한다. 메모리 소비를 줄이고 평가 속도를 빠르게 하여 synthesis 속도를 향상시킨다.</p>
</li>
<li><p><strong>Optimal-transport conditional flow matching (OT-CFM)</strong>을 사용하여 모델을 훈련한다. 데이터 분포에서 샘플링하는 ODE를 학습하는 새로운 방법이다. 기존 CNF와 score 매칭 probability flow ODE에 비해 OT-CFM은 <strong>source에서 target으로의 간단한 경로를 정의하여 DPMs보다 적은 단계에서 정확한 synthesis을 가능</strong>하게 한다.</p>
</li>
</ol>
<p>실험 결과는 두가지 제안된 방법 모두 synthesis를 가속화하여 속도와 synthesis 품질 간의 트레이드오프를 줄인다는 것을 보여준다. 빠르고 가벼운 Matcha-TTS는 외부 정렬기를 필요로하지 않고 말하는 것과 정렬을 학습한다. 사전 훈련된 기준 모델과 비교하여 더 자연스럽고 빠른 synthesis을 달성한다.</p>
<br/>
<br/>
<br/>

<h1 id="2-background">2. Background</h1>
<hr>
<h2 id="21-recent-encoder-decoder-tts-architectures">2.1 Recent encoder-decoder TTS architectures</h2>
<p>DPMs는 파형 생성 및 end-to-end TTS를 포함한 다양한 음성 synthesis 작업에 적용되어 탁월한 결과를 보였다. </p>
<ul>
<li><strong>Diff-TTS :</strong> 음향 모델링에 DPMs를 처음으로 적용</li>
<li><strong>Grad-TTS :</strong> diffusion 과정을 SDE로 개념화</li>
<li><strong>TorToiSe :</strong> 양자화된 잠재 변수를 사용하여 autoregressive TTS 모델에서 DPMs를 시연<br/>
<br/>

</li>
</ul>
<h3 id="encoder">Encoder</h3>
<p>위의 모델들은 현대적인 많은 TTS 음향 모델과 마찬가지로 encoder-decoder 아키텍처를 사용하여 Transformer 블록을 encoder에 사용한다. FastSpeech와 같은 많은 모델은 <strong>위치 종속성을 위해 sinusoidal position embeddings을 사용</strong>한다. 이는 <strong>긴 시퀀스에 일반화하기 어렵다</strong>는 것이 밝혀졌다.</p>
<blockquote>
<p><strong>sinusoidal position embeddings</strong>
  참고 : <a href="https://velog.io/@gibonki77/DLmathPE">https://velog.io/@gibonki77/DLmathPE</a></p>
</blockquote>
<p>GlowTTS, VITS 및 Grad-TTS는 대신 <strong>relative positional embeddings</strong>을 사용한다. 그러나 이런 방법들은 <strong>짧은 컨텍스트 창 외부의 입력을 &quot;bag of words&quot;로 처리하므로 종종 자연스럽지 않은 운율을 유발</strong>한다. 
<br/></p>
<p>LinearSpeech는  <strong>rotational position embeddings (RoPE)</strong>을 사용했다. 따라서 Matcha-TTS는 인코더에서 RoPE를 사용하여 Grad-TTS와 비교하여 RAM 사용량을 줄인다. 본 논문은 RoPE를 사용하는 첫 번째 SDE 또는 ODE 기반 TTS 방법이다.</p>
<p><br/><br/></p>
<h3 id="decoder">Decoder</h3>
<p>현대 TTS 아키텍처는 decoder 네트워크 설계 측면도 다르다. 정규화 플로우 기반의 방법인 Glow-TTS와 OverFlow는 <strong>확장된 1D-convolution</strong>을 사용한다. DPM 기반의 방법은 mel-spectrograms를 합성하기 위해 <strong>1D-convolution</strong>을을 사용한다. 
<br/></p>
<p>반면, Grad-TTS는 <strong>2D-convolution을 사용하는 U-Net</strong>을 사용한다. 이는 mel-spectrogram을 이미지로 취급하고 시간 및 주파수 모두에 대해 변환 불변성을 가정한다. 그러나 음성 mel-spectrogram은 주파수 축을 따라 완전히 변환 불변이 아니며, 2D 디코더는 텐서에 추가 차원을 도입하여 일반적으로 더 많은 메모리를 필요로 한다. 
<br/></p>
<p>한편, FastSpeech와 같은 확률적이지 않은 모델은 <strong>1D 트랜스포머를 사용한 decoder</strong>를 사용하여 장거리 의존성을 학습하고 빠르고 병렬적인 합성을 달성했다. Matcha-TTS도 <strong>decoder에서 트랜스포머를 사용</strong>하지만, 2D U-Net에서 영감을 받은 <strong>1D U-Net 설계를 사용</strong>한다.</p>
<br/>
<br/>

<h3 id="alignment">Alignment</h3>
<p>일부 TTS 시스템은 FastSpeech와 같이 <strong>외부에서 제공된 정렬에 의존</strong>하지만, 대부분의 시스템은 동시에 말하고 정렬하는 것을 학습할 수 있다. 그러나 빠르고 효과적인 훈련을 위해 monotonic alignment를 장려하거나 강제하는 것이 중요하다는 것이 밝혀졌다. </p>
<p>이를 위한 한 가지 메커니즘은 <strong>monotonic alignment search(MAS)</strong>다. Glow-TTS와 VITS는 MAS를 사용한다. 특히 Grad-TTS는 <strong>prior loss라는 MAS 기반의 메커니즘</strong>을 사용한다. 이를 통해 입력 심볼을 출력 프레임에 빠르게 정렬하는 것을 배우게 된다. 이러한 정렬은 로그 도메인의 MSE를 최소화하는 deterministic duration predictor를 훈련하는 데 사용된다. </p>
<p>Matcha-TTS는 alignment 및 duration 모델링에 이러한 동일한 방법을 사용한다. 마지막으로, Matcha-TTS는 <strong>모든 decoder feedforward 레이어</strong>에 BigVGAN의 <strong>snake beta activations를 사용</strong>하여 차이점을 보여준다.</p>
<p><br/><br/><br/></p>
<h2 id="22-flow-matching-and-tts">2.2. Flow matching and TTS</h2>
<p>현재 일부 최고 품질의 TTS 시스템은 DPMs 또는 discrete-time normalising flows를 활용하고 있으며, <strong>continuous-time flows</strong>는 덜 탐구되었다.</p>
<br/>

<p><a href="https://arxiv.org/abs/2210.02747"><strong>Flow Matching for Generative Modeling</strong></a>은 probability flow ODE와 CNF을 통합하고 확장하는 ODE를 사용한 synthesis을 위한 프레임워크를 소개했다. </p>
<p><strong>Conditional flow matching (CFM)이라는 간단한 벡터 필드 회귀 손실을 사용하여 ordinary differential equation (ODE)를 학습</strong>하는 효율적인 접근 방식이다. 이 방법은 DPMs를 위한 score 함수를 학습하거나 전통적인 CNF처럼 훈련시에 미분 방정식의 수치적 해법을 찾는 알고리즘을 사용하는 것을 피하기 위한 것이다. 
<br/></p>
<h3 id="ot-cfm">OT-CFM</h3>
<p>CFM은 본질적으로 단지 <strong>직선을 따라 확률 질량을 전송</strong>하기 때문에, optimal transport 아이디어를 활용하여 <strong>source 분포로부터 data 분포로 샘플을 매핑하는 과정에서 거의 변하지 않는 간단한 벡터 필드를 갖는 ODE를 생성</strong>하도록 설정할 수 있다. 수정된 flow는 유사한 아이디어를 가진 concurrent한 작업을 나타내게 된다. </p>
<p>이러한 간단한 경로는 <strong>적은 discretisation 단계로 ODE를 정확하게 해결할 수 있음을 의미</strong>한다. 즉, DPMs보다 적은 neural-network evaluation으로 정확한 모델 샘플을 그릴 수 있어 동일한 품질에 대해 훨씬 빠른 합성이 가능하다.</p>
<blockquote>
<p><strong>discretisation</strong>
: discrete하게 만드는것. Numerical Feature를 일정 기준으로 나누어 그룹화하는 것을 의미한다.
  참고 : <a href="https://velog.io/@nata0919/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%9D%B4%EC%82%B0%ED%99%94Discretisation-%EC%A0%95%EB%A6%AC">https://velog.io/@nata0919/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%9D%B4%EC%82%B0%ED%99%94Discretisation-%EC%A0%95%EB%A6%AC</a></p>
</blockquote>
<br/>

<p>CFM은 SDE/ODE 기반 TTS를 가속화하기 위한 이전 접근 방식과 다른 새로운 기술이다. 이전 방법들은 주로 distillation을 기반으로 했다. Matcha-TTS 이전에는 CFM을 기반으로 한 음향 모델에 관한 유일한 공개 사전인 Meta의 Voicebox 모델이 있었다. 
<br/></p>
<p><strong>Voicebox(VB)</strong></p>
<ul>
<li><strong>Work :</strong> TTS, denoising, text-guided acoustic infilling</li>
<li><strong>Train Method :</strong> Masking, CFM</li>
<li><strong>Text encoder :</strong> <a href="https://arxiv.org/abs/2108.12409">AliBi self-attention bias</a>, convolutional positional encoding</li>
<li><strong>Alignment :</strong> 외부 정렬</li>
<li><strong>Data :</strong> 60,000시간의 소유 데이터</li>
<li><strong>Parameter :</strong> 330M개<br/>

</li>
</ul>
<p><strong>Matcha-TTS</strong></p>
<ul>
<li><strong>Work :</strong> TTS</li>
<li><strong>Train Method :</strong> OT-CFM</li>
<li><strong>Text encoder :</strong> RoPE</li>
<li><strong>Alignment :</strong> 외부 정렬 없이 학습</li>
<li><strong>Data :</strong> 표준 데이터</li>
<li><strong>Parameter :</strong> 18.2M개</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="3-method">3. Method</h1>
<hr>
<h2 id="31-optimal-transport-conditional-flow-matching">3.1. Optimal-transport conditional flow matching</h2>
<br/>

<ul>
<li>Flow matching 개요</li>
<li>벡터 필드에 의해 생성된 probability-density path</li>
<li>OT-CFM의 목적<br/>

</li>
</ul>
<p>데이터 분포 q에서 샘플을 생성하는 한 가지 방법은 probability density path p_t를 구성하는 것이다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/35585746-37ab-40a8-9ba8-462aa53dafa6/image.png" alt=""></p>
<blockquote>
</blockquote>
<p><strong>time t, p_0(x) :</strong> p_1(x)가 데이터 분포 q(x)를 근사화도록 하는 사전 분포<br/></p>
<br/>

<p><strong>Continuous-Time Normalizing Flows</strong>는 먼저 벡터 필드 v_t : [0, 1] × R^d → R^d를 정의한다. 이 벡터 필드는 ODE를 통해 flow ϕt : [0, 1] × R^d → R^d를 생성한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/12bbde0c-fccf-4e36-89e9-ced56774efe8/image.png" alt=""></p>
<p>이렇게 하면 <strong>데이터 포인트의 marginal probability distribution으로 경로 p_t를 생성할 수 있다.</strong> 본 논문에서는 식 (1)의 초기 값 문제를 해결함으로써 근사 데이터 분포 p_1에서 샘플을 추출할 수 있다.</p>
<blockquote>
<p><strong>q(x) :</strong> 복잡하고 알려지지 않은 데이터 분포</p>
</blockquote>
<blockquote>
<p><strong>p_t</strong> </p>
</blockquote>
<ul>
<li><strong>[0, 1] × R^d → R &gt; 0</strong></li>
<li>probability density path</li>
<li>시간에 의존하는 확률 밀도 함수</li>
</ul>
<blockquote>
<p><strong>x</strong></p>
</blockquote>
<ul>
<li><strong>x~q(x)</strong></li>
<li>Data space R^d의 observation</li>
<li>d차원 실수 벡터로 표현된 데이터 포인트</li>
</ul>
<p><br/><br/></p>
<p>p_0에서 p_1 ≈ q까지의 확률 경로 pt를 생성하는 알려진 벡터 필드 u_t가 존재한다고 가정하면, <strong>flow matching loss</strong>는 다음과 같이 정의된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0a47bfb9-76b4-4b5a-9115-10e413476a95/image.png" alt=""></p>
<blockquote>
<p><strong>t :</strong> U[0, 1]에서 샘플링된 값
<strong>vt(x; θ) :</strong> 파라미터 θ를 가진 신경망</p>
</blockquote>
<p><br/><br/></p>
<p>그러나 실제로는 플로우 매칭이 복잡하기 때문에 실제로는 벡터 필드 u_t와 대상 확률 p_t에 액세스하는 것이 어렵다. 따라서 <strong>conditional flow matching</strong>은 대신 다음과 같이 고려된다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/42e136db-fd41-4d33-ae96-8f1379b99149/image.png" alt=""></p>
<p>이는 추정하기 어려운  marginal probability densities와 벡터 필드를  conditional probability densities와 conditional 벡터 필드로 대체한다. 중요한 점은 일반적으로 이러한 <strong>조건부 항들이 계산 가능하며 닫힌 형태의 해를 가지고 있으며, 또한 L_CFM(θ)와 L_FM(θ)이 모두 θ에 대한 동일한 그래디언트를 가지고 있음</strong>을 보일 수 있다.</p>
<p><br/><br/></p>
<p>Matcha-TTS는 특히 간단한 그래디언트를 갖는 CFM 변형인 OT-CFM을 사용하여 훈련된다. <strong>OT-CFM 손실 함수</strong>는 다음과 같이 작성할 수 있다:</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/e492b054-da36-4147-82aa-9b3a6da9438c/image.png" alt=""></p>
<blockquote>
<p>*<em>Flow from x0 to x1 *</em><img src="https://velog.velcdn.com/images/yun_haaaa/post/9725e933-a17f-4b96-8740-955e47062955/image.png" alt=""></p>
</blockquote>
<ul>
<li>각 데이터 x1이 x0~N(0, I)와 일치되도록 임의의 샘플 x0 에 대응되는 플로우를 정의한다. </li>
</ul>
<blockquote>
<p><strong>Gradient vector field</strong>
<img src="https://velog.velcdn.com/images/yun_haaaa/post/cda90b05-75fb-4289-9577-0fdf5e1349b6/image.png" alt=""></p>
</blockquote>
<ul>
<li>기대 값이 학습을 위한 대상으로, 선형적이고, 시간에 불변하며, 오직 x_0과 x_1에만 의존한다. </li>
</ul>
<p>이러한 특성들은 더 쉽고 빠른 훈련, 빠른 생성, DPMs에 비해 더 나은 성능을 가능하게 한다.
<br/></p>
<p>Matcha-TTS의 경우는 다음과 같다:</p>
<ul>
<li><strong>x_1 :</strong> acoustic frames</li>
<li><strong>mu :</strong> 해당 프레임의 조건부 평균값<ul>
<li>다음 섹션에서 설명되는 아키텍처를 사용하여 텍스트로부터 예측된다. </li>
</ul>
</li>
<li><strong>sigma_min :</strong> 작은 값을 갖는 하이퍼파라미터</li>
</ul>
<p><br/><br/><br/></p>
<h1 id="32-proposed-architecture">3.2. Proposed architecture</h1>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/81b82aef-d9d1-4239-9022-c87e39440223/image.png" alt=""></p>
<p>Matcha-TTS는 neural TTS를 위한  non-autoregressive 인코더-디코더 아키텍처다. </p>
<ul>
<li><p><strong>텍스트 인코더와 duration 예측 아키텍처 :</strong> Glow-TTS와 Grad-TTS를 따르지만, 상대적인 위치(embeddings) 대신에 회전 포지션 임베딩(rotational position embeddings)을 사용한다. </p>
</li>
<li><p><strong>Alignment and duration 모델 훈련 :</strong> MAS와 prior loss Lenc를 사용한다. </p>
</li>
</ul>
<p>예측된 지속시간은 반올림하여 인코더에서 출력된 벡터를 업샘플링(복제)하여 선택된 지속시간에 따른 텍스트 및 평균 음향 특성(예: 멜 스펙트로그램)인 µ을 얻는다. 이 평균은 합성에 사용되는 벡터 필드 v_t(ϕ_t^OT(x0)|µ; θ)를 예측하기 위해 디코더를 조건으로 사용되지만, Grad-TTS와는 달리 초기 노이즈 샘플 x0의 평균으로 사용되지 않는다.</p>
<br/>

<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/9282992f-3879-4fbc-9956-52251ab25d6e/image.png" alt=""></p>
<p>Matcha-TTS 디코더 아키텍처는 <strong>1D convolutional residual 블록을 포함하는 U-Net</strong>으로 구성되어 입력을 다운샘플링하고 업샘플링한다. 
<br/></p>
<p>t ∈ [0, 1]의 흐름 매칭 단계는 Grad-TTS와 같이 포함된다. 각 잔차 블록은 Transformer 블록이 뒤따르며, 해당 피드포워드 네트워크는 <a href="https://arxiv.org/abs/2206.04658"><strong>snake beta activations</strong></a>를 사용한다. </p>
<p>이 Transformer는 위치 임베딩을 사용하지 않는다. <strong>phone 사이의 상대적인 위치 정보는 이미 인코더에서 적용</strong>되었고, convolution 및 downsampling 연산은 <strong>동일한 phone 내의 프레임 사이에서 이를 보간하고, 서로의 상대적인 위치를 구분</strong>하기 때문이다. 
<br/></p>
<p>이 디코더 네트워크는 Grad-TTS에서 사용된 2D convolution만을 사용하는 U-Net보다 훨씬 빠르게 평가되며 메모리를 덜 사용한다.</p>
<br/>
<br/>





<br/>
<br/>

<blockquote>
<h3 id="소감">소감</h3>
<p>TTS 모델에서 Duration과 Alignment 성능을 높이기 위해 어떤 식으로 구조를 개선해 나가는지 감을 잡을 수 있었다.<br>우선 해당 모델로 학습을 시켜 보고, 인코더-디코더 네트워크에 feature를 추가할 방법을 더 찾아봐야겠다. </p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Capstone #4] OverFlow: Putting flows on top of neural transducers for better TTS]]></title>
            <link>https://velog.io/@yun_haaaa/Capstone-4-OverFlow-Putting-flows-on-top-of-neural-transducers-for-better-TTS</link>
            <guid>https://velog.io/@yun_haaaa/Capstone-4-OverFlow-Putting-flows-on-top-of-neural-transducers-for-better-TTS</guid>
            <pubDate>Fri, 15 Mar 2024 08:55:35 GMT</pubDate>
            <description><![CDATA[<p>Paper : <a href="https://arxiv.org/abs/2211.06892">https://arxiv.org/abs/2211.06892</a>
Github : <a href="https://github.com/shivammehta25/OverFlow">https://github.com/shivammehta25/OverFlow</a></p>
<br/>
<br/>


<h1 id="abstract">Abstract</h1>
<p>Neural HMM은 TTS의 sequence-to-sequence 모델링을 위해 최근 제안된 neural transducer의 한 종류다. 이는 고전적인 통계적 음성 합성과 최신 신경망 기반 TTS의 장점을 결합하여 데이터와 학습 업데이트가 적게 필요하며, 신경망 attention의 실패로 인해 횡설수설하는 결과를 줄일 수 있다. </p>
<p>음성 <strong>음향의 높은 non-Gaussian 분포를 설명하기 위해 Neural HMM TTS와 정규화 플로우를 결합</strong>한다. 결과적으로, 정확한 maximum likelihood를 사용하여 훈련할 수 있는 강력하고 완전한 확률 모델이 만들어진다. 실험 결과 본 논문의 제안에 기반한 시스템은 정확한 발음과 자연어에 가까운 주관적인 음성 품질을 생성하기 위해 유사한 방법보다 적은 업데이트를 요구한다.</p>
<br/>
<br/>


<h1 id="1-introduction">1. Introduction</h1>
<p>Sequence-to-sequence neural text-to-speech 가 전통적인 neural attention을 <strong>neural hidden Markov model</strong> 또는 <strong>neural transducer의 일종인 neural HMM으로 대체</strong>함으로써 개선될 수 있음이 최근에 입증되었다. </p>
<blockquote>
<p><strong>Hidden Markov Model, HMM</strong>
: 시간에 따라 변하는 숨겨진 상태(hidden state)를 가진 확률적 모델이다. 현재 상태가 이전 상태에만 의존하며, 현재 상태에서 관찰 가능한 결과를 생성한다. 주로 순차적 데이터 분석에 사용되며, 음성 및 텍스트와 같은 시계열 데이터를 모델링하는 데 유용하다.</p>
</blockquote>
<br/>

<p>결과적인 모델 클래스는 전통적인 HMM 기반 TTS와 현대적인 neural sequence-to-sequence 모델의 좋은 특성을 결합한다. </p>
<ul>
<li>완전히 확률적이다.</li>
<li>정확한 sequence likelihood를 최대화하기 위해 훈련될 수 있다.</li>
<li>왼쪽에서 오른쪽으로 건너뛰지 않는 HMM을 사용하여 입력의 각 단음이 올바른 순서로 발음되는 monotonic 특성이 보장된다.</li>
</ul>
<br/>

<p>이것은 많은 attention 기반 neural TTS 모델들이 <strong>무작위로 횡설수설하는 경향이 있는 non-monotonic attention으로 인한 문제</strong>와 <strong>올바르게 말하는 방법을 배우기 위해 많은 양의 데이터와 업데이트를 필요로 하는 문제를</strong> 직접적으로 해결한다.</p>
<blockquote>
<p><strong>non-monotonic attention</strong>
: 기계 번역 및 음성 합성과 같은 작업에서 발생하는 문제다. attention 메커니즘은 모델이 입력의 특정 부분에 집중할 수 있도록 하는 데 사용된다. 그러나 <strong>non-monotonic attention은 출력이 입력의 순차적인 부분과 일치하지 않을 수 있음</strong> 을 의미한다. 즉, 모델이 결과를 생성할 때 입력의 순서를 따르지 않을 수 있다. 이는 번역이나 음성 합성에서 문제를 일으킬 수 있으며, 이상적으로는 입력과 출력 간에 일관된 순서가 유지되어야 한다.</p>
</blockquote>
<p>제한된 병렬 처리를 가진 장치에서 순차적인 특성을 가지는 autoregressive synthesis가 유리하며, TTS의 점진적 및 스트리밍되는 응용 프로그램에도 잘 적용된다.
<br/>
그러나 neural HMM 프레임워크를 기반으로 한 TTS는 아직 전체 잠재력을 보여주지 못했다. 특히, 기존의 모델들은 상태 조건부 발산 분포가 가우시안(L2 손실) 또는 라플라스(L1 손실)인 제한적인 가정을 포함한다. <strong>자연스러운 음성 신호는 매우 복잡한 확률 분포를 따르기 때문에 인간의 음성 생성에 약한 모델이 생성</strong>된다.</p>
<p>본 논문에서는 OverFlow를 제시한다. 음성 파라미터 궤적의 <strong>비가우시안 분포를 더 잘 설명하기 위해 neural HMM TTS 위에 정규화 플로우를 추가</strong>했다. 이는 음향 및 지속시간의 완전한 확률적 모델을 제공하며, 대부분의 플로우 기반 음향 모델과 달리 <strong>autoregression을 사용하여 장거리 메모리를 활성화</strong>한다. </p>
<p>실험 결과 이 모델은 정확한 발음과 좋은 합성 품질을 빠르게 학습하며, 관련된 접근 방식인 Tacotron 2 및 Glow-TTS를 기반으로 한 유사한 시스템을 능가한다. </p>
<br/>
<br/>
<br/>

<h1 id="2-prior-work">2. Prior work</h1>
<hr>
<br/>

<h2 id="21-tts-with-transducers-and-neural-hmms">2.1. TTS with transducers and neural HMMs</h2>
<br/>

<h3 id="neural-hmm">Neural HMM</h3>
<p><strong>상태 조건부 발산 분포와 전이 확률이 모두 신경망에 의해 정의된 autoregressive HMM</strong>의 한 종류다. 이는 고전적인 HMM보다 훨씬 강력하다. 이 모델들의 가장 간단한 버전은 왼쪽에서 오른쪽으로 건너뛰지 않는 HMM을 나타내므로 monotonic하다. </p>
<p>이러한 모델은 여전히 전통적인 hidden Markov 가정을 만족하기 때문에, 다음과 같은 과정으로 학습이 가능하다:</p>
<ol>
<li><strong>순방향 또는 Viterbi 알고리즘</strong>(또는 하한을 정의하여)을 사용하여 <strong>log likelyhood</strong>를 효율적으로 계산</li>
<li><strong>자동 미분 위에 확률적 경사 상승을 사용</strong>하여 최적화</li>
</ol>
<p>이러한 방법은 autoregressive TTS에 매력적인 선택지다.</p>
<blockquote>
<p><strong>Viterbi 알고리즘</strong>
: 동적 프로그래밍의 한 형태로, 최적 경로를 찾는 데 사용되는 알고리즘이다. HMM과 같은 시스템에서 관측된 데이터의 시퀀스를 기반으로 가장 가능성이 높은 숨겨진 상태(또는 상태 시퀀스)를 찾는 데 사용된다. 이 알고리즘은 모든 가능한 상태 시퀀스에 대해 가능성을 계산하고, 가장 가능성이 높은 시퀀스를 선택하는 최적 경로를 찾아낸다. </p>
</blockquote>
<br/>

<h3 id="neural-transducer">Neural transducer</h3>
<p>수학적으로, neural HMM은 neural transducer의 한 종류다. Neural transducer는 최근 몇 년간 강력한 자동 음성 인식 성능으로 알려져 있다.</p>
<ul>
<li><p><a href="https://arxiv.org/abs/1908.11535"><strong>SSNT-TTS :</strong></a> TTS에 사용되었다. 본 논문의 접근 방식은 이와 달리 <strong>확률적</strong>이다.</p>
</li>
<li><p><a href="https://proceedings.neurips.cc/paper/2021/hash/344ef5151be171062f42f03e69663ecf-Abstract.html"><strong>Speech-T :</strong></a> 단일 모델 내에서 ASR 및 스트리밍 TTS를 처리하는 것으로 나타났다. 본 논문은 이와 달리 보다 일관된 음성-소리 지속 시간을 위해 <strong>분위수 기반의 지속 시간 생성을 통합</strong>한다. </p>
</li>
</ul>
<p>가장 중요한 것은 이러한 유형의 모델에 <strong>정규화 플로우를 통합하여 음성 음향의 행동을 설명할 수 있는 강력한 확률적 프레임워크</strong>를 얻는 것이다.</p>
<br/>
<br/>
<br/>

<h2 id="22-normalising-flows-in-tts-acoustic-modelling">2.2. Normalising flows in TTS acoustic modelling</h2>
<br/>

<h3 id="normalising-flow">Normalising flow</h3>
<p>딥러닝을 사용하여 확률 분포의 매우 유연한 매개변수화된 군집을 정의한다. 이 아이디어는 <strong>신경망 기반의 비선형적이고 가역적인 변환을 통해 단순한 가우시안에서 복잡한 확률 분포를 만드는 것</strong>이다. 가역성은 변수 변환 공식을 사용하여 생성된 모델의 likelyhood를 계산하고 최대화하는 데 사용될 수 있음을 의미한다. </p>
<br/>

<p><strong>Normalising flow</strong>는 음성 기술 전반에 걸쳐 많은 응용 분야를 본 것으로, 최초로 이를 통합한 TTS 음향 모델은 Flowtron과 Flow-TTS다. 그 후에는 Glow-TTS, RAD-TTS 및 EfficientTTS가 이어졌다.</p>
<ul>
<li><p><a href="https://arxiv.org/abs/2005.05957"><strong>Flowtron :</strong></a> Tacotron 2를 확장한 것으로, 여러 화자와 전역 스타일 토큰을 사용하여 다음 출력 프레임을 생성하는 <strong>autoregressive 디코더 내에 정규화 플로우를 배치</strong>한다. Tacotron 2와 같이 학습하여 말하고 정렬하기 위해 <strong>neural attention</strong>을 사용한다. </p>
<blockquote>
<p><strong>정렬</strong>
: 음성 처리에서 주로 <strong>단어나 음소의 시간적인 배치나 순서를 의미</strong>한다. 일반적으로 음성 합성이나 인식 작업에서는 입력 문장의 각 단어 또는 음소를 해당하는 음성 신호와 일치시키는 것이 필요하다.</p>
</blockquote>
</li>
<li><p><a href="https://ieeexplore.ieee.org/document/9054484"><strong>Flow-TTS :</strong></a> 외부 정렬에 의존하는 <strong>non-autoregressive</strong> 구조다. </p>
</li>
<li><p><a href="https://arxiv.org/abs/2005.11129"><strong>Glow-TTS :</strong></a> 동시에 말하고 정렬하는 것을 학습하여 Flow-TTS를 개선했으며, <strong>외부 정렬 도구의 필요성을 제거</strong>했다. 또한 HMM의 <strong>Viterbi 알고리즘</strong>을 기반으로 한 동적 프로그래밍 절차를 도입하여 학습 중에 단조 정렬을 강제로 시행한다. </p>
<blockquote>
<p><strong>단조 정렬</strong>
: 음성 모델이 출력하는 음성 신호의 시간적인 배치를 단조롭게 만든다는 것을 의미한다. 이는 음성이 자연스럽게 흘러나가고 일관된 속도로 발화되도록 하는 것을 목적으로 한다.</p>
</blockquote>
</li>
<li><p><a href="https://openreview.net/pdf?id=0NQwnnwAORi"><strong>RAD-TTS :</strong></a> 더 복잡한 정렬 메커니즘과 함께 <strong>기간 모델링을 위해 별도의 정규화 플로우</strong>를 통합했지만, Glow-TTS만큼의 음질을 달성하지 못했다. </p>
</li>
<li><p><a href="https://arxiv.org/abs/2012.03500"><strong>EfficientTTS :</strong></a> 전통적인 <strong>dot-product attention</strong>을 사용하여 단조 정렬을 촉진하거나 강제하기 위한 효율적인 메커니즘을 두 가지로 설명하여 주관적 점수를 향상시켰다. </p>
</li>
</ul>
<p>이 중 Flowtron만이 완전한 확률적 모델이며, 다른 모델들은 순차 기간의 이산 값 확률 모델이 없으므로 모든 가능한 이산 시간 출력 시퀀스에 대한 유효한 확률 분포를 정의하지 않는다.</p>
<br/>

<p>Flowtron을 제외한 위의 모든 <strong>플로우 기반 TTS 음향 모델은 non-autoregressive하다.</strong> 즉, 병렬적이다. 이는 GPU 서버에서 유리하다. </p>
<p>그러나 확률적 모델링 정확도 측면에서 autoregressive 아키텍처가 종종 non-autoregressive 보다 우위를 차지해 왔다. 예를 들어, 이미지 벤치마크의 bits-per-pixel metrics가 더 좋은 결과를 내곤 한다.</p>
<p>최근 플로우와 non-autoregressive HMM을 결합한 조합은 음성 인식 분야에서 기술 수준을 높였다. 이러한 발견들에서 동기를 얻어, <strong>플로우를 neural HMM을 통해 autoregression 방식으로 결합</strong>하는 방식을 시도하게 되었다. 두가지 방법 모두 정확한 maximum-likelihood 훈련을 허용하고 강력한 확률적 모델링 결과를 보여주었기 때문이다.</p>
<br/>

<p><strong>Flowtron</strong>은 <strong>monotonic을 강제하지 않는 전통적인 neural attention을 사용</strong>하여, 횡설수설하기 쉽고 훈련이 어렵게 만든다. 이 모델은 공정한 비교를 위해 LJ Speech 데이터만으로 훈련되어 말하기를 배울 수 없다. </p>
<p><strong>Glow-TTS</strong>는 HMM에서 유래된 알고리즘을 사용하여 monotonic 정렬을 강제하며, 본 논문과 같은 방법을 사용한다. 그러나 해당 방법은 본 논문과 달리 <strong>autoregression이 부재</strong>하며, 완전한 순방향 알고리즘(모든 경로) 대신 <strong>Viterbi 재귀(단일 경로)를 사용, 비확률적 지속 시간 모델을 사용</strong>한다. </p>
<p>플로우는 또한 end-to-end TTS에서 사용되었다. 가장 유명한 것은 <a href="https://arxiv.org/abs/2106.06103"><strong>VITS</strong></a>다. 이는 Glow-TTS에 플로우 기반의 지속 시간 모델과 neural vocoder를 추가하고 복합 손실로 훈련하는 것이다. 이는 강력하지만, <strong>훈련 속도가 훨씬 느리다.</strong></p>
<br/>
<br/>
<br/>

<h2 id="23-flows-as-an-invertible-post-net">2.3. Flows as an invertible post-net</h2>
<p>회귀 손실을 사용하는 많은 autoregressive TTS 시스템은 합성 중에 탐욕적이고 순차적인 출력 생성 절차를 사용한다. 출력 품질을 향상시키기 위해, <strong>post-net이라고 불리는 non-causal CNN을 사용한 후처리 네트워크</strong>가 적용된다. 이 네트워크는 자기회귀 모델에 의해 생성된 시퀀스에 대해 &quot;되돌아가서&quot; 시퀀스를 개선하기 위해 사용된다.</p>
<blockquote>
<p><strong>casual system</strong>
: t_0 시점의 출력이 오직 t_0 시점 이전의 입력값에만 영향을 받는 시스템으로, time invarient 하다.
</br>
<strong>non-casual system</strong>
: t0 시점 이후(미래의 값)에도 영향을 받는 시스템이다.</br>
출처 : <a href="https://m.blog.naver.com/songsite123/222909136748">https://m.blog.naver.com/songsite123/222909136748</a></p>
</blockquote>
<p>그러나 표준 post-net 아키텍처는 neural HMM의 정확한 maximum-likelihood training과 호환되지 않으며, 이러한 후처리 네트워크의 부재는 음성 품질에 부정적인 영향을 미친다. 대신 <strong>모델 출력을 가역적인 post-net을 통해 전달</strong>함으로써(따라서 모델을 정규화 플로우로 변환), 전체 모델을 훈련시켜 정확한 sequence likelihood를 극대화할 수 있다. </p>
<p>본 논문의 실험에서는 Glow-TTS에서 파생된 디코더를 사용한다. 이는 <strong>non-causal CNN을 기반으로 한 아키텍처를 활용하여, attention 기반의 neural TTS의 post-net과 유사</strong>한 특성을 띈다. Post-net 대신에, vocoder를 미세 조정하여 개선되지 않은 음향 특성에서 더 자연스러운 파형을 생성할 수도 있다. 그러나 이는 추가적인 훈련 단계가 필요하며, neural vocoder 훈련은 일반적으로 느리다.</p>
<br/>
<br/>


<h1 id="3-method">3. Method</h1>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/5665d2b9-6f0a-4031-b5e1-739e7dda006a/image.png" alt=""></p>
<p>본 논문에서 제안한 방법인 OverFlow는 위 그림과 같다. <strong>Neural HMM 출력에 역함수 신경망을 적용하여 모델이 표현할 수 있는 확률 분포의 집합을 크게 증가</strong>시켰다. </p>
<br/>
<br/>


<h2 id="neural-hmm-tts">Neural HMM TTS</h2>
<p>Neural HMM은 입력 값과 출력 관측치를 정렬하는 데 전통적인 neural attention의 대안으로 제공되는 확률적 인코더-디코더 sequence-to-sequence 모델의 프레임워크다. </p>
<h3 id="encoder">Encoder</h3>
<p>TTS 음향 모델링에 사용될 경우, Neural HMM 인코더는 입력 벡터(예: phone 임베딩)를 왼쪽에서 오른쪽으로 건너뛰지 않는 HMM의 <strong>N개의 상태를 정의하는 벡터 시퀀스 h_1:N</strong>으로 변환한다. 각 입력 기호는 일정한 수의 벡터로 변환되며, 예를 들어 각 기호당 두 개의 상태로 변환된다. </p>
<h3 id="decoder">Decoder</h3>
<p>Neural HMM 디코더 네트워크는 두 개의 입력을 받고 두 개의 출력을 반환한다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/1fb525e4-0ceb-4357-bfdb-5b32d91609f1/image.png" alt=""></p>
<blockquote>
<p><strong>입력</strong></p>
</blockquote>
<ul>
<li><strong>h_s_t :</strong> 인코더로부터 HMM 상태 s_t ∈ {1, . . . , N}에 해당하는 상태 정의 벡터 </li>
<li><strong>x_1:t−1 :</strong> 시간 단계 t에서 이전에 생성된 출력 음향 프레임<ul>
<li>이전 프레임의 정보를 기반으로 현재 프레임을 생성하므로 모델이 autoregressive한 특성을 갖게된다. <ul>
<li>실제로는 일반적으로 직전 프레임 x_t−1만을 명시적으로 제공하고, t−1 이전의 출력도 다음 프레임에 영향을 미칠 수 있도록 보장하는 pre-net과 LSTM을 함께 사용하는 것이 일반적이다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<blockquote>
<p><strong>출력</strong></p>
</blockquote>
<ul>
<li><strong>θ_t :</strong> 방출 분포의 매개 변수<ul>
<li>다음 출력 프레임 x_t에 대한 확률 분포를 정의</li>
<li>대부분의 신경 HMM은 x_t가 대각 공분산 행렬을 가진 다변량 가우스 분포를 따른다고 가정<ul>
<li><strong>θ_t = (µ_t, σ_t) :</strong> x_t의 각 요소별 평균과 표준 편차에 해당하는 두 개의 벡터 </li>
</ul>
</li>
</ul>
</li>
<li><strong>τ_i :</strong> [0, 1] 범위 내의 전이 확률<ul>
<li>현재 상태에 따라 HMM이 다음 상태로 전이할 여부를 결정<ul>
<li><strong>s_t+1 = s_t + 1 :</strong> HMM이 다음 상태로 전이하는 경우</li>
<li><strong>s_t+1 = s_t:</strong> 다음 상태로 전이하지 않는 경우</li>
</ul>
</li>
</ul>
</li>
</ul>
<br/>


<p>합성은 s_1 = 1에서 시작하며, s_t = N + 1일 때 종료된다. 마르코프 가정에 따르면, 출력은 이전 시간 단계에서의 입력 벡터에 의존해서는 안된다. 숨겨진 상태 s_1:T에 대한 마르코프 가정을 충족시키기 위해 (즉, 유효한 신경 HMM이 되기 위해) <strong>디코더 출력은 이전 시간 단계에서의 입력 벡터 h_1:t−1에 의존해서는 안된다.</strong> </p>
<p>따라서 모델은 훈련 데이터의 log-likelihood를 최대화하기 위해 표준 HMM의 <strong>기본 순전파 또는 Viterbi 알고리즘을 사용하여 계산된 훈련 데이터의 log-likelihood를 최대화</strong>하기 위해 훈련될 수 있다. </p>
<br/>
<br/>


<h2 id="normalising-flows">Normalising flows</h2>
<p>Neural HMM은 각 프레임에 대해 가우스 분포를 가정하여 시간에 따른 이산적인 시퀸스의 분포를 설명한다. 반면에, Normalising flow는 간단한 latent 또는 source distribution Z(ex:  Gaussian distribution)를 훨씬 유연한 target distribution X로 변환하는 방법을 제공한다. 이 아이디어는 <strong>source distribution에 역함수인 비선형 변환 f를 적용하여 target distribution을 얻는 것</strong>이다. </p>
<p>가역성은 관찰된 결과 x의 (log)확률을 계산할 수 있도록 한다. </p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/14282ac2-547b-4cae-901e-d2d21504c4ce/image.png" alt=""></p>
<blockquote>
<p><strong>X = f(Z; W)</strong> : target distribution
<strong>f :</strong> 가중치가 W인 신경망
<strong>J_f^(-1)(x; W) :</strong> f 역함수의 Jacobian 행렬 </p>
</blockquote>
<p>f가 상대적으로 약한 비선형 변환이라 하더라도, <strong>여러 성분 변환 f_l을 연쇄적으로 연결하면 매우 유연한 분포를 얻을 수 있다.</strong> 결합된 변환은 가역적인 신경망으로 알려져 있다. </p>
<p>결정적으로, <strong>Neural HMM과 Normalising flow 모두 정확한 likelihood 극대화를 허용</strong>하여 음향에 대한 강력한 확률적 모델로 매우 적합하다.</p>
<br/>
<br/>

<p><strong>Glow</strong>는 인기 있는 정규화 플로우 아키텍처 중 하나다. 이는 학습된 전역 affine 변환과 &quot;coupling layers&quot;라고 불리는 레이어를 번갈아 가며 사용한다. </p>
<blockquote>
<p><strong>Coupling layer</strong> 
: 입력 벡터 zl ∈ R^D의 절반 요소를 나머지 요소의 값에 따라 비선형적으로 변환 (나머지 요소는 변경되지 않음)</p>
</blockquote>
<br/>

<p>각 결합 레이어는 요소별로 역함수가 가능한 affine 변환을 수행하며 다음과 같이 표현할 수 있다.</p>
<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/aa7921aa-9100-40aa-94ca-8f8a79da3b5e/image.png" alt=""></p>
<blockquote>
<p><strong>z&#39;_l :</strong> l번째 결합 레이어의 출력
<strong>α_l &gt; 0, β_l :</strong> 가중치 W를 가진 신경망의 출력</p>
</blockquote>
<br/>

<p>이 변환은 역으로 계산할 수 있으며, α_l과 β_l은 z&#39;_l,1:D/2를 신경망에 입력하여 계산할 수 있다.</p>
<p>Affine 변환에서의 행렬 곱셈은 일종의 <strong>순열 작업의 일반화</strong>로 볼 수 있으며, <strong>플로우에 의해 모든 입력 요소가 여러 비선형 변환을 받을 수 있도록</strong> 한다. </p>
<br/>

<p>TTS에서 대부분의 정규화 플로우는 Glow를 기반으로 하며, Glow-TTS는 전역 affine 변환의 파라미터 효율적인 변형을 도입했다. Glow와 Glow-TTS 모두 <strong>coupling layer에서 CNN을 사용</strong>하므로 결과적으로 얻어지는 역함수 신경망은 유한한 수신 필드를 가지게 된다. </p>
<p>따라서 이러한 모델은 <strong>음향 간의 전역 종속성을 포착할 수 없으</strong>며, 이는 많은 Glow-TTS 시스템에서 나타나는 독특한 발화 수준의 억양 및 강조 패턴을 설명할 수 있다. </p>
<p>본 논문의 제안에서 <strong>source distribution Z_t는 neural HMM 내에서 이전 출력 z_1:t−1에 의존</strong>하며(LSTM에 의해 장기 기억이 제공됨), 이는 더욱 전체적으로 <strong>일관된 합성 음성을 생성</strong>할 수 있다.</p>
<br/>
<br/>



<p><img src="https://velog.velcdn.com/images/yun_haaaa/post/0f7bb3b7-ec0d-4b28-a87e-12d79703286b/image.png" alt=""></p>
<br/>
<br/>

<blockquote>
<h3 id="소감">소감</h3>
<p>Image나 Text와 달리 Audio 데이터의 특성을 고려해서 모델을 학습시킬 필요성을 확인할 수 있었다. Vits로 학습시킨 결과를 확인해 봤었는데, 당시 부자연스럽다고 느낀 부분이 단조 정렬과 monotonic한 특성을 충분히 학습하지 못했기 때문인 것 같다. <br/>
해당 논문의 방법을 적용한다면 Vits보다 성능이 좋을 것으로 기대된다. 소스코드가 공개되어 있으니 모델이 영어로 pre-trained 되어있는 문제를 해결하고 feature를 넣어 줄 방법을 생각해 봐야겠다.</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>