전공과목 정리/컴퓨터과학의이해

[컴퓨터과학의이해🧮] 인공지능 (11장)

최연재 2022. 9. 3. 05:49

교재 : 컴퓨터 과학 총론 (13th Edition)

(배운 내용을 책으로 복습하며 작성한 글입니다. )

 

1. 지능과 컴퓨터

인공지능(Artificial Intelligence ; AI) : 사람의 개입 없이 복잡한 작업을 수행할 수 있는 자율 컴퓨터의 구축을 목표로 하는 컴퓨터 과학 분야

 

1) 지능적 에이전트

- 에이전트 (agent) : 주변 환경으로부터의 자극에 반응하는 장비(device)

- 대부분의 에이전트는 주변 환경으로부터 데이터를 받아들이기 위한 센서(sensor)와 주변 환경에 영향을 미치기 위해 사용할 수 있는 액추에이터(actuator)를 가지고 있다. 

- 인공지능 분야의 많은 연구는 지능적으로 행동하는 에이전트의 구축과 관련되어 있다. 

- 에이전트가 학습능력을 갖추고 있어 그 반응은 시간이 지남에 따라 개선되기도 한다. 

  • 절차적 지식(procedural knowledge) : "어떻게" 반응할지를 배움
  • 절차적 지식의 습득은 대개 시행착오 과정을 거치는데, 잘못된 행위는 벌을 받고 잘된 행위에는 상을 받는 방식으로 적절한 행위를 배워나간다. 
  • 서술형 지식(declarative knowledge) : "무엇을"에 해당하는 내용을 배움
  • 서술형 지식의 습득은 대개 에이전트의 지식 정장소에서 사실들을 확정하거나 수정하는 형태를 취한다. 

- 자극에 대한 합리적 반응을 도출하기 위해, 에이전트는 센서를 통해 수신한 자극을 이해해야 한다. 

- 에이전트는 자신이 갖고 있는 액추에이터에 맞는 형태로 반응을 표현할 수 있어야 한다. 

 

2) 연구방법론

- 공학 트랙

  • 지능적 행동을 발현하는 시스템을 구축하고자 한다. 
  • 정해진 성능 목표를 충족하는 제품을 만들어내는 것으로 목표로 하는 성능 지향 방법론으로 이어진다. 

- 이론 트랙

  • 동물, 특히 인간에 대한 계산 요소를 이해하려고 노력한다. 
  • 지능에 대한 이해를 강화하고, 외적 성능보다는 하부 프로세스를 강조하는 모방 지향 방법론으로 이어진다. 

 

3) 튜링 테스트

- 과거에는 인공지능 분야에서 발전 정도를 측정하기 위해 1950년 튜링이 제안한 튜링 테스트(Turing test)를 벤치마크로 이용했다. 

- 조사관이라 불리는 사람이 타이프라이터를 통해 시험 대상자와 통신하는 방법을 이용하는데, 이때 시험대상자가 사람인지 기계인지를 조삭관에게 알려주지 않는다. 

- 조사관이 기계와 사람을 구분할 수 없다면 그 기계는 지능적으로 행동한다고 판정된다. 

 

2. 지각 능력

1) 영상의 이해

- 일반적인 영상을 이해하는 작업은 대개 영상처리와 영상분석이라는 두 단계의 과정을 거친다. 

- 영상처리(image processing)는 영상의 특징을 식별하는 과정이다. 

  • 윤곽선 강화 (edge enhancement) : 영상 안의 구역들의 경계선을 명확히 하기 위해 수학적 기법 적용
  • 구역 식별 (region finding) : 영상 안에서의 밝기, 색상, 질감 등에서 동일한 영역을 식별하는 과정
  • 평활 처리(smoothing) : 영상 안의 잡티 제거 

- 영상분석(image analysis)는 특징이 무엇을 의미하는지 이해하는 과정이다. 

 

2) 언어 처리

