<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>9._.coding</title>
    <link>https://9-coding.tistory.com/</link>
    <description>공부한 것을 내 방식대로 정리해서 기록하는 블로그.</description>
    <language>ko</language>
    <pubDate>Wed, 5 Aug 2026 04:17:12 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>구코딩</managingEditor>
    <item>
      <title>[Paper] ParkingE2E: Camera-based End-to-end Parking Network, from Images to Planning</title>
      <link>https://9-coding.tistory.com/entry/Paper-ParkingE2E-Camera-based-End-to-end-Parking-Network-from-Images-to-Planning</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;BEV &amp;amp; Transformer Decoder 이용한 Imitation Learning 기반 End-to-end Parking&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RGB 영상과 target slot으로부터 BEV 특징을 추출&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/Paper-Transformer-Attention-is-All-You-Need&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Transformer&lt;/a&gt; 기반 디코더를 이용하여 trajectory points 예측&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-End-to-End-Autonomous-Driving-2-Training-Methods&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Imitation learning&lt;/a&gt;을 활용하여 RGB 영상에서 직접 path planning을 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Target query encoder&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력 영상과 목표 주차 공간(feature)을 융합하여 주차 공간을 인식하는 기능을 수행합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BEV 특징을 활용한 높은 예측 정확도&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Transformer-based decoder&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;autoregressive 방식&lt;/b&gt;을 사용하여 미래의 waypoints 순차적 예측.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Contributions&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-3-%EA%B0%9C%EB%85%90-%EB%B0%8F-%ED%8A%B9%EC%A7%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;End-to-end network&lt;/a&gt; 설계&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;surround-view images을 BEV feature로 변환&lt;/li&gt;
&lt;li&gt;Target parking slot feature를 image feature과 결합하여 주차 공간 감지 성능을 향상.&lt;/li&gt;
&lt;li&gt;Trajectory prediction이 순차적인 특성을 가지므로, Transformer 기반의 autoregressive 접근 방식을 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실제 차량 실험 및 검증&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;real vehicle을 통해 다양한 real-world scenario에서 테스트 수행.&lt;/li&gt;
&lt;li&gt;모델의 실제 환경에서의 타당성 및 일반화 성능을 검증했으며, 실용적인 적용 가능성 입증.&lt;/li&gt;
&lt;li&gt;총 4개의 실제 주차장에서 평균 87.8%의 주차 성공률을 기록&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Related Work&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;BEV Perception&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다양한 센서 데이터를 쉽게 통합&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BEV는 명확한 물리적 해석이 가능하여, 여러 가지 센서 데이터를 효과적으로 융합.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;원근 왜곡 문제를 방지하여 후속 작업의 복잡도를 줄임&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;거리나 크기 왜곡을 방지하여 경로 계획 등의 후속 작업을 단순화함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구성&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 perception의 feature extraction module과 task head module에 더해 viewpoint conversion module을 추가적으로 포함.&lt;/li&gt;
&lt;li&gt;이 변환 모듈을 통해 센서 뷰에서 BEV 뷰로 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;BEV-based models&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;LSS (Lift-Splat-Shoot)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BEV를 활용한 Object Detection &amp;amp; segmentation 수행&lt;/li&gt;
&lt;li&gt;각 픽셀의 depth distribution 추정한 후, 이를 BEV 평면으로 투영하여 BEV 특징을 획득&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DETR3D&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DETR(Deformable Transformer) 기반 3D object detection model&lt;/li&gt;
&lt;li&gt;3D 공간에서 Sparse Queries를 사용하여 객체를 인식&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PETR (Position Embedding Transformation for 3D Perception)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3D 위치 정보를 2D 특징에 추가하는 3D positional embedding 적용&lt;/li&gt;
&lt;li&gt;네트워크가 depth 정보를 암묵적으로 학습하도록 유도&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BEVFormer&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BEV Queries 사용하여 객체를 탐지&lt;/li&gt;
&lt;li&gt;spatial cross-attention과 temporal self-attention을 결합하여 성능을 향상&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BEVDepth&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LSS 방식을 기반으로 LiDAR 데이터를 활용하여 깊이 추정을 강화&lt;/li&gt;
&lt;li&gt;학습 과정에서 LiDAR 포인트를 이용해 깊이 정보를 supervision하여 BEV 인지 성능을 향상&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BEVFusion&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;카메라와 LiDAR 데이터를 BEV 공간에서 fusion&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;다중 센서 데이터를 효과적으로 결합하여 강력한 BEV 특징을 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;End-to-end Autonomous Driving&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Perception, Prediction, Path planning을 하나의 신경망으로 통합하여 공동 최적화를 수행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 모듈 기반 시스템에서 발생하는 누적 오류를 줄일 수 있음.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Urban Driving&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ChauffeurNet&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전문가 데이터를 학습하는 &lt;b&gt;imitation learning&lt;/b&gt; 기반 엔드투엔드 방법&lt;/li&gt;
&lt;li&gt;효과적인 주행 전략 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TransFuser, InterFuser, NEAT&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;BEV 특징을 추출하는 인코더-디코더 구조&lt;/b&gt; 활용&lt;/li&gt;
&lt;li&gt;GRU 디코더를 사용해 &lt;b&gt;경로점을 autoregressive manner로 예측&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CIL, CILRS&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;전방 이미지, 차량 상태 정보, 내비게이션 명령을 입력하여 직접 제어 신호를 생성&lt;/b&gt;하는 신경망&lt;/li&gt;
&lt;li&gt;별도의 PID 제어기가 필요하지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MP3, UniAD&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모듈형 설계를 따르지만, &lt;b&gt;모든 모듈을 엔드투엔드 방식으로 공동 최적화&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;E2E parking&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Vision and Dead Reckoning-based End-to-End Parking for Autonomous Vehicles&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;1단계&lt;/b&gt;: steering angle 시퀀스를 예측&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2단계&lt;/b&gt;: LSTM 네트워크를 활용하여 최적의 조향각과 기어 변속을 예측&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;An end-to-end fully automatic bay parking approach for autonomous vehicles&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;rear-view images 활용하여 &lt;b&gt;CNN 기반 조향각 및 속도 제어 모델&lt;/b&gt; 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ParkPredict&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;CNN-LSTM 구조&lt;/b&gt;를 활용하여 &lt;b&gt;Parking slot &amp;amp; waypoints 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;aerial imagery 기반.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ParkPredict+&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Transformer와 CNN을 결합한 모델&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;차량의 &lt;b&gt;의도(intent), 영상, historical trajectory 정보를 활용한 예측 모델&lt;/b&gt; 설계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Limiatations&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;고성능 연산 자원 필요&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;학습 과정이 복잡&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실제 차량 적용이 어려움&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;&lt;b&gt;Method&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Problem Definition&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3394&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rZaki/btsMgI7lI8I/jyAotMUkYNJnLwA2qHUdyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rZaki/btsMgI7lI8I/jyAotMUkYNJnLwA2qHUdyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rZaki/btsMgI7lI8I/jyAotMUkYNJnLwA2qHUdyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrZaki%2FbtsMgI7lI8I%2FjyAotMUkYNJnLwA2qHUdyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3394&quot; height=&quot;1000&quot; data-origin-width=&quot;3394&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Dataset&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\mathcal{D} = \{(I_{i,j}^k, P_{i,j}, S_i)\}$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$i \in [1, M]$: trajectory index&lt;/li&gt;
&lt;li&gt;$j \in [1, N_i]$: trajectory point index&lt;/li&gt;
&lt;li&gt;$k \in [1, R]$: camera index
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$R$: RGB camera의 개수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$P$: trajectory point&lt;/li&gt;
&lt;li&gt;$S$: target slot&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Reorganize the dataset&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\mathcal{D}' = \{(I_{i,j}^k, \mathcal{T}_{i,j}, S_i)\},$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathcal{T}{i,j} = \{P{i,\min(j+b, N_i)}\}_{b=1,2,\dots,Q},$
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathcal T_{i,j}$: sampled trajectory subset&lt;/li&gt;
&lt;li&gt;주어진 경로 $i$에서 특점 시점 $j$를 기준으로 앞으로 $Q$개의 trajectory point를 가져오는 과정&lt;/li&gt;
&lt;li&gt;경로의 끝을 넘지 않도록 $N_i$ 설정.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$Q$: predicted trajectory points의 길이&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;end-to-end network의 optimization goals&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\theta' = \displaystyle \argmin_{\theta} \mathbb{E}{(I, \mathcal{T}, S) \sim \mathcal{D}'} \left[\mathcal{L}(\mathcal{T}, \mathcal{N}\theta(I, S))\right]$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathcal L$: loss function&lt;/li&gt;
&lt;li&gt;$\mathcal N_\theta$: expert trajectory를 imitation learning하는 end-to-end neural network&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Camera-based End-to-end Neural Planner&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Overview&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1363&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsaJ9m/btsMbKiqJIO/HJTsl621MrwPb94dAkYeQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsaJ9m/btsMbKiqJIO/HJTsl621MrwPb94dAkYeQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsaJ9m/btsMbKiqJIO/HJTsl621MrwPb94dAkYeQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsaJ9m%2FbtsMbKiqJIO%2FHJTsl621MrwPb94dAkYeQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1363&quot; height=&quot;357&quot; data-origin-width=&quot;1363&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1709&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bA2LC2/btsMhNGIfcc/5VJWkKvYpcyNrekK8ZKRp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bA2LC2/btsMhNGIfcc/5VJWkKvYpcyNrekK8ZKRp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bA2LC2/btsMhNGIfcc/5VJWkKvYpcyNrekK8ZKRp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbA2LC2%2FbtsMhNGIfcc%2F5VJWkKvYpcyNrekK8ZKRp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1709&quot; height=&quot;1000&quot; data-origin-width=&quot;1709&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;RGB 영상과 목표 주차 공간을 입력으로 받아&lt;/b&gt;, 두 가지 주요 구성 요소로 작동:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Input Encoder&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RGB 영상을 BEV feature로 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Autoregressive Trajectory Decoder&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BEV 특징과 목표 주차 공간 정보를 융합&lt;/li&gt;
&lt;li&gt;transformer decoder를 활용하여 &lt;b&gt;다음 궤적 점을 순차적으로 예측(autoregressive 방식)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Encoder&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;RGB image &amp;rarr; BEV 변환, Target slot 정보와 결합하여 feature 추출&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;BEV 형식으로 인코딩&lt;/b&gt;하여 사용.&lt;/li&gt;
&lt;li&gt;주변 환경을 &lt;b&gt;top-down 방식&lt;/b&gt;으로 보여주어, ego-vehicle이 &lt;b&gt;주차 공간, 장애물, 도로 표시&lt;/b&gt; 등 쉽게 감지&lt;/li&gt;
&lt;li&gt;다양한 주행 시점에서도 &lt;b&gt;일관된 시각적 표현을 제공하여 궤적 예측의 복잡성을 줄이는 역할&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Camera Encoder&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2289&quot; data-origin-height=&quot;999&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZEHrw/btsMiXByR50/QJt3atyfF2Y7mvUkLbOhu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZEHrw/btsMiXByR50/QJt3atyfF2Y7mvUkLbOhu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZEHrw/btsMiXByR50/QJt3atyfF2Y7mvUkLbOhu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZEHrw%2FbtsMiXByR50%2FQJt3atyfF2Y7mvUkLbOhu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2289&quot; height=&quot;999&quot; data-origin-width=&quot;2289&quot; data-origin-height=&quot;999&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;EfficientNet&lt;/b&gt;을 활용하여 RGB image feature $\mathcal{F}{img} \in \mathbb{R}^{C \times H\text{img} \times W_\text{img}}$ 추출.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LSS(Lift, Splat, Shoot)&lt;/b&gt; 활용하여 depth distribution ($d_{dep} \in \mathbb{R}^{D \times H_\text{img} \times W_\text{img}}$)을 학습하고, 이를 통해 픽셀을 &lt;b&gt;3D 공간으로 변환&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;예측된 깊이 정보를 &lt;b&gt;이미지 특징과 곱하여&lt;/b&gt; 깊이 정보를 포함한 특징을 생성&lt;/li&gt;
&lt;li&gt;카메라의 extrinsics &amp;amp; intrinsics parameter를 이용해, &lt;b&gt;BEV grid에 image feature를 projection하여 BEV 공간의 camera feature($F_{cam}$) 생성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BEV feature의 range: $[-R_x, R_x]m, \; [-R_y, R_y]m$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$\mathcal{F}{cam} \in \mathbb{R}^{C \times H\text{cam} \times W_\text{cam}}$&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Target Encoder&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3999&quot; data-origin-height=&quot;997&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCuqOj/btsMi0Zl7mf/elGnoK4j7m5Cqo9NR8LXz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCuqOj/btsMi0Zl7mf/elGnoK4j7m5Cqo9NR8LXz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCuqOj/btsMi0Zl7mf/elGnoK4j7m5Cqo9NR8LXz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCuqOj%2FbtsMi0Zl7mf%2FelGnoK4j7m5Cqo9NR8LXz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3999&quot; height=&quot;997&quot; data-origin-width=&quot;3999&quot; data-origin-height=&quot;997&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;camera feature와 target slot &lt;b&gt;정보를 정렬&lt;/b&gt;하기 위해, &lt;b&gt;BEV 공간에서 목표 주차 공간의 heatmap 생성&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CNN&lt;/b&gt;을 사용하여 target slot feature**($\mathcal F_{target}$)을 추출 &amp;rarr;** $\mathcal F_{cam}$과 동일한 차원으로 변환&lt;/li&gt;
&lt;li&gt;&lt;b&gt;훈련 과정에서, 목표 주차 공간은 인간 운전자의 주차 궤적의 끝점으로 결정됨&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Target Query&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1959&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XFMaf/btsMiI5ClSf/ppp1TUr0jqPmkzo4EGYmE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XFMaf/btsMiI5ClSf/ppp1TUr0jqPmkzo4EGYmE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XFMaf/btsMiI5ClSf/ppp1TUr0jqPmkzo4EGYmE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXFMaf%2FbtsMiI5ClSf%2Fppp1TUr0jqPmkzo4EGYmE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1959&quot; height=&quot;1000&quot; data-origin-width=&quot;1959&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;camera feature($\mathcal F_{cam}$)과 target feature($\mathcal F_{target}$)을 BEV 공간에서 정렬&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;cross-attention&lt;/b&gt;을 이용하여 &lt;b&gt;목표 특징을 기반으로 카메라 특징을 검색(query)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Positional Encoding 활용하여 &lt;b&gt;공간적 대응 관계를 유지&lt;/b&gt;하며 특징을 정렬&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$\mathcal F_{target}$을 query, $\mathcal F_{cam}$을 key&amp;amp;value로 사용하여 attention 수행 &amp;rarr;&lt;/b&gt; fused feature &lt;b&gt;$\mathcal F_{fuse}$&lt;/b&gt; 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Decoder&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Transformer 디코더를 활용한 sequence prediction 문제로 접근&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1508&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFqC5p/btsMgOfiJDG/kwGOcNKrjknQDtyXdzj2R1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFqC5p/btsMgOfiJDG/kwGOcNKrjknQDtyXdzj2R1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFqC5p/btsMgOfiJDG/kwGOcNKrjknQDtyXdzj2R1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFqC5p%2FbtsMgOfiJDG%2FkwGOcNKrjknQDtyXdzj2R1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1508&quot; height=&quot;1000&quot; data-origin-width=&quot;1508&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;autoregressive 방식으로 한 단계씩 trajectory 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;low-dimensional trajectory points와 고차원 image features 효과적으로 결합&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;trajectory point $(P^x_{i,j}, P^y_{i,j})$ 예측&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Trajectory Serialization&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Trajectory points를 discrete tokens로 변환하는 과정&lt;/li&gt;
&lt;li&gt;이러면 position regression 문제를 token prediction 문제로 변환할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\text{Ser}(P^x_{i,j}) = \left\lfloor \cfrac{P^x_{i,j} + R_x}{2R_x} \right\rfloor \times N_t, \quad \text{Ser}(P^y_{i,j}) = \left\lfloor \cfrac{P^y_{i,j} + R_y}{2R_y} \right\rfloor \times N_t,$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$Ser( \cdot)$: serializing trajectory points&lt;/li&gt;
&lt;li&gt;$N_t$: 시퀀스에서 인코딩할 수 있는 max token value&lt;/li&gt;
&lt;li&gt;$R_x, R_y$: x축과 y축 방향에서 예측할 수 있는 최대 범위.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Trajectory의 i번째 sequence는 아래와 같이 표현.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$[\text{BOS}, \text{Ser}(P^x_{i,1}), \text{Ser}(P^y_{i,1}), \dots, \text{Ser}(P^x_{i,N_i}), \text{Ser}(P^y_{i,N_i}), \text{EOS}]$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BOS: sequence 시작 토큰&lt;/li&gt;
&lt;li&gt;EOS: sequence 종료 토큰&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Trajectory Decoder&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BEV features를 &lt;b&gt;Key &amp;amp; Value로 사용&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;serialized trajectory sequence를 Query로 사용&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;트랜스포머 디코더를 이용해 autoregressive으로 trajectory point 생성&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Training&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Positional Embedding을 추가하여 시퀀스 간 공간적 관계를 유지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;unknown information에 대해 masking을 적용하여 병렬 연산 가능하게 설계&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Inference&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;BOS(Start Flag) 토큰이 주어지면&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;트랜스포머 디코더가 &lt;b&gt;다음 trajectory point를 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;예측된 점을 &lt;b&gt;시퀀스에 추가한 후 반복 수행&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EOS(End Flag) 토큰이 나오거나, 지정된 궤적 점 개수에 도달하면 종료&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Lateral and Longitudinal Control&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2389&quot; data-origin-height=&quot;999&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IO3wx/btsMgsp8N3b/NesgrIwzvpjN7OQqPtC7L0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IO3wx/btsMgsp8N3b/NesgrIwzvpjN7OQqPtC7L0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IO3wx/btsMgsp8N3b/NesgrIwzvpjN7OQqPtC7L0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIO3wx%2FbtsMgsp8N3b%2FNesgrIwzvpjN7OQqPtC7L0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2389&quot; height=&quot;999&quot; data-origin-width=&quot;2389&quot; data-origin-height=&quot;999&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주차 시작 시점을 $t_0$으로 정의&lt;/li&gt;
&lt;li&gt;end-to-end neural planner: predicted trajectory $\mathcal{T}{t_0} = \mathcal{N}{\theta'}(\mathbf{I}_{t_0}, S)$ 생성.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathbf{I}_{t_0}$: input&lt;/li&gt;
&lt;li&gt;$S$: target parking slot&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$ego_{t_0 \to t}$: Localization system을 통해 얻은 차량이 $t_0$에서 현재 시점 $t$까지 이동한 relative pose&lt;/li&gt;
&lt;li&gt;Target steering angle $\mathcal{A}t^{tar} = \text{RWF}(\mathcal{T}{t_0}, ego{t_0 \to t}).$
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RWF, Rear-Wheel Feedback 방식을 이용하여 계산.&lt;/li&gt;
&lt;li&gt;predicted trajectory $\mathcal T_{t_0}$와 relative pose $ego_{t_0 \to t}$ 사용.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;섀시에서 speed feedback $\mathcal V^{feed}$와 steer feedback $\mathcal A^{feed}$ 수집
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;target speed $\mathcal V_{tar}$과 target steering angle $\mathcal A^{tar}_t$을 사용해&lt;/li&gt;
&lt;li&gt;cascade PID controller 사용해 lateral&amp;amp;longitudinal control 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;새로운 예측 경로 생성: $\mathcal T_{t_0}$, $ego_{t_0 \to t}$ 초기화
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;global localization에 의존하지 않고 주차 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Experiments&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Dataset Collection&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBHalr/btsMi0ZLibT/9Stx1aPkAGQraie1XgkWpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBHalr/btsMi0ZLibT/9Stx1aPkAGQraie1XgkWpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBHalr/btsMi0ZLibT/9Stx1aPkAGQraie1XgkWpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBHalr%2FbtsMi0ZLibT%2F9Stx1aPkAGQraie1XgkWpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;275&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;surround-view camera&lt;/b&gt;를 활용하여 RGB 이미지를 캡처함.&lt;/li&gt;
&lt;li&gt;차량 주변의 &lt;b&gt;360도 시각 정보&lt;/b&gt;를 확보하여, 더 넓은 범위에서 주차 환경을 인식 가능하도록 설계됨.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Dead Reckoning 기법&lt;/b&gt; 활용&lt;/li&gt;
&lt;li&gt;이를 통해 차량의 &lt;b&gt;강건하고 정확한 위치(localization)&lt;/b&gt; 를 실시간으로 추정함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi0oRp/btsMgNnzY3p/UTdCCulPjof7Wf9z77kFFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi0oRp/btsMgNnzY3p/UTdCCulPjof7Wf9z77kFFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi0oRp/btsMgNnzY3p/UTdCCulPjof7Wf9z77kFFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi0oRp%2FbtsMgNnzY3p%2FUTdCCulPjof7Wf9z77kFFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;427&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ground garages underground garages &amp;rarr; &lt;b&gt;generalization capability&lt;/b&gt; 향상&lt;/li&gt;
&lt;li&gt;Garage I&amp;amp;II: training에 사용.&lt;/li&gt;
&lt;li&gt;Garage II&amp;amp;IV: training에 사용.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Implementation Details&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;프레임워크&lt;/b&gt;: &lt;b&gt;PyTorch&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GPU&lt;/b&gt;: &lt;b&gt;NVIDIA GeForce RTX 4090&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Batch Size&lt;/b&gt;: &lt;b&gt;16&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;총 학습 시간&lt;/b&gt;: &lt;b&gt;약 8시간 (40,000 프레임)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;테스트 데이터 크기&lt;/b&gt;: &lt;b&gt;5,000 프레임&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Input data
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;서라운드 뷰 카메라&lt;/b&gt; 4대(R=4)에서 촬영된 이미지 사용&lt;/li&gt;
&lt;li&gt;target parking slot은 주차 종료 지점의 특정 포인트를 기준으로 결정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;trajectory sequence points&lt;/b&gt;를 활용해 모델의 예측 결과를 지도 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;target parking slot selection: RViz software &lt;b&gt;&quot;2D-Nav-Goal&quot;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;경로 예측&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;입력:&lt;/b&gt; 서라운드 뷰 카메라 이미지 + 목표 주차 공간&lt;/li&gt;
&lt;li&gt;&lt;b&gt;출력:&lt;/b&gt; &lt;b&gt;n개의 미래 경로 포인트를 autoregressive manner으로 예측&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;controller: &lt;b&gt;경로 계획 결과, 차량 위치(ego pose), 피드백 신호&lt;/b&gt; 를 이용해 주차 수행&lt;/li&gt;
&lt;li&gt;&lt;b&gt;좌표 체계 통일&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목표 지점과 예측된 경로 포인트의 좌표는 &lt;b&gt;vehicle coordinate frame&lt;/b&gt; 기준으로 표현&lt;/li&gt;
&lt;li&gt;&lt;b&gt;global coordinate frame&lt;/b&gt;에 의존하지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Neural Network Details&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;BEV 특징 맵(BEV features)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;크기: &lt;b&gt;200 &amp;times; 200&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;실제 공간 범위: &lt;b&gt;x 방향&lt;/b&gt; $[-10m, 10m]$, &lt;b&gt;y 방향&lt;/b&gt; $[-10m, 10m]$&lt;/li&gt;
&lt;li&gt;해상도: &lt;b&gt;0.1m 단위&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Transformer 디코더 설정&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;trajectory serialization의 최대 값 $N_t = 1200$&lt;/li&gt;
&lt;li&gt;생성하는 예측 시퀀스 길이 = &lt;b&gt;30&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;이 설정을 통해 &lt;b&gt;정확도와 속도 균형 최적화&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Evaluation Metrics&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1) Model Trajectory Evaluation&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델을 실제 환경에서 실험하기 전에, 성능을 분석하기 위한 평가 지표를 설계함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;L2 Distance&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예측 궤적과 실제(ground-truth) 궤적 간의 평균 유클리드 거리.&lt;/li&gt;
&lt;li&gt;모델의 &lt;b&gt;정확도(precision)와 정밀도(accuracy)&lt;/b&gt; 평가.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Hausdorff Distance&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 점 집합 간 최소 거리들의 최댓값을 측정.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;예측 궤적이 실제 궤적과 얼마나 잘 일치하는지&lt;/b&gt; 평가.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Fourier Descriptor Difference&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;푸리에 서술자를 사용하여 예측 및 실제 궤적을 벡터로 변환한 후 차이를 측정.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;값이 낮을수록 두 궤적 간 차이가 작음&lt;/b&gt;을 의미.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2) End-to-end Real-vehicle Evaluation&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 차량 실험에서 자율 주차 성능을 평가하는 지표.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Parking Success Rate, PSR&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목표 주차 공간에 차량이 성공적으로 주차될 확률.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;No Slot Rate, NSR&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지정된 주차 공간에 주차하지 못한 비율.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Parking Violation Rate, PVR&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;차량이 &lt;b&gt;지정된 주차 공간을 약간 벗어났지만, 다른 공간을 방해하지 않은 경우&lt;/b&gt;의 비율.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Average Position Error, APE&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;차량이 성공적으로 주차되었을 때, &lt;b&gt;목표 주차 위치와 실제 정지 위치 간 평균 거리 차이&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Average Orientation Error, AOE&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;차량이 성공적으로 주차되었을 때, &lt;b&gt;목표 주차 방향과 실제 정지 방향 간 평균 각도 차이&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Average Parking Score, APS&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;위치 오류, 방향 오류, 주차 성공률을 종합 평가한 점수 (0~100점 범위)&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Average Parking Time, APT&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주차 모드가 시작된 시점부터 차량이 지정된 공간에 &lt;b&gt;완전히 주차되거나 실패할 때까지 걸리는 시간&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Quantitative Results&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4개의 서로 다른 주차장&lt;/b&gt;에서 &lt;b&gt;폐쇄 루프 차량 테스트(closed-loop vehicle tests)&lt;/b&gt; 를 수행하여 제안된 시스템의 성능을 검증&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1431&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mplAe/btsMisoQ4Nl/VM30fr5l5OsWFpEysManD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mplAe/btsMisoQ4Nl/VM30fr5l5OsWFpEysManD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mplAe/btsMisoQ4Nl/VM30fr5l5OsWFpEysManD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmplAe%2FbtsMisoQ4Nl%2FVM30fr5l5OsWFpEysManD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1431&quot; height=&quot;647&quot; data-origin-width=&quot;1431&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Scene A&lt;/b&gt;: 좌우에 장애물이 없는 상태에서 주차&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Scene B&lt;/b&gt;: 좌측 또는 우측에 차량이 있는 상태에서 주차&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Scene C&lt;/b&gt;: 벽이나 기타 장애물이 있는 상태에서 주차&lt;/li&gt;
&lt;li&gt;&lt;b&gt;각 시나리오에서 무작위로 3개의 주차 슬롯 선택&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;각 슬롯에 대해 좌측 및 우측 방향으로 약 3회씩 주차 테스트 수행&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 실험 결과&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;제안된 방법은 다양한 시나리오에서 높은 주차 성공률을 기록&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;강력한 주차 성능(robust parking capability)&lt;/b&gt; 을 보여줌&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기존 방법과 비교&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최근 &lt;b&gt;엔드투엔드 자율주행(End-to-End Autonomous Driving)&lt;/b&gt; 기법들이 등장했지만, &lt;b&gt;대부분 도시 주행(Urban Driving)&lt;/b&gt; 문제 해결에 초점&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ParkPredict [20]&lt;/b&gt; 같은 방법이 주차에 활용되긴 하지만, &lt;b&gt;본 연구의 접근 방식과는 과제(task)가 다름&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;기존 연구 중 &lt;b&gt;제안된 방법과 직접적으로 비교할 수 있는 효과적인 엔드투엔드 방법은 없음&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Transformer 기반 디코더 vs GRU 기반 디코더 (Transfuser)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBGlvo/btsMighJ0ZC/91nlBKZCiKOSGszKsxLeak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBGlvo/btsMighJ0ZC/91nlBKZCiKOSGszKsxLeak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBGlvo/btsMighJ0ZC/91nlBKZCiKOSGszKsxLeak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBGlvo%2FbtsMighJ0ZC%2F91nlBKZCiKOSGszKsxLeak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;826&quot; height=&quot;232&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Table II&lt;/b&gt;에서 &lt;b&gt;Transformer 기반 디코더&lt;/b&gt;(제안된 방법)와 &lt;b&gt;GRU 기반 디코더(Transfuser)&lt;/b&gt; 비교&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Transformer 기반 디코더는 Attention Mechanism 덕분에 예측 정확도가 더 우수&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Ablation Study&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vQXKl/btsMjhfWOJw/2sQ7bncX6Y1gy4NvbMRyK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vQXKl/btsMjhfWOJw/2sQ7bncX6Y1gy4NvbMRyK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vQXKl/btsMjhfWOJw/2sQ7bncX6Y1gy4NvbMRyK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvQXKl%2FbtsMjhfWOJw%2F2sQ7bncX6Y1gy4NvbMRyK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;839&quot; height=&quot;272&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 실험 목적&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;다양한 네트워크 구조(Network Designs)&lt;/b&gt; 가 모델 성능에 미치는 영향을 분석&lt;/li&gt;
&lt;li&gt;특히, &lt;b&gt;특징 융합(Feature Fusion) 방법&lt;/b&gt; 에 대한 실험 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 실험 방법&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Table III&lt;/b&gt;에서 서로 다른 특징 융합 방법을 비교&lt;/li&gt;
&lt;li&gt;비교 대상:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Baseline (Target Query)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Feature Concatenation&lt;/b&gt; (특징 벡터 단순 연결)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Feature Element-wise Addition&lt;/b&gt; (특징 벡터 요소별 합)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 결과 분석&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Target Query 방식&lt;/b&gt;이 가장 높은 &lt;b&gt;경로 예측 정확도(Trajectory Prediction Accuracy)&lt;/b&gt; 를 달성&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이유&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Attention 메커니즘 및 공간 정렬 기법(Spatial Alignment Mechanism)&lt;/b&gt; 활용&lt;/li&gt;
&lt;li&gt;목표 주차 슬롯(Target Slot)과 &lt;b&gt;BEV 이미지 간의 공간적 관계를 명확하게 반영&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;BEV 특징과 목표 특징을 효과적으로 통합하여 최적의 성능 도출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Table II&lt;/b&gt;에서 &lt;b&gt;Transformer 기반 디코더&lt;/b&gt;(제안된 방법)와 &lt;b&gt;GRU 기반 디코더(Transfuser)&lt;/b&gt; 비교&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Transformer 기반 디코더는 Attention Mechanism 덕분에 예측 정확도가 더 우수&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Limitations&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1695&quot; data-origin-height=&quot;510&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxNKcy/btsMi3B7yNm/KMjhiE9aEr0i916D4HLGZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxNKcy/btsMi3B7yNm/KMjhiE9aEr0i916D4HLGZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxNKcy/btsMi3B7yNm/KMjhiE9aEr0i916D4HLGZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxNKcy%2FbtsMi3B7yNm%2FKMjhiE9aEr0i916D4HLGZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1695&quot; height=&quot;510&quot; data-origin-width=&quot;1695&quot; data-origin-height=&quot;510&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Moving Targets에 대한 적응력 부족&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 규모(Data Scale) 및 시나리오 다양성(Scenario Diversity) 제한으로 인해 적응력이 낮음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터셋 확장을 통해 개선 가능&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Negative Samples 부족&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Expert Trajectories&lt;/b&gt; 만을 학습하여, 효과적인 부정 샘플 제공이 불가능&lt;/li&gt;
&lt;li&gt;주차 과정에서 &lt;b&gt;큰 편차 발생 시 보정 메커니즘 부족 &amp;rarr; 주차 실패 가능성 증가&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Rule-Based 주차 방법과의 성능 차이&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 규칙 기반 방식보다 성능이 부족한 부분 존재&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;하지만, &lt;b&gt;엔드투엔드 기술이 발전함에 따라 해결될 것으로 기대&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Future Work&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Deep Reinforcement Learning&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;NeRF &amp;amp; 3D Gaussian Splatting&lt;/b&gt; 이용해 실제와 유사한 시뮬레이터 구축&lt;/li&gt;
&lt;li&gt;이를 통해 &lt;b&gt;엔드투엔드 모델을 강화학습으로 학습하여 성능 향상 기대&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;복잡한 시나리오에서의 성능 개선&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔드투엔드 기술이 발전할수록 복잡한 주차 환경에서도 &lt;b&gt;기존 규칙 기반 방법을 뛰어넘는 성능 가능성&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Paper</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/125</guid>
      <comments>https://9-coding.tistory.com/entry/Paper-ParkingE2E-Camera-based-End-to-end-Parking-Network-from-Images-to-Planning#entry125comment</comments>
      <pubDate>Thu, 13 Feb 2025 17:10:07 +0900</pubDate>
    </item>
    <item>
      <title>[Paper] LMDrive: Closed-Loop End-to-End Driving with Large Language Models</title>
      <link>https://9-coding.tistory.com/entry/Paper-LMDrive-Closed-Loop-End-to-End-Driving-with-Large-Language-Models</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;Language-guided &lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-6-2-Closed-loop-Parameter-Initialization-Traffic-Simulation&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Closed-loop&lt;/a&gt; &lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-3-%EA%B0%9C%EB%85%90-%EB%B0%8F-%ED%8A%B9%EC%A7%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;End-to-end Driving&lt;/a&gt; Framework&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Multi-modal &lt;b&gt;sensor data를&lt;/b&gt; natural language &lt;b&gt;instruction과 통합&lt;/b&gt;하여 처리&lt;/li&gt;
&lt;li&gt;인간 및 내비게이션 소프트웨어와의 상호작용이 가능한 &lt;b&gt;현실적인 지시 환경&lt;/b&gt;을 구현&lt;/li&gt;
&lt;li&gt;&lt;b&gt;64,000개의 instuction 수행 데이터 클립&lt;/b&gt;을 포함한 공개 데이터셋 &amp;amp; &lt;b&gt;LangAuto 벤치마크&lt;/b&gt;를 함께 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bF60Ii/btsMbAfIz9o/xkJkLF6VdzHC7gVHMrVoK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bF60Ii/btsMbAfIz9o/xkJkLF6VdzHC7gVHMrVoK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bF60Ii/btsMbAfIz9o/xkJkLF6VdzHC7gVHMrVoK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF60Ii%2FbtsMbAfIz9o%2FxkJkLF6VdzHC7gVHMrVoK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;548&quot; height=&quot;345&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;345&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;LLM models for Autonomous Driving&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자연어를 이해할 수 있다면 복잡한 환경에서의 고급 추론과 인간과의 효율적인 상호작용 가능.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;복잡한 도심 환경 및 돌발 상황 대처&lt;br /&gt;&lt;/b&gt;- 복잡한&amp;amp;돌발 상황 어려움 &amp;rarr; 승객이나 내비게이션의 지시를 따라 보다 쉽게 해결.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Instruction 반영&lt;br /&gt;&lt;/b&gt;- 작은 물체 감지 한계 &amp;rarr; 승객이 직접 지시를 내릴 수 있어 보다 유연한 대응 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기존 연구의 한계&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM-Driver, DriveLM, GPT-Driver, LanguageMPC 등&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;LLM이 센서 데이터 및 내비게이션 명령을 텍스트 설명으로 변환&lt;/li&gt;
&lt;li&gt;텍스트를 LLM에 입력하여 주행 결정을 생성&lt;/li&gt;
&lt;li&gt;텍스트 기반 주행 결정을 실행 가능한 제어 명령으로 변환&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한계:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서로 다른 LLM이 개별 작업을 수행하기 때문에 &lt;b&gt;end-to-end&amp;nbsp;학습이 어렵다&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;대규모 데이터와 확장성에 한계가 있다&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;센서 데이터의 오류에 취약&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;LMDrive&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 자연어 기반 지시를 따르는 &lt;b&gt;멀티모달 LLM 모델&lt;/b&gt;로, end-to-end &lt;b&gt;closed-loop 자율 주행&lt;/b&gt;을 구현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능 수행:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;카메라-라이다(CAMERA-LiDAR) 센서 데이터를 입력받음&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자연어 기반 내비게이션 및 주행 지시를 이해함&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;직접 차량 제어 신호를 생성하여 실시간 주행 수행&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적용:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사전 학습된 LLM을 freeze하여 기존의 추론 능력을 보존&lt;/li&gt;
&lt;li&gt;카메라-라이다 데이터 인코더 및 학습 가능한 입출력 어댑터 적용&lt;/li&gt;
&lt;li&gt;주행 태스크에 특화된 사전 학습 전략 도입&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Contributions&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;엔드 투 엔드 폐쇄 루프 언어 기반 자율 주행 프레임워크 LMDrive를 제안&lt;br /&gt;&lt;/b&gt;- 멀티모달 센서 데이터와 자연어 명령을 활용하여 실시간 주행 가능&lt;/li&gt;
&lt;li&gt;&lt;b&gt;64K 데이터 클립을 포함한 주행 데이터셋 구축&lt;br /&gt;&lt;/b&gt;- 클립당 내비게이션 지시, 보조 지시, 멀티모달 센서 데이터 및 제어 신호 포함&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LangAuto 벤치마크 제공&lt;br /&gt;&lt;/b&gt;- 잘못된/복잡한 지시 포함 및 도전적인 주행 시나리오 반영&lt;/li&gt;
&lt;li&gt;&lt;b&gt;광범위한 폐쇄 루프 실험을 통해 프레임워크의 효과 검증&lt;br /&gt;&lt;/b&gt;- LMDrive의 성능 분석 및 추가 연구를 위한 insight 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Dataset Generation&lt;/b&gt;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Intelligent Driving Agent를 개발하여 세 가지 입력을 기반으로 driving action 생성&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Multi-view Camera&amp;amp;LiDAR:&lt;/b&gt; 현재 Scene을 인식하고 준수하는 행동 생성.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Navigation Instructions: 차선 변경, 회전 등&lt;/b&gt; 자연어 명령 기반 주행.&lt;br /&gt;&lt;b&gt;- 인간 또는 네비게이션 소프트웨어의 지시를 이해&lt;/b&gt;하고 수행.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Human Notice Instruction&lt;/b&gt;: &lt;b&gt;사용자와 상호작용하며 선호도에 맞게 적응&lt;/b&gt;.&lt;br /&gt;&lt;b&gt;- adversarial events, long-tail events&lt;/b&gt; 대처 가능.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;CARLA Simulator: 실제와 유사한 동적 폐쇄 루프 환경&lt;/b&gt;을 시뮬레이션.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;두 단계로 데이터 수집 진행&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;전문가 에이전트(Expert Agent)로 센서 및 제어 데이터 수집&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수집된 데이터를 네비게이션 및 사용자 지시와 매칭하여 라벨링&lt;/b&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Sensor and Control data collection&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Rule-based Expert Agent 활용.&lt;/li&gt;
&lt;li&gt;약 300만(3M) 주행 프레임 데이터 생성.&lt;/li&gt;
&lt;li&gt;8개 Towns, 2.5K개 Routes, 21가지 환경 조건(날씨, 시간대 포함)에서 실행.&lt;/li&gt;
&lt;li&gt;센서 구성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RGB 카메라 4대 (좌측, 전면, 우측, 후면).&lt;/li&gt;
&lt;li&gt;LiDAR 1대 (64채널, 초당 60만 개 포인트 생성).&lt;/li&gt;
&lt;li&gt;측면 카메라는 각각 60&amp;deg; 기울어짐.&lt;/li&gt;
&lt;li&gt;전면 이미지는 center-crop하여 원거리 신호등 상태 감지용 Focus-view 생성.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Parsing and language annotation&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수집된 데이터 &amp;rarr; 개별 주행 Clip으로 parsing&amp;amp;labeling&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 클립은 하나의 Navigation Instruction과 연관됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1243&quot; data-origin-height=&quot;294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wgvO6/btsMbz8X1Py/ihaIOOBnegJ4UEK8Ncbm80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wgvO6/btsMbz8X1Py/ihaIOOBnegJ4UEK8Ncbm80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wgvO6/btsMbz8X1Py/ihaIOOBnegJ4UEK8Ncbm80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwgvO6%2FbtsMbz8X1Py%2FihaIOOBnegJ4UEK8Ncbm80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1243&quot; height=&quot;294&quot; data-origin-width=&quot;1243&quot; data-origin-height=&quot;294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예: 프레임 T0에서 좌회전 시작 &amp;rarr; 프레임 Tn에서 완료&lt;/li&gt;
&lt;li&gt;$(T_0, T_n)$ 구간을 &quot;다음 교차로에서 좌회전하세요&quot;로 라벨링.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Adversarial Event 발생 시 Notice Instruction 추가&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMyNJ4/btsMbIkuCGU/1W3SBS5r3M9D23VVZmd701/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMyNJ4/btsMbIkuCGU/1W3SBS5r3M9D23VVZmd701/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMyNJ4/btsMbIkuCGU/1W3SBS5r3M9D23VVZmd701/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMyNJ4%2FbtsMbIkuCGU%2F1W3SBS5r3M9D23VVZmd701%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1247&quot; height=&quot;328&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ex) 돌발 상황이 프레임 &lt;b&gt;Ta에서 발생&lt;/b&gt; &amp;rarr; 승객이나 보조 시스템이 경고 메시지를 제공&lt;/li&gt;
&lt;li&gt;결과적으로, 각 클립에는 다음 요소 포함&lt;br /&gt;- 센서 데이터, 제어 신호, 네비게이션 명령, 선택적 Notice Instruction.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;데이터 규모&lt;/b&gt;:&lt;br /&gt;&lt;img style=&quot;caret-color: transparent; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/zcyIu/btsL9qZKwl2/F2EJ1Fn19p2duH555DtBl1/img.png&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;176&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;64K(64,000)개의 Clip&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;464K(464,000)개의 Notice Instruction&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Instruction design&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3가지 네비게이션 명령 유형: Follow / Turn / Others&lt;/li&gt;
&lt;li&gt;1가지 Notice Instruction 유형 포함&lt;/li&gt;
&lt;li&gt;총 56가지 명령어(Instruction) 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Realistic instructional settings&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Diversifying the Instructions - 동일한 의미라도 다양한 표현 방식 적용.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ChatGPT API를 활용하여 각 instruction 유형당 8개 변형 생성.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Incorporating Misleading Instructions - 오류 명령을 포함하여 모델의 Robustness 향상.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ex) 단일 차선 도로에서 &amp;ldquo;Change to left lane&amp;rdquo; 명령은 위험.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Connecting Multiple Instructions - 다중 명령 수행 가능하도록 데이터 구성.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;ldquo;Turn right at this intersection, then go straight to the next intersection and turn right again.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kPQRP/btsL9eyGagR/l0vSIifKIPHRKeuobxrPl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kPQRP/btsL9eyGagR/l0vSIifKIPHRKeuobxrPl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kPQRP/btsL9eyGagR/l0vSIifKIPHRKeuobxrPl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkPQRP%2FbtsL9eyGagR%2Fl0vSIifKIPHRKeuobxrPl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;162&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Instruction design&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3가지 네비게이션 명령 유형: Follow / Turn / Others&lt;/li&gt;
&lt;li&gt;1가지 Notice Instruction 유형 포함&lt;/li&gt;
&lt;li&gt;총 56가지 명령어(Instruction) 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Realistic instructional settings&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Diversifying the Instructions - 동일한 의미라도 다양한 표현 방식 적용.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ChatGPT API를 활용하여 각 instruction 유형당 8개 변형 생성.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Incorporating Misleading Instructions - 오류 명령을 포함하여 모델의 Robustness 향상.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ex) 단일 차선 도로에서 &amp;ldquo;Change to left lane&amp;rdquo; 명령은 위험.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Connecting Multiple Instructions - 다중 명령 수행 가능하도록 데이터 구성.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;ldquo;Turn right at this intersection, then go straight to the next intersection and turn right again.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;Methodology&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Vision Encoder&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;multi-view&amp;amp;multi-modality&lt;/b&gt;를 설계하여 센서 데이터를 encoding&amp;amp;fusion &amp;rarr; visual token 생성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czLQL9/btsMagpizdZ/Hub4dzX6G4VAzK4Flja3cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czLQL9/btsMagpizdZ/Hub4dzX6G4VAzK4Flja3cK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czLQL9/btsMagpizdZ/Hub4dzX6G4VAzK4Flja3cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczLQL9%2FbtsMagpizdZ%2FHub4dzX6G4VAzK4Flja3cK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1204&quot; height=&quot;514&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;sensor encoding 모듈&lt;/b&gt;: 이미지 및 LiDAR 입력을 각각 인코딩한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BEV decoder&lt;/b&gt;: image &amp;amp;point cloud feature을 융합하여 visual tokens을 생성 &amp;rarr; 언어 모델로 전달&lt;/li&gt;
&lt;li&gt;&lt;b&gt;prediction heads&lt;/b&gt;: perception 태스크에 pre-training &amp;rarr; LLM 결합을 위해 encoder의 weight는 frozen&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Sensor Encoding&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이미지 입력&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2D Backbone: ResNet - image feature map 추출&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1차원 flattened tokens으로 변환.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;여러 개의 view에서 얻은 토큰을 융합(fuse)하여 global context를 포괄적으로 이해&lt;/b&gt;할 수 있도록 한다.&lt;/li&gt;
&lt;li&gt;이를 위해, &lt;b&gt;$K_{enc} = 1$개의 &lt;a href=&quot;https://9-coding.tistory.com/entry/Paper-Transformer-Attention-is-All-You-Need&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Transformer&lt;/a&gt;&lt;/b&gt; encoder layer 적용.&lt;/li&gt;
&lt;li&gt;각 레이어는 &lt;b&gt;Multi-Headed Self-Attention&lt;/b&gt;, MLP block, Layer Normalization 포함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;LiDAR 입력&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3D Backbone: PointPillars - raw point cloud 데이터 처리&lt;/li&gt;
&lt;li&gt;각 pillar: &lt;b&gt;0.25m &amp;times; 0.25m&lt;/b&gt; 범위 내의 포인트를 포함하며, &lt;b&gt;ego-centered LiDAR features&lt;/b&gt; 생성&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PointNet 사용하여 feature aggregate &amp;amp; downsample C&amp;times;H&amp;times;W 크기의 feature map&lt;/b&gt; 생성&lt;/li&gt;
&lt;li&gt;이후 &lt;b&gt;BEV query&lt;/b&gt;로 사용.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;BEV Decoder&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;encoding된 sensor features을 &lt;b&gt;BEV decoder&lt;/b&gt;에 전달하여 &lt;b&gt;visual tokens 생성&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$K_{dec} = 3$ 개의 표준 Transformer 레이어&lt;/b&gt;로 설계.&lt;/li&gt;
&lt;li&gt;BEV point cloud features: H &amp;times; W 크기의 queries로 BEV 디코더에 입력&lt;/li&gt;
&lt;li&gt;multi-view image feature와 상호작용(attend)하여 BEV tokens 생성.&lt;/li&gt;
&lt;li&gt;N개의 learnable queries를 BEV 디코더에 추가하여 &lt;b&gt;N개의 waypoint 토큰을 생성&lt;/b&gt;하고,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1개의 학습 가능한 쿼리&lt;/b&gt;를 추가하여 &lt;b&gt;traffic light token 생성&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;세 가지 유형의 시각 토큰(BEV, waypoints, traffic lights)을 LLM)에 입력&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;세부사항&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ResNet의 &lt;b&gt;5번째 스테이지를 feature map으로 사용&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;이후, &lt;b&gt;MLP 레이어를 적용하여 해당 차원을 Q-Former의 입력 차원과 동일하도록 768로 변환&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LiDAR Point Cloud Data&lt;/b&gt; 인코딩을 위해 &lt;b&gt;PointNet 단순화 버전&lt;/b&gt; 사용.&lt;/li&gt;
&lt;li&gt;Q-Former로 입력되는 &lt;b&gt;시각 토큰(Visual Tokens) 구성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;400개의 BEV 토큰&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;5개의 미래 웨이포인트(Future Waypoint) 토큰&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1개의 교통 신호(Traffic Light) 토큰&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;LLM for instruction-following auto driving&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Tokenizer, Q-Former, Adapters를 통해 시각 토큰과 언어 지시를 입력받아 &lt;b&gt;제어 신호를 예측&lt;/b&gt;하고, 주어진 지시가 완료되었는지 판단한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;702&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAnH1q/btsMa5N7aLe/obx12nT9Dk3ii1m1WQI1Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAnH1q/btsMa5N7aLe/obx12nT9Dk3ii1m1WQI1Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAnH1q/btsMa5N7aLe/obx12nT9Dk3ii1m1WQI1Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAnH1q%2FbtsMa5N7aLe%2Fobx12nT9Dk3ii1m1WQI1Q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1201&quot; height=&quot;702&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;702&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLaMA 사용&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LLM은 &lt;b&gt;frozen된 Vision Encoder&lt;/b&gt;가 생성한 센서 토큰을 처리&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자연어 지시를 이해&lt;/b&gt;, &lt;b&gt;필요한 control signal 생성&lt;/b&gt;, &lt;b&gt;주어진 지시가 완료되었는지 예측&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구성요소 추가&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LLM과 &lt;b&gt;instruction, visual input, action prediction&lt;/b&gt; 간의 연결을 위해.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Tokenizer&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Q-Former&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;어댑터(Adapters) 두 개&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Instruction and Visual Tokenization&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;navigation instruction &amp;amp; optional notice instruction이 주어지면, &lt;b&gt;LLaMA tokenizer&lt;/b&gt;를 사용하여 textual tokens으로 변환한다.&lt;/li&gt;
&lt;li&gt;cumulative error 줄이고 temporal consistency 높이기 위해, &lt;b&gt;$T_{max}$ 개의 과거 센서 정보를 활용&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;각 프레임의 multi-view 및 multi-modality 센서 입력&lt;/b&gt;을 처리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;사전 학습된 비전 인코더&lt;/b&gt;를 사용하여 visual tokens 생성.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;H &amp;times; W 크기의 BEV 토큰&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;N개의 waypoint 토큰&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1개의 traffic light 토큰&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Visual Token을 줄이기 위해, &lt;b&gt;BLIP-2의&lt;/b&gt; &lt;b&gt;Q-Former를 사용&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;BLIP-2의 모델 아키텍처 및 pre-trained weights 활용&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;M개의 learnable queries를 사용하여 visual token을 cross-attention layer 통해 압축.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;각 프레임의 visual token 수를 M개로 감소&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2-layer MLP Adapter&lt;/b&gt;: Q-Former가 생성한 토큰을 LLM 언어 토큰과 동일한 차원으로 변환&amp;amp;입력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Action Prediction&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;instruction &amp;amp; visual token의 sequence를 바탕으로 action tokens 예측&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2-layer MLP 어댑터&lt;/b&gt;를 사용하여 &lt;b&gt;미래 waypoints 예측&lt;/b&gt;, &lt;b&gt;주어진 지시가 완료되었는지 나타내는 flag를 출력&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Training: &lt;b&gt;각 과거 프레임에 대한 예측을 수행하여 supervision signal를 강화&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;inference: 최신 프레임에 대한 예측만 실행&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;control signal 생성&lt;/b&gt;하기 위해 &lt;b&gt;LBC 방식&lt;/b&gt;을 따라 &lt;b&gt;두 개의 PID 컨트롤러&lt;/b&gt; 활용.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;가로 방향(latitudinal) 제어&lt;/b&gt;: 차량의 진행 방향을 조정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;세로 방향(longitudinal) 제어&lt;/b&gt;: 차량의 속도를 조정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Training Objectives&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM 및 관련 구성 요소를 finetuning할 때, 두 가지 loss terms 사용.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;L1 Waypoint Loss&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;분류 손실(Classification Loss, Cross-Entropy)&lt;/b&gt;: 현재 프레임이 주어진 지시를 완료했는지 여부를 판별&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Training Details&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1) Vision Encoder Pre-training Stage&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비전 인코더만 &lt;b&gt;single frame의 센서 데이터&lt;/b&gt;를 입력으로 받아 학습.&lt;/li&gt;
&lt;li&gt;학습 데이터셋은 &lt;b&gt;섹션 3에서 수집된 데이터&lt;/b&gt;를 활용한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Instruction annotation 과정에서 일부 프레임이 제거될 수 있어 raw dataset의 약 300만 개(3M frames) 프레임 데이터를 사용&lt;/b&gt;하여 사전 학습.&lt;/li&gt;
&lt;li&gt;Prediction Headers: &lt;b&gt;Object Detection, Traffic Light Status Classification, Future Waypoint Prediction pre-training&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Settings&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AdamW optimizer + Cosine Learning Rate Scheduler&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Learning Rate&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Transformer Encoder &amp;amp; 3D Backbone: $\frac{\text{BatchSize}}{512} \times 5e^{-4}$&lt;/li&gt;
&lt;li&gt;2D Backbone: &lt;b&gt;$\frac{\text{BatchSize}}{512} \times 2e^{-4}$&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;총 35 에포크(epoch) 학습, 초기 5 에포크는 웜업(Warm-up).&lt;/li&gt;
&lt;li&gt;Augmentation: RGB 이미지에 random scaling(0.9~1.1) &amp;amp; Color Jittering&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2) Instruction-finetuning Stage&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Q-Former&amp;amp;Adapters만 학습&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;sequence of frames 입력, 훈련 시에는 고정된 Tmax 시퀀스 길이를 설정하여 batch 데이터 구성.&lt;/li&gt;
&lt;li&gt;instruction-following 데이터 사용.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;vision encoder:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;freeze &amp;amp; prediction headers 제거&lt;/li&gt;
&lt;li&gt;visual token을 생성하여 LLM에 입력하는 역할 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Settings&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Cosine Learning Rate Scheduler&lt;/li&gt;
&lt;li&gt;Batch Size = 32일 때, Learning Rate = $e^{-4}$&lt;/li&gt;
&lt;li&gt;총 15 epoch 학습, 초기 2000 iteration 동안 Warm-up 적용.&lt;/li&gt;
&lt;li&gt;Weight Decay = 0.07 설정.&lt;/li&gt;
&lt;li&gt;최대 기록 가능한 과거 프레임 수 (Maximum Historic Horizon, TmaxT_{\text{max}}Tmax) = 40
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 클립이 40 프레임을 초과하면 최근 40 프레임만 유지하여 학습.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Misleading Instructions 학습&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;잘못된 지시를 거부&lt;/b&gt;할 수 있도록.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;잘못된 지시가 주어진 후 약 1초 뒤&lt;/b&gt; 해당 데이터를 &amp;lsquo;&lt;b&gt;completed&amp;rsquo;로 레이블링&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Temporal data sampling &amp;amp; augmentation&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 수집 frequency는 약 10Hz로, 인접한 프레임들의 데이터가 매우 유사할 가능성이 크다.&lt;/li&gt;
&lt;li&gt;video prediction 기법을 참고하여, fixed interval로 훈련 프레임 샘플링&lt;/li&gt;
&lt;li&gt;temporal augmentation을 적용하여,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;훈련 프레임 random shift&lt;/li&gt;
&lt;li&gt;이동 범위는 고정된 샘플링 간격보다 작도록 설정하여 모델 일반화 향상.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfk8vd/btsL9PZWF9x/MP8z8yqCabgichtx0rNf71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfk8vd/btsL9PZWF9x/MP8z8yqCabgichtx0rNf71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfk8vd/btsL9PZWF9x/MP8z8yqCabgichtx0rNf71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdfk8vd%2FbtsL9PZWF9x%2FMP8z8yqCabgichtx0rNf71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;642&quot; height=&quot;334&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;334&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫번째&amp;amp;두번째: 모델이 각각의 지시에 따라 다른 웨이포인트를 예측.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 번째: 잘못된 지시. 적절히 거부하여 속도를 줄이고 상황에 맞는 안전한 경로를 생성.&lt;/p&gt;
&lt;h1&gt;LangAuto Benchmark&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Language-guided Instructions을 사용한 자율 주행 성능 평가 &lt;b&gt;CARLA 벤치마크&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 CARLA 벤치마크: Discrete Driving Commands 또는 Target Waypoints 통해 주행 유도.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;오직&lt;/b&gt; Natural Language Navigation Instructions &amp;amp; &lt;b&gt;선택적 Notice Instructions&lt;/b&gt;만 제공.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;8개 CARLA Town&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;7 Weather Conditions&lt;/b&gt;: Clear, Cloudy, Wet, MidRain, WetCloudy, HardRain, SoftRain.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;3 Time Conditions&lt;/b&gt;: Night, Noon, Sunset.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;LangAuto track&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주어진 Route에 따라 Navigation Instructions 제공.&lt;/li&gt;
&lt;li&gt;차량의 현재 위치에 따라 지침이 업데이트됨.&lt;/li&gt;
&lt;li&gt;경로 길이에 따라 Sub-tracks으로 나뉨:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;LangAuto&lt;/b&gt;: 500m 이상 긴 경로.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LangAuto-Short&lt;/b&gt;: 150m~500m 중간 길이 경로.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LangAuto-Tiny&lt;/b&gt;: 150m 이하의 짧은 경로.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;LangAuto-Notice track&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;LangAuto track&lt;/b&gt;에 추가적으로 &lt;b&gt;Notice Instructions&lt;/b&gt;를 제공.&lt;/li&gt;
&lt;li&gt;현실에서 승객이나 보조 시스템이 제공하는 &lt;b&gt;긴급 상황 알림&lt;/b&gt;을 시뮬레이션.&lt;/li&gt;
&lt;li&gt;long-trail complex or adversarial scenarios에서 발생&lt;/li&gt;
&lt;li&gt;&lt;b&gt;adversarial events 발생 시 공지(notice instructions) 제공&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;AI 에이전트가 &lt;b&gt;공지 정보를 실시간으로 활용&lt;/b&gt;하여 충돌 및 교통법규 위반 감소 &lt;b&gt;(안전성 향상).&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;LangAuto-Sequential track&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;LangAuto 트랙&lt;/b&gt;을 기반으로 10%의 &lt;b&gt;연속된 2~3개의 지시문을 하나로 합침.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;현실적인 다중 문장 네비게이션 시나리오를 반영.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Misleading Instructions&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AI가 잘못된 지침을 따르지 않고 &lt;b&gt;안전한 판단을 내리는지&lt;/b&gt;를 테스트.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;약 5%의 확률&lt;/b&gt;로 1~2초 동안 &lt;b&gt;잘못된 지시문&lt;/b&gt;이 제공됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Metrics&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Route Completion (RC)&lt;/b&gt;: 전체 경로 길이 중 완료된 비율을 나타냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Infraction Score (IS)&lt;/b&gt;: 에이전트가 발생시킨 위반 사항(충돌 또는 교통 법규 위반)을 측정.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Driving Score (DS)&lt;/b&gt;: RC와 IS의 곱으로, 주행 진행 상황과 안전성을 종합적으로 평가&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Experiments&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LangAuto 벤치마크에서 제안된 방법을 CARLA 시뮬레이터(버전 0.9.10.1)에서 구현&amp;amp;평가&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;LLM Backbones&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cARkB8/btsL9bBZwRm/p57v4WOwDGJiTXlyFrzxk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cARkB8/btsL9bBZwRm/p57v4WOwDGJiTXlyFrzxk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cARkB8/btsL9bBZwRm/p57v4WOwDGJiTXlyFrzxk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcARkB8%2FbtsL9bBZwRm%2Fp57v4WOwDGJiTXlyFrzxk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;255&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;사전 학습된 멀티모달 LLM&lt;/b&gt;을 활용하는 것이 자율주행에서 중요함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;인스트럭션 파인튜닝&lt;/b&gt;이 성능 향상에 기여&lt;/li&gt;
&lt;li&gt;&lt;b&gt;랜덤 초기화된 7B LLM 모델&lt;/b&gt;은 훈련 데이터가 같아도 제대로 주행하지 못함 &amp;rarr; &lt;b&gt;사전 학습 및 파인튜닝의 필요성&lt;/b&gt; 증명.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Module Design&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t7wOl/btsMaDkbcuj/jpWHKNobODo9yBNiPzGZd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t7wOl/btsMaDkbcuj/jpWHKNobODo9yBNiPzGZd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t7wOl/btsMaDkbcuj/jpWHKNobODo9yBNiPzGZd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft7wOl%2FbtsMaDkbcuj%2FjpWHKNobODo9yBNiPzGZd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;168&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Q-Former 제거&lt;/b&gt;: BEV 토큰 수를 줄이지 않고 4&amp;times;4로 다운샘플링 - &lt;b&gt;Driving Score 36.2 &amp;rarr; 31.7&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BEV 토큰 미사용&lt;/b&gt;: 장애물 및 도로 구조 인식이 어려워져 &lt;b&gt;Infraction Score 0.81 &amp;rarr; 0.72&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비전 인코더 사전 학습 미실시&lt;/b&gt;: 성능 크게 하락 &lt;b&gt;Driving Score: 16.9&lt;/b&gt; &amp;rarr; &lt;b&gt;비전 인코더 사전 학습 필수&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;LangAuto-Notice Benchmark&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KBKJp/btsL8WkEA9d/q4O6wgehGqNSdoxkjWkOHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KBKJp/btsL8WkEA9d/q4O6wgehGqNSdoxkjWkOHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KBKJp/btsL8WkEA9d/q4O6wgehGqNSdoxkjWkOHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKBKJp%2FbtsL8WkEA9d%2Fq4O6wgehGqNSdoxkjWkOHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1192&quot; height=&quot;209&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;LangAuto-Sequential Benchmark&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n2zfa/btsMaBMWNve/QPPmXHHuk286AccmlWijoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n2zfa/btsMaBMWNve/QPPmXHHuk286AccmlWijoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n2zfa/btsMaBMWNve/QPPmXHHuk286AccmlWijoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn2zfa%2FbtsMaBMWNve%2FQPPmXHHuk286AccmlWijoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;170&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AI 에이전트가 &lt;b&gt;완료된 지시와 미완료 지시를 구별해야 하는 추가적인 시간적 인식 능력 필요&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;LLaVA 및 Vicuna 기반 모델 모두 &lt;b&gt;Driving Score &amp;amp; Route Completion 감소&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Paper</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/123</guid>
      <comments>https://9-coding.tistory.com/entry/Paper-LMDrive-Closed-Loop-End-to-End-Driving-with-Large-Language-Models#entry123comment</comments>
      <pubDate>Fri, 7 Feb 2025 14:39:51 +0900</pubDate>
    </item>
    <item>
      <title>[Paper] (PPGeo) Pre-training for Autonomous Driving via Self-supervised Geometric modeling</title>
      <link>https://9-coding.tistory.com/entry/Paper-PPGeo-Pre-training-for-Autonomous-Driving-via-Self-supervised-Geometric-modeling</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;self-supervised learning 기반 policy pre-training 프레임워크&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;visuomotor 기반 자율 주행의 sample inefficiency 문제를 완화&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Large Unlabeled&amp;amp;uncalibrated YouTube 주행 동영상을 활용하여 &lt;b&gt;3D Geometric Scene modeling&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pseudo label을 사용하지 않고 학습.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주행과 관련된 visual input&lt;/b&gt;만 효과적으로 집중.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Visuomotor Policy Learning&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;센서에서 얻은 raw data를 입력으로 받아, 적절한 행동을 예측하는 policy 학습 과정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;visual perception과 control 모듈을 &lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-3-%EA%B0%9C%EB%85%90-%EB%B0%8F-%ED%8A%B9%EC%A7%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;end-to-end 방식&lt;/b&gt;&lt;/a&gt;으로 동시에 학습.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기부터 학습하는 것은 어렵고, &lt;b&gt;방대한 양의 라벨이 있는 데이터나 환경과의 상호작용이 필요&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;sample efficiency가 낮아, 학습에 매우 많은 데이터가 필요&lt;/li&gt;
