brunch

You can make anything
by writing

C.S.Lewis

by 정경문 Dec 22. 2023

음악, 수학, 인공지능 이것을 연결해 주는 데이터

평균의 비밀 두 번째 - 조화평균 너는 누구인가?

  #1. 엄마 수학, 아빠 음악 사이에 태어난 아이


조화롭다


"조화"라는 말 아시죠? 서로 잘 어울린다는 뜻이 잖아요. '색채 조화', '공기 조화', '조화로운 세상'처럼 참 많은 곳에 쓰이는 긍정적인 단어죠.


 조화는 영어로 하모니(harmony) 인데요. 특히 음악에서 많이 쓰는 말로써, 여러 음이 화합했을 때를 말합니다. 예를 들면, 여러 사람이 다른 음색으로 노래를 부르거나, 오케스트라처럼 다양한 악기들이 모여 하나의 음악을 만드는 것이 하모니(harmony) , 즉 '조화'입니다.


그런데 수학에도 "조화"라는 단어가 들어간 것이 있어요. 바로 "조화평균"이에요. 들어보셨죠?

조화평균의 '조화' 역시, '조화롭다'에서 유래했다는 사실을 알고 계셨나요?


 "수학" 엄마와 "음악" 아빠
그 사이에 태어난 조화평균

엄마 아빠에 빗대어 설명한 것처럼 조화평균은 수학과 음악이 만나는 특별한 평균인데요. 어떻게 탄생하게 되었는지 배경을 알면 더 이해가 빨라져요.


악기의 소리는 그들의 줄이 진동하는 속도에 따라 달라져요. 속도라는 것은 줄이 빨리 떨리냐, 천천히 떨리냐를 말해요. 줄의 길이가 관련이 있는데요. 줄이 길면 덜 떨리고, 줄이 짧으면 자주 떨립니다.


그럼 제가 문제를 하나 내볼게요!


10cm와 20cm 줄 길이의 악기를
동시에 연주하면 어떤 소리가 날까?


우리가 생각하는 대로 15cm 길이의 악기와 똑같은 소리가 나올까요? 그렇지 않아요!

줄이 자주 떨리고 덜 자주 떨리는 것을 다른 말로는 '진동수'라고 하는데요. 이 진동수는 줄의 길이에 반비례합니다. 다시 말하면, 줄이 길수록 조금 떨리고, 줄이 짧을수록 많이 떨립니다.



음악의 비밀은 진동수에 숨어있는데요, 이 진동수는 현악기 줄 길이의 역수에 비례합니다.  갑자기 등장한 ‘역수’에 많이 놀라셨죠? 역수는 어떤 수를 뒤집은 값이잖아요. 예를 들면 2의 역수는 1/2 이예요. 이제 기억나시니까 다시 가볼게요.

  

 

따라서 아래와 같이 표현한 것을

평균 줄길이의 역수로 다시 쓰면, 다음과 같습니다.


다시 줄길이와 소리의 설명으로 돌아가서 간단하게 말하면,

짧은 줄은 자주 진동하고
긴 줄은 덜 진동해요.


그러니까 10cm 악기 줄길이의 역수 1/10과 20cm 악기 줄 길이의 역수 1/20을 더한 후 둘로 나눠주고, 그 값의 역수를 구하면, 두 줄 길이에서 나는 소리의 평균을 만드는 줄의 길이를 얻을 수 있어요.

 

 

이렇게 계산하는 평균을 바로 조화 평균(harmony average)이라고 합니다.


이러한 아이디어는 고대 그리스의 수학자 피타고라스가 발견했다고 해요. 한 번쯤은 들어보신 피타고라스의 정리. 피타고라스는 음악과 수학을 결합하여 음악의 아름다움을 수학적으로 설명하려고 노력했다고 해요.


제가 앞서 설명드린 음의 높낮이가 진동수로 결정되며, 진동수가 정수비를 이루면 아름다운 화음을 이룬다는 것은 그가 알아낸 사실입니다. 자그마치 기원전 5세기입니다. 또한, 진동수와 줄의 길이는 반비례 관계에 있다는 사실을 발견했죠.


이처럼 우리가 평균을 구할 때 사용하는 한 가지 방식이 조화적인 방법을 사용한다면, 음악과 수학이 만나는 순간에 등장한 개념이라는 사실이 정말 흥미롭지 않나요?

 

그리고 이제 그 개념을 인공지능 관점에서 적용한 사례를 살펴보고자 합니다. 여기서부터는 조금 어려운 개념일 수 있으니 훌훌 봐주세요.


 #2. 인공지능의 성능지표와 조화평균

 

1. 인공지능의 성능지표


