개발/ETC

AI, ML, 머신러닝, 딥러닝의 한계에 대한 생각

bitofsky 2022. 3. 12. 18:48

게리 마커스의 딥러닝의 한계 (https://nautil.us/deep-learning-is-hitting-a-wall-14467/)에 대한 글을 보고 제가 실무에서 딥러닝 모델을 사용하는 서비스를 개발하며 겪은 AI와 머신러닝에 대해 이야기 해보려고 합니다.


AI와 머신러닝을 배우는 사람, 무엇인지 알고있는 사람은 이 딥러닝에 대해 엄청난 기대감을 가지게 됩니다. 그럴 수밖에 없는 것이 이것은 마치 사람처럼, 어떨 때는 사람이 놓친 부분들에 대해 사람보다 뛰어나게 판단을 해주기 때문에 곧바로 이것을 쓰면 내가 봉착해있는 어떤 문제에 대한 솔루션을 이 딥러닝 학습된 AI를 적용하면 뭐든 해결될 것 같은 희망을 보기 때문입니다.

그러나 실제 현장에서 실무에 딥러닝 AI를 넣는 것은 생각보다 제한적이며 어렵습니다. 무엇이 어려운가에 대해 말해 보려고 합니다.


Feature. Input의 일관성

딥러닝을 위해 AI를 학습하려면 필요한 것이 일정 규격을 갖춘 Feature 집합입니다.

Feature란 입력값입니다. 이것을 받아 학습하고 같은 입력을 받아 학습된 결과를 출력하는 것이 딥러닝 알고리즘입니다. 그런데 실무에서 일정 규격을 갖춘 입력이 절대로 변경되지 않아야만 학습된 결과에서 올바른 출력이 나온다고 볼 수 있습니다. 입력이 조금이라도 변경되면 그동안 학습한 것이 무용이 되며 심지어 잘못된 결과를 출력하게 됩니다.

이는 전문가에게는 당연한 소리인데 전문가가 아닌 일반인은 이 차이를 심각한 요인으로 여기지 않습니다. 여기서 실무자나 현실과의 괴리가 생깁니다.

예를 들어 스타크래프트를 플레이하는 딥러닝 알고리즘이 있다고 합시다. 이미 있죠. 그런데 알고리즘 학습 후 패치로 버전이 올라가 신규 유닛이나 종족, 스탯이 변화되면 이전의 학습된 딥러닝 알고리즘은 승률이 유지될까요? 물론 패치 후 다시 학습시키면 됩니다.

문제는 학습할 충분한 시간이 있는 사례가 아니라 테슬라 오토파일럿과 같은 일상생활에 상시 적용된 학습모델의 입력이 변경되면 어떤 일이 발생할까요? 갑자기 도로교통법이 바뀌어 Stop 표지판의 색이나 테두리 모양이 바뀌고, 바닥 사인 마크가 달라지면 이 달라진 것을 학습할 때까지 AI는 어떻게 동작할까요? 사실 뻔 합니다. 오동작하겠죠. 그리고 그것이 치명적인 상황이 됩니다.

이런 문제를 막으려면 단순한 딥러닝으로는 안되고 다음 솔루션이 필요하다는 결론이 납니다. 그리고 그 솔루션이 절대 쉽지 않습니다.


Labeling. 정답지의 오답률

딥러닝 학습에 중요한 것은 학습에 사용하는 데이터가 옳은지 그른지 판별을 해 둔 라벨입니다.

하지만 세상에는 판별이 쉽지 않은 것들이 많습니다. 아니면 판별조차 애매모호하거나 틀릴 때가 있는 판별이 들어가는 데이터도 있습니다. 사람이 한 땀 한 땀 하기엔 너무 많고 힘든 판별. 심지어 이미지에 고양이다, 토끼다 라는 라벨을 붙이는 것도 쉽지 않은데 실무에서 적용해야 하는 사기업의 인하우스 데이터에는 공용 라벨링도, 구매할 수도 없고, 외주를 돌려 라벨링을 하는 것도 모두 엄청난 비용이며 그마저도 어려운 데이터도 많습니다.

때로는 사람조차 확률로 판단해야 하는 일들도 있죠. 문제는 이러한 애매모호한 데이터는 딥러닝에 학습시켜도 애매모호한 결과를 뱉는 모델로 이어진다는 겁니다.

이런 학습 결과는 결국 무언가를 스스로 결정하는 일에 쓰기 힘들며, 사람에게 Confirm을 요구하는 전처리나 추천 등의 행동에 제한적으로 매우 유용하지만 정작 궁극적으로 하고 싶었던... 사람이 필요 없고 사람보다 똑똑하게 판단하는 역할을 맡기기에는 리스키한 솔루션이 되는 경우가 있었습니다.

결국 모델이 내놓은 답을 전적으로 신뢰할 수 없다는 결론이 난다면 그 부족한 신뢰를 메꿀 사람과 같은 결정자가 필요하며, 모델이 신뢰할 수 있는 답을 낼 수 있도록 라벨링 하기 쉬운 데이터라면 사실 모델이 필요 없이 데이터만으로 판정할 수 있는 경우가 되는 모순이 발견되곤 합니다.

예를 들면 욕설을 딥러닝해서 나온 모델로 사용자들의 욕설을 판정하고 글쓰기 권한을 막는 AI 서비스를 만들었다고 합시다. 모델은 기존에 라벨링 된 욕설을 판별해 글쓰기를 막는 일은 잘하지만 새로 나온 욕설은 통과시키고 욕인지 아닌지 애매한 문장과 단어에는 부정확하게 동작하며 무분별하게 글쓰기 권한이 막히는 사용자들을 발생시키게 될 것입니다.

이를 방지하기 위해 학습 모델은 지속적으로 신규 욕설을 학습해야하며 학습 전의 욕설에 대해선 부정확함이 영구히 지속되는 상태가 됩니다. 결국 모델과 서비스는 욕설"인 것 같다"라는 제안만 하며 관리자에게 판단해 막으라고 추천을 하는 제한적인 기능으로 동작하는데다 계속 파생되는 우회나 신규 욕설에는 동작하지 않는 반쪽이 됩니다.


물론 현재의 딥러닝 모델도 기존에 할 수 없었던 일을 가능하게 해 준 혁신적인 솔루션이며 적용이 제한적인 상황에서도 기존 인력 대비 수십, 수백 배 많은 데이터를 더 빠르게 "판정"하는 시스템을 만들 수 있었습니다.

다만 우리가 궁극적으로 하고 싶었던 사람이 필요 없는.. 즉, 사람의 판정 딜레이 없이 Feature 데이터 생산과 동시에 수 ms 만에 판별과 판정이 이루어지는 시스템은 당분간 요원해졌습니다.

ML을 상업적으로 실무에 적용하려고 하는 개발자로써, 이번에 포스팅된 게리 마커스의 글을 보고 공감가는 부분을 많이 느껴 포스팅 했습니다.