- 구문 분석, 의미 분석, 문맥 분석 단계를 거친다. 

  • 구문 분석 (syntactic analysis) : 문장의 요소들의 역할 규정 (문법적)
  • 의미 분석 (semantic analysis) : 각 단어가 문장 안에서 어떤 의미를 나타내는지 식별하는 과정
  • 문맥 분석 (contextual anaysis) : 문장을 이해하는 과정에 문맥으로 도입한다. 

- 개별 문장 대신 문서를 대상으로 하는 경우 관심이 되는 문제

  • 정보 검색 (information retrieval) : 주어진 주제에 관련된 문서들을 식별하는 작업
  • 정보 추출 (information extraction) :  다른 응용에서 유용하게 사용할 수 있는 형태를 갖도록 문서에서 정보 추출
  • 시맨틱 넷 (semantic net) : 데이터 항목들 사이의 연관 관계를 가리키기 위해 포인터를 사용하는 대규모 연결 데이터 구조

 

3. 추론

1)프로덕션 시스템 (production system)

- 연구를 통해 공통의 특성을 갖는 큰 추론 문제 집합이 존재한다는 것을 인식하게 되었다. 

- 위의 공통적 특성은 프로덕션 시스템이라는 추상적 존재로 추출되었다. 

- 프로덕션 시스템은 3개의 주요 요소로 이루어져 있다. 

  • 상태 집합 : 각 상태는 응용 환경에서 발생할 수 있는 상황을 나타낸다. 시작할 때의 상태를 초기상태, 도달하고자 하는상태(들)를 목표 상태라 한다. 
  • 프로덕션 집합 : 프로덕션은 한 상태에서 다른 상태로 이동하기 위해 응용 환경에서 수행될 수 있는 동작을 가리킨다. 
  • 제어 시스템(control system) : 초기 상태에서 목표 상태로 이동하는 문제를 해결하는 논리로 구성된다. 

- 제어 시스템 

  • 제어 시스템의 개발에서 나타나는 중요한 개념은 문제 공간이다. 문제공간은 프로덕션 시스템 내의 모든 상태, 프로덕션들, 전제들의 집합이다. 
  • 문제 공간은 종종 상태 그래프(state graph)라는 형태로 개념화된다.
  • 그래프는 화살표로 연결된 노드의 집합이다. (수학에서 방향성 그래프라고 부르는 구조)
  • 상태 그래프는 당면 문제의 개념화 방법이지만, 전체를 그리기에는 부적절한 도구이다. 
  • 제어 시스템이 할 일은 상태 그래프에서 경로를 찾는 문제로 간주될 수 있다. 
  • 추론 규칙 (inference rule) : 기존의 명제들에서 새로운 명제를 구성하는 데 사용되는 논리 규칙
  • 전문가 시스템 (expert system) : 동일한 시스템을 대하는 인간 전문가가 따르는 원인-결과 추론을 모방하도록 설계된 소프트웨어 패키지

 

2) 탐색 트리 (search tree)

- 프로덕션 시스템에서 제어 시스템은 상태 그래프상의 초기 노드에서 목표 노드로 이르는 경로를 탐색한다.

- 새로 도달하는 상태 중 하나가 답에 해당하는 목표 상태가 될 때까지 계속되며, 제이 시스템은 초기 상태에서 목표 상태에 이르는 발견된 경로를 따라 나타나는 프로덕션들을 적용하면 된다. 

- 탐색 트리는 상태 그래프 중에서 실제로 제어 시스템이 조사하는 부분에 해당한다.  

- 탐색 트리의 루트 노드는 초기 상태에 해당하며, 각 노드의 자식들은 부모 노드에 프로덕션 하나를 적용하여 도달할 수 있는 상태들에 해당한다. 

- 탐색 트리의 경우 제어 시스템은 목표 상태에서 초기 상태 방향으로 트리를 따라 올라가면서 자식 노드에서 부모 쪽으로 이동할 수 있어야 한다. (위쪽 방향을 가리키는 포인터 체계를 사용해 구축)

 

3) 휴리스틱 (heuristic)

