⇒ 애플 → 시리.
⇒ 구글 → 구글 어시스턴트, 구글 나우.
⇒ 마이크로소프트 → 코타나.
⇒ 아마존 → 알렉사(에코).
⇒ 페이스북 → M.(2018년 1월 중단.)
⇒ 삼성 → 빅스비.
⇒ LG →. Q보이스.
⇒ KT → KT 비서.
에이전트는 특정한 목적을 위해 사용자를 대신해서 작업을 수행하는 자율적 프로세스. 에이전트는 독자적으로 존재하지 않고 어떤 환경의 일부이거나 그 안에서 동작하는 시스템. 여기서의 환경은 운영 체제, 네트워크 등을 지칭함. 에이전트는 지식베이스와 추론 기능을 가지며 사용자, 자원(resource), 또는 다른 에이전트와의 정보교환과 통신을 통해 문제해결을 도모함. 에이전트는 스스로 환경의 변화를 인지하고 그에 대응하는 행동을 취하며, 경험을 바탕으로 학습하는 기능을 가짐. 에이전트는 수동적으로 주어진 작업만을 수행하는 것이 아니고, 자신의 목적을 가지고 그 목적 달성을 추구하는 능동적 자세를 지님. 에이전트의 행동의 결과로 환경의 변화를 가져올 수 있다. 에이전트의 행동은 한번에 끝나는 것이 아니라 지속적으로 이루어짐.
에이전트는 사람이나 다른 사물의 직접적인 간섭 없이 스스로 판단하여 동작하고, 그들의 행동이나 내부 상태에 대한 어떤 종류의 제어를 갖음.
에이전트는 에이전트 통신 언어를 사용하여 사람과 다른 에이전트들과 상호작용할 수 있음.
에이전트는 실세계, 그래픽사용자 인터페이스를 경유한 사용자, 다른 에이전트들의 집합, 인터넷 같은 환경을 인지하고 그 안에서 일어나는 변화에 시간상 적절히 반응함.
에이전트는 단순히 환경에 반응하여 행동하는 것이 아니라 주도권을 가지고 목표 지향적으로 행동함.
에이전트는 단순히 한번 주어진 입력을 처리하여 결과를 보여주고 종료하는 것이 아니라, 전면에서 실행하고 이면에서 잠시 휴식하는 연속적으로 수행하는 데몬(demon)같은 프로세스.
에이전트는 복잡한 고수준 작업들을 수행한다. 작업이 더 작은 세부 작업으로 나뉘고 처리순서가 결정되어 처리되는 등의 책임을 에이전트가 진다.
사용자가 요구한 작업을 현재의 컴퓨터에서 처리하지 않고 그 작업을 처리할 수 있는 다른 컴퓨터로 이동시켜 수행함으로써 효율을 높이고 네트워크 부하를 감소.
에이전트가 목표를 달성하기 위해 행동하지 목표 달성을 방해하는 방향으로는 행동하지 않는다.
에이전트는 사용자의 습관과 작업 방식 그리고 취향에 따라 스스로를 적응시킬 수 있다.
에이전트는 다른 에이전트, 자원, 사람과도 복잡한 작업을 수행하기 위해 협력할 수 있다.
학습 에이전트(learning agent)는 사용자가 웹상에서의 수행하는 행동을 관찰하고 어떤 내용에 관심을 가지고 있는지 판단하여 사용자에게 알맞은 내용을 전달하도록 하는 것을 말함.
현존하는 많은 컴퓨터 프로그램과 인터페이스는 명백하게 인간의 재능과 흥미를 표현하지만 인간과 컴퓨터 사이에는 아직도 대화능력이 부족하다. 사용자 인터페이스 에이전트(user interface agent)는 사용자의 원하는 작업을 찾아내서 이들을 네트워크나 응용 프로그램안 어디에서든지 실행할 수 있도록 이동시켜 준다. 사용자 인터페이스는 응용 프로그램의 성공에 있어 매우 중요하다. 이것은 사용자 요구의 자연적 모호성을 명확하게 해석하여 모호하지 않은 문장을 즉시 프로세스로 보낼 수 있어야 한다. 인터페이스는 또한 결과를 사용자에 의해 요구되고 이해되는 형태로 변환할 수 있어야 함.
데스크톱 에이전트(desktop agent)는 PC나 워크스테이션의 운영 체제에 상주하면서 국부적으로 실행되는 소프트웨어 에이전트이다. 데스크톱 에이전트는 운영 체제 에이전트, 응용 프로그램 에이전트, 응용 프로그램 환경 에이전트로 분류.
인터넷 에이전트(internet agent)는 서버에 상주하면서 사용자와 직접적인 상호 작용없이 사용자를 대신해서 작업을 수행하도록 인터넷상에서 분산된 온라인 정보를 접근하는 컴퓨터 프로그램이다. 인터넷 에이전트는 정보제공자와 정보소비자 사이의 정보중개인으로 동작한다. 그런 정보 매개체로서 인터넷 에이전트는 사용자들의 정보 요구를 정보 공급자, 정보 형태, 정보 내용에 따라 중재해 준다.
현재의 상거래는 사람이 물건을 사고 파는 업무를 수행하는 거의 전적으로 사람에 의해 이루어지고 있다. 그러나 일부 상거래 과정을 살펴보면 상거래의 일부가 자동화되지 않을 이유가 없다. 상거래 과정의 일부는 에이전트가 대신하는 전자상거래 에이전트(electronic commerce agent)가 출현.
전문지식의 특정영역에 대한 전문가의 지식을 요약하고 그 영역 안에서 지적인 판단을 내릴 수 있는 Software Package이다. 전문가시스템을 정의하는 다른 방법은, 이를 보통의 프로그램과 비교하는 것. 가장 기본적인 차이는, 보통의 프로그램이 data를 처리하는데 반하여 전문가시스템은 Knowledge를 처리하는 것.
| 일반 프로그램 | 전문가 시스템 |
|---|---|
| 데이터 표현하고 사용. | 지식을 표현하고 사용. |
| 알고리즘을 사용. | 휴리스틱을 사용. |
| 반복적인 처리. | 추론적인 처리. |
| 데이터베이스를 처리. | 지식 베이스. |
따라서 관련 분야의 전문가와 같은 정도의 성과를 발휘해야 하며 또한 빠르게 좋은 해를 찾아내기 위해 효율적으로 구성되어야 한다. 또한 인간과 같이 넓고 깊은 지식을 제공할 수 있어야 한다.실제에 있어서는 관련분야에 2년 정도 종사한 전문가의 지식구현에 만족하는 경향이며 또한 정확한 해를 구하기 위하여 문제를 축소 시켜 좁은 부분에서 정확한 해를 추구하는 경향
전문가뿐 아니라 전문가시스템의 User들은 인간이기 때문에 인간과의Interactive한 지식교환을 하려면 인간의 애매한 표현들을 정량화하여 전문가 시스템에 구현하여 불확실성을 줄여 나가야 한다. 이러한 심볼 표현에 의한 불확실성은 Certainty Factor나 Fuzzy 이론으로써 구현하게 된다.
“휴리스틱”의 의미는 “자기 힘으로 알아내는 자기 발견적인”의 의미이다. 따라서 항상 옳은 것은 아니지만 대부분의 경우에 옳은 정보를 제공한다. Graph Search 과정에서의 넓이우선,깊이우선 탐색은 목표의 위치에 무관한 Blind Search 이다. 그러나 휴리스틱 Search는 가장 가능성이 있는 목표의 위치에 대하여 탐색을 행하여 불필요한 자원낭비를 줄이게 된다. 이때 가장 가능성이 있는 위치를 찾아내기 위하여 전문가의 경험에 의한 규칙(Rules of Thumb)을 이용하거나 또는 각 단계에서의 바람직한 정도를 평가하기 위한 척도로써 Evaluation Function을 사용하기도 한다.
이는 시스템이 갖는 자신의 사고에 관한 지식을 말한다. 이는 지식에 대한 지식을 의미한다. “이순신 장군의 신발은 몇 문인가”하는 질문에 대하여 인간은 쉽게 “모른다”는 답을 하지만 컴퓨터는 자기의 지식을 모두 검색한 후에야 답을 얻는다.그러나 전문가시스템은 Rule로써 문제의 성격을 파악하여 결론의 정확성,일관성,가능성들을 검토하여 추론한다. 이를 위해서 explanation facility를 가지게 되며 Why (왜 전문가시스템이 그런 질문을 하는가를 보여준다), How (어떻게 해서 전문가시스템이 그런 결론을 내렸는가를 보여준다) 등의 자문에 응하게 된다.
| 특징 | conventional program | expert system |
|---|---|---|
| 제어 (control by...) | statement order | inference engine |
| control and data | implicit integration | explicit separation |
| control strength | strong | weak |
| solution by.. | algorithm | rules and inference |
| solution search | small or none | large |
| problem solving | algorithm is correct | rules |
| input | assumed correct | incomplete, incorrect |
| unexpected input | difficult to deal with | very responsive |
| output | always correct | varies with problem |
| explanation | none | usually |
| applications | numeric, file, and text | symbolic reasoning |
| execution | generally sequential | opportunistic rules |
| program design | structured design | little or no structure |
| modifiability | difficult | reasonable |
| expansion | done in major jumps | incremental |
문제의 해결책은 일반적으로 솔루션에 도달하기 위해 초기 데이터와 사실을 포함합니다. 이러한 알려지지 않은 사실과 정보는 결과를 추론하는 데 사용됩니다. 예를 들어, 환자를 진단하는 동안 의사는 먼저 온도, 혈압, 맥박, 눈 색깔, 혈액 등과 같은 신체의 증상과 의학적 상태를 확인합니다. 그 후, 환자의 증상을 분석하고 미리 결정된 증상과 비교합니다. 그러면 의사는 환자의 증상에 따라 약을 제공 할 수 있습니다. 따라서 솔루션에서 이러한 추론 방식을 사용하는 경우 정방향 추론이라고
합니다.
추론 엔진은 우선 순위가 주어진 현재 상태와 일치하는 제약 조건에 대해 제공된 정보를 사용하여 지식 기반을 탐색합니다.
역방향 추론
은 규칙, 초기 사실 및 데이터를 추론하기 위해 목표가 분석되는 순방향 추론의 역입니다. 의사는 증상과 같은 잘못된 데이터의 도움을 받아 환자를 진단하려고하는 위의 정의에서 주어진 비슷한 예를 통해 개념을 이해할 수 있습니다. 그러나이 경우 환자는 자신의 신체에 문제가있어 의사가 증상을 증명할 수 있습니다. 이러한 종류의 추론은 역 추론 하에서 이루어진다.
이러한 유형의 추론에서 시스템은 목표 상태와 이유를 역방향으로 선택합니다. 자, 어떻게 그것이 일어나고 어떤 단계가 뒤따른 지 이해합시다.
⇒ 대전제 : 모든사람은 죽는다.
⇒ 소전제 : 소크라테스는 사람이다.
⇒ 결 론 : 소크라테스는 죽는다.
⇒ 필요한 규칙.
등이 필요할 것이다.