[23-01/인공지능] 인공지능의 발전과정, 지능형 에이전트
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가지 분류
- 좁은(약) 인공지능, 일반(강한) 인공지능, 슈퍼(초) 인공지능
- 좁은 인공지능은 한 가지 업무에 특화된 인공지능
- 일반 인공지능은 인간 수준의 인공지능
- 슈퍼 인공지능은 인간의 지능보다 뛰어난 인공지능
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가지 기본적인 구조
- Simple Reflex Agents (단순 반사형 에이전트)
- Model-based Reflex Agents (모델 기반 반응 에이전트)
- Goal-based Agents (목표 기반 에이전트)
- Utility-based Agents (효용성(value,가치) 기반 에이전트)
- 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를 만듦.