Ⅰ. 서론
플렉셔는 물체가 하중을 받았을 때 물리적으로 휘어지거나 구부러지는 현상이다. 특히 전투기 날개는 탄소섬유로 제작되어 하중이나 공기 압력을 받으면 휘어지도록 유연하게 설계된다. 이러한 구조적 특성은 비행 효율성과 안정성 측면에서는 장점이 되지만, 전투기나 무장헬기 날개부위에 장착되는 무기체계에는 발사 전 자세정렬 과정에서 오차 요인으로 작용한다.
이를 해결하기 위해 날개를 역학적으로 모델링하거나 플렉셔 거동을 Markov process로 가정하여 확률적으로 모델링하는 방법들이 연구되고 있지만[1]-[4], 다양한 요인에 따라 불규칙하게 변하는 플렉셔 거동을 모델링 하는데 한계가 있다. 한편, 최근의 딥러닝 연구 결과들은 이처럼 비선형성이 커 기존의 역학적, 확률적 방법으로 모델링하기 어려운 문제를 해결하기에 적합하다. 이러한 딥러닝 기술을 플렉셔 모델링에 적용하여 성공적인 결과를 얻기 위해서는 다량의 플렉셔 데이터 확보가 필수적이다. 하지만, 전투기나 무장헬기를 실제로 운용하여 필요한 만큼 다량의 데이터를 확보하는 것은 현실적으로 불가능하다.
본 논문에서는 데이터를 생성하는 대표적인 딥러닝 기법인 생성적 적대 신경망(GAN; Generative Adversarial Network)을 활용하여, 다량의 플렉셔 데이터를 추가로 생성할 수 있는 알고리즘을 개발하였다. 무장헬기를 운용하여 얻은 가속도 데이터를 단시간 푸리에 변환(STFT; Short Time Fourier Transform)을 통해 2차원의 스펙트로그램(Spectrogram) 이미지로 변환하였다. 변환된 이미지에 심층 합성곱 생성적 적대 신경망을 적용하여 새로운 플렉셔 데이터를 생성하였다. 이 알고리즘은 스펙트로그램을 이용했다고 해서 SpecGAN 이라고도 한다[5]. 생성된 데이터의 성능은 생성적 적대 신경망의 대표적 성능 측정 지수인 FID (Frechet Inception Distance)를 사용하여 평가하였다[6]. 최종적으로 생성된 데이터는 육안 상으로 원본 데이터와 유사함을 확인하였고, 학습 반복 횟수에 따라 FID 점수가 낮아지는 경향을 통해 향후 GAN을 활용한 플렉셔 데이터 생성 가능성을 검증하였다.
본 연구는 2019년 C. Donahue가 발표한 논문[5]을 참고하였으며, 국내 유사 연구로는 심층 합성곱 생성적 적대 신경망을 이용한 전력 데이터 생성 및 정확도 측정[7], GAN으로 합성한 음성의 충실도 향상[8]에 관한 연구가 있다.
Ⅱ. 생성적 적대 신경망(GAN) 개요
2014년 Ian Goodfellow가 생성적 적대 신경망의 기본 개념을 처음 발표한 이후[9], 수많은 관련 연구들이 수행되었다. GAN은 판별기와 생성기간의 적대적 학습을 통해 원본 이미지의 확률 분포를 학습하여 원본과 유사한 가짜 이미지를 생성한다. 따라서 원본 이미지와 가짜 이미지의 확률 분포 간 유사도가 학습의 방향을 결정하는 손실함수가 된다. 즉, GAN은 생성기를 통과한 잠재벡터(Latent vector) z의 확률 분포와 원본 데이터 x의 확률분포를 유사하게 만드는 과정이라고 할 수 있다.
2-1 확률 분포 간 유사도 측정
GAN 알고리즘에 적용되는 확률 분포 간 유사도를 측정하는 대표적인 방법으로 쿨백-라이블러 발산(KLD; Kullback Leibler Divergence), 젠슨-섀넌 발산(JSD; Jenson-Shannon Divergence), 와서스테인 거리(Wasserstein Distance)에 대해 설명한다.
1) 쿨백-라이블러 발산(KLD)
확률 분포 간 유사도를 측정하는 가장 기본적인 방법으로 두 확률 분포 p와 q의 정보 손실 량 차이에 대한 기댓값을 나타내며 다음의 수식으로 정의된다.
\(\begin{aligned} D_{K L}(p \| q) & =E[\log (p(x))-\log (q(x)) \\ & =\sum_{x \in \chi} p(x) \log \left(\frac{p(x)}{q(x)}\right)\end{aligned}\) (1)
2) 젠슨-섀넌 발산(JSD)
KLD는 수식에서도 알 수 있듯이 Symmetric 하지 않다는 문제가 있다. 즉, DKL(p||q) ≠ DKL(q||p) 이다. 이 문제를 해결한 것이 단순히 KLD를 Symmetric 하게 개량한 JSD이다. 흔히 GAN 알고리즘에서 생성기와 판별기를 최적화하기 위해 사용하는 최소·최대 알고리즘(min-max algorithm)은 확률 이론상 다음 수식으로 정의된 JSD를 최소화 하는 것과 동일하다[5].
\(\begin{aligned}J S D(p, q)=\frac{1}{2} D_{K L}\left(p \| \frac{p+q}{2}\right)+\frac{1}{2} D_{K L}\left(q \| \frac{p+q}{2}\right)\end{aligned}\) (2)
3) Wasserstein Distance
하지만, JSD를 이용한 GAN 알고리즘의 최적화에는 모드 진동(Mode oscillating), 모드 붕괴(Mode collapsing)와 같은 문제가 있다. 이러한 문제를 해결하고자 2017년 Gulrajani에 의해 Wasserstein Distance를 이용한 최적화 방안이 제안되었으며[10], 본 논문에서 GAN의 최적화 방안으로 사용하였다.
\(\begin{aligned}W\left(P_{X}, P_{G}\right)=\sup _{\|f\|_{L} \leq 1} E_{x \sim P_{X}}[f(x)]-E_{z \sim P_{G}}[f(x)]\end{aligned}\) (3)
여기서 ||f||L 은 f가 Lipschitz 함수임을 의미한다. 이 Wasserstein Distance를 최소화하는 GAN 알고리즘을 WGAN이라고 하며, 가치함수는 아래와 같이 정의된다.
VWGAN(Dw, G) = Ex∼Px[Dw(x)] - Ez∼Pz[Dw(G(z)] (4)
Ⅲ. 학습 데이터 전처리
3-1 플렉셔 데이터 획득
1) 날개 플렉셔 확인
무장헬기 날개에서 플렉셔가 발생하는지 여부를 확인하기 위해 Fig 1과 같이 무장헬기의 날개 안쪽과 바깥쪽에 1 [kHz]의 속도로 계측이 가능한 진동 센서를 장착하였다. 이 후, 헬기를 기동하여 Fig 2와 같이 날개 바깥쪽과 안쪽 진동에 대한 주파수 성분을 분석하였다. 약 29 [Hz] 대역에서 날개 안쪽과 바깥쪽 모두에서 크게 나타난 신호 응답은 헬기 로터에 의한 진동이다. 10 ~ 15 [Hz] 대역에서 날개 바깥쪽와 안쪽의 주파수 성분이 다르게 계측되었는데 이를 날개 플렉셔에 의한 영향으로 볼 수 있다.
그림 1. 무장헬기 날개의 플렉셔 존재 여부 확인을 위한 날개 안쪽 및 바깥쪽 진동 센서 부착 위치
Fig. 1. The position of vibration sensor mounted on the helicopter for verifying the wing flexure motion
그림 2. 진동 센서 계측 데이터 주파수 분석 결과
Fig. 2. The frequency analysis result of the sensor data from the helicopter
2) 가속도 데이터를 이용한 플렉셔 데이터 획득
앞서 확인한 플렉셔 데이터 획득을 위해 Fig 3과 같이 무장 헬기의 중심부와 날개 끝에 가속도계를 장착하였다. 장착된 가속도계로부터 400 [Hz]로 샘플링 된 가속도 데이터를 얻을 수 있으며, 중심부에 장착된 가속도계는 날개에 장착된 가속도계에 비해 상대적으로 훨씬 정밀하여 오차가 없다고 가정한다. 따라서 측정된 가속도는 식 (5)와 같이 정의할 수 있다.
그림 3. 플렉셔 가속도 데이터를 얻기 위한 가속도계 부착 위치
Fig. 3. The position of accelerometer mounted on the helicopter for acquiring the flexure acceleration
fb = Cbrfr + fblever + fbflex + 𝜖b, 𝜖b ≈ 0 (5)
여기서 fb, fr는 각각 날개와 플랫폼 중심부에서 측정된 가속도, Cbr는 플랫폼 항법장치와 날개 항법장치 사이의 회전변환행렬, fblever는 지렛대(Lever arm) 효과에 의한 가속도, fbflex는 플렉셔 효과에 의한 가속도, 𝜖b는 가속도센서 오차를 의미한다. 본 논문에서 센서에 의한 오차는 플렉셔에 비해 무시할 수 있을 만큼 작다고 가정한다. 따라서 플렉셔는 아래 식으로 표현될 수 있으며, Fig 4는 식을 이용해 획득한 z축 방향 가속도 플렉셔의 한 예이다.
fbflex ≅ fb - Cbrfr - fbflex (7)
그림 4. 추출된 2.5초 길이의 z축 플렉셔 가속도 샘플
Fig. 4. The sample of acceleration with the length of 2.5 seconds on the z-axis
3-2 단시간 푸리에 변환과 스펙트로그램
GAN 알고리즘은 이미지 데이터 생성에 특화된 알고리즘이다. 하지만, 앞서 추출한 플렉셔는 시계열 데이터 이므로 이를 이미지화 하여 사용하는 것이 GAN 학습에 유리하다. 이를 위해, 본 논문에서는 단시간 푸리에 변환을 적용하여 가속도 플렉셔 데이터를 스펙트로그램 이미지로 변환하였다.
단시간 푸리에 변환은 시간 변화에 따른 주파수 성분의 변화를 분석할 때 사용된다. 신호의 STFT는 길이가 M인 분석 윈도우를 정의하고 윈도우가 적용된 신호의 이산 푸리에 변환(DFT)을 계산하는 방식으로 수행된다. 하나의 윈도우에 대한 계산이 끝나면 R 샘플만큼 이동시켜 같은 방식으로 윈도우에 대한 DFT를 계산한다. 이렇게 전체 신호에 대한 계산이 끝나면 STFT의 결과는 2차원 행렬로 나타나는데, 행 개수는 DFT를 적용한 지점의 개수와 같고 열 개수는 식 (10)과 같이 정의된다.
\(\begin{aligned}k=\left\lfloor\frac{N_{x}-L}{M-L}\right\rfloor\end{aligned}\) (10)
여기에서 Nx는 원본 데이터의 길이이고, L은 윈도우 중첩 길이이며, ⌊ ⌋는 바닥함수를 의미하는 기호다. (Nx=1000, L=17, M=25) STFT 행렬에서 m번째 열은 다음 식을 만족한다. 아래 식에서 g(n)은 길이가 M인 윈도우 함수이고, Xm(f)는 윈도우를 적용한 데이터를 mR시간에 대하여 DFT 한 결과이며, R = M - L 이다.
\(\begin{aligned}X_{m}(f)=\sum_{n=-\infty}^{\infty} x(n) g(n-m R) e^{-j 2 \pi f n}\end{aligned}\) (11)
일반적으로 스펙트로그램은 신호의 크기에 대한 정보만을 갖고 있어 GAN으로 생성한 데이터를 역 단시간 푸리에변환(ISTFT; Inverse STFT)을 통해 시계열 데이터로 온전히 복원하기엔 한계가 있다. 하지만 이미지 데이터는 시계열 데이터에 비해 GAN 학습에 적합하고, 2019년 Chris Donahue의 스펙트로그램을 활용한 음성 데이터 생성 연구[5]를 통해 스펙트로그램 결과를 유사 역변환 할 수 있다는 사실을 알 수 있다. 본 논문에서는 Fig 5와 같은 절차로 플렉셔 시계열 데이터를 회색조 이미지 데이터로 변환하였다. 학습 데이터를 늘리기 위해 최초 획득한 플렉셔 데이터를 2.5초 길이로 분할하였다. 여기에 STFT를 적용하면 2차원의 복소수 행렬로 변환하고, 복소수의 크기를 계산한다. 전체 데이터에 대해 0~1 범위로 정규화(Normalization)하고 0~255 범위의 회색조(Grayscale) 이미지로 변환한다. 이와같은 방식으로 총 3만 여개의 플렉셔 데이터를 이미지로 변환하여 GAN 알고리즘의 학습데이터로 사용하였다.
그림 5. GAN 학습 데이터 획득 과정
Fig. 5. The acquisition process for training GAN
Ⅳ. SpecGAN을 이용한 플렉셔 데이터 생성
4-1 SpecGAN 구조
본 논문에서는 플렉셔 데이터 생성을 위해 Chris Donahue가 2019년에 음성 합성을 위해 사용한 기법인 SpecGAN 알고리즘을 사용하였다[5]. SpecGAN은 입력으로 스펙트로그램 이미지를 사용하는 것을 제외하면 심층 합성곱 생성적 적대 신경망(DCGAN; Deep Convolutional GAN)[11]과 구조적으로는 동일하다. 표 1은 본 논문에서 사용한 GAN 알고리즘의 하이퍼 파라미터이며, 다음 두 절에서는 생성기와 판별기의 구조에 대해 설명한다.
그림 6. 플렉셔 데이터에 STFT 적용 후, 회색조 이미지 변환하여 얻은 학습데이터 샘플 (이미지 크기 = 498x122)
Fig. 6. The gray-scaled training data which is applied STFT (image size = 498x122)
표 1. SpecGAN 하이퍼 파라미터
Table 1. Hyper-parameter of the SpecGAN
1) 생성기 구조
(1,100) 크기의 랜덤하게 생성된 잠재벡터를 Dense 레이어를 통과시켜 1차적으로 (1,570) 크기의 벡터로 변환한다. 이 후, 전치 합성곱(Transposed convolution)을 통해 학습 데이터의 차원에 맞게 이미지를 업 샘플링(Up sampling)한다. 이는 기존에 이미지의 특징을 추출해 차원을 줄여나가는 합성곱 개념과는 반대되는 개념으로 이미지 합성 혹은 생성에 흔히 사용된다. 세부적인 구조는 표 2와 같다.
표 2. 생성기 GAN 구조
Table 2. Structure of the generator
2) 판별기 구조
판별기는 합성곱 신경망(CNN; Convolutional Neural Network)을 사용하였다. 498×122 크기의 진짜·가짜 이미지가 입력으로 들어오면 4개의 합성곱 레이어를 통과시킨 후, 최종적으로 Dense 레이어를 통과시켜 0, 1로 참, 거짓을 판별하는 구조이다. 이 때, 2장에서 설명한 Wasserstein 거리를 손실함수로 활용하기 위해 마지막 Dense 레이어를 통과한 후에는 어떤 활성화 함수도 통과시키지 않는다.
표 3. 판별기 GAN 구조
Table 3. Structure of the discriminator
4-2 생성 이미지 유사도 측정
앞서 설계한 GAN 알고리즘을 사용하여 약 3만 여장의 크기와 위상 이미지 데이터에 대해 1,000회 반복 학습을 수행하였고, 4개의 GPU를 병렬 처리하여 약 20일 정도 소요되었다. 그림 7은 각각 50회, 250회, 1000회 학습한 GAN으로 생성한 플렉셔 스펙트로그램 샘플이다. GAN 평가 방법에는 사람이 육안으로 평가하는 정성적 방법과 이미지 간 벡터 거리를 계산하는 정량적 평가 방법이 있다. 약 1,000회 학습 시, 육안 상으로는 상당히 유사한 이미지가 생성된 것으로 판단되어 이를 정량적으로 평가하기 위해 FID (Frechet Inception Distance) 기법을 사용하였다[6]. FID는 오로지 GAN의 성능평가를 위해 개발된 기법이다. 사전 학습된 Inception-V3 네트워크를 사용하여 원본 이미지와 생성된 이미지의 특징 점을 추출한 후, 아래 식(11)을 이용하여 FID를 계산한다. μr, μg 와 Cr, Cg는 각각 원본이미지와 생성이미지의 평균과 공분산을 의미하며, Tr 은 행렬의 대각 합이다.
\(\begin{aligned}F I D(r, g)=\left\|\mu_{r}-\mu_{g}\right\|^{2}+\operatorname{Tr}\left(C_{r}+C_{g}-2 \sqrt{C_{r} C_{g}}\right)\end{aligned}\) (11)
FID 점수는 만점이 0점이며, 50회, 250회, 1000회 학습에 대한 FID 점수 변화를 그림 8에 도시하였다. 최종적인 유사도를 각각 177.72, 82.15, 33.61점으로 확인하였다. 이와 같이 학습 반복 횟수별 FID 점수가 낮아지는 경향성은 추후 네트워크 확장과 동시에 하이퍼 파라미터를 최적화하고, 학습 횟수를 늘린다면 충분히 GAN을 통해 플렉셔 데이터를 생성할 수 있다는 가능성을 시사한다.
그림 7. GAN 반복(N회)학습 후, 이미지 생성 결과 (왼쪽 열부터 50회, 250회, 1000회 학습)
Fig. 7. The N iteration result of GAN (from the left, N=50, 250, 1000)
그림 8. GAN 반복학습 횟수 별 FID 점수 변화
Fig. 8. The variation of the FID score according to the iteration
Ⅴ. 결론
본 논문에서는 전투기 또는 무장헬기 날개에 장착되는 무기체계 전달정렬 정확도 향상을 위해 플렉셔를 보상하기 위한 모델링 연구를 수행함에 있어, 현실적으로 플랫폼 운용을 통해 플렉셔 데이터를 획득하기 어려운 문제를 극복하는 방안을 연구하였다. 이와 같이 다량의 데이터를 획득하기 어려운 환경에서 GAN은 대량 데이터 생성을 위한 획기적인 대안이 될 수 있다. 무장헬기 운용을 통해 얻은 가속도 데이터로부터 학습을 위한 플렉셔 데이터를 획득하였다. 그 후, 단시간 푸리에 변환을 통해 약 3만여 개의 플렉셔 데이터를 스펙트로그램 이미지로 변환하여 SpecGAN 알고리즘의 학습 데이터로 사용하였다. 총 1,000회의 반복 학습을 수행하며 생성된 데이터는 육안 상으로 원본 데이터와 유사함을 확인하였다. 정량적인 유사도는 FID를 통해 1,000회 반복 시 33.61점까지 떨어지는 것을 확인하였다. 학습을 반복함에 따라 FID 점수가 현저히 낮아지는 경향을 볼 때, 추후 하이퍼 파라미터를 최적화하고 물리적 시간을 소모하여 반복학습 횟수를 늘린다면 대체 가능한 플렉셔 데이터를 생성할 수 있을 것으로 판단된다.
References
- Y. Yigiter, Design And Analysis of Transfer Alignment Algorithms, Master's Thesis, Middle east technical university, Ankara, FEB, 2005.
- J. E. Kain, J. R. Cloutier, "Rapid Transfer Alignment for Tactical Weapon Applications," in Proceeding of the Guidance, Navigation and Control Conference, Messachusetts: MA, pp. 1290-1300, 1989.
- F. Qin, X. Zhan, and Y. Zhang, "Simulation of Rapid Transfer Alignment Considering Body Flexure and Data Delay on Dynamic Base," The Journal of Aeronautics, Astronautics and Aviation, Vol. 43, No. 4, pp. 261-268, Dec. 2011.
- Q. Cao, M. Zhong, and J. Guo, "Non-linear estimation of the flexural lever arm for transfer alignment of airborne distributed position and orientation system," IET Radar, Sonar & Navigation, Vol. 11, No. 1, pp. 41-51, May. 2016.
- C. Donahue, J. McAuley and M. Puckette, "Adversarial Audio Synthesis," in Proceeding of the ICLR 2019, Louisiana: LA, 2019.
- M. Heusel, H. Ramsauer, T. Unterthiner, B. Nessler and S. Hochreiter, "GANs Trained by a Two Time-scale Update Rule Converge to a Local Nash Equilibrium," in Proceeding of the Conference on Neural Information Processing Systems, California: CA, 2017.
- T. Kim, S. Lim and S. Yoon "Generating Power Data and Performance analyzing Using Deep Convolutional Generative Adversarial Network," in Proceeding of the 2020 KIEE Summer Conference, Busan, Korea, 2020.
- M. Back, S. Yoon, S. Lee and K. Lee, "Improving Fidelity of Synthesized Voices Generated by Using GANs," KIPS Transactions on Software and Data Engineering, Vol. 10, No. 1, pp. 9-18, Oct. 2020. https://doi.org/10.3745/KTSDE.2021.10.1.9
- I. J. Goodfellow, J. P. Abadie, M. Mirza, B. Xu, D. W. Farley, S. Ozair, A. Courville and Y. Bengio, "Generative Adversarial Nets," in Proceeding of the Conference on Neural Information Processing Systems, Montreal, Canada, 2014.
- A. Radford, L. Metz and S. Chintala, "Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks," in Proceeding of the ICLR 2016, San juan, Puerto rico, 2016.