AI라는 단어는 오늘날 프로그래머들이 가장 많이 쓰는 뜻으로 사용된다.
즉 '기계학습 알고리즘machinge learning algorithm'이라고 하는 특정 유형의 컴퓨터 프로그램을 지칭하는 뜻으로 사용된다. 여기서 나오는 것 중에서 AI라고 불리는 것과 아니라고 불리는 것을 나눠보면,
AI라고 불리는 것들
- 기계학습 알고리즘
- 딥러닝
- 인공신경망
- 순환신경망
- 마르코프 체인
- 랜덤 포리스트
- 유전 알고리즘
- GAN
- 강화학습
- 예측문자
- 마법의 샌드위치 분류기
- 예기치 못한 살인 로봇
이 책에 나오지만 AI가 아닌 것들
- SF에 나오는 AI
- 규칙 기반 프로그램
- 로봇 옷을 입은 인간
- 대본을 읽고 있는 로봇
- AI인 척하도록 고용된 인간
- 지각이 있는 바퀴벌레
AI를 감별하려면, 기계학습 알고리즘과 전통적인 프로그램(프로그래머들이 '규칙기반 프로그램 rule-based program' 이라고 부르는 것) 사이의 차이부터 알아야 한다. 규칙기반 프로그램은 컴퓨터가 이해할 수 있는 언어로 명령 목록이나 규칙 목록을 만들면 컴퓨터가 그대로 실행하는 식으로 작동한다. 규칙기반 프로그램으로 문제를 해결하기 위해서는 과제 완수에 필요한 모든 단계와 각각의 단계를 어떻게 묘사할지를 이미 알고 있어야 한다.
하지만 기계학습 알고리즘은 프로그래머가 특정해 둔 목표에 대한 자신의 성공률을 계속해서 측정하는 방식으로, 시행착오를 통해 규칙을 스스로 알아낸다. 그 목표란 자료 목록에 있는 사례들을 흉내 내보라는 것일 수도 있고, 게임 점수를 높이는 것일 수도 있고, 그 밖에 무엇이든 될 수 있다.
이 목표에 도달하려고 애쓰는 과정에서 AI는 심지어 프로그래머는 그런 게 존재하는지조차 알지 못했던 어떤 규칙이나 상관성을 발견할 수도 있다.
AI를 프로그래밍 한다는 것은 프로그래밍을 하기보다는 오히려 어린아이를 가르치는 것에 가깝다.
규칙 기반 프로그램에서는 내가 알고 있는 것들을 계속 바꿔가며 예외적인 답을 찾을 수 없는 상황이 일어나며, 또한 모든 경우의 수와 모든 절차적인 부분까지 일일이 프로그래머가 지정해 주어야 하는 문제가 지속적으로 발생한다.
반면 AI의 경우, 스스로 규칙을 알아내도록 하고 뭔가를 만들어 내게 하는데, 처음에는 AI 나름대로 무언가를 추측하고 무언가를 만들어 내게 하는데, 당연하게도 기괴하고, 이해하기 어려운 결과가 나올 수 밖에 없을 것이다.
그러다가 AI가 무언가 의미있는 답안을 도출하거나, 인간에게 영감을 주는 새로운 결과를 만들어 낸다면 그것은 *무한 원숭이 이론의 승리에 가깝다.
* 원숭이 한 마리가 무한대의 사간 동안 타자기 앞에서 무작위로 글을 친다면, 결국에는 셰익스피어의 작품 전체를 상당히 정확하게 써낼 수 있을 것이라는 오래된 주장이다. 체계적으로 모든 경우의 수를 시도해 봄으로써 문제를 해결하는 '무차별 대입법'을 나타낸다. 이상적으로는 AI를 이용해 문제를 해결하는 것이 무차별 대입법보다 한 단계 더 발전한 것이다.
하지만 언제나 '이상적인' 경우다.
그러나 기존의 프로그래밍 방식에 비해 AI가 가진 매력은 이런 것이다. 내가 일일이 기존 규칙기반 에서는 프로그래밍을 해주었어야 하는 것이지만, AI는 새로운 규칙을 찾아내거나 만들어 낼 수도 있다. 규칙이 아주 복잡하거나 도저히 이해하기 힘든 경우에는 AI의 이런 매력이 특히나 편리하다.
예를 들어, AI를 자주 이용하는 이미지 인식 분야는 일반적인 컴퓨터 프로그램으로는 처리하기 매우 어려운, 복잡한 과제다. 그러나 AI 라면 수만 개의 고양이 이미지를 살펴본 후 고양이를 대체로 정확히 식별할 규칙을 떠올릴 수 있다.
AI는 또한 체스 같은 전략 게이에도 아주 능하다. 우리는 체스에서 가능한 모든 수가 무엇인지 얘기할 수는 있어도 최선의 수를 알아내는 공식은 모른다. 체스의 경우, 가능한 경우의 수가 너무나 많고 경기 운영 상황이 너무 복잡하기 때문에, 그랜드 마스터라고 해도 주어진 상황에서 최선의 수를 결정하는 확실한 규칙을 만들어 내는 것은 불가능하다.
하지만, 알고리즘이라면 스스로 연습 게임을 잔뜩, 최고의 그랜드 마스터보다도 더 많이, 수백만 번 치러보고 이기는데 도움이 되는 규칙을 만들 수 있다. 이런 AI는 뚜렷한 지시 사항 없이 학습을 하기 때문에 아주 비전형적인 전략을 만들어 내기도 한다.
만일 AI 에게 어떤 수가 유효한지 알려주지 않는다면 AI는 이상한 허점을 찾아내 그것만 계속 공략해 게임을 초토화 시킬 수도 있다. 예를 들어, 1997년에 몇몇 프로그래머는 무한대로 큰 바둑판 위에서 서로 원격으로 삼목 두기 경기를 하는 알고리즘을 만들었다. 그 중 한 프로그래머가 규칙 기반전략을 설계하는 대신, 자체적으로 접근법을 진화시키는 AI를 만들었다. 놀랍게도 어느 순간 부터는 이 AI가 모든 게임을 이기기 시작했다.
알고 보니 이 AI의 전략은, 수를 아주아주 멀리 두어서 상대 컴퓨터가 이 새로운 어마어마한 크기의 바둑판에서 시뮬레이션을 하는 동안 메모리가 바닥나 다운되게 함으로써 몰수 패를 얻어 낸 것이었다.
대부분의 AI 프로그래머는 모두 이와 비슷한 이야깃거리를 가지고 있다. 본인의 알고리즘이 예상치 못한 해결책을 생각해 내서 깜짝 놀랐던 경험담 말이다. 그런 해결책은 기발할 때도 있고, 문제가 될 때도 있다.
아주 기본적으로 보면, 모든 AI는 주어진 목표와 학습할 데이터 세트만 있으면 작업을 시작할 수 있다.
그러한 목표란 사람이 대출을 할지 말지 결정한 사례를 모방하는 것일 수도 있고, 고객이 특정한 양말을 구매할 지 어떨지 예측하는 것일 수도 있고, 비디오 게임에서 점수를 극대화하는 것일 수도 있다.
이 모든 시나리오에서 AI는 시행착오를 통해 목표에 도달하는 데 도움을 주는 규칙들을 만들어 낸다.
'IT and AI' 카테고리의 다른 글
AI에 대한 이야기 그 세번째 : AI는 언제 실수를 하는가? (0) | 2022.06.20 |
---|---|
AI 이야기 그 두번째 - AI는 만능이 아니다. (0) | 2022.06.20 |
정보보호 보안기술의 요구사항(ISO 27001 : 2013) 3부 (0) | 2022.06.20 |
정보보호 보안기술의 요구사항(ISO 27001 : 2013) 2부 (0) | 2022.06.19 |
정보보호 보안기술의 요구사항(ISO 27001 : 2013) 1부 (0) | 2022.06.19 |