- 전체 탐색 트리를 구성하는 것은 전체 상태 그래프를 표현하는 것만큼 비현실적일 수 있다. 

-  위의 문제 대처 전략 : 최적 우선(best-first) 탐색 트리 구축 (탐색 트리를 구축하는 순서 변경)

  • 너비 우선 (breadth-first) : 트리를 계층별로 구성
  • 깊이 우선 (depth-first) : 탐색 트리를 수직 경로를 따라 구축

- 휴리스틱 : 해당 상태에서 가장 가까운 목표 상태와의 "거리"를 측정하기 위한 시도

  • 각 상태에 연계된 계량화된 값으로 표현
  • 작은 휴리스틱을 갖는 상태가 더 적은 비용으로 목표에 도달할 가능성이 높은 상태이다. 
  • 휴리스틱은 해당 상테에서 목표 상태에 이르기 위해 필요한 작업량에 대한 타당성 있는 추정치여야 한다. 
  • 휴리스틱은 계산하기 쉬워야 한다. 

- 최적 적합 알고리즘 (best-fit) 알고리즘이 모든 응용에서 최선의 해를 발견한다는 보장은 없다. 

- A* 알고리즘 : 최적 해를 찾을 수 있도록 최적 적합 알고리즘을 수정한 것

 

4. 추가적인 연구 영역

1) 지식의 표현과 조작

- 실세계 지식(real-world knowledge) : 사람의 두뇌에 저장된 지식들

- 빅 데이터(big data) 시스템에서 새로운 정보와 지식을 추출할 수 있는 기회가 증가하였다. 

- 인공 지능, 기계 학습, 통계 기법 등은 이전에는 보이지 않던 패턴이나 대규모 데이터 집합에서의 연결성을 발견할 수 있는 소프트웨어 도구에 기여하고 있다. 

- 지식을 표현하고 저장하는 방법을 찾는 것이 목표이다. 

- 초 대규모 집합이 주어질 경우 정보가 어떻게 구성되더라도 효율적인 검색 알고리즘이나 휴리스틱 또는 추론은 문제 해결의 필수적 요소이다. 

- 지식에 대한 접근을 다룰 때의 또 다른 문제는 당면 작업과의 관련성이 묵시적인 지식을 파악하는 것이다. 

- 지식을 효율적으로 이용하기 위해 단순히 검색에 그치는 것이 아니라 정보의 필터링이나 패턴의 인식도 필요하다. 

- 메타 추론 (meta reasoning)

  • 추출 과정에 다양한 형태의 추론을 삽입하는 것의 결과
  • 추론에 대한 추론을 의미한다. 
  • 폐쇄계 가정(closed-world assumption)을 적용하는 것의 예이다. 
  • 폐쇄계 가정 :  주어진 정보에서 명시적으로 도출될 수 없는 명제는 거짓으로 간주

- 프레임 문제(frame problem) 

  • 변화하는 환경에서 저장된 지식을 최신의 것으로 유지하는 일
  • 프레임 문제를 해결하기 위해서는 다량의 정보를 효율적으로 저장하고 검색하는 능력뿐만 아니라 저장 시스템이 간접적 결과에도 적절히 반응할 수 있어야 한다. 

2) 학습

- 지능적 에이전트가 새로운 새로운 지식을 획득할 수 있는 능력을 갖는 것이 바람직하다. 

- 기계 학습의 분류 (사람의 개입 정도를 기준으로 함)

  • 모방 학습 (learning by imitation) : 사람이 어떤 작업의 단계들을 직접 시연해보이고 컴퓨터는 그 단계를 기록하는 가장 낮은 수준의 학습
  • 지도 학습 (supervised training) : 훈련용 집합( training set, 훈련에 사용되는 예제)에 대한 사람이 올바른 반응을 식별해준 다음, 에이전트가 이러한 예제들로부터의 경험을 일반화하여 다른 경우에도 적용될 수 있는 알고리즘을 개발한다. 
  • 강화 학습 (learning by reinforcement) : 에이전트에게 시행착오 과정의 작업에서 성공 여부를 스스로 판단할 수 있는 일반적인 규칙이 주어지고, 시간이 지남에 따라 에이전트가 스스로 행동을 개선시켜 나가는 것을 배운다.
  • 자율 학습 (unsupervised training) : 사람의 개입을 최소화하면서 데이터로부터 패턴이나 의미를 추론하는데 사용할 수 있는 접근 방법의 예(수준에 있어서는 강화학습과 비슷하지만 다른 목표를 가진다.)