&lt;li&gt;입력 데이터의 역동성과 가변성이 매우 크기 때문에 &lt;b&gt;view&amp;amp;translation 불변성을 확보하기 어렵다&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Visuomotor driving policy learning&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7al9y/btsL6kMqJBA/ZzJkrmFZetDIl1bkLdueK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7al9y/btsL6kMqJBA/ZzJkrmFZetDIl1bkLdueK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7al9y/btsL6kMqJBA/ZzJkrmFZetDIl1bkLdueK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7al9y%2FbtsL6kMqJBA%2FZzJkrmFZetDIl1bkLdueK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;902&quot; height=&quot;204&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;204&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(a) 불필요한 배경 정보 (Static Obstacles &amp;amp; Background)&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 도로 주변의 정적인 물체는 시각적 입력이지만 주행 정책(운전)에 직접적인 영향을 미치지 않음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(b) 결정적이지만 인식이 어려운 정보 (Crucial Yet Hard-to-Recognize Cues)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 신호등은 운전 제어 출력에 결정적인 영향을 미치지만 매우 작고 배경과 쉽게 구별되지 않음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(c) 조명 및 날씨 변화에 대한 견고성 (Robustness to Light &amp;amp; Weather Conditions)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 주행 환경은 다양한 조명 및 날씨 조건에서 변화 &amp;rarr; 시각적 입력 달라짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Visual Encoder: 관련 없는 정보 무시 + 중요하지만 작은 물체 효과적 학습 + 변화에 강인&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;기존 방법의 한계&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Pre-training&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ImageNet, Contrastive Learning, MIM, Vision-Language Pre-training 등&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;입력 데이터에는 불필요한 정보(노이즈)가 포함됨&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예: 배경 건물, 멀리 있는 차량, 고정된 장애물 &amp;rarr; 운전 결정에는 크게 영향을 주지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;중요한 정보(traffic signal 등)를 효과적으로 학습해야 함&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 기법 한계:&lt;/b&gt; 일반적인 시각적 특성 학습에 초점 &amp;rarr; 자율주행에 필요한 &lt;b&gt;Driving Policy 학습 부족&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;복잡한 geometric relationships 고려해야 함&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다양한 환경에서 강건한 인식이 필요&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;view transformation&amp;amp;translation 중요&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Pseudo-labeling&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 데이터셋을 활용하여 신뢰도가 낮은 예측값을 레이블로 사용하여 학습하는 방법&lt;/li&gt;
&lt;li&gt;하지만 &lt;b&gt;모델이 부정확하면 잘못된 라벨이 학습됨 (오차 누적)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특히 &lt;b&gt;지리적 차이, 교통 환경 차이(domain gap)&lt;/b&gt; 가 클 경우 더욱 취약&lt;/li&gt;
&lt;li&gt;&lt;b&gt;예:&lt;/b&gt; 미국에서 학습된 모델을 한국에서 적용하면, 교통 규칙 차이로 인해 성능 저하&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;PPGeo: Policy Pre-training via Geometric modeling&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PPGeo는 &lt;b&gt;완전한 자율주행을 위한 새로운 사전 학습 기법&lt;/b&gt;으로, &lt;b&gt;기존의 Pseudo-labeling 접근법을 사용하지 않고, 완전히 Self-supervised 방식으로 학습&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 방법과의 차이점:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 방법: 일반적인 컴퓨터 비전 기법을 활용하여 운전 정책 학습&lt;/li&gt;
&lt;li&gt;PPGeo: &lt;b&gt;3D 공간 정보를 활용하여 운전 정책을 직접적으로 반영한 특징을 학습&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2 Stage Approach&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Stage 1: 연속된 프레임을 활용한 geometry 학습&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 개의 연속된 이미지(프레임)를 입력으로 사용하여 &lt;b&gt;Depth, Ego-motion, Camera Intrinsics 예측&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Stage 2: 단일 프레임 기반 Ego-motion prediction 학습&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;한 개의 이미지(단일 프레임)만을 활용하여 Ego-motion을 예측&lt;/li&gt;
&lt;li&gt;Stage 1에서 학습한 Depth 및 Camera Intrinsics 네트워크를 freeze하고, Visual Encoder를 학습&lt;/li&gt;
&lt;li&gt;visual encoder가 현재 시각적 관찰만을 기반으로 미래의 ego-motion을 예측하고, photometric error를 최적화함으로써 주행 정책 표현을 학습한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Visual Encoder는 단일 프레임만 보고도 자율주행과 관련된 핵심 정보(운전 정책 정보)를 추출할 수 있음&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Contributions&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기존의 사전 학습 방법보다 자율주행에 적합한 정보를 효과적으로 학습&lt;/b&gt;하는 방식을 제안&lt;br /&gt;- driving poilcy와 관련된 특징을 효과적으로 학습하기 위해 geometric modeling 활용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Self-supervised learning&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Pseudo-label 없이 완전한 Self-supervised 학습을 실현&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;대규모 데이터에서 Pre-training을 최대로 활용 가능&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;visual encoder&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;3D 기하학적 모델링을 활용한 Visual Encoder 학습으로 운전 정책 정보 학습 강화&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단일 프레임 기반 Ego-motion 예측 가능 &amp;rarr; 다양한 다운스트림 태스크 적용 용이&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;성능 개선&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;적은 데이터&lt;/b&gt;로도 성능이 2% ~ 100% 이상 향상&lt;/li&gt;
&lt;li&gt;복잡한 도로 상황에서도 높은 일반화 성능을 보임&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Method&lt;/b&gt;&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsBLLq/btsL74HYFMQ/lYKsknoaCzGZS4b7C9iQKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsBLLq/btsL74HYFMQ/lYKsknoaCzGZS4b7C9iQKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsBLLq/btsL74HYFMQ/lYKsknoaCzGZS4b7C9iQKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsBLLq%2FbtsL74HYFMQ%2FlYKsknoaCzGZS4b7C9iQKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;808&quot; height=&quot;412&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;412&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;unlabeled 영상에서 self-supervised learning을 통해 2 steps로 visual encoder pre-training&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;visual encoder: single-frame input 기반으로 ego-motion을 예측함으로써 driving policy 관련 정보를 효과적으로 인코딩.&lt;/li&gt;
&lt;li&gt;라벨 없이 이러한 목표를 달성하는 것은 쉽지 않기 때문에, &lt;b&gt;시각 인코더는 선행 단계(Stage One)의 도움을 받아 학습된다&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;이러한 방식으로 학습된 시각 인코더는 &lt;b&gt;미세 조정(fine-tuning)하여 다양한 다운스트림 작업(downstream tasks)에 적용&lt;/b&gt;할 수 있다 (&lt;b&gt;단계 b, Stage b&lt;/b&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Overview&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;목표: &lt;b&gt;Visual Encoder $\phi(x)$ pre-train&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;raw image input을 주행 의사 결정에 중요한 정보를 포함하는 compact representation으로 변환&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;표현은 policy $&amp;pi;(\phi(x))$에 의해 활용되어 driving tasks 수행.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1640&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OhW0m/btsL5NOWLea/NHTpiyBuXJaKHTwS8XIlgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OhW0m/btsL5NOWLea/NHTpiyBuXJaKHTwS8XIlgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OhW0m/btsL5NOWLea/NHTpiyBuXJaKHTwS8XIlgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOhW0m%2FbtsL5NOWLea%2FNHTpiyBuXJaKHTwS8XIlgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1640&quot; height=&quot;1000&quot; data-origin-width=&quot;1640&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Stage 1: Self-supervised Geometric Modeling&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Target Image &amp;amp; Source Image&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Target Image $I_t$&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 시점 t에서의 &lt;b&gt;기준이 되는 이미지&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;이 이미지를 기반으로 &lt;b&gt;깊이(Depth) 및 자기 운동(Ego-motion)을 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ex) 운전자의 현재 시점에서 보는 이미지&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Source Image $I_{t'}$&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Target Image를 복원하기 위해 사용하는 참조 이미지.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;현재 프레임의 앞뒤 프레임을 사용&lt;/b&gt; $t' \in \{t-1, t+1\}$&lt;/li&gt;
&lt;li&gt;Target Image와 비교하여 깊이 및 ego-motion 정보를 추정하는 데 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Self-Supervised Learning&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Source Image를 활용한 Target Image 복원을 통해 &lt;b&gt;운전에 필요한 핵심 시각적 특징을 학습&lt;/b&gt;하여 &lt;b&gt;강인한(robust) 인코더&lt;/b&gt;를 구축&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Source Image에서 Target Image를 잘 재구성하면 모델이 3D 구조와 Ego-motion을 잘 이해한 것임.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;학습 목표&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;라벨 없이 대규모 유튜브 운전 영상 학습&lt;/li&gt;
&lt;li&gt;Source Image를 활용해 Target Image를 예측하고 차이를 최소화&lt;/li&gt;
&lt;li&gt;3D 기하학적 변환(Depth + Pose)을 이용해 Source Image에서 Target Image를 복원&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;학습 과정: &lt;/b&gt;&lt;b&gt;Target Image 재구성을 통해 Depth와 Ego-motion 학습&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Ego-motion 추론&lt;/b&gt; (PoseNet) &amp;rarr; 차량의 움직임(6-DoF) 예측&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Depth 정보 학습&lt;/b&gt; (DepthNet) &amp;rarr; 도로, 건물, 장애물 등의 깊이 정보 추정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다양한 환경에서도 강인한 시각 인코더 학습&lt;/b&gt; (조명, 날씨, 환경 변화에 대응)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Target image $I_t$&lt;/b&gt; 와 연속된 source image &lt;b&gt;$I_{t^{'}}$&lt;/b&gt; 를 입력으로 받아 &lt;b&gt;joint estimation&lt;/b&gt;.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Target image의 depth&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;카메라 내부 intrinsics&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;두 프레임 간 6-DoF ego-motion&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 estimation을 가지고,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Scene의 3D geometry 모델링&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;source image의 pixel을 projecting하여 target image를 reconstruct&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Pixel-wise Correspondence&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3D geometry를 활용하여 depth와 ego-motion 학습&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\mathbf{p}{t'} = \mathbf{K} \mathbf{T}{t \to t'} \mathbf{D}_t(\mathbf{p}_t) \mathbf{K}^{-1} \mathbf{p}_t,$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목표 이미지 $I_t$와 소스 이미지 $I_{t'}$ 간 pixel-wise correspondence&lt;/li&gt;
&lt;li&gt;$\mathbf{p}t$&amp;amp;$\mathbf{p}{t'}$: 각각 $I_t$와 $I_{t'}$의 &lt;b&gt;homogeneous coordinates&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;$\mathbf{K}$: predicted camera &lt;b&gt;intrinsic matrix&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;$\mathbf{D}_t(\mathbf{p}_t)$ : &lt;b&gt;$I_t$ 내 픽셀 $p_t$의 predicted depth value &amp;rarr; DepthNet&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;$T_{t \to t'}$: Predicted ego-motion? &amp;rarr; PoseNet&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해 target image $I_{t' \to t}$를 $I_{t'}$의 픽셀을 사용하여 재구성할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;photometric reconstruction error를 최소화하는 방식으로 최적화&lt;/b&gt; 진행.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;DepthNet &amp;amp; PoseNet 구조&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;DepthNet: encoder-decoder 구조, 입력 이미지의 depth map을 추정&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PoseNet&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;두 개의 이미지를 stack하여 입력&lt;/b&gt;한 후,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;인코더의 bottleneck feature를 이용해&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;camera intrinsics&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자기 운동(ego-motion, 6-DoF)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;를 각각 예측하는 &lt;b&gt;두 개의 MLP-based heads 사용.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Camera Intrinsics Estimation&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;광학 중심(optical center) $(c_x, c_y)$&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;초점 거리(focal lengths) $(f_x, f_y)$&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;regression을 통해 추정.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연속된 두 프레임 간 변화를 판단하여 ego-motion 추론.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Stage 2: Visuomotor Policy Pre-training&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PoseNet을 downstream driving policy learning task를 위해 visual encoder $\phi(x)$로 대체&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;stage 1이 끝나면 &lt;b&gt;DepthNet과 PoseNet이 주행 영상 데이터에 적절히 fit된 상태&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;이제 시각 인코더는 &lt;b&gt;단일 프레임 이미지만을 입력으로 받아 ego-motion 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;single visual input 기반으로 ego-motion을 예측하는데, 이때 &lt;b&gt;주행 정책 관련 정보&lt;/b&gt;를 학습하는 데 집중한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Visual Encoder&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 driving policy 학습&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;연속된 두 프레임 간 ego-motion이 현재 시점의 driving decision or action과 직접적 관련&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$I_t$만을 사용하여 $T_{t \to t+1}$ 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$I_{t-1}$을 사용하여 $T_{t \to t+1}$을 예측&lt;/b&gt;한 후, 이를 inverse operation하여 검증&lt;/li&gt;
&lt;li&gt;&lt;b&gt;최적화: photometric reconstruction error 최소화&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DepthNet &amp;amp; intrinsics estimation: Frozen (backpropagation X)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;효과&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;모든 픽셀이 시각 인코더의 학습을 위한 supervision 제공&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;일부 픽셀에서의 깊이 추정 오류가 있더라도, 다른 정확한 픽셀 정보가 이를 보완하여 &lt;b&gt;global optimization 효과&lt;/b&gt;를 얻을 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Visual Encoder vs. poseNet&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PoseNet의 pseudo motion label을 활용하여 visual encoder를 직접 supervise.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;상대적으로 sparse하여&lt;/b&gt; 픽셀 단위 supervision 부족&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PoseNet 기반 직접 지도 학습은 noise &amp;amp; prediction inaccuracy 영향을 크게 받을 위험&lt;/b&gt;이 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;결과 및 활용&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;다양한 주행 영상을 통해 driving policy 학습에 필요한 knowledge 습득&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;visual encoder의 initial weights: downstream visuomotor 자율 주행 작업에 활용&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가적으로, &lt;b&gt;대규모 보정되지 않은(uncalibrated) 비디오 데이터에서 학습된 DepthNet과 PoseNet은 depth estimation 및 odometry estimation 작업에도 적용 가능&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Loss Function&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Photometric Loss&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재구성된 이미지 $I_{t' \to t}$와 원본 이미지 $I_t$ 간 차이 최소화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\ell_{\text{pe}} = \cfrac{\alpha}{2} (1 - \text{SSIM}(I_t, I_{t \to t'})) + (1 - \alpha) \ell_1(I_t, I_{t \to t'}),$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\text{SSIM}(x, y) = \cfrac{(2\mu_x\mu_y + C_1)(2\sigma_{xy} + C_2)}{(\mu_x^2 + \mu_y^2 + C_1)(\sigma_x^2 + \sigma_y^2 + C_2)}$&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Smoothness Loss&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;depth map이 부드럽게 변화하도록 유도하며&lt;/b&gt; &lt;b&gt;edge 부분에서는 급격한 변화 허용&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;depth map이 지나치게 요동치면 모델이 잘못 학습할 수 있음 &amp;rarr; &lt;b&gt;깊이 변화량 줄이는 것&lt;/b&gt;이 목적&lt;/li&gt;
&lt;li&gt;&lt;b&gt;depth 변화가 실제로 큰 부분에서는 인식하도록 하기 위해 이 변화량 앞에 $e^{-|\partial_x I_t|}$를 곱함&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;밝기 변화($|\partial_x I_t|$)가 크면 (edge) &lt;b&gt;$e^{-|\partial_x I_t|} \approx 0$ &amp;rarr; 깊이 변화 허용&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;밝기 변화($|\partial_y I_t|$)가 작으면 (smooth region) &lt;b&gt;$e^{-|\partial_x I_t|} \approx 1$ &amp;rarr; 깊이 변화 억제&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\ell s = |\partial_x d_t^| e^{-|\partial_x I_t|} + |\partial_y d_t^| e^{-|\partial_y I_t|},$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$d_t^&amp;lowast;$ : 예측된 Depth Map&lt;/li&gt;
&lt;li&gt;$I_t$ : 현재 프레임의 이미지&lt;/li&gt;
&lt;li&gt;$\partial_x, \partial_y$ : x/y 방향(수평/수직)으로 미분&lt;/li&gt;
&lt;li&gt;$|\partial_x d_t^|, |\partial_y d_t^|$ : 깊이 맵의 x/y 방향 변화량 (수평/수직 방향 깊이 변화)&lt;/li&gt;
&lt;li&gt;$|\partial_x I_t|, |\partial_y I_t|$ : 이미지 $I_t$ 의 x/y 방향 변화량 (이미지 경계 검출)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로, self-supervised depth estimation을 개선하기 위해 minimum reprojection loss와 auto-masking scheme 추가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Experiments&lt;/b&gt;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;데이터셋&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Unlabeled YouTube Driving video&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;다양한 주행 조건 포함 (지리적 위치, 날씨 변화 등)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;총 80만 개 프레임&lt;/b&gt; 샘플링 (1Hz, 즉 1초당 1프레임)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;First Stage:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;30 epochs&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Optimizer&lt;/b&gt;: Adam&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Initial Learning Rate&lt;/b&gt;: &lt;b&gt;10⁻⁴ &amp;rarr; 25 epochs 후 10⁻⁵로 감소&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Second Stage (Encoder Training)&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;20 epochs&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Optimizer&lt;/b&gt;: AdamW&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Cyclic Learning Rate Scheduler: 10⁻⁶ ~ 10⁻⁴&lt;/b&gt; 사이에서 변동&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;공통 설정&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Batch Size&lt;/b&gt;: &lt;b&gt;128&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Data Augmentation&lt;/b&gt;: &lt;b&gt;ColorJitter/ RandomGrayScale&lt;/b&gt; / &lt;b&gt;GaussianBlur&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Baselines&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Random&lt;/b&gt;: Kaiming Initialization&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageNet&lt;/b&gt;: ImageNet 데이터셋 (Deng et al., 2009)으로 사전 학습된 모델 사용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MIM (Masked Image Modeling)&lt;/b&gt;: SimMIM (Xie et al., 2022) 방법 사용 (랜덤 패치 마스킹 후 복원)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/Paper-MoCo-Momentum-Contrast-for-Unsupervised-Visual-Representation-Learning-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;MoCo&lt;/b&gt;&lt;/a&gt;: MoCo-v2 (Chen et al., 2020c) 사용하여 YouTube 주행 영상에서 대조 학습&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ACO&lt;/b&gt;: Action-Conditioned Contrastive Learning (Zhang et al., 2022b) 방법 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Steering Angle을 기반으로 MoCo-v2 위에 추가 학습 진행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/Paper-SelfD-Self-Learning-Large-Scale-Driving-Policies-From-the-Web&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;SelfD&lt;/b&gt;&lt;/a&gt;: 단순한 사전 학습이 아니라, &lt;b&gt;각 태스크별 정책 모델을 학습&lt;/b&gt;하여 비교
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Task 데이터 &amp;rarr; YouTube 데이터 (Pseudo Label) &amp;rarr; Task 데이터 Fine-Tuning 순으로 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Downstream Autonomous Driving Tasks&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;CARLA 환경에서 3가지 imitation learning 기반 closed-loop 주행&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CARLA 환경에서 1가지 reinforcement learning 기반 task&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;nuScenes 데이터셋을 활용한 1가지 open-loop 계획&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c47Ld1/btsL7PRH2zK/cjAJhcYvNxd3Aimewmj6x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c47Ld1/btsL7PRH2zK/cjAJhcYvNxd3Aimewmj6x0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c47Ld1/btsL7PRH2zK/cjAJhcYvNxd3Aimewmj6x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc47Ld1%2FbtsL7PRH2zK%2FcjAJhcYvNxd3Aimewmj6x0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;757&quot; height=&quot;250&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1) Imitation Learning 기반 주행 태스크 (CARLA)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Navigation&lt;/b&gt; (기본 네비게이션)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CoRL2017 benchmark 기반&lt;/li&gt;
&lt;li&gt;Town01에서 훈련, Town02에서 테스트 (새로운 날씨 환경 적용)&lt;/li&gt;
&lt;li&gt;4K~40K개의 훈련 데이터 사용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;평가 지표&lt;/b&gt;: Success Rate&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zYK1G/btsL7AtHPNi/x9SndEwcq79p6J1KKA3RQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zYK1G/btsL7AtHPNi/x9SndEwcq79p6J1KKA3RQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zYK1G/btsL7AtHPNi/x9SndEwcq79p6J1KKA3RQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzYK1G%2FbtsL7AtHPNi%2Fx9SndEwcq79p6J1KKA3RQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;236&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Navigation Dynamic&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Navigation 태스크와 동일하지만 &lt;b&gt;다른 차량 및 동적 객체가 존재&lt;/b&gt;하는 환경에서 평가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D4qw1/btsL50UZYFj/wShqD4BSSQBD6R1gxyjFtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D4qw1/btsL50UZYFj/wShqD4BSSQBD6R1gxyjFtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D4qw1/btsL50UZYFj/wShqD4BSSQBD6R1gxyjFtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD4qw1%2FbtsL50UZYFj%2FwShqD4BSSQBD6R1gxyjFtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;229&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Leaderboard Town05-long&lt;/b&gt; (CARLA LeaderBoard)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Town01, 03, 04, 06에서 학습 후 Town05에서 평가 (보지 못한 환경에서 테스트)&lt;/li&gt;
&lt;li&gt;ACO는 Steering Angle 정보만 학습했기 때문에, 복잡한 환경에서 성능이 낮음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;평가 지표: Driving Score&lt;/b&gt; = Route Completion &amp;times; Infraction Score&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZ5QS4/btsL8IEzQAW/ZcbRITuW6SsMsDw8KIoWoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZ5QS4/btsL8IEzQAW/ZcbRITuW6SsMsDw8KIoWoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZ5QS4/btsL8IEzQAW/ZcbRITuW6SsMsDw8KIoWoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ5QS4%2FbtsL8IEzQAW%2FZcbRITuW6SsMsDw8KIoWoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;762&quot; height=&quot;172&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2) 강화 학습 기반 주행 태스크 (CARLA)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Proximal Policy Optimization (PPO) 기반 강화 학습&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CILRS 모델을 PPO 알고리즘으로 학습&lt;/li&gt;
&lt;li&gt;pre-train된 인코더를 freeze하여, 사전 학습된 표현 학습이 강화 학습 성능에 미치는 영향을 분석&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3) nuScenes 기반 경로 계획 (Planning)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;실제 주행 데이터 기반의 Trajectory Planning 실험&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3초 후의 차량 궤적을 예측 (0.5Hz 샘플링)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;평가 지표&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GT (Ground Truth) 궤적과의 비교 (예측 정확도)&lt;/li&gt;
&lt;li&gt;Collision Rate (충돌 비율)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3) 강화 학습 기반 실험 (PPO)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사전 학습된 인코더를 &lt;b&gt;Freeze(동결)&lt;/b&gt; 한 경우에도 PPGeo가 우수한 성능을 유지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;즉, PPGeo가 더 나은 특징 표현(Feature Representation)을 학습하고 있음을 증명&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4) nuScenes Trajectory Planning&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;PPGeo 기반 경로 계획 모델이 가장 낮은 충돌률을 기록&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;이는 PPGeo가 &lt;b&gt;실제 도로 데이터에서도 효과적인 사전 학습 방법임을 의미&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Xpcpk/btsL7tOVtLA/TLtuazXkKDeuj20KAHtAgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Xpcpk/btsL7tOVtLA/TLtuazXkKDeuj20KAHtAgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Xpcpk/btsL7tOVtLA/TLtuazXkKDeuj20KAHtAgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXpcpk%2FbtsL7tOVtLA%2FTLtuazXkKDeuj20KAHtAgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;251&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;251&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Depth and Odometry Estimation&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PPGeo의 stage 1 학습이 Depth Estimation &amp;amp; Odometry Estimation에도 효과적인지 검증&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;DepthNet과 PoseNet&lt;/b&gt;을 &lt;b&gt;PPGeo stage 1 학습 이후 초기 가중치로 사용해 Monodepthv2&lt;/b&gt; 학습&lt;/li&gt;
&lt;li&gt;&lt;b&gt;KITTI 데이터셋 사용&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;대규모 비지도 주행 데이터로 사전 학습하면 Depth&amp;amp;Odometry Estimation 성능 향상&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccHo94/btsL8ntLNjN/CBkd9MOHbFohQbF49te7B0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccHo94/btsL8ntLNjN/CBkd9MOHbFohQbF49te7B0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccHo94/btsL8ntLNjN/CBkd9MOHbFohQbF49te7B0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccHo94%2FbtsL8ntLNjN%2FCBkd9MOHbFohQbF49te7B0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;723&quot; height=&quot;100&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Visualization Results&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Eigen-CAM 사용한 특징 맵 시각화&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mLCRe/btsL5ZPhTwV/yTZwbL0XmJ5WmnQxw3l6tK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mLCRe/btsL5ZPhTwV/yTZwbL0XmJ5WmnQxw3l6tK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mLCRe/btsL5ZPhTwV/yTZwbL0XmJ5WmnQxw3l6tK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmLCRe%2FbtsL5ZPhTwV%2FyTZwbL0XmJ5WmnQxw3l6tK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;789&quot; height=&quot;432&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;다른 사전 학습 방법과 비교하여 PPGeo가 주목하는 영역을 분석&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PPGeo의 특징&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;차선 및 전방 도로에 집중&lt;/b&gt; (주행과 직접적으로 관련된 영역)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;브레이크 원인을 잘 포착&lt;/b&gt; (앞 차량, 신호등 등)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ImageNet 사전 학습 모델과 비교&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ImageNet 모델은 &lt;b&gt;주행과 무관한 영역에 집중할 수도 있음&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;예: 불필요한 물체에 초점을 맞추는 경우 (Row 2&amp;amp;3)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3.6 Ablative Study&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PPGeo의 각 요소가 실제 성능에 미치는 영향&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qm4LX/btsL6k6QdVH/S8IQ24tBn6LA8BHAJ3hnYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qm4LX/btsL6k6QdVH/S8IQ24tBn6LA8BHAJ3hnYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qm4LX/btsL6k6QdVH/S8IQ24tBn6LA8BHAJ3hnYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQm4LX%2FbtsL6k6QdVH%2FS8IQ24tBn6LA8BHAJ3hnYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;670&quot; height=&quot;173&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;173&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;DepthNet과 시각 인코더를 한 번에 동시에 학습&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;깊이 추정과 자율주행 인코딩을 동시에 학습하면 &lt;b&gt;Ego-motion 학습이 어려움&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2단계 학습에서 DepthNet을 동시 학습 (Freeze X)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2단계에서 DepthNet을 추가로 업데이트하면 &lt;b&gt;깊이 추정 품질이 저하되고 주행 성능에도 악영향&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1단계 PoseNet을 이용해 Pseudo Label 생성 &amp;rarr; 직접 지도 학습&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부정확한 Pseudo Label은 오히려 학습을 방해하여 성능을 떨어뜨림&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>Paper</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/122</guid>
      <comments>https://9-coding.tistory.com/entry/Paper-PPGeo-Pre-training-for-Autonomous-Driving-via-Self-supervised-Geometric-modeling#entry122comment</comments>
      <pubDate>Wed, 5 Feb 2025 15:55:54 +0900</pubDate>
    </item>
    <item>
      <title>[Paper] SelfD: Self-Learning Large-Scale Driving Policies From the Web</title>
      <link>https://9-coding.tistory.com/entry/Paper-SelfD-Self-Learning-Large-Scale-Driving-Policies-From-the-Web</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;Large&amp;amp;Unlabeled 온라인 데이터를 효과적으로 학습할 수 있는 매커니즘.&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Online data&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방대한 양의 online ego-centric 내비게이션 Large YouTube 비디오 데이터&lt;/li&gt;
