1.1.2 전통적인 프로그래밍과 머신 러닝의 차이점
심볼릭 AI와 뚜렷이 구분되는 인공 지능의 하위 분야인 머신 러닝은 다음과 같은 질문에서 시작됩니다. 특정 작업을 수행하도록 프로그래머가 알고 있는 프로그래밍 방법 이상으로 컴퓨터가 스스로 학습할 수 있을까요? 머신 러닝 방법은 근본적으로 심볼릭 AI와 다릅니다. 심볼릭 AI가 하드 코딩된 지식과 규칙에 의존하지만 머신 러닝은 이런 하드 코딩을 피하려고 합니다. 따라서 기계가 작업 수행 방법을 명시적으로 지시받지 않는다면 어떻게 이를 배울 수 있을까요? 바로 데이터에 있는 샘플에서 배웁니다.
이는 새로운 프로그래밍 패러다임을 열었습니다(그림 1-2). 머신 러닝 패러다임의 예를 들기 위해 사용자가 업로드한 사진을 다루는 웹 애플리케이션을 만든다고 가정해 보죠. 이 애플리케이션에 필요한 기능은 사람 얼굴이 포함된 사진과 그렇지 않은 사진을 자동으로 분류하는 것입니다. 이 애플리케이션은 얼굴이 포함된 이미지와 그렇지 않은 이미지에 대해 다른 행동을 적용할 것입니다. 이를 위해 주어진 입력 이미지(픽셀의 배열)에 대해 ‘얼굴’ 또는 ‘얼굴 아님’에 해당하는 이진 출력을 내는 프로그램을 만들어야 합니다.
▲ 그림 1-2 전통적인 프로그래밍 패러다임과 머신 러닝 패러다임의 비교