최근 자율주행 전기자동차를 만드는 테슬라가 인공지능 로봇인 테슬라 봇 2를 공개했습니다.

계란을 한 손에서 다른 손으로 옮겨 짚는 모습이 정말 인상적이더라고요.

테슬라가 공개한 테슬라 봇2 (출처: 테슬라공개 유튜브)

실제 테슬라봇 2가 계란을 판별하는 인공지능을 탑재하고 있지는 않지만 오늘은 쉽게 인공지능 로봇의 성능을 주제로 앞선 조화평균의 설명을 이어 나가볼까 해요.(마음만 먹으면 가능하지 않을까 생각이 들기도 합니다)


상한 계란(양성), 정상 계란(음성)

여기 계란 신선도를 판별하는 인공지능이 있습니다. 계란들을 보고 상한 계란(양성), 정상 계란(음성)을 판별하는 분류모델입니다. 여러분은 이 인공지능 모델의 성능을 어떻게 평가하실 수 있나요? 뭐 정답률을 계산한다. 좋습니다.


그런데 정상 계란에 비해서 상한 계란은 아주 드물잖아요. 예를 들어 100개의 계란 중에서 2개의 계란만 "상한 계란"이라면, 인공지능이 모두 "정상 계란"라고만 예측해도 정확도가 98%가 됩니다. 그럼… 어떻게 해야 할까요?



이러한 분류 문제에 대한 인공지능의 성능을 이해하기 위해서 먼저 알아야 할 것은 컨퓨전 매트릭스(Confusion Matrix)라는 표입니다. Confusion Matrix는 실제 값과 예측된 값의 비교를 통해서 인공지능 모델을 평가하는 방식입니다.


이렇게 정상이냐 아니냐 와 같이 둘 중의 하나를 분류하는 문제를 “이진분류”라고 하는데요. 실제 값도 상함(Positive), 정상(Negative)으로 나뉘고, 예측값도 상함(Positive), 정상(Negative)으로 분류합니다.


그림과 같이 다음 4가지 경우가 생깁니다.

True Positive(TP) : 실제 상한 계란(Positive)을 상한 계란(Positive)이라고 예측 (정답 True)

False Positive(FP) : 실제 정상 계란(Negative)을 상한 계란(Positive)라고 예측 (오답 False)

False Negative(FN) : : 실제 상한 계란(Positive)을 정상 계란(Negative)으로 예측 (오답 False)

True Negative(TN) : 실제 정상 계란(Negative)을 정상 계란(Negative)으로 예측 (정답 True)

이제 인공지능의 성능을 나타내는 개념을 알아볼 차례입니다.

 

1) 정확도(Accuracy)

 

정확도란 예측으로 분류한 결과 정답을 맞힌 확률, 즉 위 표에서 TP와 TN의 비율을 더한 값입니다. 기억하시죠?  T는 True, 정답이었던 것을요.


인공지능 분류모델을 평가하기에 가장 간단한 방식이지만, 앞서 언급했던 데로, 정상 계란이 대부분인 데이터 셋에서 평가가 어렵다는 단점이 존재했습니다. 이러한 데이터 분류값의 불균형을 고려하기 위해 이제 다른 성능지표들을 알아보겠습니다.

  


2) 정밀도(Precision)

 

정밀도란 인공지능 모델이 상한 계란(Positive)으로 예측한 것 중에서 실제 상한 계란(Positive)인 경우의 비율입니다. 정밀도는 인공지능이 검출한 결과가 얼마나 정확한지를 판단하는 지표입니다.



3) 재현율(Recall)


재현율은 실제값이 상한 계란(Positive)인 것을 상한 계란(Positive)라고 예측한 비율입니다. 통계학에서는 민감도(Sensitivity)라고도 합니다. 반대의 개념으로 정상을 잘 분류해 내는 것은 특이도(Specificity)라고 합니다.  Recall은 인공지능 모델이 실제 중요한 문제인 상한 계란(Positive) 사건을 얼마나 잘 검출하는지를 판단하는 지표라고 할 수 있습니다. 이것이 재현율이라고 불리는 이유는 실제 일어난 일인 상한 계란을 얼마나 잘 “재현”해서 맞추는가라고 해석할 수 있기 때문이죠.                    

 

위에서 살펴본 공식과 표에 의하면, 정밀도와 재현율은 실제 정상인데 정상으로 판별한 경우는 고려하지 않음을 알 수 있습니다. 


좀 다른 예를 들어, 대출 연체 가능자를 걸러내는 은행의 인공지능 모델이 있다고 했을 때, 만일 문제의 사안에 따라서는 정상인 경우를 감지해야 할 수도 있습니다. 예를 들면, 한 명이라도 더 많은 고객들에게 상품을 대출상품을 판매하는 목표가 있는 경우나, 질병이 없는 환자들을 질병이 없다고 판별하는 경우가 그렇습니다.

      