&lt;li&gt;unconstrained&amp;amp;unlabeled demonstration 온라인 데이터를 활용하여 복잡하고 동적인 환경에서 강건한 비전 기반 내비게이션을 위한 일반화된 모델&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;iterative semi-supervised training&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Unlabeled data를 활용하기 위해 small labeled data에서 &lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-End-to-End-Autonomous-Driving-2-Training-Methods&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;imitation learning&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;이를 사용하여 pseudo-labeled data로부터 imitation agent 학습&lt;/li&gt;
&lt;li&gt;초기 학습된 policy의 knowledge&amp;amp;robustness 효과적으로 augment&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;BEV space에서 직접 planning 학습 &amp;rarr; 직접적인 reasoning&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;data의 플랫폼 및 시점(perspective)에 구애받지 않음.&lt;/li&gt;
&lt;li&gt;dataset-agnostic &amp;amp; platform-agnostic 모델 설계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;효과&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다양한 환경과 시나리오에서 효과적으로 작동할 수 있는 확장 가능한 decision-making model&lt;/li&gt;
&lt;li&gt;Robustness&amp;amp;generalized&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Contributions&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;unconstrained 이미지에서 학습할 수 있도록 새로운 모델 개발&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;BEV 계획 space&lt;/b&gt;로 매핑 &amp;rarr; &lt;b&gt;카메라 캘리브레이션 없이&lt;/b&gt; 다양한 환경에서도 학습 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;새로운 반지도 학습 접근법을 제안&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;hypothetical data augmentation을 포함한 self-training 기법&lt;/b&gt;을 도입.&lt;/li&gt;
&lt;li&gt;다양한 품질의 demonstration data를 효과적으로 활용할 수 있도록, &lt;b&gt;새로운 샘플링 기법을 개발&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;cross-dataset experiments&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 훈련된 의사결정 모델이 &lt;b&gt;최소한의 데이터 가정 하에서 self-improvement 및 generalization 능력을 향상&lt;/b&gt;할 수 있는지 분석&lt;/li&gt;
&lt;li&gt;다양한 환경에서 평가해 SOTA &lt;b&gt;수준의 일반화 성능&lt;/b&gt; 달성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&lt;b&gt;Method&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Overview&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1957&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3pluq/btsL5A1iX88/KSFo4gtoe6H72hs6knKHP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3pluq/btsL5A1iX88/KSFo4gtoe6H72hs6knKHP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3pluq/btsL5A1iX88/KSFo4gtoe6H72hs6knKHP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3pluq%2FbtsL5A1iX88%2FKSFo4gtoe6H72hs6knKHP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1957&quot; height=&quot;1000&quot; data-origin-width=&quot;1957&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Initial BEV policy $f_\theta$ imitation learning&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 도메인(domain-specific)의 small, labeled dataset $\mathcal D$&lt;b&gt;를 활용하여, initial BEV policy $f_&amp;theta;$ 학습&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;supervised learning을 통한 imitation learning 수행&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;$f_\theta$ 활용하여 large pseudo-labeled dataset $\hat {\mathcal D}$ 생성&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습된 f&amp;theta;를 이용하여 &lt;b&gt;unlabeled 데이터에 대해 pseudo-label 생성&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;large pseudo-labeled dataset &lt;b&gt;$\hat {\mathcal D}$ 구축&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;$\hat {\mathcal D}$&lt;b&gt;을 활용한 pre-training &amp;amp; $\mathcal D$를 활용한 fine-tuning&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;$\hat {\mathcal D}$에서 일반화된 정책 $f_&amp;theta;$ pre-training&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$\mathcal D$에서 fine-tuning하여 성능 향상&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Problem Setting&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;observations $\text x = (\mathbf I, v, c) \in \mathcal X$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;agent가 driving navigational decision으로 매핑하는 것 학습.&lt;/li&gt;
&lt;li&gt;$\mathbf I \in \mathbb{R}^{W \times H \times 3}$: 전방 카메라 이미지&lt;/li&gt;
&lt;li&gt;$v \in \mathbb{R}$: ego-vehicle speed&lt;/li&gt;
&lt;li&gt;$c \in \mathbb{N}$: categorical navigational command&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$y \in Y$: waypoint trajectory &amp;rarr; interpretability&amp;amp;generalization 뛰어남.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$f_\theta : \mathcal X \to \mathcal Y$ waypoint prediction function&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\theta \in \mathbb{R}^d$: learnable parameter&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Conditional Imitation Learning from Observations(CILfO):&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;unlabeled on-line data&lt;/b&gt; $\mathcal U = \{\text I_i\}_{i=1}^M$&lt;b&gt;에서도 학습이 가능하도록 label recovery 적용&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적절한 &lt;b&gt;waypoints, 조작 명령, 속도 등을 recover하여 large pseudo-labeled dataset 생성&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Initial Data Assumption&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;학습을 시작하기 위한 small labeled data 필요&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Initial policy 학습&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;human expert demonstration을 사용해 small labeled dataset 사용.&lt;/li&gt;
&lt;li&gt;supervised learning based conditional imitation learning&lt;/li&gt;
&lt;li&gt;dataset $\mathcal D = \{(\text x_i, \text y_i)\}{i=1}^N$를 활용하여 waypoint prediction function **$f{\theta}$ 학습**
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;loss function optimization:&lt;/b&gt; $\displaystyle \min_{\theta} \mathbb{E}{(x, y) \sim D} \left[ \mathcal{L}(y, f\theta(x)) \right]$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pseudo-label 생성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습된 모델을 이용하여 large unlabeled data에 대해 pseudo-label을 생성하고 이를 활용하여 더욱 강건한 내비게이션 정책을 학습&lt;/li&gt;
&lt;li&gt;data augmentation &amp;rarr; policy의 robust 크게 향상&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$\hat{y}, \hat{c}, \hat{v}$&lt;/b&gt; (예측된 경로, 내비게이션 명령, 속도)를 추정하여 데이터셋 $\hat{D} = \{((\mathbf I_i, \hat{v}_i, \hat{c}_i), \hat{y}i)\}{i=1}^M$를 생성.&lt;/li&gt;
&lt;li&gt;이렇게 복원된 데이터셋을 활용하여 &lt;b&gt;CIL을 적용해 policy learning.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;BEV Plan Network&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;BEV space에서 waypoint를 직접 예측 + quality estimates 고려한 학습&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;monocular 이미지 기반 플래너를 활용&lt;/b&gt;하여 BEV 공간에서 직접 의사결정을 수행&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다양한 perspectives에서도 robust&amp;amp;generalize&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;예측된 BEV 웨이포인트는 PID와 같은 low-level controller와 결합 가능&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Monocular &amp;rarr; BEV space&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Confidence-aware learning 적용 + quality estimates 고려&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;모델을 $f_{\theta} : \mathcal X \to \mathcal Y \times \mathcal R$로 확장 &amp;amp; quality estimates $&amp;sigma;&amp;isin;\mathcal R$ 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Loss Function&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\mathcal L = \mathcal L_{\text{plan}} + \lambda \mathcal L_{\text{quality}}$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;$\mathcal L_{\text{plan}}$&lt;/b&gt;: predicted waypoint와 ground-truth 간 L1 loss.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$\mathcal L_{\text{quality}}$&lt;/b&gt;: 예측된 품질(quality)과 실제 품질 간의 Binary Cross-Entropy&lt;/li&gt;
&lt;li&gt;&lt;b&gt;$&amp;lambda;$&lt;/b&gt;: 두 가지 학습 목표를 조정하는 hyper-parameter.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;ldquo;What If&amp;rdquo; Pseudo-Labeling of Unlabeled Data&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Unlabeled imgae $\mathcal U$에 대해 self-training을 통해&lt;/b&gt; &lt;b&gt;pseudo-labels 생성&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfSmSV/btsL4q6xhlr/Y4qJ0yyydqjVrrDMZ8TTA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfSmSV/btsL4q6xhlr/Y4qJ0yyydqjVrrDMZ8TTA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfSmSV/btsL4q6xhlr/Y4qJ0yyydqjVrrDMZ8TTA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfSmSV%2FbtsL4q6xhlr%2FY4qJ0yyydqjVrrDMZ8TTA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;567&quot; height=&quot;394&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&quot;What If&quot; Augmentation&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;On-line video data: 노이즈 심해 신뢰X trajectories + demonstration 안전X&amp;amp;복원 어려움.&lt;/li&gt;
&lt;li&gt;unlabeled single-frame에 대해 &lt;b&gt;$f_&amp;theta;$를 활용하여 hypothetical future trajectories 생성,&lt;/b&gt; pseudo-label로 활용 &lt;b&gt;&amp;rarr; 학습 데이터 확장&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Method&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;speed $\hat v$ &amp;amp; command $\hat c$ random sampling. (가상의 값)&lt;/li&gt;
&lt;li&gt;pseudo-labels $(\hat {\mathbf y},\hat {\boldsymbol {&amp;sigma;}}) = f_&amp;theta;(\mathbf I, \hat v, \hat c)$ &amp;rarr; 다양한 주행 시나리오에 대한 가상 라벨링 수행&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Label quality estimates $\hat \sigma$: 노이즈가 심한 trajectory를 필터링 &amp;rarr; 높은 신뢰도 데이터셋 구축&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Future Trajectory&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BEV 기준 meter 단위, 속도는 m/s 단위.&lt;/li&gt;
&lt;li&gt;Conditional Commands: left = 1 / forward = 2 / right = 3&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;효과&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;다양한 시나리오를 학습 가능&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;누락된 속도 및 명령 입력을 보완 + 추가 supervision&lt;/li&gt;
&lt;li&gt;조건부 에이전트가 &lt;b&gt;특정 상황에서 어떻게 행동해야 할지를 더 잘 판단할 수 있도록 돕는다&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;일반화 성능 향상&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Model Pre-Training and Fine-Tuning&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 dataset $\hat {\mathcal D}$ 와 $\mathcal D$ 에 대해 &lt;b&gt;별도로 학습&lt;/b&gt;, learned representations 통해 &lt;b&gt;knowledge transfer&lt;/b&gt;.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;$f_{\theta}$ 를 $\hat {\mathcal D}$에 대해 re-train.&lt;/li&gt;
&lt;li&gt;사전 학습된 policy $f_\theta$를 $\mathcal D$에 대해 추가로 fine-tune.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;효과&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\hat {\mathcal D}$로부터 얻은 추가적인 지식을 활용하여 성능 향상&lt;/li&gt;
&lt;li&gt;&lt;b&gt;learning rate 등 세밀한 hyper-parameter tuning 필요X&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;labeled data와 pseudo-labeled data 섞는 비율을 신중하게 조정할 필요X&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Experiments&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Experimental Setup&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Dataset&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;YouTube 운전 영상 (100시간)&lt;/b&gt;: 다양한 도시, 날씨, 낮/밤 조건을 포함한 운전 데이터 수집&lt;/li&gt;
&lt;li&gt;&lt;b&gt;공개 자율주행 데이터셋&lt;/b&gt; 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;nuScenes&lt;/b&gt; (Boston, Singapore) &amp;rarr; 실험을 위해 두 지역으로 분할&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Waymo&lt;/b&gt; (8개 도시)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Argoverse&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;목적: &lt;b&gt;도시 간 도메인 차이&lt;/b&gt;를 고려하여 모델이 얼마나 &lt;b&gt;일반화&lt;/b&gt;할 수 있는지 평가&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Evaluation Metrics&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Open-Loop&lt;/b&gt; (BEV 기반 waypoint 예측 정확도)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ADE (Average Displacement Error)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;미래의 waypoints에 대해 &lt;b&gt;평균 L2 distance error&lt;/b&gt; 측정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FDE (Final Displacement Error)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;미래의 &lt;b&gt;마지막 waypoint의 L2 거리 오차&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;마지막 예측 지점의 정확도를 측정하는 지표&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Collision Rate&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예측된 waypoints가 &lt;b&gt;다른 차량과 충돌할 확률&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;nuScenes, Argoverse에서만 평가 가능&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Closed-Loop&lt;/b&gt; (CARLA 시뮬레이션 주행 성능 평가)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;SR (Success Rate, 성공률)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;목표 지점까지 도달한 비율&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RC (Route Completion, 주행 경로 완료율)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;전체 주행 경로에서 얼마나 많이 진행했는지 (%)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Collision Frequency (충돌 빈도, per 10km)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;10km 주행당 충돌 횟수&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Model Architecture&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 CIL 모델&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지에서 &lt;b&gt;2D waypoints&lt;/b&gt; 예측&lt;/li&gt;
&lt;li&gt;&lt;b&gt;고정된 투영 변환&lt;/b&gt;을 통해 BEV로 변환 (정확도 낮음)&lt;/li&gt;
&lt;li&gt;ADE (Average Displacement Error): &lt;b&gt;1.86&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;새로운 BEV Planner (제안 방법)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;이미지에서 직접 BEV waypoints 예측&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;카메라 보정 정보 (intrinsic/extrinsic parameters) 없이 학습&lt;/li&gt;
&lt;li&gt;ADE: &lt;b&gt;1.14&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Pseudo-Labeling&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;233&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baCkn5/btsL3SoV32F/fMKBk8tLAYXPnTPii8ChRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baCkn5/btsL3SoV32F/fMKBk8tLAYXPnTPii8ChRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baCkn5/btsL3SoV32F/fMKBk8tLAYXPnTPii8ChRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaCkn5%2FbtsL3SoV32F%2FfMKBk8tLAYXPnTPii8ChRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;736&quot; height=&quot;233&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;233&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;YouTube 데이터에 대한 pseudo-labeling&lt;/b&gt;을 적용해 추가 학습&lt;/li&gt;
&lt;li&gt;Visual Odometry (VO) 모델을 &lt;b&gt;pseudo-label 생성에 활용&lt;/b&gt;했지만, 성능이 낮아짐&lt;/li&gt;
&lt;li&gt;&lt;b&gt;제안된 &quot;What If&quot; Augmentation 적용 시 성능 향상!&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Self-Training 없이&lt;/b&gt; 학습하면 ADE: &lt;b&gt;1.18&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Self-Training + What If Augmentation&lt;/b&gt; 적용 시 ADE: &lt;b&gt;1.14&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span data-token-index=&quot;0&quot;&gt;CARLA Closed-Loop Evaluation&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ez16tb/btsL4L3zgOF/KQuYC0MRdywEfkOBg9g5d0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ez16tb/btsL4L3zgOF/KQuYC0MRdywEfkOBg9g5d0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ez16tb/btsL4L3zgOF/KQuYC0MRdywEfkOBg9g5d0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fez16tb%2FbtsL4L3zgOF%2FKQuYC0MRdywEfkOBg9g5d0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;432&quot; height=&quot;137&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Paper</category>
      <category>Imitation Learning</category>
      <category>pseudo-labeling</category>
      <category>selfd</category>
      <category>selfd: self-learning large-scale driving policies from the web</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/121</guid>
      <comments>https://9-coding.tistory.com/entry/Paper-SelfD-Self-Learning-Large-Scale-Driving-Policies-From-the-Web#entry121comment</comments>
      <pubDate>Mon, 3 Feb 2025 12:49:15 +0900</pubDate>
    </item>
    <item>
      <title>[Paper] (MoCo) Momentum Contrast for Unsupervised Visual Representation Learning</title>
      <link>https://9-coding.tistory.com/entry/Paper-MoCo-Momentum-Contrast-for-Unsupervised-Visual-Representation-Learning-1</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;contrastive learning을 위한 dynamic dictionary를 구축하는 메커니즘&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://arxiv.org/pdf/1911.05722&quot;&gt;https://arxiv.org/pdf/1911.05722&lt;/a&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;unsupervised visual representation learning&lt;/li&gt;
