STUDY

멀티 모달(Multi Modal) 딥러닝

sorrow16 2021. 12. 21. 13:20

멀티 모달(Multi Modal)

멀티 모달은 여러 가지 형태와 의미로 컴퓨터와 대화하는 환경을 의미한다. 멀티 모달에서 모달은 모달리티(Modality)를 의미하는데 모달리티는 인터랙션 과정에서 사용되는 의사소통 채널을 말한다. 여기서 인터랙션은 통신을 주고받는 형태 즉, 단방향의 통신이 아닌 양방향 통신을 의미한다. 멀티 모달 인터페이스는 전통적으로 텍스트 외에 음성, 제스처, 시선, 표정, 생체신호 등 여러 입력 방식을 융합하여 인간과 컴퓨터 사이에 자연스러운 의사소통이 가능한 사용자 친화형 기술이다. 과거에는 기계가 이해하기 쉬운 형태로 입력을 줬다면 최근에는 사용자가 이해하기 쉬운 형태로 컴퓨터에게 입력을 전달하는 형태로 발전한 것이다.

이러한 멀티 모달을 이용하면 사람의 여러 신체 부위에 컴퓨터와 소통할 수 있는 모달 장치를 부착하고 해당 장치들을 통해 행동 분석, 감정 분석 등을 할 수 있다. 즉, 사람과 컴퓨터를 연결하여 데이터를 수집하고 분석할 수 있는 것이다. 이러한 데이터 수집을 기반으로 불규칙적인 사람의 여러 감정과 행동에 대한 데이터를 수집할 수 있고 해당 데이터를 기반으로 사람의 감정에 대한 행동 분석을 할 수 있는 모델을 구현할 수 있다.

사람의 심전도, 피부 온도, 피부전도도를 이용하여 사람의 감정을 예측하는 연구도 진행되었으며 해당 연구에서 부정적인 감정으로 인한 스트레스 유발, 집중력 저하 등의 문제를 해결하기 위해 부정적인 감정이 나타나는 것을 미리 인지할 수 있는 모델을 만드는 연구이다. 멀티 모달 장치를 착용한 사용자들에게 여러 장르의 영화를 보여주며 감정의 변화를 수집했으며 수집된 데이터를 이용하여 모델 학습에 적용시켰다. 학습에 사용된 모델은 DNN과 DBN을 이용했다.

 

DNN(Deep Neural Network)

DNN은 인공 신경망을 깊게 쌓아놓은 구조이다. 즉 입력, 은닉, 출력의 층에서 은닉층의 갯수를 깊게 쌓아서 학습 결과를 향상시키는 방법이다. 해당 과정을 통해 스스로 분류 레이블을 만들게 되며 데이터를 구분짓는 과정을 반복하여 최적의 구분선을 도출한다. 여러 종류의 활성화 함수를 사용할 수 있으며 대표적으로 시그모이드(Sigmoid), ReLU, Softmax 등이 있다.

DBN(Deep Belief Network)

DBN은 DNN과 유사한 구조를 가진다. 하지만 DNN에서는 오차를 줄이기 위해 오류 역전파 알고리즘을 사용하지만 DBN에서는 층을 쌓는 초기 과정에서 부터 가중치를 조정하는 알고리즘을 활용한다. 여기서 오류 역전파 알고리즘은 지도 학습에 사용되며 오차를 줄이기 위해 사용한다. 지도학습은 데이터의 특징과 특징에 대한 답을 알려준 상태로 모델에게 학습시키는 것으로 모델은 특징에 대한 정답을 알고있는 상태이다. 즉, 답을 알고있는 상태에서 자신이 학습하여 도출해낸 결과와 정답을 비교하고 그 오차가 얼마나 차이나는지 확인 후 가중치를 갱신하는 알고리즘이다. 즉, DNN에서는 입력층 부터 출력층 가지 모든 과정을 거친 후 역전파를 통해 가중치를 갱신하는 반면, DBN은 각 노드에서 학습한 결과를 바로 역전파로 확인하며 가중치를 갱신하는 형태이다.

 

해당 연구에서는 총 4개의 은닉층을 이용하고 각각의 은닉층은 [64,64,32,16]개의 은닉 노드로 설정하여 실험한다. 그 결과 93% 이상의 정확도를 보이는 모델을 구현했다.

이처럼 멀티 모달 장치를 이용하여 사람에게 여러 생체 데이터를 수집할 수 있으며 수집된 데이터로 사람의 감정을 더욱 잘 이해하는 모델을 만들 수 있다. 하지만 모델에 학습한 데이터를 제공해야 하기 때문에 모달 장치를 장착한 상태로 해당 모델을 동작해야 한다는 점을 생각해야한다. 즉, 간단하게 착용할 수 있는 웨어러블 장비를 통해 수집한 데이터로 모델을 만들면 쉽게 데이터를 인식시켜서 모델을 동작시킬 수 있지만 복잡한 기계를 통해 수집된 데이터는 특수한 목적으로 사용될 확률이 높다. 특정 질병을 예측해야 하거나 영화에서만 보던 거짓말 탐지기 같은 형태이다.

'STUDY' 카테고리의 다른 글

HTTP 상태 코드 정리  (0) 2021.11.29
CLI, GUI, NUI, OUI란 무엇인가  (0) 2021.11.16
[용어] UAT(User Acceptance Test)  (0) 2021.07.12
Javascript 관련기술  (0) 2021.01.05
Javascript 입문 - IF문 사용법  (0) 2021.01.03