- Univ._Study
- 티스토리챌린지
- Android
- Artificial_Intelligence
- app
- Python
- study
- SingleProject
- 리눅스마스터2급
- Java
- 2023_1st_Semester
- Algorithm
- programmers
- 오블완
- Baekjoon
- 자격증
- Image_classification
- cloud_computing
- C
- Unix_System
- c++
- Linux
- pytorch
- Personal_Study
- codingTest
- Operating_System
- datastructure
- tensorflow
- Kubernetes
- Database_Design
코딩 기록 저장소
[23-01/인공지능] 지식표현과 추론 - 1 본문
1. 지식기반 에이전트
지식기반 에이전트 (Intelligent Agent)
■ 에이전트(Agent)란?
- Sensor를 통해 환경(environment)를 인식하고, 동작(action)을 수행할 수 있는 작동기(Actuactors)를 통해 인식된 환경에 대한 동작을 수행하는 개체
-> 즉 복잡한 환경에서 환경을 인식하여 주어진 목표를 달성하려는 시스템
■ 단순 반사 에이전트 (Simple Reflex Agent)
- Sensor를 통해 인식한 환경만을 고려하여 동작(action)을 수행 (이전 History 고려 X)
memo : 약간 if else 룰 같음. 해당하는 조건에 맞으면 바로 실행
예를 들어 자율주행 자동차 앞차가 브레이크 밟으면 우리도 브레이크 밟기 시작함
■ 모델 기반 에이전트 (Model-based Agent)
- 인식한 현재 상태를 update를 통해 History에 기록하고, Sensor를 통해 인식한 환경을 History와 비교하여 동작을 수행
-> 이전 기록인 History를 통해 '이전에 봤던 상태', '처음 보는 상태'인지를 구분
memo : 완전히 일치하지 않더라도 유사하면 action 취할 수 있음
■ 목표 기반 에이전트 (Goal-based Agent)
- 인식한 현재 상태만이 아닌 목표(Goal) 상태에 대한 정보도 활용해 동작을 수행함
-> 현재 상태에서 Goals을 달성하는 것을 주요 목표로 함 (탐색(search) 기법)
memo : 탐색과 관련된 에이전트. 목표상태에 대한 정보를 이용해 목표상태까지 도달함.
ex) A*에서 현재 노드부터 목표 노드까지의 거리와 시작 노드부터 목표 노드까지의 거리 고려
■ 학습 에이전트 (Learning Agent)
- 학습요소에 학습된 내용을 기반으로 수행요소 (Performance Element)에서 동작을 선택 (학습요소의 개선을 위해 동작에 대한 평가 후 재학습)
-> 학습이라는 과정을 통해 '이전에 봤던 상태', '유사상태', '처음보는 상태'인지 추론을 통해 구분
(구분이 잘되지 않는 경우 다시 학습 실시)
■ 지식베이스 에이전트 (Knowledge-base Agent)
모델기반 + 학습하는 에이전트
memo : 모델기반 - 과거의 기록 고려함 / 학습 에이전트 - 이 부분이 주기적으로 업데이트
- 지식베이스(KB)에 저장 및 학습(Updating)된 상태들을 기반으로 추론엔진을 통해 동작 수행
- 지식베이스 에이전트의 경우 다수의 answerable question에 대한 응답 가능
-> 탐색 알고리즘은 'A에서 B까지 어떻게 가느냐'와 같은 1개의 질문만 해결 (memo : 한가지 질문, 한가지 답변)
memo : Data Base 대신 지식이 저장되는 곳. 지식 저장소. 저장된 지식을 기반으로 새로운 사실을 추론함.
KB ⊧ α : 작은 개념(KB)으로 부터 큰 개념(α)을 추론해나감
ex) KB에 "왕이 독살 당했다"라는 정보 들어옴. 독살은 하나의 종류고 작은 개념임. => 근데 이걸로 "왕은 죽었다."라는 큰 개념 추론 가능함
지식베이스 에이전트 (Knowledge Base Agent)
■ 지식베이스(KB)
- 형식언어(Formal Language)로 구성된 문장(Sentence)들의 집합
● 절차적 지식(Procedural Knowledge)
- 지식베이스(KB)에 저장 및 학습(Updating)된 상태들을 기반으로 추론엔진을 통해 동작 수행
memo : 대부분 rule, it else then 등. 말 그대로 절차적으로 표현되어있는 언어. ~가 참이면 ~을 해라.
● 선언적 지식 (Declarative Knowledge)
- 어떤 대상의 성질, 특성이나 관계 서술 (e.g. 논리, 의미망, 프레임)
memo : 예를 들어서 p→q 명제논리. p가 True면 q도 True.
■ 지식베이스(KB) 에이전트 Pseudocode
1. 에이전트는 인식한 현재 상태를 KB에게 알려줌 (TELL)
2. 이후 에이전트는 KB에게 해당 time에 어떠한 동작(action)을 취해야하는지 물어봄 (ASK)
-> 여기서 동작에 대한 Answer(action)는 KB에 저장되어 있는 것
3. 이후 에이전트는 KB에게 해당 time에 어떠한 동작(action)을 선택했는지 알려줌 (TELL)
-> 즉 에이전트는 KB로부터 선택된 동작들 중 추론 엔진을 통해 Best한 동작 설정
-> Counter를 통해 해당 동작이 몇 번째로 수행되었는지 기록을 위해 time update 실시
2. 웜푸스 월드 (Wumpus World)
웜푸스월드
● Goal
- 시작 시점에서 출발하여 금을 가지고 다시 시작시점으로 돌아오는 게임
● Sensor
- Breeze(미풍), Glitter(반짝임), Stench(악취)
● Environment
- Wumpus가 있는 칸과 인접한 칸은 Stench(악취)가 남
- PIT(구덩이)와 인접한 칸에서는 Breeze(미풍) 감지 가능
- 금이 있는 칸에서는 Glitter(반짝임) 감지 가능
- 화살을 쏘면 Wumpus는 죽음 (죽을 때 비명 지름)
- 화살은 1번만 쏠 수 있음
- 금이 있는 칸에서만 금을 주울 수 있음
● Actions
- 대각선 제외한 동-서-남-북 방향 1칸 이동 가능
- 줍기(grab), 화살 쏘기 (shoot)
● Performance Measure
- Gold +1000점, Death -1000점
- 1칸 이동 당 -1점, 화살 사용 시 -10점
■ 추가
● Case 1 : 만약 (1,2), (2,1)에 모두 Breeze(미풍)이 분다면?
- 지금까지 했던 이전의 기록을 보고 PIT가 있었던 확률 구하여 있을 확률이 가장 낮은 곳으로 이동함
● Case 2 : 만약 (1,1) 시작 지점에서 Stench(악취)가 난다면?
- 화살부터 쏨. 비명을 지르면 해당 칸들은 안전함. 반대로 안질러도 해당 칸들은 안전함.
3. 규칙 (Rule)
규칙 (Rule)
- '~이면, ~이다' 또는 '~하면, ~하다'와 같은 조건부의 지식을 표현하는 IF-THEN 형태의 문장
- 직관적이며 이해하기 쉬움
■ 규칙 획득 및 표현
- e.g. 신호등이 녹색일 때는 건널목을 안전하게 건널 수 있고, 빨간색일 때는 길을 건너지 말아야 함.
● 대상, 속성, 행동 또는 판단의 정보 추출
- 대상 : 신호등
- 속성 : 녹색, 빨간색
- 행동/판단 : 건넌다, 멈춘다
● 표현
- IF 신호등이 녹색이다 THEN 행동은 건넌다
- IF 신호등이 빨간색이다 THEN 행동은 멈춘다
■ IF 부분
- 주어진 정보나 사실에 대응될 조건
- 조건부 (Conditional Part, Antecedent)
- 둘 이상의 조건을 AND 또는 OR로 결합하여 구성 가능
- IF <조건1> AND <조건2> AND <조건3> THEN <결론>
- IF <조건1> AND <조건2> AND <조건3> THEN <결론>
■ THEN 부분
- 조건부가 만족될 때의 판단이나 행동
- 결론부 (Conclusion, Consequent)
- 여러 개의 판단 또는 행동 포함 가능
- IF <조건>
THEN <결론1>
AND <결론2>
AND <결론3>
■ 규칙을 통한 지식 표현 (절차적 표현은 대부분 표현 가능)
● 인과관계
- 원인을 조건부에 결과는 결론부에 표현
ex)
IF 연료통이 빈다
THEN 차가 멈춘다
● 추천
- 상황을 조건부에 기술하고 이에 따른 추천 내용을 결론부에 표현
ex)
IF 여름철이다 AND 날이 흐리다
THEN 우산을 가지고 가라
● 지시
- 상황을 조건부에 기술하고 이에 따른 지시 내용을 결론부에 표현
ex)
IF 차가 멈추었다 AND 연료통이 비었다
THEN 주유를 한다
● 전략
- 일련의 규칙들로 표현
- 이전 단계의 판정 결과에 따라 다음 단계에 고려할 규칙이 결정
ex)
IF 차가 멈추었다
THEN 연료통을 확인한다 AND 단계1을 끝낸다
IF 단계1이 끝났다 AND 연료통은 충분히 찼다
THEN 배터리를 확인한다 AND 단계2를 끝낸다
● 휴리스틱
- 경험적인 지식을 표현하는 것
- 전문가적 견해는 최적을 항상 보장하는 것이 아니고 일반적으로 바람직한 것을 표현
ex)
IF 시료가 액체이다 AND 시료의 PH가 6미만이다 AND 냄새가 시큼하다 THEN 시료는 아세트산이다
4. 논리 (Logic)
일반적 논리 개념 (Logic in General)
- Logic은 결론(Conclusion)이 도출될 수 있도록 정보를 표현할 수 있는 형식적 언어 (Formal Language)
- Syntax는 Language에서의 문장(Sentence)의 구문(문법)을 정의
- Semantic은 문장(Sentence)의 의미를 정의 (e.g. True/False of Sentences)
논리 종류 (Types of Logic)
■ 명제 논리 (Propositional Logic)
- 명제를 기호로 표시하고, True/False를 판정하는 논리
■ 술어 논리 (First-order Logic, 1차논리)
- 명제의 내용을 다루기 위해 변수, 함수 등을 도입하고, 이들 값에 따라 True, False를 판정하는 논리 (명제 논리 확장)
함의 (Entailment)
■ Entailment : α ⊧ β ( "α entails β" or "β follows from α")
- 논리에서는 문장(sentence)의 logic 결과 (True/False)가 다른 문장의 결과를 따를 수 있음
- α가 β를 함의한다 = β는 α의 결과를 따름
- 즉 만약 α가 "True"이면 β도 "True"임
- 이때 α는 β의 subset 관계임 [ models(α) ⊆ models( β) ] <- 부분집합 속해있어야함
추론 (Inference)
- KB ⊢ᵢ α = 문장(sentence) α는 추론 절차/알고리즘 i (Inference Procedures)를 통해 KB로부터 결과가 도출될 수 있음
-> 즉 α는 추론절차 i에 의해 KB로부터 결과를 유도할 수 있음
● Soundness (건전성)
-> 추론 절차 i가 sound하다는 것은, '만약 추론 절차 i를 통해 도출된 KB ⊢ᵢ α가 True이면 KB ⊧ α의 결과는 항상 True이다'를 보장할 수 있는 것
● Completeness (완전성)
-> 추론 절차 i가 complet하다는 것은, 만약 KB⊧ α가 True일 때 추론 절차 i를 통해 KB ⊢ᵢ α의 모든 결과도 항상 True임을 보장할 수 있는 것
5. 명제논리 (Propositional Logic)
명제 논리
■ 명제
- 참, 거짓을 분명하게 판정할 수 있는 문장
- 아리스토텔레스는 플라톤의 제자이다 (명제)
- 1 + 1 - 3 (명제)
- 일어나서 아침 먹자 (명제 아님)
- 명제를 P, Q등과 같은 기호로 표현
- 명제 기호의 진리값(Truth Value)을 사용하여 명제들에 의해 표현되는 문장들의 진리값 결정
논리기호 | 이름 | 논리식 | 의미 |
¬ | 부정(Negation) | ¬P | P가 아님 |
⋁ | 논리합(Disjunction) | P ⋁ Q | P 또는 Q |
⋀ | 논리곱(Conjunction) | P ⋀ Q | P 그리고 Q |
→ | 함의(Implication) | P→Q | P 이면 Q |
≡ | 동치(Equivalence) | P ≡ Q | (P→Q) ⋀ (P→Q) |
■ 논리곱 (Conjunction)
- p와 q가 명제이면, "p and q"도 명제이며, 이를 p와 q의 논리곱이라 하고 p⋀q라 표기함
- 이 명제는 p, q가 모두 참일 때만 참이 되며, 그 외에는 모두 거짓이 됨
p | q | p⋀q |
T | T | T |
T | F | F |
F | T | F |
F | F | F |
■ 논리합 (Disjunction)
- p와 q가 명제이면, "p or q"도 명제이며, 이를 p와 q의 논리합(Disjunction)이라 하고, p⋁q라 표기함
- 이 명제는 p, q가 모두 거짓일 때만 거짓이 되며, 그 외는 모두 참이 됨.
p | q | p⋁q |
T | T | T |
T | F | T |
F | T | T |
F | F | F |
■ 함축 (Implication)
- p와 q가 명제이면, 함축 "p→q"도 명제이며, 이 명제는 p가 참이고 q가 거짓일 경우에만 거짓이 되며, 그 외는 모두 참이 됨
p | q | p→q |
T | T | T |
T | F | F |
F | T | T |
F | F | T |
■ 상호조건명제 (Bi-conditional)
- p와 q가 명제이면, "p↔q"를 상호조건명제라 하고, p와 q가 동일한 진리 값을 가질 때 참이 되며, 다른 진리 값을 가지면 거짓이 됨
p | q | p↔q |
T | T | T |
T | F | F |
F | T | F |
F | F | T |
■ 명제 논리
- 논리식의 명제기호에 참값(T) 또는 거짓값(F)을 할당한 것
- ( P ⋁ ¬Q) ⋀ ( Q → ¬R) : p = T, Q = F, R = T
- 모델이 주어지면, 진리표를 사용하여 논리식의 진리값 결정, 즉 해석 가능함
- n개의 명제기호가 논리식에 사용된다면, 각각 T또는 F값을 가질 수 있기 때문에, 총 2ⁿ개의 모델이 존재
■ 논리적 동치 관계 (Logical Equivalence)
- p ↔ q가 항진이면, p와 q는 논리적으로 동치이며, p ≡q 혹은 p ↔q라 표기함
- 복합명제가 n개의 단위명제로 구성되는 경우, 동치를 증명하기 위해 2ⁿ개의 행이 필요함 - 효율적인 방법 필요
- 동치 법칙(Equivalence Laws)을 활용!
-> 어떠한 모델에 대해서도 같은 값을 갖는 두 논리식
(p↔ q) ≡ (p→ q)⋀ (q→ p) | 쌍조건문 소거 |
(p → q) ≡ ¬p ⋁ q | 함의 제거 |
--- 동치 종류 --- | --- 법칙 이름 --- |
p ⋀ T ↔ p p ⋁ T ↔ p |
항등 법칙 |
p ⋁ T ↔ T p ⋀ F ↔ F |
지배 법칙 |
p ⋁ q ↔ q ⋁ p p ⋀ q ↔ q ⋀ p |
교환 법칙 |
(p ⋁ q) ⋁ r ↔ p ⋁ (q ⋁ r) (p ⋀ q) ⋀ r ↔ p ⋀ (q ⋀ r) |
결합 법칙 |
p ⋁ (q ⋀ r) ↔ (p ⋁ q) ⋀ (p ⋁ r) p ⋀ (q ⋁ r) ↔ (p ⋀ q) ⋁ (p ⋀ r) |
분배 법칙 |
¬ (p ⋀ q) ↔ ¬p ⋁ ¬q ¬ (p ⋁ q) ↔ ¬p ⋀ ¬q |
드모르간의 법칙 |
p ⋁ (p ⋀ q) ↔ p p ⋀ (p ⋁ q) ↔ p |
흡수 법칙 |
p ⋁ ¬p ↔ T p ⋀ ¬p ↔ F |
부정 법칙 |
■ 유효성 (valid) vs. 만족 가능성 (Satisfiable)
● 문장이 valid(유효)하다는 것은 모든 모델이 True일 때
- e.g. True, A ∨ ¬A, A ⇒ A, (A ∧ (A ⇒ B)) ⇒ B
Validity is connected to inference via the Deduction Theorem(연역정리)
-> KB ⊧ α if and only if (KB ⇒ α ) is valid : 즉 KB ⊧ α와 (KB ⇒ α )는 logically equivalent하다
● 문장이 satisfiable(만족)하다는 것은 일부 모델에서 True일 때
- e.g. A ∨ B, C (True을 만들 수 있는 모델이 하나라도 있는 논리식)
● 문장이 unsatisfiable(불만족)하다는 것은 True 모델이 전혀 없을 때
- e.g. A ∧ ¬A
Satisfiability is connected to inference via the following
-> KB ⊧ α if and only if (KB ⇒ ¬α ) is unsatisfiable : 즉 KB ⊧ α와 (KB ⇒ ¬α )가 unsatisfiable할 때 KB ⊧ α 한다
'학교 공부 > 인공지능' 카테고리의 다른 글
[23-01/인공지능] 지식표현과 추론 - 2 (0) | 2023.04.26 |
---|---|
[23-01/인공지능] 문제해결 및 탐색전략 - 2 (2) | 2023.04.25 |
[23-01/인공지능] 문제해결 및 탐색전략 - 1 (0) | 2023.04.19 |
[23-01/인공지능] 인공지능의 발전과정, 지능형 에이전트 (2) | 2023.04.17 |
[23-01/인공지능] 인공지능 개요 (1) | 2023.04.17 |