&lt;li&gt;contrastive learning을 dictionary 형태로 바라봄.&lt;/li&gt;
&lt;li&gt;queue와 moving-average encoder 사용.&lt;/li&gt;
&lt;li&gt;downstream task에 잘 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Dictionary&lt;/b&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Large&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;continuous, high-dimensional visual space에서 sampling을 잘 하기 위해서 dictionary size가 커야 함.&lt;/li&gt;
&lt;li&gt;기저에 존재하는 연속적이고 고차원적인 시각 공간을 더 잘 샘플링할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Queue&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 mini-batch의 인코딩된 표현들이 큐에 추가(enqueue)되고, 가장 오래된 샘플들은 큐에서 제거(dequeue)&lt;/li&gt;
&lt;li&gt;이전 mini-batch의 key들을 재사용할 수 있음&lt;/li&gt;
&lt;li&gt;dictionary 크기를 mini batch size와 분리 &amp;rarr; dictionary 크게 유지&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Consistency&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사전의 키가 이전의 여러 미니배치에서 생성되기 때문에, 쿼리 인코더의 momentum-based moving average으로 구현된 점진적으로 업데이트되는 키 인코더를 사용하여 일관성을 유지하는 방식&lt;/li&gt;
&lt;li&gt;dictionary의 key가 일관되어야 query와의 비교 또한 일관되므로 좋은 성능을 낼 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Update&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;큰 dictionary 크기로 인해 모든 representation에 대해 모두 back-propagation 수행 불가/&lt;/li&gt;
&lt;li&gt;query encoder $f_q$를 key encdoer $f_k$로 복사 &amp;rarr; consistency를 크게 해침.&lt;/li&gt;
&lt;li&gt;momentum moving average로 $f_k$ 점진적 update.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Method&lt;/b&gt;&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;396&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKI3mH/btsL2cmpFtP/p4gxwOpsKaOqGbXedtfHO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKI3mH/btsL2cmpFtP/p4gxwOpsKaOqGbXedtfHO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKI3mH/btsL2cmpFtP/p4gxwOpsKaOqGbXedtfHO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKI3mH%2FbtsL2cmpFtP%2Fp4gxwOpsKaOqGbXedtfHO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;541&quot; height=&quot;396&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;396&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;encoded query $q$와 encoded key의 dictionary $\{k_0, k_1, k_2, ...\}$가 있을 때&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;dictionary에서 $q$와 매칭되는 key $k_+$가 있다고 하자.&lt;/li&gt;
&lt;li&gt;contrastive loss는 $q$가 $k_+$와 유사도가 높고 나머지 key와는 유사도가 낮을 때 작은 값을 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Loss function: InfoNCE&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\mathcal L_q = -\log \cfrac{\exp\left(q \cdot k_+/{\tau}\right)}{\sum_{i=0}^{K} \exp\left(q \cdot k_i/{\tau}\right)}$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\tau$: temperature hyperparameter
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;0.07로 세팅&lt;/li&gt;
&lt;li&gt;similarity 점수의 스케일링 역할&lt;/li&gt;
&lt;li&gt;큰 값: positive/negative key 간 차이 강조 &amp;rarr; 미세한 차이에 민감&lt;/li&gt;
&lt;li&gt;작은 값: negative 고르게 취급. &amp;rarr; 모델이 완만히 학습&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분모: positive sample 하나와 $K$개의 negative sample에 대해 sum.&lt;/li&gt;
&lt;li&gt;$q$를 $k_+$로 분류하려고 하는 $(K+1)$-way softmax-based classifier로 해석할 수 있음.&lt;/li&gt;
&lt;li&gt;$q = f_q(x^q)$&lt;/li&gt;
&lt;li&gt;$k = f_k(x^k)$&lt;/li&gt;
&lt;li&gt;$f_q, f_k$: query/key sample의 encoder network.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Momentum update&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\theta_k \gets m\theta_k + (1 - m)\theta_q$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인코더를 부드럽게 변화하도록 해 key의 일관성을 유지하도록 함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;encoder를 back propagation하지 않고 천천히 업데이트&lt;/li&gt;
&lt;li&gt;$m$을 크게 하여 매우 천천히 업데이트하도록 하는 것이 성능 향상에 도움이 되었음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Relations to previous mechanisms&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zBxhY/btsL1howH8p/7Nan1nKfZUC60imN5Kv7ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zBxhY/btsL1howH8p/7Nan1nKfZUC60imN5Kv7ZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zBxhY/btsL1howH8p/7Nan1nKfZUC60imN5Kv7ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzBxhY%2FbtsL1howH8p%2F7Nan1nKfZUC60imN5Kv7ZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;763&quot; height=&quot;288&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dYJbIl/btsL25AqEBz/iFzQD2rNboTDpokfhuMuK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dYJbIl/btsL25AqEBz/iFzQD2rNboTDpokfhuMuK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dYJbIl/btsL25AqEBz/iFzQD2rNboTDpokfhuMuK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYJbIl%2FbtsL25AqEBz%2FiFzQD2rNboTDpokfhuMuK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;768&quot; height=&quot;388&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;End-to-End&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mini-batch에서 positive sample과 negative sample을 만들고 encoder를 통과시켜 contrastive loss를 통해 각 encoder를 학습&lt;/li&gt;
&lt;li&gt;키는 동일한 인코더로 생성 &amp;rarr; &lt;b&gt;consistency 높음.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;dictionary 크기는 mini-batch 크기에 종속 &amp;rarr; &lt;b&gt;GPU 메모리 한계&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Memory Bank&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;memory bank에 모든 샘플들의 representation을 넣어두고, memory bank에서 무작위로 샘플링해서 key로 사용&lt;/li&gt;
&lt;li&gt;샘플링된 키는 역전파 없이 사용 &amp;rarr; &lt;b&gt;큰 dictionary 크기&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;memory bank에 여러 시점의 샘플들을 보관 &amp;rarr; &lt;b&gt;consistency 낮음&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Pretext Task&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;646&quot; data-origin-height=&quot;818&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zbSty/btsL18Y0730/g11jyISI7ErKjwYeEOvm80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zbSty/btsL18Y0730/g11jyISI7ErKjwYeEOvm80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zbSty/btsL18Y0730/g11jyISI7ErKjwYeEOvm80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzbSty%2FbtsL18Y0730%2Fg11jyISI7ErKjwYeEOvm80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;646&quot; height=&quot;818&quot; data-origin-width=&quot;646&quot; data-origin-height=&quot;818&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Instance Discrimination&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;양성 샘플 (positive pair): 같은 이미지&lt;/b&gt;에서의 query와 key.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;같은 이미지에 대해 random views 생성 (augmentation)&lt;/li&gt;
&lt;li&gt;query와 key를 각각 쿼리 인코더 $f_q$와 키 인코더 $f_k$를 사용해 인코딩.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;음성 샘플 (negative pair):&lt;/b&gt; &lt;b&gt;서로 다른 이미지&lt;/b&gt;에서 유래한 query와 key.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Encoder&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ResNet&lt;/li&gt;
&lt;li&gt;FCN: 128-dimension&lt;/li&gt;
&lt;li&gt;L2-norm&lt;/li&gt;
&lt;li&gt;Augmentation: random color jittering, random horizontal flip, random grayscale conversion&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Shuffling BN&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;치팅 문제를 방지하고 BN의 혜택을 유지하는 방법&lt;/li&gt;
&lt;li&gt;각 GPU에서 batch normalization 독립적 수행&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;key encoder $f_k$&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 미니배치의 샘플 순서를 GPU에 배분하기 전에 랜덤 셔플링.&lt;/li&gt;
&lt;li&gt;인코딩 후 다시 원래 순서로 복원.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;query encoder $f_q$&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sample 순서 변경X&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Experiments&lt;/b&gt;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dataset: ImageNet-1M, Instagram-1B&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Training&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;SGD / Weight decay&lt;/b&gt;: 0.0001 / &lt;b&gt;Momentum&lt;/b&gt;: 0.9&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageNet-1M&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mini-batch size: 256 (8 GPU 사용)&lt;/li&gt;
&lt;li&gt;initial learning rate: 0.03&lt;/li&gt;
&lt;li&gt;training epoch: 200 (120, 160 epoch에서 learning rate 0.1배 감소)&lt;/li&gt;
&lt;li&gt;ResNet-50 학습 시간: 약 53시간&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Instagram-1B&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mini-batch size: 1024 (64 GPU 사용)&lt;/li&gt;
&lt;li&gt;initial learning rate: 0.12 (62,500회 반복마다 0.9배 감소)&lt;/li&gt;
&lt;li&gt;ResNet-50 학습 시간: 약 6일&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;References&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ffighting.net/deep-learning-paper-review/self-supervised-learning/moco/&quot;&gt;https://ffighting.net/deep-learning-paper-review/self-supervised-learning/moco/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@kowoonho/논문-리뷰-Momentum-Contrast-for-Unsupervised-Visual-Representation-Learning-MoCo&quot;&gt;https://velog.io/@kowoonho/논문-리뷰-Momentum-Contrast-for-Unsupervised-Visual-Representation-Learning-MoCo&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://kyujinpy.tistory.com/40&quot;&gt;https://kyujinpy.tistory.com/40&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://hongl.tistory.com/122#google_vignette&quot;&gt;https://hongl.tistory.com/122#google_vignette&lt;/a&gt;&lt;/p&gt;</description>
      <category>Paper</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/120</guid>
      <comments>https://9-coding.tistory.com/entry/Paper-MoCo-Momentum-Contrast-for-Unsupervised-Visual-Representation-Learning-1#entry120comment</comments>
      <pubDate>Tue, 28 Jan 2025 12:52:02 +0900</pubDate>
    </item>
    <item>
      <title>[Paper] ViT - Vision Transformer</title>
      <link>https://9-coding.tistory.com/entry/Paper-ViT-Vision-Transformer</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/Paper-Transformer-Attention-is-All-You-Need&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Transformer&lt;/a&gt;를 sequences of image patches에 직접 적용해도 classification에서 뛰어난 성능을 보임!&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;NLP에서 사용되는 Transformer를 Vision Task에 적용&lt;/li&gt;
