Detecting Driver Behavior Using Stacked LSTM Network With Attention Layer
논문 전체 구조 간단 요약
| 배경 | - 운전 중 산만함은 심각한 교통사고의 주요 원인으로 지목되고 있음 - 특히 차량 인포테인먼트 시스템 등으로 운전자의 주의 분산이 증가하고 있음 - 운전자 주의 분산 문제를 해결하기 위해 운전자 행동 분석 기법이 연구되고 있으며, 기존 연구들은 운전 맥락에서 이전 상황(메모리)나 주의(attention)와 같은 인지 요소를 고려하지 못하는 한계를 보임 |
| 모델 구조 | Stacked LSTM 네트워크에 Attention 메커니즘을 결합한 모델을 제안 구체적으로는, 다층 퍼셉트론(MLP)로 시작한 기본 모델에 LSTM 기반 메모리를 추가하고, 나아가 LSTM 출력 상단에 양방향 LSTM(Bi-LSTM) 계층과 Attention 레이어를 도입하여 모델의 지능 수준을 단계적으로 향상시킴 → 입력 시퀀스 간의 의존성을 학습하고 각 시점의 중요도를 가중하여 반영함으로써 모델 성능을 높임 |
| 실험 방법 | 8가지 주행 시나리오에서 운전자 행동 데이터를 수집하여 대규모 주행 데이터셋 구축 Input: 주행 속도, 차선 위치, 헤드웨이 시간/거리, 가속페달/브레이크 입력, 조향, 종/횡가속도 등의 10가지 차량 센서 데이터 특징을 선택하여 입력 벡터 구성 수집된 시계열 주행 데이터의 80%를 학습에, 20%를 테스트에, 학습 데이터의 일부(20%)를 검증에 활용 |
| 결과 | 단순 MLP 대비 LSTM을 도입 → 모델 오차가 크게 감소(평균 절대 오차 기준 약 0.4 감소) 했고 Attention 메커니즘을 추가 도입함으로써 성능이 더욱 향상됨 Bi-LSTM + Attention 모델은 Stacked LSTM 단독 모델에 비해 테스트 오차를 약 17% 더 감소시켰고(0.90 → 0.75), 기본 MLP에 비해서는 약 32% 감소시키는 성과 Attention을 활용하자 훈련 속도가 향상되어, 기존 LSTM 모델이 200 에폭 이상 학습해야 도달하는 정확도에 절반 이하의 에폭(50~100에폭)으로 도달했음 |
| 결론 | - Stacked LSTM을 통해 시간 의존성을 고려하자 MLP 대비 예측 성능이 향상 - 추가된 Attention 메커니즘은 각 입력 시퀀스 요소의 중요도를 가중함으로써 모델 정확도를 높이고 오버피팅을 완화 - Attention을 추가한 모델은 학습 데이터에 대한 과적합 현상이 줄어들어(train, test 오차 차이가 0.33 → 0.06로 감소) 일반화 성능이 향상되었으며, 계산 비용도 감소 |
제안된 모델의 구조
- 입력 시퀀스는 Stacked LSTM을 통해 처리되어 시간 종속적인 특징 표현을 학습
- LSTM 계층의 상위에는 양방향 LSTM 레이어를 두어, 시퀀스의 과거와 미래 맥락 정보를 모두 활용
- 양방향 LSTM 상위에는 Attention 레이어를 두어, LSTM이 출력한 각 시점별 은닉출력에 가중치를 할당함으로써 현재 출력에 중요한 시점을 더욱 강조
- 가중 합쳐진 컨텍스트 벡터를 통과한 출력 계층이 운전자 행동 특성 출력 Vh를 산출
- 운전자의 반응 시간, 에러 횟수, 모드 변화, 단계 수와 같은 주행행동 지표들이 포함되어 있어, 주행 중 방해 행동의 정도를 정량적으로 예측
| input VC layer | 모델의 입력으로 사용된 운전 데이터 |
| stacked LSTM layer | 단기 및 장기 메모리를 형성하여 연속된 운전 데이터의 종속성을 학습 |
| bidirectional LSTM layer | 순방향 LSTM과 역방향 LSTM을 함께 사용해 각 시점에서 이전과 이후 상태를 모두 반영 |
| attention layer | 얻어진 시퀀스 출력 전체를 대상으로 가중합을 수행함으로써 특정 시점의 중요도가 출력에 반영되도록 함 |
| Vh output layer | 예측된 운전자 행동 지표들을 산출 → 운전자가 인포테인먼트 조작으로 인해 얼마나 산만해졌는지를 나타내는 정량적 척도 |
Bi-LSTM 사용 이유 및 효과
시간 순서 데이터의 앞뒤 맥락을 모두 활용하여 예측 정확도를 높이기 위함
과거와 미래의 운전 상태 변화를 모두 학습하여, 단방향 LSTM 대비 일관되고 정확한 예측을 할 수 있게됨
일반적인 일방향(unidirectional) LSTM은 현재 시점까지의 과거 정보만을 고려하지만, 운전 상황에서는 미래의 입력 흐름도 현재 판단에 중요한 단서가 될 수 있음
예를 들어, 운전 중 일정 패턴의 입력이 이어질 때, 앞으로 발생할 움직임을 미리 고려하면 현재 행동의 의미를 더 정확히 파악할 수 있음
양방향 LSTM 계층은 각 스텝에서 이전 시점들의 은닉상태 와 동시에 향후 시점의 은닉상태 도 참조함으로써 양방향 컨텍스트를 제공
LSTM만 사용한 모델과의 성능 비교
| Stacked LSTM과의 비교 (Bi-LSTM X, Attention X) | - 학습 데이터에 대한 평균 절대 오차(MAE) 최저값이 0.57, 테스트 데이터 MAE 최저값이 0.90 - 두 오차의 차이는 약 0.33으로, 오버피팅 징후를 보임 - 해당 모델은 메모리를 활용함으로써 MLP 대비 오류를 약 0.4 절댓값만큼 감소시켜 성능이 향상되었으나, 시퀀스 내 모든 입력을 동일하게 취급하기 때문에 추가 개선 여지가 남아있음 |
| Stacked LSTM + Attention (Bi-LSTM 포함) | - 제안된 Attention 결합 모델은 학습 MAE 최저값이 0.69, 테스트 MAE 최저값이 0.75로 보고됨 - 테스트 오차 기준으로 기존 LSTM 모델의 0.90에서 0.75로 감소되었으며, 학습/테스트 오차 차이가 0.06으로 매우 작아져 훈련 데이터에 대한 과적합이 크게 완화 - 오히려 학습 오차가 이전보다 약간 높아졌는데, 이는 Attention 메커니즘이 불필요한 특성까지 암기하지 않고 일반화에 기여한 결과로 해석됨 |
| MLP(다층 퍼셉트론) 모델 | - 메모리가 거의 없는 기억 상실망으로 동작하므로 성능이 가장 낮음 - MLP의 최소 학습/테스트 오차는 Stacked LSTM 대비 약 0.4 더 높게 나타남 - 운전 데이터와 같이 시계열 의존성이 강한 문제에서 메모리 부재의 한계를 보여줌 |
Attention 유무 및 Stacked 여부에 따른 성능 변화
메모리가 없는 MLP → LSTM 기반 시퀀스 모델로 전환
- 모든 입력 샘플을 독립적으로 가정하는 한계를 극복하고 시계열 상의 종속성을 학습하게 되어 오차가 크게 감소
동일한 LSTM 구조 + Attention 레이어 추가
- 각 시점의 중요도를 고려한 예측이 가능해져 일반화 성능이 유의미하게 개선됨
- Attention이 없을 경우에는 모든 입력을 동일하게 처리하기 때문에 일부 중요하지 않은 정보까지 모델이 학습하여 과적합 위험이 높았음
Stacked LSTM 도입으로 메모리 활용에 따른 성능 향상을 얻었고,
Attention 결합을 통해 핵심 정보에 집중함으로써 추가적인 성능 개선 및 훈련 안정성 향상 달성
Attention Layer의 적용 방식
| attention | 여러 입력 중 어떤 것이 더 중요한지 가중치를 주는 방식 |
| self-attention | 입력 시퀀스가 자기 자신 안에서 어디를 중요하게 봐야하는지 학습 |
| encoder-decoder attention | 디코더가 인코더의 출력을 보며 어떤 부분이 중요한지 학습 |
| ㅤ | self-attention | encoder-decoder attention |
| 사용하는 위치 | Transformer 인코더/디코더 | Seq2Seq 디코더 |
| 목적 | 입력 내에서 상호 의존성 탐색 | 입력-출력 간 정렬 학습 |
| 사용 예 | 번역 인코더 | 번역 디코더, LSTM + Attention |
논문에서는 RNN 계열 sequence-to-sequence Attention 메커니즘 을 사용하여 LSTM의 출력 시퀀스로부터 최종 예측에 기여도가 높은 부분을 강조
Attention 레이어는 직전 시점의 LSTM 출력 과 현재 시점 후보 출력 를 입력으로 받아 해당 입력 의 중요도 점수 를 산출하는 함수 로 정의됨
함수 는 additive attention 함수를 나타냄. 논문에서는 함수 의 구체식을 명시적으로 제시하지 않았지만, 일반적으로 Bahdanau 등이 제안한 가산형 어텐션 에서 는 과 를 입력으로 하는 작은 신경망(또는 선형 결합 후 비선형 활성화)를 통해 스칼라 점수로 계산됨. 이렇게 계산된 각 시점의 score 를 정규화(softmax) 하여 최종 어텐션 가중치 를 얻는다.
값은 입력 시퀀스 각 항목 가 현재 출력 에 미치는 상대적 영향력을 의미
- 값이 클수록 해당 시점 입력이 출력에 더 중요한 기여를 함을 나타냄
Attention layer의 동작 구조
- = 이전 시간 스텝의 LSTM 출력(은닉 상태)
→ 현재 출력 를 계산할 때 문맥 벡터 를 형성하는데 활용됨
- 는 LSTM의 각 시점 출력을 나타내며 아래의 ~ 는 해당 시점의 입력들
Attention 모듈은 이전 상태 과 각 로부터 Score 를 계산한 뒤 (+ 기호로 표시된 노드에서) softmax 정규화를 통해 가중치 를 얻음
이렇게 얻어진 가중치들은 각 시점 출력 에 곱해져 가중합이 이루어지며, 그 결과가 현재 시간의 LSTM 출력 와 결합되어 최종 출력 를 산출함.
이러한 어텐션 방식은 self-attention(자가 어텐션)과 달리 인코더-디코더 간 어텐션의 형태로, 이전 디코더 상태 와 전체 인코더 출력 시퀀스 { } 를 함께 고려하는 addivite attention 기법
Transformer 모델 등의 self-attention과는 다르게, 본 논문의 Attention 레이어는 인코더 LSTM 출력에 대한 가중 집합을 구하여 디코더 역할을 하는 최종 출력층에 정보를 전달하는 역할을 수행