[조진과제][정보융합탐구][3월과제] 탐구 계획서

2024. 3. 28. 21:25카테고리 없음

1. 문제 인식하기

 딥페이크(Deepfake)란, 인공지능 기술인 딥러닝(deep learning)과 ‘가짜’를 의미하는 단어인 페이크(fake)의 합성어로, 인공지능 기술을 이용하여 진위 여부를 구별하기 어려운 가짜 이미지나 영상물을 뜻한다. 그런데 이런 딥페이크를 이용한 가짜 뉴스가 인터넷에서 급속히 퍼지고 있어 사회적으로도 많은 사람들에게 혼란을 주고 있다. 게다가 더욱 중요한 것은, 이러한 딥페이크 기술이 인공지능 기술이 급속히 발전함에 따라 덩달아 같이 발전해 이제는 사람의 눈으로는 도대체 어떤 사진이 진짜이고, 어떤 사진이 딥페이크 기술로 합성된 가짜 사진인지 판별할 수 없을 정도로 그 기술이 발달했다는 것이다.

 따라서 이러한 문제에 미리 대비하는 차원에서 라는 이유도 있지만, 근본적으로 딥러닝에 대한 학문적 이해도를 높이고자 인공지능(딥러닝)을 통해 사용자로부터 특정 이미지를 입력받으면 그 사진이 딥페이크로 합성된 사진인지 아닌지를 확률적으로 알려주는 인공지능을 개발해보고자 이번 주제를 "인공지능을 활용한 딥페이크 분석" 으로 선정하게 되었다.

 

2. 관련 조사 시행

 다음은 주제에 관련한 여러 내용을 조사한 것을 표로 간단히 정리하여 나타낸 것이다.

데이터 전처리  데이터를 분석 및 처리에 적합한 형태로 만드는 과정을 총칭한다. 데이터 전처리 과정을 통해 불필요한 데이터를 제거하고, 결측치나 이상치를 처리하여 데이터의 질을 향상시킬 수 있다. 이렇게 가공된 데이터는 분석 모델을 구축하고 결과를 도출하는 데에 더욱 유용하게 활용된다.
인공신경망  생물한적인 뉴런을 수학적으로 모델링한 것으로, 여러 뉴런으로 이루어져 있으며 뉴런은 각각 여러 입력값을 받아서 일정 수준이 넘어서면 활성화되어 출력값을 내보낸다.
 
 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)로 이루어져 있다.
합성곱신경망(CNN)  기존의 인공신경망에서 이미지나 영상과 같은 데이터를 처리할 때 생기는 문제점을 보완한 방법이다. 이미지 처리에서 주로 사용된다.
활성화 함수  이전 층(레이어, layer)의 결과값을 변환하여 다른 층의 뉴런으로 신호를 전달하는 역할을 한다. 활성화 함수를 사용하면 입력값에 대한 출력값이 비선형적으로 나오기 때문에, 모델의 복잡도를 올리는 데에 중요한 역할을 한다.

 시그모이드(sigmoid), 하이퍼볼릭 탄젠드(tanh), 렐루(ReLU) 등 다양한 활성화 함수가 존재한다.
하이퍼파라미터 (hyperparameter)  학습률(learning rate), 에포크(epoch) 등이 있으며 최적의 훈련 모델을 구현하기 위해 모델에 설정하는 변수들을 의미한다.

 

3. 문제 해결 방안 설계

 (1) 데이터 수집

 딥러닝에서 가장 중요한 것은 데이터이다. 데이터를 통해 스스로 학습해나가며 정확도를 높이고 손실을 줄여가는 딥러닝의 특성상, 데이터의 양과 질이 매우 중요하다. 따라서 우선 딥페이크 사진과 실제 사진을 수집해 이를 라벨링하는 과정을 거칠 것이다.

 이러한 데이터는 kaggle이나 github, AI-hub 등 다양한 곳에서 방대한 양의 데이터를 수집할 수 있다. 실제로 kaggle에 'deepfake'라고만 검색해봐도 매우 많은 양의 검색 결과가 보이는 등 위 주제와 관련하여 데이터의 접근성 자체도 좋아 수집에도 용이하다고 판단된다. 다음은 실제 딥러닝 학습에 사용할 데이터를 임시적으로 한번 가져와 보았다.

 


https://www.kaggle.com/datasets/manjilkarki/deepfake-and-real-images

 

deepfake and real images

Detect if any images is real image of deepfake image