&lt;li&gt;CNN구조 대부분을 Transformer로 대체 (입력단인 Sequences of Image Patch에서만 제외)&lt;/li&gt;
&lt;li&gt;대용량 데이터셋 Pre-Train &amp;rarr; Small Image 데이터셋에서 Transfer Learning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;훨씬 적은 계산 리소스로, 우수한 결과를 얻음&lt;/li&gt;
&lt;li&gt;단, 많은 데이터를 사전 학습해야 된다는 제한사항 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지를 patch의 sequence로 해석한 뒤, NLP에서 사용되는 표준 Transformer 인코더로 처리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순, 확장 가능, 대규모 데이터셋으로 사전 학습 &amp;rarr; 좋은 성능&lt;/li&gt;
&lt;li&gt;SOTA와 동등하거나 초과하는 결과를 내면서 상대적으로 저렴한 pre-training 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터가 적은 경우는 ResNet보다 성능이 떨어짐&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Translation과 locality 같은 Inductive bias가 부족.&lt;/li&gt;
&lt;li&gt;translation equivariance 부족&lt;/li&gt;
&lt;li&gt;불충분한 데이터 양으로 generalize가 잘 안 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(related work 생략)&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Inductive Bias&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;ViT는 CNN보다 image-specific한 &lt;b&gt;Inductive Bias&lt;/b&gt;가 약하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Inductive Bias: 만나지 못한 상황을 해결하기 위해 추가적인 가정을 활용하여 문제를 해결.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가정에서 벗어나는 경우 예측력 떨어짐.&lt;/li&gt;
&lt;li&gt;ex) CNN은 locality라는 가정을 활용하여 spatial 문제를 풀고, RNN은 sequentiality라는 가정을 활용하여 Time-series 문제 해결.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;CNN&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Locality&lt;br /&gt;- 이미지를 구성하는 특징들은 전체가 아닌 일부 지역들의 픽셀들로만 구성되고 이들끼리만 종속성을 갖는다는 가정.&lt;/li&gt;
&lt;li&gt;Two-Dimensional Neighborhood Structure&lt;/li&gt;
&lt;li&gt;Translation Equivariance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ToPJX/btsLSBNwDYc/hY2rLFAXzUOEf6j4eMQISk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ToPJX/btsLSBNwDYc/hY2rLFAXzUOEf6j4eMQISk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ToPJX/btsLSBNwDYc/hY2rLFAXzUOEf6j4eMQISk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FToPJX%2FbtsLSBNwDYc%2FhY2rLFAXzUOEf6j4eMQISk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;760&quot; height=&quot;189&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력의 위치 변화에 따라 출력 또한 입력과 동일하게 변화하는 것&lt;/li&gt;
&lt;li&gt;이들이 model 전반에 걸쳐 모든 계층에 내재되어 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;ViT&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MLP layer에서만 Locality, Translation Equivariance.&lt;/li&gt;
&lt;li&gt;self-attention layer는 global로 동작.&lt;/li&gt;
&lt;li&gt;Two-Dimensional Neighborhood Structure: 아래 상황에서 제한적으로 사용.&lt;br /&gt;- 학습: 모델 시작 단계에서 이미지를 patch로 나눌 때&lt;br /&gt;- fine-tuning: 다른 resolution 이미지에 대해 position embedding을 조정할 때&lt;/li&gt;
&lt;li&gt;ViT가 Inductive Bias가 부족한 이유&amp;amp;극복Fully connected 방식은 픽셀에 대한 가중치로 연산을 하므로 translation equivariance 감소.&lt;/li&gt;
&lt;li&gt;ViT에서는 MLP에서는 각 패치가 무얼 의미하는지에 대한 정보를 추출하도록 하고 이 정보를 기반으로 MSA에서 각 패치들과의 연관성을 고려하도록 하면서 이러한 단점을 극복하도록 합니다.&lt;/li&gt;
&lt;li&gt;이미지를 패치로 나누고, MLP는 한 패치 내부에서만 작동.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 특징들로 인하여 &lt;b&gt;큰 데이터셋에서는 강력한 성능&lt;/b&gt;을, &lt;b&gt;작은 데이터셋에서는 일반화 어려움&lt;/b&gt;을 갖는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Hybrid Architecture&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;입력을 raw image patch 대신 CNN feature map으로 대체 가능&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 활용한 hybrid model에서는 CNN 특징 맵으로부터 패치를 추출한 후, 패치 임베딩 적용.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CNN의 특징 추출 능력을 활용하면서, Transformer의 강력한 시퀀스 처리 능력을 결합한 접근 방식&lt;/li&gt;
&lt;li&gt;CNN의 inductive bias를 활용하면서 Transformer의 전역적 학습 능력을 도입하는 방법&lt;/li&gt;
&lt;li&gt;다양한 상황에서 성능을 향상시킬 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;주요 특징&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;하이브리드 입력 구조&lt;/b&gt;:&lt;br /&gt;- CNN으로부터 생성된 특징 맵에서 패치를 추출.&lt;br /&gt;- 각 패치에 대해 선형 투영(linear projection)을 적용하여 Transformer 차원으로 매핑.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특별한 경우 (1x1 패치)&lt;/b&gt;:&lt;br /&gt;- 패치 크기가 1&amp;times;1인 경우, CNN feature map의 spatial dimensions을 단순히 flatten한 뒤 Transformer 차원으로 투영한다.&lt;br /&gt;- 이는 CNN 특징 맵 자체를 Transformer의 입력 시퀀스로 변환하는 간단한 방식이다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;위치 및 분류 임베딩 추가&lt;/b&gt;:&lt;br /&gt;- classification input embedding과 position embedding을 입력 시퀀스에 추가한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Fine-tuning and Higher-resolution&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;사전 훈련 때보다 더 높은 해상도로 Fine-Tune 하는 것이 성능에 도움이 됨&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pre-trained prediction head를 제거하고 0으로 초기화된 $D \times K$ feedforward layer를 붙임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$K$: downstream class 개수&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Patch 크기 고정&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;fine-tuning시 입력 이미지 resolution 증가&lt;/li&gt;
&lt;li&gt;패치 크기를 고정하면 개수가 증가해 더 긴 시퀀스 생성.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;더 높은 해상도 &amp;amp; Patch Size 동일 &amp;rarr; Sequence 길이 증가&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2D Interpolation&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;resolution이 바뀌면 sequence 길이도 변하므로 기존 pre-trained position embeddings 유효X.&lt;/li&gt;
&lt;li&gt;새로운 resolution에 맞춰 &lt;b&gt;2D Interpolation&lt;/b&gt; 수행&lt;/li&gt;
&lt;li&gt;원본 이미지에서의 patch 위치에 따라 pre-trained position embeddings 값을 새 resolution에 맞게 조정.&lt;/li&gt;
&lt;li&gt;Inductive bias를 추가할 수 있게 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대형 데이터셋에서 학습을 시키고, fine-tuning 과정에서 2D interpolation을 진행해 inductive bias를 활성화시켜주어 더 높은 성능을 달성할 수 있었던 것으로 보임.&lt;/p&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;&lt;b&gt;Method&lt;/b&gt;&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/th4lT/btsLSPEJv5z/ja1VK7E6Tq0FQJvtwI0XJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/th4lT/btsLSPEJv5z/ja1VK7E6Tq0FQJvtwI0XJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/th4lT/btsLSPEJv5z/ja1VK7E6Tq0FQJvtwI0XJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fth4lT%2FbtsLSPEJv5z%2Fja1VK7E6Tq0FQJvtwI0XJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1336&quot; height=&quot;834&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;834&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Input&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;image를 patch로 분할해 linear embedding의 sequence를 transformer의 input으로 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Image Patch: NLP에서의 token(words)과 같음.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Embeddings&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;2D image를 기존의 token처럼 활용하기 위해 1차원으로 변환하는 작업.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1330&quot; data-origin-height=&quot;482&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OUMfh/btsLSfRIIzb/koWxbAibsVUUdkvMLMcfKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OUMfh/btsLSfRIIzb/koWxbAibsVUUdkvMLMcfKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OUMfh/btsLSfRIIzb/koWxbAibsVUUdkvMLMcfKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOUMfh%2FbtsLSfRIIzb%2FkoWxbAibsVUUdkvMLMcfKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1330&quot; height=&quot;482&quot; data-origin-width=&quot;1330&quot; data-origin-height=&quot;482&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Patch Embedding&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 이미지를 여러 패치로 나누어 인코더의 입력 시퀀스로 삽입.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;image&lt;/b&gt; $x \in \mathbb R^{H \times W \times C}$를 &lt;b&gt;sequence of flattened 2D patches&lt;/b&gt; $x_p \in \mathbb R^{N \times (P^2 \cdot C)}$로 reshape.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$(H, W)$: 원본 이미지의 resolution.&lt;/li&gt;
&lt;li&gt;$C$: channel 수&lt;/li&gt;
&lt;li&gt;$(P, P)$: 각 image patch의 resolution&lt;/li&gt;
&lt;li&gt;$N=HW/P^2$: 생성된 patch의 수. Transformer의 &lt;b&gt;effective input sequence length&lt;/b&gt;로 사용.&lt;/li&gt;
&lt;li&gt;$D$: constant latent vector size.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;image patch를 flatten하고, 학습 가능한 linear projection을 통해 $D$ dimensions로 매핑&lt;/li&gt;
&lt;li&gt;이 projection의 출력: patch embeddings.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ex)&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지 크기가&amp;nbsp;$H=W=224$이고&amp;nbsp;$P=16$일때&amp;nbsp;$224\times224 / 16^2 = 196$개의&amp;nbsp;$16&amp;times;16&amp;times;3=768$ 차원의 텐서로 이루어진 시퀀스.&lt;/li&gt;
&lt;li&gt;시퀀스의 각 요소 별로 임베딩을 위한 선형변환을 수행하고 (patch embedding) 모델 전체의 차원은&amp;nbsp;D로 통일.&lt;/li&gt;
&lt;li&gt;$H=W=224,P=16$인 경우, patch embedding 결과 $196&amp;times;768$ 크기의 패치 임베딩 행렬 도출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;learnable embedding&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;learnable embedding을 patch embedding sequence의 앞에 추가&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BERT의 class token과 유사.&lt;/li&gt;
&lt;li&gt;추후 이미지 전체에 대한 표현을 나타내게 됨.&lt;/li&gt;
&lt;li&gt;MLP Head에 입력으로 들어가 classification 작업에 사용됨.&lt;/li&gt;
&lt;li&gt;$z^0_0 = x_{\text{class}}$로 정의.&lt;/li&gt;
&lt;li&gt;$z^0_L$: 최종 L번째 layer의 0번째 token에 대응.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Position Embedding&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시퀀스 각 요소의 위치 정보를 알려주기 위한 방법.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\text E_{\text {pos}} &amp;isin; \mathbb R^{(N+1)&amp;times;D}$: Position Embeddings&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기에는 patch의 2D 위치에 대한 정보 포함X&lt;/li&gt;
&lt;li&gt;patch 간 모든 spatial relations는 학습을 통해 처음부터 습득해야 함.&lt;/li&gt;
&lt;li&gt;Ex)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위의 예시에서, class token을 위한 임베딩은 $1 \times 768$ 크기의 벡터.&lt;/li&gt;
&lt;li&gt;이것이 패치 임베딩 행렬 왼쪽에 붙어&lt;/li&gt;
&lt;li&gt;최종적으로 $(196+1) \times 768$ 크기의 텐서&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Linear Projection&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$z_0 = [x_{\text{class}}; x^1_p\text E; \; x^2_p\text E; \; &amp;middot;&amp;middot;&amp;middot; ; x^N_p\text E; \;] + \text E_{\text {pos}}$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\text E &amp;isin; \mathbb R^{(P^2&amp;middot;C)&amp;times;D}$: Patch Embeddings&lt;/li&gt;
&lt;li&gt;$\text E_{\text {pos}} &amp;isin; \mathbb R^{(N+1)&amp;times;D}$: Position Embeddings&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Patch embedding에 position embedding을 추가해 위치 정보를 보존한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 학습 가능한 1D 위치 임베딩을 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 생성된 임베딩 벡터의 시퀀스가 인코더의 입력으로 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Transformer Encoder&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;944&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ySImb/btsLTIdP8AA/QLnf6yggzYTBFZ8xGpdIG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ySImb/btsLTIdP8AA/QLnf6yggzYTBFZ8xGpdIG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ySImb/btsLTIdP8AA/QLnf6yggzYTBFZ8xGpdIG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FySImb%2FbtsLTIdP8AA%2FQLnf6yggzYTBFZ8xGpdIG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;226&quot; height=&quot;481&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;944&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 transformer의 encoder 부분을 변경하여 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MSA&lt;/b&gt; 층과 &lt;b&gt;MLP 블록&lt;/b&gt;이 번갈아 가며 배치.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;LN&lt;/b&gt;: LayerNorm. 모든 블록의 입력에 적용.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Residual connections&lt;/b&gt;: 각 블록의 출력 뒤에 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;MSA&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Multi-Headed Self-Attention.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$z&amp;rsquo;l = \text {MSA}( \text {LN}(z{l-1})) + z_{l-1}$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력에 LayerNorm 적용 &amp;rarr; MSA 연산 &amp;rarr; 결과 residual connection으로 합산.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;MLP&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 개의 층으로 구성되며, activation function으로 GELU 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$z_l = \text {MLP}( \text {LN}(z'_l)) + z'_l$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력에 LayerNorm 적용 &amp;rarr; MLP 연산 &amp;rarr; 결과 residual connection으로 합산.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;최종 출력&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$y = LN(z^0_L)$: 인코더의 출력에서 해당 임베딩의 상태 $z^0_L$이 이미지 표현 y로 사용.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;pre-training, fine-tuning 단계 모두에서, $z^0_L$에 classification head 연결.&lt;/li&gt;
&lt;li&gt;pre-training: 1개의 hidden layer를 가진 MLP로 구현.&lt;/li&gt;
&lt;li&gt;fine-tuning: single linear layer로 구현&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Experiments&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Datasets&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ImageNet&lt;/b&gt; (원본 검증 레이블 및 ReaL 레이블)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CIFAR-10/100&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Oxford-IIIT Pets&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Oxford Flowers-102&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;VTAB&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제한된 데이터를 사용하여 다양한 작업으로 전이 학습을 평가하는 벤치마크.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Natural&lt;/b&gt; - 자연스러운 이미지 (예: Pets, CIFAR 등)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Specialized&lt;/b&gt; - 의료 및 위성 이미지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Structured&lt;/b&gt; - 기하학적 이해가 필요한 작업 (예: 로컬라이제이션)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Settings&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Models&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1342&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UIGfH/btsLRmqnOQI/GMxikPpPZiMsPwNWJ6NfW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UIGfH/btsLRmqnOQI/GMxikPpPZiMsPwNWJ6NfW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UIGfH/btsLRmqnOQI/GMxikPpPZiMsPwNWJ6NfW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUIGfH%2FbtsLRmqnOQI%2FGMxikPpPZiMsPwNWJ6NfW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1342&quot; height=&quot;290&quot; data-origin-width=&quot;1342&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Training &amp;amp; Fine-tuning&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Training&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Adam 옵티마이저&lt;/b&gt;: $&amp;beta;_1=0.9, &amp;beta;_2=0.999$&lt;br /&gt;- 초기 훈련에서 빠르고 안정적 수렴&lt;br /&gt;- 데이터 불안정, 손실 함수가 복잡한 초반 학습에서 효과적&lt;br /&gt;- learning rate 초기값에 덜 민감&lt;/li&gt;
&lt;li&gt;batch size: 4096&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Fine-tuning&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SGD with momentum&lt;br /&gt;- Adam은 빠르게 수렴하나 optimal 근처에서 overfitting 발생 가능. SGD는 일반화 성능 좋음&lt;br /&gt;- parameter가 대부분 설정되어 있으므로 작은 변화를 세밀히 적용 가능&lt;/li&gt;
&lt;li&gt;batch size: 512&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Metrics&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.notion.so/Downstream-Dataset-17ae2f322f8380ed9d1bf5a164ed816c?pvs=21&quot;&gt;downstream dataset&lt;/a&gt;에서의 성능&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Few-shot accuracy&lt;/b&gt;: 일부 훈련 이미지의 표현을 매핑하여 {&amp;minus;1, 1} 범위의 벡터로 변환하는 정규화된 선형 회귀 문제를 해결하여 평가.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Fine-tuning accuracy&lt;/b&gt;: 해당 데이터셋에서 모델을 미세 조정한 후의 성능.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SOTA와 비교&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ViT 모델(ViT-H/14 및 ViT-L/16)을 ResNet 기반 BiT 및 Noisy Student(EfficientNet 기반)와 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실험 결과, ViT는 JFT-300M 데이터셋에서 사전 학습 시 ResNet 기반 모델보다 모든 작업에서 더 높은 성능을 보였으며, 더 적은 계산 자원을 사용.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ImageNet Top-1 정확도&lt;/b&gt;: ViT-H/14가 88.55%, BiT-L이 87.54%&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CIFAR-10/100&lt;/b&gt;: ViT 모델이 더 높은 성능 기록&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VTAB&lt;/b&gt;: 자연 이미지 및 구조적 작업에서 더 우수한 성능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ViT는 JFT-300M과 같은 대규모 데이터셋에서 잘 작동하지만, 데이터셋 크기가 작을 경우 ResNet보다 성능이 떨어지는 경향.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; ViT가 ResNet에 비해 비전 관련 inductive bias이 적기 때문.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Scaling study&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 모델의 사전 학습 비용과 전이 성능 간의 관계를 평가한 결과:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;ViT는 동일한 계산 자원으로 ResNet보다 우수한 성능을 발휘.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;작은 모델에서는 하이브리드 모델이 ViT보다 약간 우수하지만, 대규모 모델에서는 차이가 사라짐.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;ViT는 더 큰 모델로 확장할수록 성능이 더욱 향상.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;ViT internal representation&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습된 임베딩 필터의 주요 주성분.&lt;/li&gt;
&lt;li&gt;첫 번째 레이어에서 입력 이미지 패치를 선형 변환하는 단계&lt;/li&gt;
&lt;li&gt;이를 분석했을 때 &lt;b&gt;각 패치의 세부 구조를 표현하는 저차원 표현의 기저 함수와 유사한 구조&lt;/b&gt;를 가짐&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;position embeddings 추가.&lt;/li&gt;
&lt;li&gt;이미지 내 거리 정보를 position embedding의 유사성으로 인코딩.&lt;/li&gt;
&lt;li&gt;가까운 패치일 수록 임베딩이 유사.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;attention weight를 기반으로 정보가 통합되는 이미지 공간 내 평균 거리.&lt;/li&gt;
&lt;li&gt;CNN의 receptive field size와 유사.&lt;/li&gt;
&lt;li&gt;self-attention은 가장 낮은 계층에서도 이미지 전역의 정보를 통합할 수 있도록 함.&lt;/li&gt;
&lt;li&gt;초기 레이어에서 전역적인 정보 통합 능력을 보여줌&lt;/li&gt;
&lt;li&gt;특정 attention 헤드는 국소적인 정보에 집중함으로써 CNN의 초기 레이어와 유사한 역할 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Challenges&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Object Detection, Segmentation 등에 활용&lt;/li&gt;
&lt;li&gt;Self-supervised Learning 탐구 필요.&lt;/li&gt;
&lt;li&gt;확장성&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;References&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://wikidocs.net/137253&quot;&gt;https://wikidocs.net/137253&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://velog.io/@pre_f_86/Vision-TransformerViT-논문-리뷰&quot;&gt;https://velog.io/@pre_f_86/Vision-TransformerViT-논문-리뷰&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hongl.tistory.com/232&quot;&gt;https://hongl.tistory.com/232&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kmhana.tistory.com/27&quot;&gt;https://kmhana.tistory.com/27&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://daebaq27.tistory.com/108&quot;&gt;https://daebaq27.tistory.com/108&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://m.blog.naver.com/nueyet/222984347342&quot;&gt;https://m.blog.naver.com/nueyet/222984347342&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Paper</category>
      <category>inductivebias</category>
      <category>patchembedding</category>
      <category>selfattention</category>
      <category>visiontransformer</category>
      <category>VIT</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/118</guid>
      <comments>https://9-coding.tistory.com/entry/Paper-ViT-Vision-Transformer#entry118comment</comments>
      <pubDate>Sun, 19 Jan 2025 16:30:32 +0900</pubDate>
    </item>
    <item>
      <title>[Paper] Transformer: Attention is All You Need</title>
      <link>https://9-coding.tistory.com/entry/Paper-Transformer-Attention-is-All-You-Need</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;Attention mechanism만을 사용해 인코더와 디코더를 구성한 새로운 network&lt;/span&gt;&lt;/h3&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;특징&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CNN과 RNN을 완전히 제거하여 &lt;b&gt;간단&lt;/b&gt;하고 &lt;b&gt;병렬화&lt;/b&gt;가 용이하며, &lt;b&gt;훈련 시간&lt;/b&gt;도 크게 단축됨.&lt;/li&gt;
&lt;li&gt;Attention Mechanism만을 사용해 입력/출력 간 global dependencies 학습.&lt;/li&gt;
&lt;li&gt;큰/한정된 데이터셋에서 모두 우수한 성능을 보임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Multi-Head Attention&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;동일한 데이터에 여러 개의 어텐션 메커니즘을 병렬로 적용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델은 데이터의 다양한 측면을 동시에 고려&lt;br /&gt;- 서로 다른 의미적/구문적 관계 학습 가능.&lt;br /&gt;다양한 의존성 동시 고려&lt;/li&gt;
&lt;li&gt;더 풍부하고 다차원적인 데이터 표현 수집/분석&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Self-Attention&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;같은 문장 내에서 단어들 간의 관계 고려&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Q, K, V가 모두 동일한 embedding vector에서 도출됨.&lt;/li&gt;
&lt;li&gt;시퀀스의 서로 다른 위치 간의 관계를 학습하여 해당 시퀀스의 표현 계산.&lt;/li&gt;
&lt;li&gt;단일 입력 데이터의 모든 요소들 간의 관계 포괄적 이해.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;계산 효율성&lt;br /&gt;&lt;/b&gt;- 시퀀스 길이 $n$이 표현 차원 $d$보다 작을 때 계산이 효율적. &amp;rarr; 레이어 당 $O(n^2 &amp;sdot;d)$&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Parallelization&lt;br /&gt;&lt;/b&gt;- 모든 위치를 동시에 연결하여 병렬화에 용이하고, 순차적 계산이 $O(1)$로 최소화&lt;br /&gt;- 토큰 간 의존성을 빠르게 학습 가능&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Long-term Dependency 해결&lt;br /&gt;&lt;/b&gt;- 모든 입력 간의 상호작용을 병렬로 처리&lt;br /&gt;- 경로 길이를 최소화&lt;/li&gt;
&lt;li&gt;다양한 형식의 데이터에 적용 가능&lt;br /&gt;- encoder-decoder attention은 입출력이 명확히 구분되는 번역, 생성 같은 작업에 유용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Positional Encoding&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;단어의 위치 정보를 얻기 위한 방식&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시퀀스의 각 요소 위치에 대한 정보를 임베딩 벡터에 추가해 모델이 단어의 순서를 인식하도록 함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위치 정보 t가 주어졌을 때, 해당 위치에 대응하는 임베딩 벡터 E 반환.&lt;/li&gt;
&lt;li&gt;sin &amp;amp; cos 함수를 사용하여 각 위치에 고유한 값 할당.&lt;/li&gt;
&lt;li&gt;모델이 위치 정보를 효율적으로 모델에 통합할 수 있는 장점.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;기존 모델&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Recurrent Models: 이전 결과를 입력으로 받는 순차적 특성으로 인한 &lt;b&gt;병렬 처리의 어려움&lt;br /&gt;&lt;/b&gt;- Gradient Vanishing/Exploding&lt;br /&gt;- Long-term Dependency: 시퀀스의 앞/뒷부분 연관성 효과적 학습 어려움&lt;/li&gt;
&lt;li&gt;Attention Mechanism: 입력 or 출력 sequence distance와 무관하게 dependencies 모델링 가능하도록 함. &amp;rarr; 이전까지 순환 신경망과 함께 사용되었음.&lt;br /&gt;- 모델이 입력 시퀀스의 중요 부분에 &amp;lsquo;집중&amp;rsquo;하여 필요한 정보를 선택적으로 추출하는 방법을 제공&lt;br /&gt;- 전체 시퀀스를 일괄적으로 처리하는 대신 관련성이 높은 정보에 집중하여 효율적으로 처리&lt;/li&gt;
&lt;li&gt;End-to-end memory network: recurrent attention mechanism 사용.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Model Architecture&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3352&quot; data-origin-height=&quot;1612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eBaRjc/btsLL4i4QMl/iaOtrYoBkkDomtWWK4FnQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eBaRjc/btsLL4i4QMl/iaOtrYoBkkDomtWWK4FnQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eBaRjc/btsLL4i4QMl/iaOtrYoBkkDomtWWK4FnQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeBaRjc%2FbtsLL4i4QMl%2FiaOtrYoBkkDomtWWK4FnQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3352&quot; height=&quot;1612&quot; data-origin-width=&quot;3352&quot; data-origin-height=&quot;1612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Encoder&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O1Ses/btsLMnitYs4/iV5urwctxZmtZKGFuvACI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O1Ses/btsLMnitYs4/iV5urwctxZmtZKGFuvACI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O1Ses/btsLMnitYs4/iV5urwctxZmtZKGFuvACI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO1Ses%2FbtsLMnitYs4%2FiV5urwctxZmtZKGFuvACI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;311&quot; height=&quot;353&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;554&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N = 6개의 동일한 레이어로 구성된 스택 구조 (사진은 그 중 하나)&lt;/li&gt;
&lt;li&gt;각 레이어는 2개의 sub-layer로 구성&lt;br /&gt;- Multi-head self-attention&lt;br /&gt;- feed-forward network&lt;/li&gt;
&lt;li&gt;각 sub-layer:&lt;br /&gt;- residual connection&lt;br /&gt;- layer normalization&lt;/li&gt;
&lt;li&gt;$\text {LayerNorm}(x+ \text{Sublayer}(x))$&lt;br /&gt;- 해당 서브 레이어가 구현하는 함수.&lt;br /&gt;- 동일 배치에 있는 시점의 sequence를 모아서 정규화.&lt;br /&gt;-Multi-Head Attention or Feed Forward 이후.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Decoder&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;468&quot; data-origin-height=&quot;810&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csvn9O/btsLN8DVPnx/Y8e3cTJSBlRXBNDFf41ih0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csvn9O/btsLN8DVPnx/Y8e3cTJSBlRXBNDFf41ih0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csvn9O/btsLN8DVPnx/Y8e3cTJSBlRXBNDFf41ih0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcsvn9O%2FbtsLN8DVPnx%2FY8e3cTJSBlRXBNDFf41ih0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;365&quot; height=&quot;632&quot; data-origin-width=&quot;468&quot; data-origin-height=&quot;810&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N = 6개의 동일한 레이어로 구성된 스택 구조 (사진은 그 중 하나)&lt;/li&gt;
&lt;li&gt;각 레이어는 3개의 sub-layer로 구성.&lt;br /&gt;- Masked Multi-head self-attention&lt;br /&gt;- Multi-head encoder-decoder attention&lt;br /&gt;- feed-forward network&lt;/li&gt;
&lt;li&gt;각 sub-layer:&lt;br /&gt;- residual connection&lt;br /&gt;- layer normalization&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Attention&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;같은 문장 내에서 단어들 간의 연관성을 파악할 수 있음.&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$Q$: Query. 현재 내가 보고 있는 단어의 표현 - &amp;ldquo;내가 무엇을 찾고 있는가?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;$K$: Key. 찾는 대상 - &amp;ldquo;이 정보는 내가 찾는 것과 얼마나 관련이 있는가?&amp;rdquo;&lt;/li&gt;
&lt;li&gt;$V$: Value. 실제 값 - 입력 자체의 정보, 실제 반환 데이터. $Q, K$에 의해 가중치가 부여됨.&lt;/li&gt;
&lt;li&gt;&amp;rarr; Q와 K를 비교해서 Q와 가장 관련있는 V 반환.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Scaled Dot-Product Attention&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9UxH6/btsLMmw0rZL/n7c4UKSjlV6632ZQhatrYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9UxH6/btsLMmw0rZL/n7c4UKSjlV6632ZQhatrYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9UxH6/btsLMmw0rZL/n7c4UKSjlV6632ZQhatrYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9UxH6%2FbtsLMmw0rZL%2Fn7c4UKSjlV6632ZQhatrYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1300&quot; height=&quot;638&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\text{Attention}(Q,K,V) = \text{softmax}\bigg(\cfrac{QK^T}{\sqrt {d_k}} \bigg)V$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Query와 모든 Key의 dot product를 통해 유사도를 계산하고 $\sqrt {d_k}$를 나눈 값에 softmax 적용.&lt;/li&gt;
&lt;li&gt;이 유사도를 가중치로 하여 (softmax) 키와 맵핑된 각각의 Value에 반영.&lt;/li&gt;
&lt;li&gt;다수의 Query에 대해 동시에 계산하고, 이를 행렬 Q에 묶어서 처리함. K, V도 마찬가지.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Scaling&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\sqrt {d_k}$로 나누는 과정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Scaling을 하지 않으면 additive attention보다 성능이 대폭 감소.&lt;/li&gt;
&lt;li&gt;softmax가 0 근처에서는 gradient가 높고, 매우 크고 작은 값들에 대해서는 매우 낮은 gradient를 가지기 때문에 학습이 잘 되지 않는 문제&lt;/li&gt;
&lt;li&gt;scaling을 통해 모든 값들이 0 근처에 오도록 만들어주어 해결.&lt;/li&gt;
&lt;li&gt;넓게 퍼진 값을 0 근처로 모아준다 생각하면 좋을듯.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Additive attention&lt;/b&gt;: 단일 hidden layer의 feed-forward 네트워크를 사용하여 호환성 함수를 계산한다.&amp;nbsp;$d_k$가 작을 때 성능이 더 좋다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Dot-product attention&lt;/b&gt;:&amp;nbsp;$d_k$가 더 클 때는 빠른 행렬곱 알고리즘에 힘입어 더 빠르고 더 공간 효율적이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Multi-Head Attention&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;786&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKfQle/btsLNM9eHF3/mIaJG3NTsZY4n3yMNOJuyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKfQle/btsLNM9eHF3/mIaJG3NTsZY4n3yMNOJuyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKfQle/btsLNM9eHF3/mIaJG3NTsZY4n3yMNOJuyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKfQle%2FbtsLNM9eHF3%2FmIaJG3NTsZY4n3yMNOJuyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;408&quot; height=&quot;563&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;786&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$d_{model}$-dimension의 Q, K, V에 대해 작업하면 대신 각각을 $d_k, d_k, d_v$ dimension으로 linear projection하는 것에 이점이 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;따로 계산된 h쌍의 d_v차원 출력은 concat 후 한 번 더 선형 함수에 project시켜 최종 출력값이 됨.&lt;/li&gt;
&lt;li&gt;num_heads의 차원을 가지는 Q, K, V에 대해 num_heads개의 병렬 attention 수행.&lt;/li&gt;
&lt;li&gt;각 attention값 행렬을 attention head라고 부름.&lt;/li&gt;
&lt;li&gt;각 가중치 행렬의 값은 8개의 attention head마다 전부 다름.&lt;/li&gt;
&lt;li&gt;어텐션을 병렬로 수행하여 다른 시각으로 정보를 수집하기 위함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\text {MultiHead}(Q, K, V ) = \text{Concat}(\text{head}_1, ..., \text {head}_h)W^O$ $\text {where head}_i = \text {Attention}(QW_i^Q, KW_i^ K, VW_i^V )$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$W^Q_i &amp;isin; \mathbb R^{d_{model}&amp;times;d_q}$&lt;/li&gt;
&lt;li&gt;$W^K_i &amp;isin; \mathbb R^{d_{model}&amp;times;d_k}$&lt;/li&gt;
&lt;li&gt;$W^V_i &amp;isin; \mathbb R^{d_{model}&amp;times;d_v}$&lt;/li&gt;
&lt;li&gt;$W^O &amp;isin; \mathbb R^{hd_v&amp;times;d_{model}}$&lt;/li&gt;
&lt;li&gt;논문에서 $h=8,d_k=d_v=d_{model}/h=64$&lt;/li&gt;
&lt;li&gt;각 헤드마다 64개의 결과가 출력되고 8개의 헤드가 있으므로 8x64개의 벡터 출력.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Applications&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;encoder-decoder attention&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Decoder의 두 번째 attention.&lt;/li&gt;
&lt;li&gt;query는 이전 디코더 layer에서 오며 memory key와 value는 encoder의 출력에서 온다.&lt;/li&gt;
&lt;li&gt;디코더가 입력의 모든 위치(원소)를 고려할 수 있도록 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Masked Attention&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;auto-regressive 속성을 보존하기 위해 디코더는 출력을 생성할 시 다음 출력을 고려해서는 안 된다. 즉 이전에 설명한&amp;nbsp;&lt;b&gt;masking&lt;/b&gt;을 통해 이전 원소는 참조할 수 없도록 한다.&lt;/li&gt;
&lt;li&gt;이 masking은 dot-product를 수행할 때&amp;nbsp;&amp;minus;&amp;infin;로 설정함으로써 masking out시킨다.&lt;/li&gt;
&lt;li&gt;이렇게 설정되면 softmax를 통과할 때 0이 되므로 masking의 목적이 달성된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Position-wise Feed-Forward Networks&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;encoder와 decoder에 포함된 FC feed-forward network.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ReLU activation function과 2개의 선형변환 포함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\text{FFN}(x) = \max(0, xW_1+b_1)W_2 +b_2$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;논문에서, $d_{model} = 512, d_{ff}=2048$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Positional Encoding&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;sequence에 있는 원소들의 위치에 대한 정보를 넣어주기 위한 방법.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$PE_{(pos, 2i)} = \sin(pos/10000^{2i/d_{model}})$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$PE_{(pos, 2i+1)} = \cos(pos/10000^{2i/d_{model}})$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$pos$: 입력 문장에서 embedding vector 위치&lt;/li&gt;
&lt;li&gt;$i$: embedding vector 내 dimension index&lt;/li&gt;
&lt;li&gt;encoder와 decoder 밑부분에 추가.&lt;/li&gt;
&lt;li&gt;embedding과 같은 $d_{model}$ 차원을 가져 더할 수 있다.&lt;/li&gt;
&lt;li&gt;학습 때보다 긴 sequence를 만나도 추정이 가능하기 때문에 sin함수 선택.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 차원에서 서로 다른 주기를 가진 sin&amp;amp;cos 동시에 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;sin&amp;amp;cos 동시 사용&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동일한 값에 대해 서로 다른 주파수 패턴 적용&lt;/li&gt;
&lt;li&gt;위치 정보를 더 풍부하게 표현&lt;/li&gt;
&lt;li&gt;하나가 겹쳐도 다른 하나가 달라 겹치지 않음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주기&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주기를 서로 다르게 하여 위치가 다른 단어의 positional embedding이 겹치지 않음.&lt;/li&gt;
&lt;li&gt;ex) $[\sin\left(\frac{\text{pos}}{10000^{0/4}}\right), \cos\left(\frac{\text{pos}}{10000^{1/4}}\right), \sin\left(\frac{\text{pos}}{10000^{2/4}}\right), \cos\left(\frac{\text{pos}}{10000^{3/4}}\right)$&lt;/li&gt;
&lt;li&gt;i가 커질수록 k값이 작아져 더 긴 주기를 생성함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;Training&lt;/b&gt;&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;영-독 번역&lt;/b&gt;: WMT 2014 데이터셋 (450만 문장 쌍), Byte-Pair Encoding(BPE) 사용, 공유 어휘 크기 약 37,000개.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;영-프 번역&lt;/b&gt;: WMT 2014 데이터셋 (3,600만 문장), WordPiece 어휘 크기 32,000개.&lt;/li&gt;
&lt;li&gt;문장 쌍은 시퀀스 길이에 따라 배치. 배치 크기는 약 25,000개의 소스 및 타겟 토큰 포함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Settings&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Hardware&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기본 모델(Base)&lt;/b&gt;:&lt;br /&gt;- NVIDIA P100 GPU 8대 사용, 100,000 steps (약 12시간 소요).&lt;br /&gt;- step당 0.4초 소요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;대형 모델(Big):&lt;br /&gt;&lt;/b&gt;- 300,000 steps (약 3.5일 소요), step 당 1.0초 소요.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Optimizer&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Adam 옵티마이저&lt;/b&gt;: $&amp;beta;_1=0.9, &amp;beta;_2=0.98, ϵ=10^{&amp;minus;9}.$&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Learning rate schedule&lt;/b&gt;: $lrate = d_{model}^{-0.5} \cdot \min(step^{-0.5}, step \cdot warmup\_steps^{-1.5})$&lt;/li&gt;
&lt;li&gt;$warmup\_steps=4000$ 설정.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Regularization&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;드롭아웃&lt;/b&gt;: 서브 레이어와 임베딩에 드롭아웃 $P_{drop} = 0.1$ 적용.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Label Smoothing&lt;/b&gt;: $\epsilon_{ls} = 0.1$ 사용&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Result&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기계 번역&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;영-독 번역&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Transformer (Big)&lt;/b&gt;: BLEU 28.4, 기존 최고 성능보다 2.0 이상 향상.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Base 모델&lt;/b&gt;: BLEU 27.3, 비용 대비 성능 우수.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;영-프 번역&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Transformer (Big)&lt;/b&gt;: BLEU 41.0, 기존 최고 단일 모델을 초과.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;모델 변형 실험&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;헤드 수&lt;/b&gt;: 1개는 성능 저하(BLEU 24.9), 너무 많아도 성능 하락.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모델 크기&lt;/b&gt;: 모델 크기 증가 시 성능 향상(BLEU 26.2).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;드롭아웃&lt;/b&gt;: 드롭아웃이 과적합 방지에 효과적.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;위치 임베딩&lt;/b&gt;: 기존의 사인파 방식과 유사한 성능.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;영어 구성 구문 분석&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Wall Street Journal(WSJ)&lt;/b&gt; 데이터셋에서 실험.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WSJ 데이터만 사용한 경우: F1 91.3 (최고 모델에 근접).&lt;/li&gt;
&lt;li&gt;반-지도 학습(semi-supervised) 설정: F1 92.7 (기존 최고 성능 초과).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;References&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://arxiv.org/pdf/1706.03762&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/pdf/1706.03762&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jalammar.github.io/illustrated-transformer/&quot;&gt;https://jalammar.github.io/illustrated-transformer/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://wikidocs.net/31379&quot;&gt;https://wikidocs.net/31379&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://greeksharifa.github.io/nlp(natural&quot;&gt;https://greeksharifa.github.io/nlp(natural&lt;/a&gt;&lt;a href=&quot;https://greeksharifa.github.io/nlp(natural%20language%20processing)%20/%20rnns/2019/08/17/Attention-Is-All-You-Need/&quot;&gt; language processing) / rnns/2019/08/17/Attention-Is-All-You-Need/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/@hugmanskj/transformer의-큰-그림-이해-기술적-복잡함-없이-핵심-아이디어-파악하기-5e182a40459d&quot;&gt;https://medium.com/@hugmanskj/transformer의-큰-그림-이해-기술적-복잡함-없이-핵심-아이디어-파악하기-5e182a40459d&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.blossominkyung.com/deeplearning/transfomer-positional-encoding&quot;&gt;https://www.blossominkyung.com/deeplearning/transfomer-positional-encoding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://velog.io/@tobigs-nlp/Attention-is-All-You-Need-Transformer&quot;&gt;https://velog.io/@tobigs-nlp/Attention-is-All-You-Need-Transformer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://velog.io/@nayeon_p00/딥러닝-모델-트랜스포머-Transformer&quot;&gt;https://velog.io/@nayeon_p00/딥러닝-모델-트랜스포머-Transformer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://aistudy9314.tistory.com/63&quot;&gt;https://aistudy9314.tistory.com/63&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lcyking.tistory.com/entry/논문리뷰-Attention-is-All-you-need의-이해&quot;&gt;https://lcyking.tistory.com/entry/논문리뷰-Attention-is-All-you-need의-이해&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://skyjwoo.tistory.com/entry/positional-encoding이란-무엇인가&quot;&gt;https://skyjwoo.tistory.com/entry/positional-encoding이란-무엇인가&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://yeong-jin-data-blog.tistory.com/entry/Tranfomer&quot;&gt;https://yeong-jin-data-blog.tistory.com/entry/Tranfomer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Paper</category>
      <category>Attention is all you need</category>
      <category>multi-head attention</category>
      <category>positional encoding</category>
      <category>Self-attention</category>
      <category>Transformer</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/117</guid>
      <comments>https://9-coding.tistory.com/entry/Paper-Transformer-Attention-is-All-You-Need#entry117comment</comments>
      <pubDate>Tue, 14 Jan 2025 18:50:39 +0900</pubDate>
    </item>
    <item>
      <title>[E2E 자율주행] (7)-8 Challenges: Long-tailed Distribution</title>
      <link>https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-7-8-Challenges-Long-tailed-Distribution</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Long-tailed Distribution&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;일반적인 상황이 대부분이고, 안전과 직결적인 상황이 드물게 발생하는 data imbalance 문제.&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자주 발생하는 평범한 상황(차선을 따라가는 주행 등)이 대부분을 차지하는 반면, 안전에 중요한 드문 시나리오(사고 위험 상황 등)는 데이터셋에서 매우 희소하고 다양성이 부족합니다.&lt;/li&gt;
&lt;li&gt;이로 인해 모델이 드문 상황에서 일반화하고 적응하는 데 어려움을 겪음.&lt;/li&gt;
&lt;li&gt;많은 연구가 시뮬레이터에서 적대적 시나리오에 초점을 맞추고 있지만, 실제 데이터를 더 잘 활용하여 중요한 시나리오를 탐색하고 이를 시뮬레이션에 잠재적으로 적응시키는 것도 중요합니다.&lt;/li&gt;
&lt;li&gt;안전에 중요한 시나리오를 대상으로 엔드-투-엔드 자율주행 방법을 평가하기 위해 &lt;b&gt;체계적이고, 엄격하며, 포괄적이고 현실적인 테스트 프레임워크&lt;/b&gt;가 필수적입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 완화하기 위해 다양한 데이터 처리 방법이 사용됨.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;over-sampling&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;under-sampling&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;data augmentation&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;weighting-based approaches&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;handcrafted scenarios: 시&lt;/b&gt;뮬레이션에서 더욱 다양한 데이터를 생성&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LBC:&lt;/b&gt; privileged agent를 활용하여 다양한 내비게이션 명령에 조건화된 imaginary supervisions 생성.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LAV:&lt;/b&gt; 데이터 다양성을 촉진하기 위해 non-ego agents의 trajectory를 학습에 포함합니다.&lt;/li&gt;
&lt;li&gt;희귀 사건 확률의 평가를 가속화하기 위해 중요 샘플링 전략을 적용한 시뮬레이션 프레임워크 제안.&lt;/li&gt;
&lt;li&gt;adversarial attack을 통해 데이터 기반 방식으로 안전에 중요한 시나리오를 생성.&lt;/li&gt;
&lt;li&gt;Bayesian Optimization을 사용하여 적대적 시나리오를 생성합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Learning to collide:&lt;/b&gt; 운전 시나리오를 building blocks의 joint distribution로 표현하고, policy gradient RL을 적용해 위험한 시나리오 생성.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AdvSim:&lt;/b&gt; 물리적인 타당성을 유지하면서 실패를 유발하도록 agent의 trajectory 수정.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;KING:&lt;/b&gt; 미분 가능한 kinematics model을 통한 기울기를 사용하여 safety-critical perturbation을 위한 최적화 알고리즘을 제안.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Autonomous Driving/End-to-End Autonomous Driving</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/116</guid>
      <comments>https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-7-8-Challenges-Long-tailed-Distribution#entry116comment</comments>
      <pubDate>Wed, 1 Jan 2025 23:58:09 +0900</pubDate>
    </item>
    <item>
      <title>[E2E 자율주행] (7)-7 Challenges: Causal Confusion</title>
      <link>https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-7-7-Challenges-Causal-Confusion</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;End-to-End Autonomous Driving과 관련된 다양한 게시물은&lt;br /&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-Driving-Introduction&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Introduction&lt;/a&gt;에서 확인하실 수 있습니다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Causal Confusion&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;모델이 본질적 인과 관계를 학습하지 못하고 비본질적 상관관계(Spurious Correlations)에 의존하는 현상&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델이 데이터에서 중요한 요인을 파악하기보다는, 쉽게 사용할 수 있는 shortcut 정보에 지나치게 의존함으로써 발생.&lt;/li&gt;
&lt;li&gt;자율주행 차량의 현재 행동은 &lt;b&gt;속도&lt;/b&gt;나 &lt;b&gt;과거 궤적&lt;/b&gt;과 같은 &lt;b&gt;low-dimensional spurious feature&lt;/b&gt;와 강하게 연관될 수 있음.&lt;/li&gt;
&lt;li&gt;End-to-End 모델이 이러한 특징에 의존하게 되면 causal confusion이 발생할 수 있다.&lt;/li&gt;
&lt;li&gt;이는 모델이 진정한 인과 관계를 학습하지 못하고, 단순히 부차적 패턴에 의존하게 되는 문제를 초래함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RyvK2/btsLA6GTX68/Wps6YHReyjZMWvywW4wA8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RyvK2/btsLA6GTX68/Wps6YHReyjZMWvywW4wA8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RyvK2/btsLA6GTX68/Wps6YHReyjZMWvywW4wA8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRyvK2%2FbtsLA6GTX68%2FWps6YHReyjZMWvywW4wA8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;294&quot; height=&quot;399&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Copycat Problem&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;운전은 시간적 연속성을 가지며, 과거의 움직임이 다음 행동을 예측하는 데 유용하다.&lt;/li&gt;
&lt;li&gt;그러나 여러 프레임을 학습에 활용한 방법은 이러한 shortcut에 과도하게 의존하게 되어 배포 시 치명적인 실패를 겪을 수 있다.&lt;/li&gt;
&lt;li&gt;더 많은 정보에 접근할수록 성능이 저하됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Imitation Learning&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단일 입력 프레임을 사용하여 조향 예측을 수행함으로써 causal confusion을 피하고자 함.&lt;/li&gt;
&lt;li&gt;현재 최첨단 모방 학습 방법에서도 선호되는 솔루션.&lt;/li&gt;
&lt;li&gt;단일 프레임을 사용하는 것은 주변 행위자들의 움직임을 추출하기 어렵게 만든다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Speed Measurement&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1340&quot; data-origin-height=&quot;810&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsNrZR/btsLASITHjF/7QCBnYfkPE3gMJpBpa6480/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsNrZR/btsLASITHjF/7QCBnYfkPE3gMJpBpa6480/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsNrZR/btsLASITHjF/7QCBnYfkPE3gMJpBpa6480/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsNrZR%2FbtsLASITHjF%2F7QCBnYfkPE3gMJpBpa6480%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;254&quot; data-origin-width=&quot;1340&quot; data-origin-height=&quot;810&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 신호등이 빨간불일 때 정차해 있는 차량은 여러 프레임 동안 속도가 0인 상태에서 브레이크를 밟는 행동을 반복하게 된다. 이로 인해 차량의 행동이 속도와 매우 높은 상관관계를 가지게 되는데, 신호등이 빨간불에서 초록불로 바뀔 때에야 이러한 상관관계가 무너진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해결 방법&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Adversarial Model&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;bottleneck representation에서 spurious temporal correlations를 제거하기 위한 adversarial model 학습&lt;/li&gt;
&lt;li&gt;Adversarial Model: 자율 주행 차량의 과거 행동을 예측하도록 학습.&lt;/li&gt;
&lt;li&gt;min-max optimization: 네트워크가 중간 계층에서 adversarial model의 과거 정보를 제거하도록 학습.&lt;/li&gt;
&lt;li&gt;MuJoCo에서는 효과적이지만, 복잡한 vision-based driving에는 어려움.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;OREO&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지를 semantic object를 나타내는 discrete code로 매핑,&amp;nbsp;동일한 discrete code를 공유하는 유닛에 random dropout mask 적용.&lt;/li&gt;
&lt;li&gt;이는 Atari 환경에서 혼란스러운 상황(confounded scenarios)을 해결하는 데 도움이 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ChauffeurNet:&lt;/b&gt; 과거 Ego-Motion을 중간 BEV 표현으로 활용, 훈련 중 50% 확률로 드롭아웃.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Upweighting Keyframe:&lt;/b&gt; training loss에서 decision change에 발생하는 주요 keyframes의 가중치를 증가. &lt;br /&gt;(이러한 keyframe들은 과거를 extrapolate하여 예측할 수 없는 프레임)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PrimeNet: single-frame 모델의 예측 결과&lt;/b&gt;를 &lt;b&gt;multi-frame 모델&lt;/b&gt;에 추가 입력으로 제공하는 앙상블 방식을 사용하여, keyframe에 비해 성능 향상.&lt;br /&gt;- 동일한 접근법을 사용하나, &lt;b&gt;action&lt;/b&gt; 대신 &lt;b&gt;action residual&lt;/b&gt;을 사용하는 방법도 있음.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LiDAR 사용:&lt;/b&gt; 단일 이미지와 LiDAR 데이터를 결합, point cloud를 하나의 좌표계로 재정렬.&amp;rarr; Ego-Motion 정보를 제거하면서 주변 차량의 상태 정보 유지.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현재 과제:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 방법들은 causal confusion을 해결하기 위해 단순화된 환경에서 테스트되었으나, &lt;b&gt;최신 자율주행&lt;/b&gt;에서 성능 개선을 입증하는 것이 여전히 과제로 남아 있음.&lt;/p&gt;</description>
      <category>Autonomous Driving/End-to-End Autonomous Driving</category>
      <category>causal confusion</category>
      <category>copycat problem</category>
      <category>e2e 자율주행</category>
      <category>e2e 자율주행 설명</category>
      <category>end-to-end autonomous driving</category>
      <category>end-to-end autonomous driving:challenges and frontiers</category>
      <category>Imitation Learning</category>
      <category>speed measurement</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/115</guid>
      <comments>https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-7-7-Challenges-Causal-Confusion#entry115comment</comments>
      <pubDate>Sun, 29 Dec 2024 15:15:44 +0900</pubDate>
    </item>
    <item>
      <title>[E2E 자율주행] (7)-6 Challenges: Interpretability</title>
      <link>https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-7-6-Challenges-Interpretability</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;End-to-End Autonomous Driving과 관련된 다양한 게시물은&lt;br /&gt;&lt;a href=&quot;https://9-coding.tistory.com/entry/E2E-Driving-Introduction&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Introduction&lt;/a&gt;에서 확인하실 수 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be6wPR/btsLBkY7sfn/0MmuoCNoO0EzUdt6L8lPy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be6wPR/btsLBkY7sfn/0MmuoCNoO0EzUdt6L8lPy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be6wPR/btsLBkY7sfn/0MmuoCNoO0EzUdt6L8lPy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe6wPR%2FbtsLBkY7sfn%2F0MmuoCNoO0EzUdt6L8lPy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;230&quot; height=&quot;328&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Interpretability&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자율주행에서 중요한 역할.&lt;/li&gt;
&lt;li&gt;엔지니어가 시스템을 더 잘 debug하게 해줌&lt;/li&gt;
&lt;li&gt;사회적 관점(societal perspective)에서 performance 보장&lt;/li&gt;
&lt;li&gt;public acceptance 촉진.&lt;/li&gt;
&lt;li&gt;&amp;lsquo;black box&amp;rsquo;라고 불리는 E2E 자율주행에서 interpretability를 가진다는 것은, 필수적이고 중요한 과제.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sliency map(중요도 맵)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;훈련된 모델이 주어지면 X-AI 기법을 적용해 얻을 수 있음.&lt;/li&gt;
&lt;li&gt;모델이 planning에 의존하는 visual input의 특정한 영역 강조&lt;/li&gt;
&lt;li&gt;한정된 정보를 제공하고 효율성과 타당성(validity) 평가 어려움.&lt;/li&gt;
&lt;li&gt;model design에서 interpretability를 직접적으로 향상시키는 end-to-end frameworks에 중점.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;876&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2Hv0F/btsLAbPo1jE/UovcpludlTYHPHbsRQ9vfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2Hv0F/btsLAbPo1jE/UovcpludlTYHPHbsRQ9vfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2Hv0F/btsLAbPo1jE/UovcpludlTYHPHbsRQ9vfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2Hv0F%2FbtsLAbPo1jE%2FUovcpludlTYHPHbsRQ9vfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1352&quot; height=&quot;876&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;876&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Attention Visualization&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어느 정도의 interpretability를 제공함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습된 attention weight를 적용하여 중간 feature map에서 중요한 feature 수집.&lt;/li&gt;
&lt;li&gt;attention weight: 다양한 object regeion or fixed grid의 ROI pooling features를 적응적으로 결합&lt;/li&gt;
&lt;li&gt;NEAT: 반복적으로 feature를 수집하여 attention weight를 예측하고 수집된(aggregated) feature를 정제함.&lt;/li&gt;
&lt;li&gt;Transformer attention block: 다양한 sensor input을 잘 용합하기 위해 사용.&lt;/li&gt;
&lt;li&gt;Attention map: 주행 결정을 위한 input의 중요한 영역을 보여줌.&lt;/li&gt;
&lt;li&gt;PlanT: attention layers가 다양한 차량에서의 feature를 처리하고, 해당 action에 대한 interpretable insight 제공.&lt;/li&gt;
&lt;li&gt;saliency method와 유사하게, attention map이 model이 집중하는 것에 대한 straightforward clues를 제공한다고 하더라도, 충실성과 유용성은 여전한 한계를 보임.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Interpretable Tasks&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 IL-based works는 latent feature를 policy prediction 외에도 다른 의미 있는 정보로 decoding하여 interpretability를 제공.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;semantic segmentation, depth estimation, object detection, affordance predictions, motion prediction, and gaze map estimation 등&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 방법들이 해석 가능한 정보를 제공하지만, 대부분은 auxiliary tasks로써 예측을 할 뿐, 최종 주행 결정에서 명시적인 impact는 없음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 행동에 이러한 output을 사용하는 경우, 추가적인 안전 사항을 통합시켜야.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Rules Integration and Cost Learning&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Inverse Optimal Cost에서처럼, cost learning-based 방식은 기존 모듈러 방식과의 유사성 공유을 공유하므로 일정 수준 이상의 interpretability를 나타냄.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NMP &amp;amp; DSDNet: Detection &amp;amp; motion 예측 결과와 함께 cost volume 구성.&lt;/li&gt;
&lt;li&gt;P3: 예측된 semantic occupancy map, comfort, traffic rules constraints를 결합하여 cost function구성&lt;/li&gt;
&lt;li&gt;probabilistic occupancy and temporal motion fields, emergent occupancy, and freespace 등의 다양한 표현이 sampled trajectory를 점수화하는데 도움을 줌.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;human expertise와 pre-defined rules가 명시적으로 포함되어 trajectory scoring을 형성하고 향상된 robustness와 안전성을 입증함&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;pre-defined rules: perception&amp;amp;prediction의 결과에 기반을 둔 safety, comfort, traffic rules, and routes 등&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Linguistic Explainability&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Interpretability는 인간이 시스템을 이해하는데 도움을 주는 것이므로 자연어는 이 목적에 적합함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;운전 동영상 or 이미지와 descriptions/explanation을 결합한 데이터셋 개발하고, control &amp;amp; explanation을 모두 갖춘 end-to-end 모델 제안&lt;/li&gt;
&lt;li&gt;최근, decision 관련 설명을 제공하기 위해 LM/VLM을 사용해 multi-modality와 foundation model의 발전에 의존함. (Language as input 다시 보면 좋을듯)&lt;/li&gt;
&lt;li&gt;BEEF: 예측된 trajectory와 중간 perception feature를 융합하여 결정의 정당성 예측&lt;/li&gt;
&lt;li&gt;ADAPT: action, narration, reasoning을 공통으로 추정하는 Transformer-based network를 제안&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Uncertainty Modeling&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딥러닝 모델의 출력 신뢰도를 정량적으로 해석하는 접근법.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불확실성을 분석하면 설계자와 사용자가 개선이나 개입이 필요한 사례를 식별할 수 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Aleatoric Uncertainty (우연적 불확실성):&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업 자체에 내재된 불확실성.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;처리 방법:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;불확실성을 네트워크의 예측 변수로 설정해 운전 행동/경로 계획을 모델링.&lt;/li&gt;
&lt;li&gt;불확실성에 따라 최종 행동을 결정:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 행동 중 가장 낮은 불확실성을 선택.&lt;/li&gt;
&lt;li&gt;불확실성을 기반으로 가중치를 부여해 행동을 결합.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Epistemic Uncertainty (지식적 불확실성):&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제한된 데이터 또는 모델의 한계로 인한 불확실성.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;처리 방법:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델에서 확률적 정규화(stochastic regularization)를 사용해 다중 추론을 수행해 불확실성을 측정(단, 실시간에는 비효율적).&lt;/li&gt;
&lt;li&gt;전문가 모델 앙상블을 사용해 불확실성을 집계하고 안전한 경로 계획 수행(Loquercio et al., Filos et al.).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현재 과제:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불확실성은 주로 하드코딩된 규칙과 결합해 사용되며, 자율주행에 적합한 더 나은 불확실성 모델링 및 활용 방법의 탐구가 필요함.&lt;/p&gt;</description>
      <category>Autonomous Driving/End-to-End Autonomous Driving</category>
      <author>구코딩</author>
      <guid isPermaLink="true">https://9-coding.tistory.com/114</guid>
      <comments>https://9-coding.tistory.com/entry/E2E-%EC%9E%90%EC%9C%A8%EC%A3%BC%ED%96%89-7-6-Challenges-Interpretability#entry114comment</comments>
      <pubDate>Wed, 18 Dec 2024 10:14:34 +0900</pubDate>
    </item>
  </channel>
</rss>