01. 인공지능 개요
1) 인공지능 개념
“인공지능(Artificial Intelligence)”이란 인간이 가지고 있는 지적 능력, 학습 능력, 추론 능력 등을 인공적으로 구현하는 기술입니다. 지능을 갖고 있는 기능을 갖춘 컴퓨터 시스템이며, 인간의 지능을 기계 등에 인공적으로 구현한 것입니다.
2) 강인공지능과 약인공지능
인공지능은 크게 “강인공지능”과 “약인공지능”으로 나뉩니다.
- 강인공지능(Strong AI): 인간이 하는 일을 인간과 유사한 방법으로 수행하는 자동화 시스템을 뜻합니다. 인간의 지능을 컴퓨터의 정리처리능력으로 구현하는 것이 목적입니다. 강인공지능의 정의가 인간과 동일한 방법으로 일을 수행하는 것이기에 최근 이슈가 되는 인공지능 문제는 대부분 강인공지능을 염두에 둔 것들입니다.
- 약인공지능(Weak AI): 인간의 특정 행위 결과를 모방하는 시스템을 뜻합니다. 어떠한 방법이든지 같은 결과를 구현하면 됩니다. 인간이 쉽게 해결할 수 있는 문제를 컴퓨터가 수행하게 하는 데 중점을 두고 있습니다. 즉, 지능을 가진다기 보다는 특정한 문제를 해결하는 도구로 주로 활용이 됩니다.
3) 튜링 테스트
"튜링 테스트”란 기계가 지능을 가지고 있는지 아닌지를 판별하고자 1950년 앨런 튜링이 만든 테스트입니다. 테스트 방식은 평가자 A는 객체 B(인간), 객체 C(컴퓨터)와 자연어를 사용한 텍스트 기반으로 대화하는 방식으로 이루어집니다. 이때 B와 C는 서로를 분간할 수 없습니다. 만약 A와 C가 대화를 했을 때 상대가 컴퓨터인지 아닌지가 파악이 되지 않는다면 컴퓨터인 객체 C는 지능을 가졌다고 판단하는 것입니다. 튜링 테스트에서는 질문에 대한 답변의 정확도보다는 대화 상대를 컴퓨터인지 사람인지 가려낼 수 있는가에 더욱 집중합니다.
02. 인공지능 세부 분야
1) 지식 표현
“지식 표현”은 지식, 정보, 데이터를 사용하기 쉽게 표현하는 방법을 연구하는 분야입니다. 컴퓨터를 통해 문제를 해결할 때는 내부적으로 어떤 표현법을 사용하느냐가 중요합니다. 그 이유는 지식은 물체 자체뿐 아니라 물체 간 상호 관계 등 많은 내용을 포함할 수 있기 때문입니다. 지식 표현을 위한 방법으로는 “의미 네트워크 방법”, “프레임 기반 방법”, “규칙 기반 방법”이 있습니다.
(1) 의미 네트워크 방법
“의미 네트워크 방법”은 자연어 처리에서 나온 의미 해석 결과나 질문 응답 시스템의 지식 표현 등에 사용되는 네트워크형 데이터베이스입니다. 네트워크 표현을 기반으로 개체들 사이의 관계를 나타냅니다. 이때 지식은 네트워크 구조로 표현하는데 “노드(Node)”는 특정 개체를 의미하며, 노드를 연결하는 “엣지(Edge)”는 노드 간의 관계를 나타냅니다. 의미 네트워크 방법에서는 네트워크상 노드와 에지를 이용한 방향성 그래프로 지식을 표현합니다.
의미 네트워크는 복잡하고 다양한 정보를 표현하는 강력한 방법이나, 대용량의 데이터를 표현할 때는 네트워크가 너무 복잡해집니다.
(2) 프레임 기반 방법
“프레임 기반 방법”은 각 개체의 특징을 미리 슬롯(Slot)으로 구성하고, 해당 개체에 대한 특징을 추출해 슬롯을 채우는 방식의 표현법입니다. 특정 주제에 필요한 항목을 미리 정해 놓고 새로운 개체를 접할 때마다 해당 항목을 채워 넣는 식으로 진행됩니다.
(3) 규칙 기반 방법
“규칙 기반 방법”은 조건문 형태로 조건과 결론을 표현하는 규칙들을 추론한 뒤 새로운 사실을 생성하는 방법입니다. 전문가 시스템에서 주로 사용됩니다.
2) 전문가 시스템
“전문가 시스템”은 특정 분야의 전문가 지식을 모델링한 뒤 이를 활용할 수 있도록 지원하는 시스템입니다. 전문가 시스템은 “지식 기반”, “추론 엔진”, “사용자 인터페이스”로 구성되어 있습니다.
(1) 지식 기반
“지식 기반"이란 특정 분야에 필요한 지식 모음을 의미합니다. 지식을 어떤 형태로 저장하느냐에 따라 “생성 규칙”, “의미 네트워크”, “프레임”, “블랙 보드”, “신경망” 등의 표현 방법을 사용할 수 있습니다. 이때 말하는 지식은 사실일 수도 있고 규칙일 수도 있습니다. 사실이란 참이라고 밝혀진 것을 의미하며, 규칙은 사실들 사이의 관계에 대한 설명입니다.
(2) 추론 엔진
“추론 엔진”이란 지식 베이스를 기반으로 지식을 새롭게 생성하는 방법입니다. 기존의 사실과 규칙들을 이용하여 새로운 지식에 도달하도록 수단을 제공하는 것입니다. 대표적으로 삼단 논법이 추론의 간단한 예시입니다.
(3) 사용자 인터페이스
“사용자 인터페이스”란 시스템이 완성된 후 질의를 입력받고 그에 대한 답을 사용자에게 보여주는 기능을 수행하는 시스템입니다.
03. 기계 학습 (Machine Learning)
1) 기계 학습 개념
컴퓨터는 인간이 명령을 내리면, 그 내려진 명령에 따라 단순히 주어진 절차들만 수행합니다. 컴퓨터에게 일일이 지시를 내리는 것은 너무나도 번거롭기에 “기계 학습(머신 러닝)”이 고안되었습니다. 컴퓨터에게 문제에 대한 정의만 설명한 후 세부적인 사항은 자체적으로 학습하여 해결하도록 하는 기술입니다. 이 기계 학습의 궁극적인 목표는 컴퓨터가 인간의 학습 능력을 구현하는 것입니다.
기계 학습을 구현하는 방법에는 세부적으로 “신경망”, “데이터마이닝”, “의사결정 트리”, “유전자 알고리즘”, “사례 기반 추론”, “패턴 인식” 등이 있습니다.
2) 기계 학습 종류
기계 학습은 인간의 학습과는 다르며 컴퓨터 나름의 학습을 연구하는데 그것의 종류로는 “지도 학습”, “비지도 학습”, “강화 학습”이 있습니다.
(1) 지도 학습
“지도 학습”은 정답이 알려진 학습 데이터에서 어떤 일관된 규칙을 찾는 것입니다. 문제와 그 답을 동시에 제공하고 이를 바탕으로 학습합니다. 지도 학습은 세부적으로 “분류”와 “회귀 분석”으로 나뉩니다.
- 분류(Classification): 입력 대상에 대한 특정 값과 함께 분류 레이블을 입력받아 정보로 사용합니다. 입력된 샘플이 속한 군집을 식별하는 것입니다.
- 회귀 분석(Regression): 2차원 데이터는 표현 모델만 구한다면 관측하지 못했던 새로운 데이터에 대한 예측치를 구할 수 있습니다. 입력받은 데이터를 표현할 수 있는 모델을 찾는 것입니다.
(2) 비지도 학습
“비지도 학습”은 지도 학습과 다르게 데이터만 제공한 뒤 그 안에 내재되어 있는 정보를 찾게 하는 것입니다. 입력 데이터의 구조나 그 사이의 관계를 파악하고, 이 관계를 통하여 패턴들을 분류해야 할 때 사용합니다.
(3) 강화 학습
“강화 학습”은 학습 알고리즘이 수행한 행동에 대해 보상을 받는 식으로 학습을 진행하는 방법입니다. 이때 보상은 행동 직후에 바로 주어질 수도 있고 추후에 주어질 수도 있습니다. 기계는 보상을 받으면 이를 일련의 행동에 대한 보상 값으로 나누어 계산하고, 다시 지도 학습을 위한 학습 데이터를 생성합니다.
04. 인공신경망
1) 인공신경망 개념
“인공신경망(ANN)”은 인간의 수백억 개의 신경세포인 “뉴런”과 뉴런을 연결하는 수만 개의 “시냅스”로 밀접하게 연결된 인간의 뇌 구조에 착안해 만든 학습 기법입니다. 인공신경망은 뇌의 동작 방식을 모델화한 병렬 정보 처리 시스템으로 단순 연산을 수행하는 소자들의 병렬 및 분산 처리 구조를 가집니다. 인공신경망을 실제로 구현하는 방법은 “병렬 하드웨어로 구현하는 방법”, “소프트웨어를 활용하여 시뮬레이션 하는 방법”등이 있습니다. 인공신경망을 기반으로 한 학습 기법을 “딥러닝”이라고 합니다.
2) 인공신경망 구조
뉴런의 동작 방식을 모델링해 구현한 인공신경망은 이와 같은 형태를 띄고 있습니다.
원 하나가 뉴런을 의미하며 이들이 서로 복잡하게 연결되어 하나의 신경망을 이룹니다. 왼쪽의 입력층 노드에 데이터가 입력되면 오른쪽 방향으로 단계별 연산을 수행하여 출력층에서 결과값을 얻습니다.
3) 퍼셉트론
“퍼셉트론”은 인공신경망의 한 종류인 지도 학습 신경망입니다. 생물의 신경전달 조직인 시냅스를 수학적으로 모델링한 신경망의 초기 형태입니다. 퍼셉트론은 "수용층", "연합층", "반응층"의 세 부분으로 구성되어 있습니다. 수용층에서는 외부 자극을 받아들이고, 연합층은 수용층의 가중 압력을 받아 반응층 으로 전달하는 기능을 담당하며, 반응층은 최종 출력을 내보내는 기능을 합니다. 퍼셉트론은 연결 강도를 조정하기 위하여 반복적 학습 방법을 사용합니다.
퍼셉트론의 기본식은 다음과 같습니다.
$$ net = \sum_{i = 1}^N x_iw_i $$
그 후 활성화 함수를 통하여 출력값을 조정해야 합니다.
임계치를 고려한 활성화 함수식은 다음과 같습니다.
$$ f(x)=\begin{cases} 1 & \text{if $w \cdot n - T > 0$ }\\ -1 & \text{otherwise} \end{cases} $$