www.kaggle.com

 이는 kaggle에 올라와있는 데이터셋으로, Zenodo라는 공신력이 있다고 판단되는 사이트에 있는 데이터를 Test, Train, Vailidation 으로 적절히 분류해놓은 데이터셋이다. 모델 학습에 적합한 데이터라고 판단되어 모델 학습에 사용할 계획이다.

 

https://www.kaggle.com/c/deepfake-detection-challenge/overview

 

Deepfake Detection Challenge | Kaggle

 

www.kaggle.com

 이는 kaggle에 올라와있는 데이터셋으로, 딥페이크를 탐지하는 대회(DFDC, Deepfake Detection Challenge)에서 사용되므로 공신력이 있는 데이터라고 판단되며, 그 데이터 양은 약 500GB정도로 매우 많아 딥러닝 학습에 적합하다고 판단되어 이 데이터를 학습에 사용할 예정이다.


 

 (2) 딥러닝 구축

 먼저 입력 값으로는 사용자로부터 받는 '임의의 사진'이 있다. 현재로써 사용자로부터 입력받는 사진은 jpg 형식의 아무 파일이나 가능하도록 할 것이다. 출력 값으로는 인공지능이 해당 사진이 딥페이크로 합성된 영상인지 아닌지 판단한 후의 '확률'을 출력하도록 할 것이다.  학습할 데이터로는 2개의 라벨 딥페이크 사진 / 실제 사진을 기준으로 한 딥페이크 처리된 사진들과, 실제 사진들이 있다. 이를 표로 정리하여 나타내어보면 다음과 같다.

입력값 임의의 사진
출력값 (딥페이크일) 확률
학습 데이터 여러 딥페이크 처리된 사진, 실제 사진
학습 데이터 라벨 가짜 / 진짜

 

 주제가 이미지 처리와 관련이 꽤 깊은 만큼, 이미지 데이터에서 패턴을 인식하는 데에 가장 적합하다고 판단한 CNN 모델을 학습시킬 계획이다. 데이터를 학습시키면서 여러 하이퍼파라미터를 조정하고, 여러 활성화 함수를 사용하거나 여러 층을 추가/제거하고 서로 순서를 뒤바꿔보는 등등 서로 여러 시도를 통해 결과값을 비교해가면서 과연 어떠한 조건에서 최적의 결과(높은 정확도 또는 낮은 손실)을 내는지도 탐구해볼 계획이다.

 개발 환경은 Colab에서 진행할 예정이다. 구글 계정만 있다면 어디서든 접속할 수 있기에 높은 접근성이 있다는 장점이 있어 언제 어디서든 장소를 가리지 않고 개발하기에 편하기 때문이다.

 개발이 끝난 후에는 임의로 딥페이크처리된 사진을 만들어 잘 작동하는지도 추가적으로 평가해볼 계획이다.

 

 (3) 후속 연구

 이번에 선정한 주제가 주제인 만큼, 딥페이크 사진인지 아닌지 판단하는 인공지능을 구축하는 것은 매우 어려운 작업을 필요로 할 것으로 예상된다. 따라서 만약 시간이 된다면 딥러닝 구축이 끝난 후에는 LSTM이나 RNN같은 새로운 모델을 사용하거나 학습 방식을 바꾸어 보거나, 새로운 질좋은 데이터를 찾아 학습에 사용하는 등 여러 시도를 통해 결과를 계속 비교해보면서 더 높은 정확도, 더 낮은 손실을 보이는 모델을 찾아내고자 탐구할 것이다.

 또는 학습시키는 동안 얻었던 데이터를 토대로 '왜 모델이 이러한 결과값을 내왔을까?'를 탐구해봄으로써 딥러닝에 대한 이해도를 높이고자 할 것이다.

4. 기대효과

 만약 특정 사진이 딥페이크로 합성된 사진인지 아닌지를 판별해주는 인공지능이 잘 개발된다면, 이는 누군가가 가짜 뉴스르 퍼뜨려 사람들을 선동시키거나 하는 등 범죄를 목적으로 하는, 사회적으로 부정적인 일을 사전에 방지하는 데에 큰 기여를 할 수 있을 것으로 보이며 최종적으로는 인터넷에 떠돌아다니는 정보들에 대한 사람들의 신뢰성을 증진시킬 수 있을 것으로 기대된다!

 또한 이번 탐구를 통해 단순히 인공지능에 대해 조사해보는 것 뿐만 아니라 직접 스스로 실습을 해보면서 딥러닝에 대해 큰 이해와 관심을 갖을 수 있을 것이라고 기대된다.