3) 유전자 알고리즘

- 여러 세대의 시험적 해를 이용하는 진화적 과정을 통해 해를 발견하는 경우가 있는데,  이는 유전자 알고리즘(genetic algorithm)의 토대이다.

- 번식이론과 자연도태라는 진화적 과정에 대한 시뮬레이션을 무작위 동작과 조합해 해를 발견한다. 

- 각각의 시험적 해는 염색체(chromosome)라고 불리며, 염색체의 개별 구성 요소를 유전자(gene)라고 부른다. 

- 진화적 프로그래밍 (evolutionary programming)

  • 유전자 알고리즘 방식을 프로그램 개발 작업에 적용
  • 프로그램을 명시적으로 작성하기보다는 스스로 진화할 수 있는 프로그램을 개발하는 것이 목표이다. 

 

5. 인공 신경망

1) 기본 특성

- 인공신경망의 신경단위는 생물학적 신경단위에 대한 기초적 이해를 바탕으로 이를 모방하는 소프트웨어 장치이다. 

- 유호 입력이 그 신경단위에 지정된 임계값(threshold value)을 초과하는지 여부에 따라 출력 값이 0 또는 1이 된다. 

- 다른 신경단위의 축색돌기로부터의 값들은 표시되어 있는 신경단위의 입력으로 사용되고, 각 연결에는 가중치(weight)가 연계되어 있다. 

- 각 연결 상의 입력 값과 그에 연계된 가중치를 곱한 결과들을 합한 값이 신경단위의 임계값을 초과하면 신경단위의 출력은 흥분 상태를 나타내는 1이 되고, 아닐 경우 억제 상태를 나타내는 0이 출력된다. 

- 가중치는 양수와 음수가 모두 가능하다. (해당 입력은 수신 신경단위에 억제효과나 흥분 효과를 일으킬 수있다.)

 

2) 인공 신경망의 훈련

- 인공신경망은 지도 학습을 통해 적절한 가중치를 학습하도록 되어 있다. 

- 훈련용 집합의 입력 값들을 신경망에 적용하여 가중치들을 조금씩 조정함으로써 신경망의 성능이 프로그래머가 원하는 행동에 가까이 가도록 만드는 반복 과정을 통해 이루어진다. 

- 인공신경망의 훈련에 유전자 알고리즘의 기법이 적용되는데, 많은 실험에서 성공적인 가중치 집합을 구할 수 있었다. 

 

6. 로봇 공학

로봇 공학 (Robotics) : 지능적으로 행동하는 물리적인 자율 에이전트에 관한 학문

- 초창기 시절 로봇 공학은 머니퓰레이터(manipulator)라고 불리는 로봇 팔의 발전에 긴밀하게 제휴되어 있었다. 

- 최근 더욱 빠르고 가벼운 컴퓨터의 등장으로 이동성 로봇에 대한 연구가 강화되었다. 

- 로봇 팔과 이동성 분야의 큰 발전에도 불고하고 대부분의 로봇에서 아직 자율성 수준은 낮은 편이다. 

- 사람에 의존하는 것을 극복하는 것이 현재 연구의 주요 목표 중 하나이다.

 

- 진화적 로봇 공학 : 낮은 수준의 반응 규칙과 높은 수준의 추론 체계 등의 개발에 진화 이론을 적용한다. 

 

7. 결과에 대한 고찰

인공지능 분야의 발전이 인류에게 혜택을 줄 것이라는 점은 분명하지만, 파급효과에 대해서는 여러 견해가 있다.