학교 공부/인공지능

[23-01/인공지능] 인공지능의 발전과정, 지능형 에이전트

KimNang 2023. 4. 17. 20:29

1. 인공지능의 발전과정

01. 인공지능 접근 방법

인공지능의 4가지 접근 방법

- 인간과 같은 사고 : 인간의 마음과 같은 인간 수준의 지능 (Congnitive Science : AI + 심리학)

memo : 사고 - 어려움. 마음은 눈에 보이지 않고 심리학적인 요소임

- 인간과 같은 행동 : 튜링테스트(Turing Test)

memo : 인간과 같은 행동을 하는지, 인간과 같은 사고를 하는지 평가하는 방법

- 논리적 사고 : 사고의 법칙 (합리적으로 생각하고 추론/추리하는 인공지능) - 특정한 부분에 집중

    -논리(Logic-고전적 AI(Good-Old-Fashioned AI,GOFAI)를 통해 활발히 연구

- 논리적 행동 : 합리적인(Rational) 에이전트 (의사결정을 통한 최적의 행동, 지능형 에이전트)

memo : 특정한 상황에서 패턴이 존재함 - > 규칙을 세울 수 있음

 

  강한 인공지능 약한 인공지능
생각 인간과 같은 사고 (Thinking Humanly)
-인간과 유사한 사고 및 의사결정을 내릴 수 있는 시스템
- 인지 모델링 접근 방식
논리적 사고 (Thinking Rationally)
- 계산 모델을 통해 지각, 추론, 행동같은 정신적 능력을 갖춘 시스템
- 사고의 법칙 접근 방식
행동 인간과 같은 행동 (Acting Humanly)
- 인간의 지능을 필요로 하는 어떤 행동을 기계가 따라 할 수 있는 시스템
- 튜링 테스트 접근 방식
논리적 행동 (Acting Rationally)
- 계산 모델을 통해 지능적 행동을 하는 에이전트 시스템
- 합리적인 에이전트 접근 방식

 

강한(일반) 인공지능, 약한 인공지능, 슈퍼(초) 인공지능

약한 인공지능과 강한 인공지능 분류와 다른 3가지 분류

- 좁은(약) 인공지능, 일반(강한) 인공지능, 슈퍼(초) 인공지능

  1. 좁은 인공지능은 한 가지 업무에 특화된 인공지능
  2. 일반 인공지능은 인간 수준의 인공지능
  3. 슈퍼 인공지능은 인간의 지능보다 뛰어난 인공지능

02. 인공지능의 도전과 한계

인공지능은 정말 인간보다 뛰어날 수 있을까?

 Turing Test (Imitation Game)

- 사람과 동일하게 생각하는지 테스트하는 기법

memo : 현재까지 튜링테스트 통과한 인공지능 없음 - 인공지능은 패턴된 답변을 주기 때문

 

 중국어방 논증 실험 (The Chinese Room Argument)

- 1980년 미국의 언어철학자 존 설 (John Searle)이 고안

- 논증 실험을 통해 Turing Test를 회의적으로 반박

- 컴퓨터의 지능적인 행동과 이해는 별개라고 주장함

    - 방 안에 있는 사람이 중국어를 몰라도 교본에 따라 내보내면 마치 이해하는 것처럼 보임

→ 즉 이해하지 못하고 흉내 낼 수 있어도 지능적 (intelligent) 행동처럼 보임

memo : 여러개의 케이스 주고 패턴 매칭을 시킴. 이것이 우리가 보는 학습 -> 이게 과연 지능이 있는 것인가?

 

 상황인식 (Context Recognition)에 기반한 스토리텔링

- 스토리텔링 : 상대방이 이해하기 쉽게 이야기 전개를 전달하는 방법

- 3~4장의 사진이 순서없이 나열된 경우 인식하여 하나의 줄거리를 만드는 것

- 주어진 그림들을 인식한 후 전체를 이해하는 과정을 거침

- 하지만 현재 수준의 인공지능으로는 상당히 어려운 과제

memo : 인공지능은 개별적인 그림은 잘 이해하지만 전체의 그림을 보고 상황을 인식하는 건 아직 못함

 

인공지능에 대한 기대와 끊임없는 노력

- 인공지능 연구는 초기부터 많은 사람들의 기대 속에 출발

- 문자인식, 음성인식, 영상인식 등의 측면에서 상당한 성과를 보임

    - 최근 CCTV, 드론 등에 탑재되어 관제 시스템에 활용

    - RPA (Robotic Process Automation)을 통한 업무자동화에 활용

- 대부분의 분야에서 현재 인공지능 능력은 서너살 아이들의 수준

    - e.g. Boston Dynamics, DARPA Robotic Challenge 2015 (구조용 로봇)

 

인공지능 연구의 어려움

- 인간 수준의 인공지능 구현은 너무나 어려운 작업

1. 학습 문제

- 학습이 어렵고 시간이 오래 걸리는 등의 제한점 존재

2. 데이터 문제

- 실 세계 응용에서 상당한 양의 지식(데이터)이 필요함

3. 인지적 측면(인간과 같은 사고)에 대한 표현 어려움

- 정신세계에 대한 표현과 창의성 구현이 매우 어려움

memo : 개인, 스타트업 기업, 중소기업은 어렵고, 시간 비용 문제가 큼

03. 인공지능의 흐름

인공지능의 포함관계

- 인공지능 : 전문가 시스템, 규칙기반 시스템

- 머신러닝 : Decision Tree(결정트리), Linear Regression(선형회귀), Perceptron

- 딥러닝 : CNN(합성곱신경망), RNN(순환신경망), 심층강화학습

- 기호주의, 연결주의 인공지능으로도 분류 가능

 

■ 기호주의 인공지능 vs. 연결주의 인공지능 vs. 통계적 인공지능

- 기호주의(Symbolism) 계열 (2004년까지는 주로 활용)

    - 기호(Symbol)와 규칙(Rule)을 사용하는 규칙기반(Rule-based) 인공지능

memo : 규칙이 한두개면 괜찮지만 상황 처리하다보면 굉장히 많아짐.

천개, 만개쯤 되면 타임 코스트 늘어나 속도 느려짐.

- 연결주의(Connectionism) 계열 (알파고 이후 대세)

    - 뉴런의 연결을 모방하는 신경망(Neural Network) 기반 인공지능 ( 머신 러닝 )

memo : 러닝이라고 하는 기법들 이런것들로 대체됨.

- 통계주의(Statistic) 계열

    - 90년대 부터 사용되기 시작, 데이터사이언스 (수요, 주식 예측)

memo : 경영쪽에서 봄

 

규칙기반 인공지능 (기호주의)

지식표현 : 문제 해결에 이용하거나 심층적 추론을 할 수 있도록 지식을 효과적으로 표현하는 방법

- IF-THEN 규칙 (rule)

- 논리(Logic) : 명제논리(Propositional Logic), 술어논리 (Predicate Logic)

- 초기 인공지능 또는 좁은 의미의 인공지능이라고도 함

- 주요 응용 분야는 수학적 정리 증명, 자연어 처리

    → 문자, 음성, 영상 등의 패턴인식 면에서의 한계성 노출

 

신경망기반 인공지능 (연결주의)

- 신경망 기반 인공지능을 간단히 신경망(NN, Neural Network)이라 함

- 또는 인공신경망(ANN, Artificial Neural Network)이라 불림

- 신경망은 인간 두뇌의 뉴런들 사이의 연결에서 아이디어를 차용

- 추후 머신러닝(Machine Learning), 딥러닝(Deep Learning)의 중심이 됨

 

통계기반 인공지능 (데이터사이언스)

- 통계적 수학, 연결주의(머신러닝,딥러닝), 빅데이터, 비즈니스 등 융합

04. 인공지능의 역사

인공지능의 역사

- AI는 부침이 심했던 분야

memo : 지금은 하이라이트 받고 유망한 분야이지만 옛날엔 그런 학문은 아니었음

 

인공지능의 요람기

- 인공지능은 1956년 미국 다트머스 대학의 하계컨퍼런스에서 시작

    - 수학자, 생물학자, 심리학자 등 10명이 모여 인공지능 개념 정의

memo : 이때는 컴퓨터라는 개념도 모호함

- 존 매카시가 인공지능이라고 부르기를 제안

    - 이후 인공지능이란 용어가 사용되기 시작함

- 초기에는 간단한 게임이나 수학적 정리의 증명을 하는 실험적인 성격

- 1957년 로젠블럿이 마크1퍼셉트론이란 신경망 모델 개발 ( 숫자 인식 프로그램 )

    - A, B, C와 같은 문자를 인식할 수 있어 엄청난 환호를 받음

 

인공지능의 첫번째 겨울기 (1974년 ~ 1980년)

- 인공지능은 1974년 무렵 상당한 어려움에 봉착

- 퍼셉트론(1957년, 로젠블럿) 이론의 결정적 문제점 노출 (XOR 표현 불가)

    → 신경망 연구가 침체에 빠짐 (기존 연구는 1개의 직선으로만 구분)

- 인공지능 연구 어려움 봉착, 전문가 시스템(규칙기반)으로 연구방향 전환

memo : 기술적인 부분의 문제.

이것들을 나누는 기준은 선 => 이 세상엔 선을 가지고 구분할 수 없는 영역도 굉장히 많음, 비선형

 

인공지능의 발전기 (1980년 ~ 1987년)

- 1980년대 인공지능계의 최대 화두는 신경망 연구의 부활

- 사라진 단층 퍼셉트론 모델이 다층 퍼셉트론 모델로 화려하게 컴백 (층을 여러개 둠)

    - 단층 퍼셉트론 모델에 하나 이상의 은닉층 추가

- 러멜하트에 의해 역전파 알고리즘 제안

    - 층이 증가함에 따라 가중치 및 바이어스 조정 오차가 커짐

    - 순방향 및 역방향 양쪽으로 반복적으로 움직이며 학습 수행

- 다층 퍼셉트론은 패턴인식을 통해 문자, 영상 인식에 크게 기여함

memo : 층을 여러개 두고 조합으로 만들어짐 -> 층을 여러개 두면 층을 통과할 때마다 정보를 약간 손실함(로스값) -> 이것을 보완하기위해 역전파 알고리즘 만들어짐

 

인공지능의 두번째 겨울기 (1987년 ~ 1993년)

- 1987년부터 인공지능 연구는 두 번째 겨울을 서서히 맞이함

- 다층 신경망의 성능과 느린 컴퓨터의 속도로 신경망 연구 정체

- 미국에서는 300개 이상의 상업용 인공지능 관련 회사가 사라짐

- 특히 인공지능이 새로운 물결이 아니라는 주장이 대두

- 미국방성 등 인공지능 연구 기금의 대폭 축소로 두 번째 겨울 맞이함

memo : 성능과 느린 속도의 문제.

계속 발전하려면 산업계에서 써야하는데 쓰기엔 먼 개념 - 많은 층 수를 쌓은 신경망 기반의 인공지능 모델을 돌릴 수 있는 PC가 그 당시에 존재하지 않았음. 옛날 PC는 계산이 엄청 느려 문제 풀려면 며칠씩 걸림.

 

인공지능의 안정기 (1993년 ~ 2011년)

- 1990년대에는 지능형 에이전트 연구가 시작됨 (확률 기반 모델)

    - 베이지안 네트워크 등 머신러닝이 인공지능 연구에 도입됨

- 1997년 IBM의 딥 블루가 체스 세계 챔피언에 승리

    - 많은 사람들이 한때 인공지능이 곧 실현될 것 같은 분위기에 빠짐

- 2004년 제프리 힌튼(Hinton) 교수가 딥러닝 기반의 학습 알고리즘 제안

    - 딥러닝은 사진, 동영상, 음성 정보를 분류하는 분야에 많이 활용됨

- 2011년 IBM의 왓슨이 TV 퀴즈쇼에서 승리함

memo : 제프리 힌튼 교수

많은 러닝기반의 알고리즘을 제시함. 지금 쓰는 대부분의 인공지능 모델, 특히 딥러닝 이분이 만든 이론 많이 적용됨.

 

인공지능의 부흥기 (2011년 ~ 현재)

- 2012년 구글이 스탠포드 대학 앤드류 응(Andrew Ng) 교수와 함께 심층신경망(DNN) 구현

memo : 구글의 리소스를 빌림. 딥러닝의 개념 처음 나옴

    - 1만 6천 개의 컴퓨터로 무려 10억개 이상의 신경망 구성 (개, 고양이 분리)

- 2014년 페이스북은 딥페이크라는 얼굴 영상 편집 알고리즘을 개발

- 2015년 알파고 프로토타입 개발, 2016년 바둑 세계 챔피언에 오름

memo : 이때는 병렬처리 개념 자체가 없음

CPU로 순차처리 병렬처리 X, 병렬처리 끝나야 다른 테스크 감 -> 병렬처리를 위해 실제 컴퓨터를 묶어서 동시에 처리함.

 

2. 지능형 에이전트

01. 지능형 에이전트

Agent

- Agent는 Sensors(감각기관)을 통해 Environments(환경)을 Percept(인지)하여 Actuators(작동기)를 통해 환경에 대해 Action(반응)하는 시스템

memo : 일반적으로 인공지능이 갖고있는 구조

  Human Agents Robotic Agents
Sensor 눈, 귀, 코, 촉각 등 카메라, 적외선 Finder등
Actuators 손, 다리, 입 등 작동을 위한 다양한 모터

- Function(?, 물음표)은 action을 하기 위해 percept histories(sequential 정보)를 mapping함

memo : 어떤 과정을 거쳐서 인지된 정보를 통해 action을 취할거냐 결정하는 이 부분이 중요

 

f : P* → A

func (p)

→return Action

memo : func - 함수 / p - Percept 된 데이터. 로그 데이터 / Action - 액션

 

- Program은 Physical Architecture 상에서 실행되며, f라는 Agent function을 produce함

memo : 물리적인 아키텍처 : 로봇에 이용이 되면 로봇환경에서, PC환경에서 이런곳에서 실행됨.

일반적으로 아는 프로그램 구조 

 

memo : 가장 중요한 부분은 function부분이라고 함.

- 이 액션을 하기 위해서 인지됐던 그런 히스토리 정보 데이터들이 쭉 넘어옴.

- 이게 순차적으로 옴. 이런게 로그처럼 순차적으로 쌓임.

- 이런걸 가지고 액션을 정하게 됨.

02. 합리적 에이전트

합리적인 에이전트 (Rational Agent)

- Rational Agent는 현재까지의 Percept된 Sequential한 정보를 기반으로 수행

    - 성능평가 (Performance measure)가 최대가 되는 Action을 선택할 수 있는 Agent를 의미함

 

What is Rational ?

- 성공의 기준을 성능 평가를 통해 측정 가능해야함

- 환경에 대한 agent의 사전지식이 있어야함

- agent는 현재까지의 sequential한 정보를 percept가능해야함

    - agent는 현재까지의 percept된 정보 순서에만 의존(정보수집), 입력 정보에 대한 결과는 몰라야 함

    - 즉 agent는 학습을 통해 결과를 도출할 수 있어야함.

- agent는 탐색을 통해 action을 취할 수 있어야 함

- 부분적이거나 잘못된 사전 지식을 보완하기 위해 무엇을 할 수 있는지 학습 할 수 있어야 함.

memo : 최대의 Action 선택하지 못함 => 합리적인 Agent로 보기 어려움

 

PEAS (Performance, Environment, Actuators, Sensors)

- Rational Agent를 Design하기 위해, 가능한 많은 Task Environment를 정의해야 함

 

ex1) Automated Taxi

- Performance : Safety, destination, profits, legality, comfort, ...

memo : Performance이라 하는 부분들 어떻게 해야하는건지

다양한 기준 존재함. 다 만족할 수 없음. 본인이 만드는 합리적인 에이전트.

이 ?는 이중에 하나는 무조건 최대가 되는 Action을 취해야 함.

 

- Environment : US streets/freeways, traffic, pedestrians, ...

memo : Environment이라고 하는 요소를 통해 어떤 정보를 받을건지

어떤 환경 안에서 이 택시가 돌아다닐건지

 

- Actuators : Steering, accelerator, brake, horn, speaker/display, ...

memo : Actuators이라 하는 부분을 통해 우리가 어떻게 움질일건지

상황을 인지해서 동작함

 

- Sensors : video, accelerometers, gauges, engine sensors, keyboard, GPS, ...

memo : Sensors를 통해서 무슨 정보를 받아들일건지

이런것들이 센서를 통해 환경에 있는 값들이 들어옴

 

ex2) Internet Shopping Agent

- Performance : price, quality, appropriateness, efficiency

 

- Environment : Current and future WWW sites, vendors, shippers

 

- Actuators : Display to user, follow URL, fill in form

 

- Sensors : HTML pages ( text, graphics, scripts )

 

 Task Environment의 속성

  • Fully Observable vs. Partially Observable
  • Deterministic vs. Stochastic
  • Episodic vs. Sequential
  • Static vs. Dynamic
  • Discreate vs. Continuous
  • Single-agent vs. Multi-agent

03. 에이전트의 구조

에이전트의 구조

 에이전트의 5가지 기본적인 구조

  1. Simple Reflex Agents (단순 반사형 에이전트)
  2. Model-based Reflex Agents (모델 기반 반응 에이전트)
  3. Goal-based Agents (목표 기반 에이전트)
  4. Utility-based Agents (효용성(value,가치) 기반 에이전트)
  5. Learning Agents (학습 에이전트)

memo : ?를 어떤 구조로 가져갈거냐

 

Simple Reflex Agents (단순 반사형 에이전트)

- 인지된 상태와 정확히 일치하는 반응만을 수행

- 즉, Condition-Action Rule이 명확해야 함

- 일반적으로 인지할 수 있는 환경은 Non-Deterministic하며 동적임 할 수 있는게 제한적임

- 항상 이 관계가 성립된다고 볼 수 없음 ( 응용 범위가 매우 좁다는 단점을 가짐 )

memo : 예를 들어 초록불에 횡단보도 건너는 인공지능 시스템을 만듦.

if 신호위반 차가 있다면? 신호등 관리가 잘 안돼서 초록불이 잘 안보인다면?

다양항 상황 발생할 수 있음.

단순 반사형 에이전트

memo : 환경에서 정보 들어옴 -> 딱 이 정보를 보고 Rule Base임. 컨디션에 만족하는 이것만 처리함.

Percept된 정보가 들어옴. 이게 Rules과 매치되는지 찾고 해당하는 Rules 있다면 action 취함.

 

Model-based Reflex Agents (모델 기반 반응 에이전트)

- 인지된 상태(status)에 관한 내부 지식을 계속적으로 기억하고 있는 agent

- 인지된 상태가 Condition-Action Rule에 정확히 matching되지 않더라도, 인지된 상태로부터 유사한 결론부를 찾아낼 수 있음 ( 따라서 거대한 지식 베이스를 필요로 함) (ex: 언어 모델)

- 단점 : 내부 지식에 대한 유지를 위해 메모리에 많은 오버헤드를 필요로 함

 

모델 기반 반응 에이전트

memo : 인지된 상태만 보면 놓치는 케이스가 많음.

그래서 인지된 정보를 update하고 새로운 상황 발생하면 로그 정보 기억한 것을 바탕으로 비슷한 action취함.

 

Goal-based Agent (목표 기반 에이전트)

- 인지된 상태(Status)에 대한 반응(Action)이 목표가 주어졌을 때 보다 정확히 수행될 수 있다고 가정한 Agent

    - e.g. 탐색(Search) 문제나 계획(Planning) 문제에 적용되는 Agent

→ 예를 들면 자율주행자동차로 진주에서 서울까지 가려고 할 때 최적 경로(goal)를 탐색하는 Agent

- 하지만 인지 가능한 환경이 모두 목표를 기반으로 수행되지는 않음 (ex: 글 생성 알고리즘)

목표 기반 에이전트

memo : 앞에서 살펴봤던건 길이 있으면, 서울까지 도달만 하면 그냥 감.

이것은 목표 설정 경로 중 빨리 가는게 목표다. 최단거리를 찾겠다.

메모리 저장이 필요하지 않음.

 

Utility-based Agents (효용성 기반 에이전트)

- agent가 인지한 반응을 목표에 대해 얼마만큼 만족하는지 사용자 중심으로 목표에 대한 만족도를 수치화하는 agent

memo : 목표와 약간 일치하지만 이것은 코스트의 관점

→ utility란 어떤 상태의 만족도를 하나의 수치로 나타내는 평가식

효용성 기반 에이전트

 

Learning Agents (학습 에이전트)

- 학습을 통해 Agent의 반응(Action)을 결정

→ Learning Element를 통해 Performance Element를 지속적으로 변화하여 반응 교정

→ Performance Element는 Learning Element에게 지식을 주입함으로 부분적이거나 잘못된 사전 지식을 보완

 

 

memo : 이런 것들이 통합적으로 러닝이라고 하는 어떤 개념으로 살펴봄.

골베이스, 유틸 베이스, 모델 베이스 합쳐서 러닝이라 하는 새로운 학습 기법으로 Agent를 만듦.