인공지능의 개념과 원리
인공지능의 개념과 원리에 대해 정리한 글입니다.
이전에 개인적으로 작성했던 문서를 정리하고, 사실에 기반하여 일부 수정 후 정리해보았습니다.
인공지능의 탄생과 개념
인공지능이란? 학습하고 판단할 수 있는 능력을 갖춘 컴퓨터입니다.
인공지능의 탄생
인공지능의 시작은 영국의 천재 과학자 앨런 튜링의 ‘Can machines think?’, ‘기계도 생각할 수 있을까?’라는 질문이었습니다.
앨런 튜링은 이런 질문을 확인해 볼 수 있는 테스트 방법을 1950년에 제시하였습니다.
컴퓨터가 얼마나 사람과 비슷하게 대화할 수 있는지 측정하는 테스트로 사람과 컴퓨터를 대화하게 한 후, 사람이 자신과 대화하는 존재가 컴퓨터라고 느껴지지 않을 경우 통과하는 간단한 테스트였습니다.
해당 테스트는 테스트 방법을 제시한 과학자의 이름에서 유래하여 ‘튜링테스트’로 명명되었습니다.
이후 1956년 다트머스 대학에서의 학술회의에서 최초로 ‘인공지능’이라는 용어가 사용되기 시작되었다고 합니다.
인간처럼 생각하는 기계를 만들려면 인간이 생각하는 원리를 컴퓨터에 적용해야 했을 것입니다.
인간의 뇌에는 셀 수 없이 많은 뉴런이 존재하고, 뉴런을 통해 외부와 정보를 주고받는다는 사실을 바탕으로 미국의 신경생물학자 프랭크 로젠 블랫이 1958년 뉴런의 신호 메커니즘을 본떠 ‘퍼셉트론’이라는 수학적 모델을 만들었습니다.
뉴런은 전기-화학적 방식으로 신호를 전달하는 것으로 알려져 있습니다. 신호들이 도착하면, 신호들이 합쳐지고, 그 합이 특정 임계값이나 역치를 넘는경우에 한하여 연결된 뉴런에 신호를 전달합니다. 과학자들은 이러한 뉴런의 특성과 유사하게 퍼셉트론의 특징을 “퍼셉트론은 인간에 의한 훈련이나 조종없이 주변을 감지, 인지, 분별하는 능력을 가지고 있으며, 경험이 쌓일수록 더 지혜로워지는 특성을 보인다”라고 설명하였습니다.
퍼셉트론 이론이 정리된 이후 사람들은 컴퓨터와 인간과의 원활한 소통을 위해 인간의 ‘자연어’를 컴퓨터가 이해할 수 있도록 하는 ‘자연어처리’에 관한연구가 이루어졌으며, 1966년 MIT공과대학에서 최초로 사람과 대화하는 기계 ‘엘리자’를 개발하게 됩니다. 다만 ‘엘리자’는 문장의 구조를 파악하여 형식적인 대답을 내놓는 챗봇이였기에 사람들의 관심은 오래가지 못하였고, 1970년도 컴퓨터 기술의 한계로 인공지능의 연구에 한계가 찾아왔으며,인공지능 연구의 지원이 끊기며 대부분의 인공지능연구가 취소되며 ‘인공지능의 겨울’이라고 불리는 시기가 찾아오게됩니다.
인공지능의 탄생 – 다층 구조의 퍼셉트론과 역전파 알고리즘
인공지능에 대한 연구와 관심이 식은 ‘인공지능의 겨울’은 ‘다층 구조 퍼셉트론’과 ‘역전파 알고리즘’을 만나며 ‘인공지능의 봄’을 맞이하게 됩니다.
그리고 발전된 인공지능의 기술로 컴퓨터가 전문가의 의사 결정을 모방하는 전문가 시스템인 ‘DENDRAL’이 탄생하게 되었습니다.
‘DENDRAL’은 화학 분자식과 질량 스펙트럼을 입력하면 구조식을 추정하여 찾아주는 시스템이었습니다.
전문가 시스템의 탄생과 도입의 시작으로 인공지능 연구는 막대한 지원을 받으며 되살아나게 됩니다.
다만 전문가 시스템의 한계가 드러나며 ‘인공지능의 봄’은 그리 오래가지 못하였습니다. 인공지능의 연구는 기존의 다용도 인공지능(강인공지능)이 아닌 특정 분야에 강한 약인공지능을 개발하는 것으로 개발 방향을 수정하게 되었으며, 사람의 명령이나 알고리즘을 기반으로 작동하는 것이 아닌 특정 상황에서 독자적인 행동이나 판단을 할 수 있는 ‘에이전트’의 개념을 인공지능에 탑재하게 되었습니다.
에이전트 개념을 탑재한 인공지능은 이전의 인공지능들보다 더 빠르게 발전하게 됩니다. 그리고 1997년 IBM의 딥 블루가 세계 체스 챔피언 게리 카스파로프를 상대로 승리하게 됩니다.
[참고] 에이전트(agent)는 복잡한 동적인 환경에서 목표를 달성하려고 시도하는 시스템입니다.
기계학습과 데이터
머신러닝
머신러닝(기계학습)은 인공지능의 하위범주로 기계가 명시적인 규칙 프로그래밍 없이도 데이터를 기반으로 한 학습을 통해 정보를 예측하고 필요한 작업을 수행할 수 있는 방법론입니다.
즉, 대량의 데이터에서 스스로 규칙을 학습하는 모델이라고 할 수 있습니다. 이때 머신러닝 모델을 학습시키기 위해 모은 데이터 모음을 데이터셋이라고 하며, 데이터셋은 학습 데이터, 테스트 데이터등으로 나누어 사용할 수 있고, 정형 데이터와 비정형 데이터로 구분됩니다.
머신러닝은 회귀, 분류와 같은 문제 유형을 다루며, SVM, 결정 트리(Decision Tree), K-NN, 랜덤 포레스트등 많은 기법이 존재하며, 그 중 딥러닝이라는 학습 방법도 포함하고 있습니다.
딥러닝
딥러닝을 간단히 설명하자면, 인공 뉴런을 여러 층을 사용함으로써 복잡한 데이터 패턴을 잘 학습하는 모델이라 할 수 있습니다. 여러 층의 인공 뉴런을 붙여 만든 연산 구조를 인공신경망(Neural Network)이라고 합니다. 또한 하나 이상의 은닉층을 갖는 다층 신경망, 특히 여러 은닉층을 갖는 경우 심층신경망(Deep Neural Network)이라고 부릅니다. 흔히 알고 있는 딥러닝이 바로 심층신경망입니다.
정형 데이터와 비정형 데이터
정형 데이터란 미리 정해 놓은 형식과 구조에 따라 저장되도록 구성된 데이터로 표, 엑셀같은 형태를 가지고 있습니다. 비정형 데이터란 형태나 구조가 복잡하여 정형화되지 않은 데이터입니다. 대표적으로 사진, 음성, 텍스트 데이터가 비정형 데이터에 속합니다.
머신러닝의 종류와 원리
머신러닝이란? 대량의 데이터를 기계가 스스로 규칙을 찾을 수 있도록 학습시키는 것입니다.
지도학습, 비지도 학습
대부분의 머신러닝 알고리즘은 훈련 데이터를 입력으로 사용하여 모델을 학습하고, 학습된 지식을 바탕으로 출력을 생성합니다. 그리고 학습하는 데이터의 정답(Label) 포함 여부에 따라 지도학습과 비지도 학습으로 나뉘게 됩니다. 즉, 정답이 포함된 데이터로 학습시키는 것은 지도학습이며, 정답이 포함되지 않은 데이터로 학습시키는 것이 비지도 학습입니다.
지도학습은 분류와 회귀로 나뉘는데, 입력 데이터의 범주(클래스)를 예측하는 문제를 분류, 연속적인 수치 값을 예측하는 문제를 회귀라 합니다. 또한 분류는 출력의 정답의 개수에 따라 2개 일 땐 이진분류, 3개 이상일 땐 다중분류로 나뉩니다.
비지도 학습은 정답이 없는 데이터로부터 데이터의 구조나 패턴을 스스로 학습하는 방법입니다. 대표적인 예로 군집화가 있으며, 군집화에서는 데이터 간의 유사도를 기준으로 비슷한 데이터들을 같은 그룹으로 묶습니다. 이때 유사도를 계산하는 함수는 군집 결과에 큰 영향을 주기 때문에 매우 중요한 역할을 합니다. 또한 군집화 결과를 활용하여 라벨이 없는 데이터에 새로운 라벨을 부여하고, 이를 이후 지도학습의 학습 데이터로 사용할 수도 있습니다.
강화 학습
행동의 결과로 얻는 보상과 실패를 통해 시행착오를 거치며 최적의 행동을 학습하는 알고리즘입니다. 일반적으로 정답이 미리 정해진 데이터가 주어지지 않는 것이 특징입니다. 주어진 환경 안의 에이전트가 현재 상태를 인식하여 선택 가능한 행동들 중에 보상을 최대화하는 행동이나 순서를 선택하도록 하는 방법입니다.
[+] 에이전트(agent)는 복잡한 동적인 환경에서 목표를 달성하려고 시도하는 시스템입니다. 강화학습에서 최단 시간에 주어진 환경을 관찰하고, 이를 기반으로 보상을 최대화 하는 학습 프레임을 짜기 위해 이용과 탐험 사이의 균형을 맞추는 것이 중요합니다. 이용이란 경험한 것 중에서 당시에 최대의 보상을 얻을 수 있는 행동을 수행하는 것을 말하고, 이런 경험을 다양하게 쌓기까지 시도하는 과정을 탐험이라고 합니다.
마무리
이번 글에서는 인공지능의 탄생과 개념, 작동 원리와 인공지능에서 광범위하게 사용되는 개념들의 뜻과 정의에 대해 알아보았습니다. 다음 글에서는 머신러닝의 성능 평가 및 성능 개선과 인공신경망에 대해 더욱 자세하게 알아보도록 하겠습니다.