2. 분산과 편향


출처 : https://medium.com/@ivanreznikov


통계 관점으로 문제를 바라본 다면 다음 그림과 같이 설명될 수 있습니다. 타깃의 중심이 True 정답이라면, 왼쪽 그림은 예측된 값들 간의 분산이 작아 서로 밀집되어 있습니다. 반면에 맨 오른쪽 그림의 예측값들은 편향적이지 않게 고르게 펼쳐져 있습니다. 우리가 원하는 것은 분산도 작으면서 편향도 없는 가운데와 같은 그림의 성능을 가지는 인공지능 모델입니다.


불행히도 분산도 작으면서, 편향도 작은 완벽한 모델은 찾기가 매우 힘듭니다. 왜냐하면 분산과 편향 사이에는 상호 배반관계(Trade off) 즉 한쪽이 작아지면 다른 한쪽이 커지는 관계가 있기 때문입니다. 따라서 우리는 이 둘을 절충해야 하죠.    

출처 : https://medium.com/@ivanreznikov


그리고, 앞서 말한 정밀도와 재현율 역시 분산과 편향의 관계와 마찬가지로 서로 상반된 관계에 있습니다. 그래서 결국에 우리가 원하는 것은 둘 다 조화롭게 높은 것이겠죠? “조화롭게” 말이죠.


이렇게  정확도, 정밀도, 재현율 개념은 어느 한쪽의 정확도를 판단할 수밖에 없는 한계점이 있습니다.


그래서 등장한 것이 F1 Score입니다. F1 Score는 분류모델에서 성능을 나타내는 정확도와 재현율에 대한 조화평균으로 계산합니다. 잠깐만요! 조화평균이라고요? 어디서 많이 들어보지 않으셨나요?


‘조화’ 평균이라고요?


다음 수식이 낯익어 보이지 않으신가요?


그렇습니다. 앞서 우리가 오케스트라의 하모니에서 알아본 조화평균의 그것과 같습니다.


Precision은 인공지능 모델이 분류한 상한 계란(Positive) 예측 중에서 실제로 상한 계란(Positive)  비율을 나타내며, Recall은 실제 상한 계란(Positive)  중에서 모델이 상한 계란(Positive)으로 예측한 비율입니다. F1 score는 이 두 평가 지표를 모두 고려하여 모델의 예측 성능을 평가하기 때문에, 정확한 예측과 재현율의 평균을 동시에 고려할 수 있는 장점이 있습니다.


F1 Score는 이 두 가지의 지표의 조화평균을 구한 것인데요. 조화평균을 사용하는 이유는 두 metric 중 더 작은 값에 영향을 많이 받기 위함입니다. F1 Score는 0.0~1.0 사이의 값을 가지는데, Precision과 Recall 값이 모두 갖춰져야만 높은 지표를 얻을 수 있습니다. 불균형 데이터에 취약한 모습을 보였던 Accuray 보다 훨씬 더 모델 성능을 구체적으로 가늠할 수 있죠.


결론적으로, 다른 평가 지표들은 계산 방법이 간단한 대신 이진 분류 모델의 예측 성능을 전부 판별하진 못할 수 있어, 경향성이 생길 수 있습니다. 하지만, F1 score는 두 지표의 평균치를 구하는 조화 평균을 사용하여 조금 더 정확하게 모델의 예측 성능을 평가할 수 있습니다.


음악과 수학, 그리고 인공지능
이 모든 것을 연결해 주는  데이터


https://brunch.co.kr/@writerjeong/229

앞선 글에서 평균의 오류인 심슨의 역설부터 시작해서 평균의 평균에 대한 오류까지 알아보았습니다. 또 편의점의 점포당 연평균 매출로 산술평균을 이해했고, 인공지능 모델의 성능지표에 활용되는 조화평균을 이해하는 시간을 갖았습니다.


이제 음악과 수학, 인공지능의 발전 모두가 연결되었습니다. 그리고 그 중심에는 데이터가 있습니다. 데이터를 인식하고 활용하는 인공지능 모델의 성능지표는 한 부분에 불과합니다.  이렇게 데이터에 대한 올바른 이해가 수반된다면, 앞으로 인공지능에 대한 활용부터 설계까지 기회를 넓혀 나갈 것이라고 생각됩니다.


더 많은 것을 보이게 해주는 데이터, 궁금하지 않으신가요?

매거진의 이전글 편의점하면 얼마나 벌까? '평균의 비밀'
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari