CS/인공지능 21

[인공지능] 지식표현방법 ( 명제논리, 술어논리 )

명제논리 참 또는 거짓을 판별 할 수 있는 문장 P : 마트는 월요일부터 토요일까지 영업한다. ( 지식 ) Q : 오늘은 월요일이다. ( 사실 ) R : 마트는 오늘 영업한다. ( 추론된 사실 ) 새로운 '사실'을 추론할 수는 있지만 새로운 '지식'을 만들 수는 없다. 논리 연산자 Q : 오늘은 일요일이다. NOT Q : 오늘은 일요일이 아니다. J : 옷은 파랑색이다. K : 옷은 스트라이프 무늬가 있다. J AND K : 옷은 파란색이고 스트라이프 무늬가 있다. 함축 : A → B A문장이 B를 함축한다. A 문장은 B를 함축한 문장이다 고로, A가 참일때 B는 반드시 참이 되어야 한다. A가 참일때 B가 거짓이면 거짓이다. A가 거짓이라면 B도 거짓일 수 있다. ( 참 ) A가 거짓이어도 B는 참일..

CS/인공지능 2021.10.30

[인공지능] 지식표현방법 ( 의미망, 프레임 )

지식은 인공지능의 중요한 요소이다. 지식표현방법 1) 절차적모델 : 행동이나 절차를 표현 ( 규칙 ) 3) 선언적모델 : 사실이나 주장을 표현 ( 논리, 의미망, 프레임 ) 의미망 ( Semantic Network ) 방향그래프를 활용하여 개념 간의 관계를 표현 is a : ~의 일종이다. has : ~를 가지고 있다. 의미망은 인과관계를 표현하기에 좋지만 관계가 많아지면 유지보수가 복잡해진다. 표준지침이 없어 보편화된 표현방법이 없다. 프레임 ( Frame ) '객체(Object)'의 인공지능식 표현, 특정 객체에 속하는 속성을 표현하는 방법 슬롯은 속성을 의미한다. 슬롯의 값은 디폴트값 외에도 다른 프레임을 가리키는 프레임포인터나 슬롯에 이벤트( 요구, 변경, 제거 등)가 발생했을 때 동작하는 프로시..

CS/인공지능 2021.10.30

[인공지능] 전문가시스템

지금껏 포스팅했던 '탐색'으로 구현한 인공지능은 절차적 코드를 사용한다. 그러나 지능은 '탐색'으로만 구현되지 않는다. 전문가 시스템은 코드가 아닌 규칙으로 표현된 지식을 이용하여 좀 더 복잡한 문제를 해결한다. 전문가 시스템 이미 습득한 지식을 이용하여 새로운 사실을 추론하는 방법이다. 생성규칙(Production Rules) 데이터 : 사실 ( True ) ( ex. 신호등, 빨간색 ) 정보 : 의미 있는 사실 ( True ) ( ex. 신호등이 빨간색이다. ) 지식 : 추론을 위한 정보 ( True or False ) ( ex. 신호등이 빨간색이면 멈추어야 한다. ) EX. ) 자동차가 움직이지 않는다. AND 연료탱크가 비웠다. ( 상황 ) THEN 자동차에 연료를 급유한다. ( 결론 ) ( 상황..

CS/인공지능 2021.10.29

[인공지능] 게임트리 ( 알파베타 가지치기 )

[인공지능] 게임트리 ( MiniMax 알고리즘 ) 인공지능에게 게임이란? 게임은 추상적으로 정의가능하며 비교적 적은 연산자를 가진다. 게임의 인공지능 구현은 지적 능력과 관련있다고 여겨진다. 게임 조건 - 경기자는 두 명 - 제로썸 게임 ( lordofkangs.tistory.com 지난 포스팅에서 MiniMax 알고리즘을 다루었다. MiniMax 알고리즘은 게임트리의 모든 노드를 탐색하여 결과를 예측한다. 그러나 모든 노드를 탐색할 필요는 없다. 게임트리의 노드는 동적으로 생성되기에 적절한 조건문을 부여하면 필요없는 탐색을 줄일 수 있다. 이를 구현한 알고리즘이 알파-베타 가지치기(Alpha-Beta Pruning)이다. 알파-베타 가지치기(Alpha-Beta Pruning) 알파-베타 가지치기는 M..

CS/인공지능 2021.10.27

[인공지능] 게임트리 ( MiniMax 알고리즘 )

인공지능에게 게임이란? 게임은 추상적으로 정의가능하며 비교적 적은 연산자를 가진다. 게임의 인공지능 구현은 지적 능력과 관련있다고 여겨진다. 게임 조건 - 경기자는 두 명 - 제로썸 게임 ( 승자와 패자가 나뉨 ) - 차례대로 수를 둠 MiniMax 알고리즘 경기자는 최상의 수를 선택한다는 가정 하에 결과를 예측하는 알고리즘이다. - 경기자 Max : 항상 큰 값을 선택한다. Min : 항상 작은 값을 선택한다. - 알고리즘 1) 경우의 수 펼치기 ( Top-down ) 위 그림은 depth가 4인 게임트리이다. 게임 참여자가 둘 수 있는 경우를 모두 노드로 표현한다. 그리고 상대가 최적의 수를 둔다는 판단하에 게임결과를 예측하는 것이다. A 경우부터 보자. A 경우에서 Max는 B 경우와 C 경우를 선..

CS/인공지능 2021.10.26

[인공지능] A* 알고리즘

[인공지능] 언덕 등반 기법 (Hill-Climbing) 경험적인 탐색 방법 정보를 기반으로 탐색하는 알고리즘이다. 휴리스틱 정보(Heuristic Information)를 이용하여 휴리스틱 탐색 방법으로도 불린다. * 휴리스틱 정보 : 사람이 유용할거라 판단한 정보 lordofkangs.tistory.com 언덕 등반 기법은 지역 최대-최소 문제가 발생했다. 오로지 현재노드의 휴리스틱 정보만을 기준으로 DFS 탐색이 이루어졌기 때문이다. 지역 최대-최소 문제를 해결하기 위한 기법이 A* 알고리즘이다. A* 알고리즘 언덕 등반 기법의 단점은 시작노드에서 목표노드까지 가는 '비용'을 고려하지 않는 것이다. 그러므로 A* 알고리즘의 평가함수는 '비용'을 추가한다. F(N) = G(N) + H(N)(휴리스틱 ..

CS/인공지능 2021.10.25

[인공지능] 언덕 등반 기법 (Hill-Climbing)

경험적인 탐색 방법 정보를 기반으로 탐색하는 알고리즘이다. 휴리스틱 정보(Heuristic Information)를 이용하여 휴리스틱 탐색 방법으로도 불린다. ( * 휴리스틱 정보 : 사람이 유용할거라 판단한 정보 ) 휴리스틱 정보(Heuristic Information) 현재상태와 목표상태가 주어졌다. 여기서 휴리스틱 정보를 뽑아보자. h1(N) : 현재상태를 목표 상태와 비교했을 때, 목표상태와 일치하지 않은 현재상태의 타일의 개수 2, 1, 8, 4 타일은 목표상태와 위치가 다른 타일이다. 그러므로 h1(N)은 4가 된다. h2(N) : 각 타일의 목표 위치간 거리 2, 1, 8, 4 타일이 목표 위치와 얼마나 떨어져 있는지 계산해야 한다. 2 와 1은 한 칸, 8 과 4는 두 칸이므로 h2(N)은..

CS/인공지능 2021.10.24

[인공지능] 넓이 우선 탐색 ( BFS; Breadth First Search )

맹목적 탐색 ( 목적없이 탐색 ) - 깊이 우선 탐색 - 너비 우선 탐색 - 균일 비용 탐색 넓이 우선 탐색 ( BFS; Breadth First Search ) 루트 노드의 모든 자식 노드를 탐색한 다음 해가 없으면 다음 레벨로 넘어가 탐색하는 알고리즘 탐색 대상인 '노드(Node)'는 동적으로 생성된다. ( 미리 생성 X ) OPEN-CLOSED 리스트 확장이 가능한 상태(노드)는 동적으로 생성된다. 동적으로 생성된 노드 중 이미 탐색했던 상태와 동일한 상태가 존재할 수 있다. 동일한 상태를 검사하는 오버헤드를 줄이기 위해 두 가지 리스트를 사용한다. - OPEN 리스트 : 확장은 되었으나 탐색되지 않은 상태 리스트 - CLOSED 리스트 : 탐색이 끝난 상태 리스트 BFS 알고리즘 1. OPEN 리..

CS/인공지능 2021.10.24

[인공지능] 깊이 우선 탐색 ( DFS; Deep First Search )

알파고는 딥러닝으로 가장 가능성 높은 몇 개의 수를 추려낸 후 탐색기법을 적용하여 다음 수를 읽었다. 361! 개의 경우의 수에서 가능성 있는 1000가지를 추리고 1000가지에 탐색기법을 적용한다. 이번 포스팅에서는 탐색기법을 다루어 보겠다. 탐색(Search)이란, 상태공간에서 초기상태에서 목표상태까지의 경로를 찾는 것이 탐색이다. 연산자는 다음 상태를 생성한다. 맹목적 탐색 ( 목적없이 탐색 ) - 깊이 우선 탐색 - 너비 우선 탐색 - 균일 비용 탐색 깊이 우선 탐색 ( DFS; Deep First Search ) 해가 존재할 가능성이 있는 한 앞으로 계속 전진하여 탐색하는 방법 탐색 대상인 '노드(Node)'는 동적으로 생성된다. ( 미리 생성 X ) OPEN-CLOSED 리스트 확장이 가능한 ..

CS/인공지능 2021.10.22

[인공지능] 인공지능의 역사

인공지능의 태동 1943년 Warren Mculloch와 Walter Pitts는 뉴런들의 간단한 네트워크를 분석 생물학적 개념인 뉴런을 컴퓨터적 컨셉으로 제시 튜링테스트 1950년, 영국의 수학자 앨런 튜링은 기계와 사람을 구분할 수 없다면 인공지능이 구현되었다고 판단 퍼셉트론(Perceptron) 컨셉과 개념으로만 제시되었던 인공신경망을 수학적 모델과 알고리즘으로 제시 범용성이 없고 제한적인 영역만 가능 첫번째 AI 겨울 ( 1970년대 ) 범용적 인공지능을 원하던 시대의 요구를 퍼셉트론이 충족하지 못하면서 인공지능에 대한 관심이 떨어짐 1970년대는 충분한 컴퓨팅 파워가 부족 ( CPU 처리속도, 메모리 용량 ) 방대한 정보를 다룰 만한 데이터베이스를 만들지 못하고 어떻게 학습해야 하는지도 모름 A..

CS/인공지능 2021.10.21