Date | 16/11/29 01:49:14 |
Name | Azurespace |
Subject | 마, 얼굴만 봐도 알겠네! 너지! |
https://arxiv.org/pdf/1611.04135v2.pdf 이 논문의 연구 주제는 "얼굴을 보고 범죄자와 비범죄자를 구분할 수 있는가"입니다. 그리고 이건 보통 진지하게 연구할 생각을 못 할 거라고 생각해요. 요즘 세상에 선진국에서 "너는 이러저러하게 생겼으니 성격이 이럴 거다, 어떤 범죄에 주의해라" 이런 소리를 지껄이고 다니면 차별금지법으로 감방 신세를 지게 될지도 모르죠. 그러니 연구가 어려워서라기보다는 도덕적 윤리적 문제 때문에 감히 시도할 생각도 하지 않는 것일텐데, 연구에 윤리적 금기 그런 거 없는 중국인들이라 할 수 있는 것 같습니다. 사실 사람들은 얼굴을 통해 그 사람이 어떤 사람인지 알 수 있다고 믿는 경향이 있습니다. 이건 비단 동양만의 이야기는 아니고 서양에서도 어느 정도 있습니다. 자기 경험에서 비롯된 선입견들이 있는데 그걸 과거에 나름대로 집대성한 것이 일종의 관상'학'(유사과학이므로 학을 붙이는 것은 부적절합니다만)이었고, 그러한 선입견들은 사회적으로 계속 이어져 내려옵니다. 어쨌든, 많은 사람들이 얼굴을 보면 그 사람이 선한지 악한지, 어느 계층의 사람인지 알아낼 수 있다고 생각합니다. 이들은 그걸 검증해보려고 한 것이죠. 다만 관상에서 말하는 요소들이 사실인지 아닌지를 검증하는 식은 아닙니다. 대신 이들이 사용한 방법은 정면에서 찍은 얼굴 사진을 머신 러닝 알고리즘으로 분석해서 범죄자와 비범죄자를 구별시켜본 겁니다. 아, 그리고 이런 연구는 잘못 악용하면 과거의 우생학처럼 잘못된 방면으로 이용될 가능성이 대단히 높기 떄문에, 서양 학회에 내보내면 분명히 많은 태클을 받을 것이 분명합니다. 그래서인지 꽤 다양한 방법을 적용해서 이게 그냥 입맛에 맞춘 결과가 아니라는 것을 보이기 위해 노력을 했고, 논문 상에 변명도 적어 두었습니다. Unlike a human examiner/judge, a computer vision algorithm or classifier has absolutely no subjective baggages, having no emotions, no biases whatsoever due to past experience, race, religion, political doctrine, gender, age, etc., no mental fatigue, no preconditioning of a bad sleep or meal. The automated inference on criminality eliminates the variable of meta-accuracy (the competence of the human judge/examiner) all together 컴퓨터 비전 알고리즘 혹은 분류기는 인간 심사위원/판정단과는 달리 감정이 없으므로 주관적인 앙금이 없으며, 과거의 경험, 인종, 종교, 정치적 성향, 성별, 나이 등 그 무엇에 대해서도 편견을 가지고 있지 않습니다. 정신적 피로를 느끼지 않으며 잘못된 식사나 수면 조건으로 인한 컨디션 문제도 없습니다. 범죄성에 대한 자동화된 추론은 사람의 능력차에 따른 정확도의 변수도 모두 없앱니다 일견 일리있어 보이지만, 사실 그렇지 않으며 매우 위험한 소리입니다. 왜냐면 신경망은 "우리가 입력한 데이터"에서 "원하는 결과"를 얻기 위한 최적화된 표현이 무엇인지 학습하는 것이므로 데이터 자체에 사회적 인종적 편견이 적용되어 있다면 그 편견마저도 가장 잘 나타내는 방법을 학습해 버리기 때문입니다. 그래서 이 연구에서 가장 중요한 것은 양질의 데이터 세트를 만드는 것입니다. 이들 역시 그 점이 가장 중요하다는 것은 알고 있었고, 데이터가 특정한 집단에 쏠려 있는 것 아니냐는 지적을 받지 않기 위해서 이것저것 많은 시도를 했습니다. 뭐, 이걸로 충분한지 솔직히 의문이긴 하지만 참고할만한 데이터 세트가 없고 가장 최초의 시도라는 것을 감안하면, 저는 그렇게 나쁘진 않다고 봅니다. 음, 일단 연구진은 데이터를 신분증용 정면 사진에 한정했습니다. 얼굴은 각도에 따라서 매우 다른 형태를 띄고 있고, 표정에 따라서도 얼굴 요소들은 크게 변할 수 있지요. 중국의 신분증 사진은 정면에서 무표정으로 찍은 사진을 사용하도록 되어 있으므로 그런 편차를 줄이는 데 이용할 수 있습니다. 모든 대상자는 중국인이며 18세에서 55세의 남성으로 한정했습니다. 모든 사진에는 얼굴에 수염이나 흉터, 문신 등이 없습니다. 구분할 수 있는 특징은 일부는 범죄자이며 일부는 범죄자가 아닌 평범한 사람들이라는 것이죠. Sc(범죄자 집합)은 총 730명이며 중국 공안과 시경으로부터 혐의가 확정적인 인물들을 제공받았습니다. 일부는 기밀 유지 서약 후에 받아냈고요. 교도소에서 찍는 머그샷이 아니라, 이들도 평범하게 신분증에 사용한 사진을 이용했습니다. 730명 중 235명은 살인, 강도, 강간, 폭행, 납치 등의 폭력 전과자들이고, 나머지는 절도, 사기, 횡령, 배임 등 지능범을 포함한 비폭력 범죄자들로 분포되어 있습니다. Sn(일반인 집합)은 1126명이며 넓은 사회적 지위를 가지고 있습니다. 교수, 의사, 변호사에서부터 웨이터, 택시기사, 트럭 운전수에 이르기까지 다양한 직업을 갖도록 선정되었습니다. 모든 사진은 촬영조건에 의한 영향을 최소화하기 위해 동일한 밝기로 보정된 흑백 그레이스케일로 변환되었으며, 헤어스타일과 옷차림은 제거하고 정면 얼굴만 남겨서 사용했습니다. 뭐 실험 부분은 복잡한데... SVN, KNN, 그리고 컨볼루셔널 신경망(CNN)을 써 보았죠. 그리고 쉽게 예상할 수 있듯 이 중에서는 CNN이 가장 성능이 뛰어났습니다. 그러나 다른 머신 러닝 알고리즘들도 어느 정도 구별을 해내는데 성공했어요. 뭐 다만 CNN이 가장 성능이 뛰어나니까 이것만 보죠. 이미 컴퓨터 비전에서 많이 이용되고 있는 AlexNet을 사용해서 파라미터만 다시 학습시켰습니다. CNN의 결과는... AUC는 뭔가 하면 단순히 정확도는 판별이 맞고 틀리고를 나타내는 것인데, 특정한 종류의 이진 구분기에서는 정확도보다도 양(음)성이 아닌데 양(음)성으로 잘못 판별하는 정도가 얼마나 되는지가 중요할 수 있습니다. 예를 들어서 암 진단 키트 같은 경우가 그럴 수 있죠. 그래서 진짜 양성과 가짜 양성(양성이 아닌데 양성으로 판별한 경우)의 비율을 그래프 위에 그려 놓고 그 곡선 밑의 넓이를 계산합니다. 진짜 양성을 100%로 구분해내고 가짜 양성이 0%라면 AUC는 1이 됩니다. 그러니 사실 0.9541은 상당히 높은 수치인 것이죠. 다만 데이터의 수가 2천개 정도로 적기 때문에 이거 그냥 오버피팅된거 아니냐? 라는 의문이 들 수 있어서, 이 사람들은 같은 데이터 세트에 대해서 라벨만 랜덤하게 마구 섞어버린 다음 동일한 실험을 반복합니다. 이렇게 했더니 CNN의 정확도는 48%에 가양성 가음성 비율도 거의 50% 근처로 떨어집니다. (즉 그냥 범죄자/비범죄자 랜덤하게 찍는 것과 다를 것이 없는 상황입니다) 뭐 중국인 여성 사진도 넣어보고 백인 사진도 넣어보고 했지만 50퍼센트를 못 넘더라고, 그렇게 함으로써 실제로 존재하지 않는 특징을 추출해서 학습해버린 오버피팅이 아니다, 실제로 그런 특징이 존재하기 때문에 이렇게 나오는 것이다 주장하려 한 것이죠. 사실 이 정도만 해도 나름대로 재미있는데, 한 발짝 더 나갔습니다. 그럼 범죄자와 비범죄자의 얼굴에서 구별점은 무엇인가를 찾으려고 한 거죠. 요컨대 관상학의 머신러닝적 해석을 찾아내는 작업이라고 할까요. 왼쪽이 네트워크가 범죄자와 비범죄자를 구분하기 위해 사용하는 정보 영역들이고, 오른쪽은 범죄자와 비범죄자의 얼굴에서 가장 뚜렷한 차이가 나는 세 가지 요소를 시각화한 것이라고 합니다. 저 세 가지 요소를 히스토그램으로 만든 건데요. 눈으로 보기에도 분포가 약간 다르긴 다른 것 같네요. 그러나 범죄자나 비범죄자 모두 다양한 값에 걸쳐 분포하고 있는데 저걸 가지고 구분씩이나 할 수 있는 건가 싶은 미세한 차이인데, CNN은 저 세가지 외에도 다양한 요소들을 종합적으로 보고 판단하니까 89퍼센트의 정확도를 낼 수 있는 것이겠지요. 음, 그런데 말이죠. 왼쪽 두 장은 범죄자의 평균 얼굴, 오른쪽 두 장은 비범죄자의 평균 얼굴을 구한 것입니다. 위쪽은 그냥 이미지 데이터를 평균낸 것이고, 아래 두 장은 CNN의 구별 포인트를 기준으로 이미지를 변형해서 합친 것입니다. 그런데... CNN이 범죄자와 비범죄자를 그렇게 높은 확률로 구별해낼 수 있는데, 비범죄자의 평균 얼굴과 범죄자의 평균 얼굴은 거의 차이가 없이 동일하다 라는 것을 알 수 있습니다. 재미있는 결과죠. 뭐 그 뒤에는 그래서 얼굴들을 비슷한 요소를 갖는 것들끼리 클러스터링해보고, 뭐 그 클러스터들의 중심을 뽑아내서 사람들에게 범죄자인지 비범죄자인지 맞혀보라고 했더니 범죄자를 범죄자로, 비범죄자를 비범죄자로 구분한 경우가 반대보다 많았다. 즉 사람들도 어느정도 구별은 하더라, 그런데 클러스터가 중심에서 분산이 크면 사람이 맞추기가 어려워서 정확도가 떨어지더라 등등 흥미로운 추가 실험에 대한 얘기들이 있네요. 뭐어... 그래서 제 개인적인 소감을 말하자면
정도가 되겠네요. 17
이 게시판에 등록된 Azurespace님의 최근 게시물
|