1. 서론 - 연세대학교

Download Report

Transcript 1. 서론 - 연세대학교

인터넷 환경의 지식시스템
제 9 장 탐색
박상언
경기대학교 경영정보학과
탐색 (Search)
• 컴퓨터가 문제를 자율적으로 해결하기 위해 해
혹은 해에 이르기 위한 경로를 찾아가는 과정
▫ 탐색은 인공 지능적 문제해결에서 주요한 수단
▫ 해를 찾는 과정의 효율성과 찾은 해의 적합성까지
포함
▫ 인공지능 시스템에서 적용할 규칙을 선택하는 제어
시스템의 행위는 일종의 탐색과정
개요
• 인공지능의 대부분 과제 – 주어진 문제에 대한 해결책 모색
▫
▫
상태공간에서의 해결책 탐색
효과적인 탐색기법의 연구
▫
지수적 폭발 : 시스템의 크기와 복잡도가 증가함에 따라 탐색해야 할 상태 공간의 수가 엄청난
비율로 증가
• 탐색 문제의 중요속성
• 전략의 발전
▫
▫
Uninformed, weak method 에서
Well-informed 로
▫
바둑게임의 예에서 바둑판을 어떻게 표현할 것인가가 상태공간의 문제이며 새로운 바둑돌을 놓
을 때 마다 바둑판의 어떤 지점이 좋은 지 찾아내는 것이 탐색전략에 해당
• 상태공간과 탐색방법
• 휴리스틱(Heuristic)의 이용
▫
▫
▫
▫
바둑게임의 경우 모든 가능한 수를 전부 검토한 후 제일 좋은 지점을 찾는 것은 제한된 컴퓨터
자원과 제한된 시간내에서는 불가능
바둑 명인이 경험적 판단에 의해 다음 착점을 결정하는 것처럼 경험적 지식에 의한 탐색전략을
휴리스틱이라고 함
지식을 기반으로 해서 대강 짐작으로 탐색공간을 줄이는 것으로 항상 정확한 해의 도출을 보장
하지는 않지만 대부분의 경우 올바른 해를 찾아낼 수 있는 전략
효과적인 휴리스틱을 찾아내는 것이 중요
항공기 예약 문제 (1)
• 문제
서울
강릉
▫ A 도시에서 B 도시로 어떻게 갈
수 있는가?
▫ 직접 갈 수 있는가, 한번 경유하
여 갈 수 있는가, 두 번 또는 그
이상 경유하여 갈 수 있는 가?
• 방법
광주
제주
부산
▫ 인접행렬 표현방식으로 직접적
인 알고리즘을 제시
▫ 인접행렬의 정의
 각 도시는 노드(node), 비행로
는 에지(edge)
 aij = 1, 노드 i와 j가 연결된 경
우
 aij = 0, 노드 i와 j가 연결되지
않은 경우
항공기 예약 문제 (2)
• 앞의 상황을 행렬로 표현
서울 광주 제주 부산 강릉
서울 0
1
0
1
1
광주 1
0 1
1
0
제주 0
1
0
1
0
부산 1
0 1
0 0
강릉 1
0 0
0 0
• 문제 예
▫ 도시 A와 B 사이에 한번 경유
해서 갈 수 있는 패스가 존재하
는가?
▫ 답을 계산하기 위해서는 인접
행렬에서 다음과 같이 정의된
2차 오더 A2를 구한다.
▫ A2 = A ^ A
▫ Aij2 = (ai1 ^ a1j) v (ai2 ^ a2j) v
… v (ain ^ anj)
▫ 행렬의 각각의 원소는 각 도시
간에 한번 경유한 비행로가 있
는지를 나타낸다.
• 대부분의 인공지능 문제는 이와
같이 단순히 해결되지 않는다!
문제 해결
• 인간의 지적 문제해결
▫ ‘1+2’ : 인공지능적 문제 해결로 볼 수 없다.
▫ 하노이 탑 문제 : 인공지능적 탐색이 필요
• 직접적 기법
▫ 문제 해를 위한 순차적 수행을 위한 프로그래밍
▫ 초기상태가 다르면 프로그램 수정 필요
▫ 인공지능적 방법이 아님(거의 모든 기존의 프로그램에 의한
문제 해결방식)
• 인공지능적 해법
▫ 문제 상태와 요구하는 목표 상태만으로 컴퓨터가 문제 해결
예제: 하노이 타워
d1
문제해결을 위한 동작의 정의
d2
p1
p2
p3
(a) 초기상태
p1
p2
(b) 목표상태
동작
m(d1,p1)
m(d1,p2)
m(d1,p3)
m(d2,p1)
m(d2,p2)
m(d2,p3)
p3
작용
d1을 p1으로 옮긴다.
d1을 p2로 옮긴다.
d1을 p3로 옮긴다.
d2를 p1으로 옮긴다.
d2를 p2로 옮긴다.
d2를 p3로 옮긴다.
탐색에 의한 문제 해결
• 문제의 해에 도달하기 위한 탐색과정을 직접 수행
함으로써 보다 포괄적이며 자동화된 해결방안
• 문제해결 과정 중에 지적 판단이 요구되는 경우
탐색기법이 유용
• 완벽한 의미의 지능적 기계보다는 인간의 지능이
어느 정도 개입하는 시스템 개발이 보다 현실적이
다
• 문제해결의 최적의 방법보다 적당한 방법을 찾는
것이 쉽고, 인간과 상통하는 바가 있다.
상태공간(state space)
• 상태: 문제의 풀이과정중의 고유한 요소(상황)
• 상태의 집합을 상태공간
• 상태공간의 도입은 문제의 형식화에 유리트리 구조
▫ 초기상태 := ((d1,d2)()())
▫ 목표상태 := (()()(d1,d2))
▫ 초기상태에 연산자(규칙) 적용  상태 변이  목표상
태
• 뿌리노드에서 목표노드까지 도달하는 과정
▫ 트리의 크기가 문제해결의 효율성과 관련
• 트리에서의 노드의 재생성은 문제 야기  그래프구
조
▫ 탐색의 효율을 저하, 무한루프에 빠질 가능성
상태 트리 예
((d1,d2)()())
m(d1,p2)
m(d1,p3)
((d2)(d1)())
((d2)()(d1))
m(d2,p3)
m(d1,p1)
m(d2,p2)
m(d1,p1)
m(d1,p3)
((d1,d2)()())
((d2)()(d1))
(()(d1)(d2))
((d1,d2)()())
m(d1,p2)
((d2)(d1)())
(()(d2)(d1))
상태 그래프 예
((d1,d2)()())
m(d1,p1)
m(d1,p2)
m(d1,p1)
m(d1,p3)
m(d1,p3)
((d2)(d1)())
((d2)()(d1))
m(d1,p2)
m(d2,p1)
m(d2,p3)
(()(d1)(d2))
m(d2,p2)
m(d2,p1)
(()(d2)(d1))
탐색기법
• 기본적 탐색기법
▫ 경로 선택의 고려사항
 해의 경로는 짧아야 한다.
 탐색의 소요 경비는 적어야 한다.
 해가 있다면 탐색으로 반드시 찾아야 한다.
▫ 탐색 기법으로 해결할 수 있는 문제 분류
 경로 발견(path finding) 문제
 8-puzzle
 게임(game) 문제
 chess/바둑
 제약조건 만족(constraint satisfaction) 문제
 8-queen
탐색기법
• 무작위 탐색 (random search or blind search)
▫ 무작위로 경로 선택
▫ 일반적으로 최악의 방법이라고 생각되지만,
▫ 탐색 영역이 작은(축소될 수 있는) 문제에는 유용할 수도 있다.
• 트리에 의한 탐색
▫ 일반적인 탐색기법
▫ 깊이우선(depth-first) 탐색, 너비우선탐색(breadth-first) 탐색
1
5
c
2
b
3
d
1
a
4 6
e
f
a
3
c
2
b
7
g
4
d
5 6
e
f
7
g
깊이우선 탐색(depth-first search: DFS)
• 탐색 트리의 수직방향으로 점차 깊은 곳까지 목표노드를 찾아 탐색해 나가는
기법(backtracking이 존재)
• 장점
▫ 저장공간의 수요가 비교적 작다
▫ 목표노드가 깊은 단계에 있을 경우 해를 빨리 구할 수도 있다
• 단점
▫ 해가 없는 경로에 깊이 빠질 우려(depth bound설정)
▫ 해에 이르는 경로가 다수인 경우 얻어진 해가 최단 경로가 된다는 보장이 없다
• OPEN  {초기상태}, CLOSED  {},
• OPEN 집합이 공집합이 될 때까지 다음 과정을 반복수행
▫ OPEN 집합의 첫번째 원소 E를 추출하고, OPEN 집합에서는 삭제한다. E가 존재하
지 않으면 탐색을 중지한다.
▫ E가 목표상태이면 탐색을 중지하고 상태E를 되돌려준다.
▫ E가 목표상태가 아니면 상태 전이규칙을 적용하여 E의 다음상태를 모두 생성시킨
후, E를 CLOSED 집합으로 이동시킨다.
▫ 무한순환탐색을 방지하기 위해 E의 다음상태 중에서 OPEN 또는 CLOSED 집합에
이미 있는 상태들은 제외한 나머지 상태들만을 OPEN 집합의 앞쪽으로 추가시킨다.
너비우선 탐색(breadth-first search :
BFS)
• 탐색트리의 루트노드부터 목표노드를 만날 때까지 단계별로 횡방향으로 탐
색을 진행해 나가는 방식
• 장점
▫ 해에 이르는 경로가 다수인 경우에도 최단경로를 보장
▫ 해가 존재하면 반드시 찾을 수 있다
▫ 노드의 수가 적고 얕은 깊이에 해가 존재할 때 유리
• 단점
▫ 노드의 수가 늘어나면 탐색시간이 비현실적이다
▫ 기억공간에 대한 요구가 과중
• OPEN  {초기상태}, CLOSED  {},
• OPEN 집합이 공집합이 될 때까지 다음 과정을 반복수행
▫ OPEN 집합의 첫번째 원소 E를 추출하고, OPEN 집합에서는 삭제한다. E가 존재하
지 않으면 탐색을 중지한다.
▫ E가 목표상태이면 탐색을 중지하고 상태E를 되돌려준다.
▫ E가 목표상태가 아니면 상태 전이규칙을 적용하여 E의 다음상태를 모두 생성시킨
후, E를 CLOSED 집합으로 이동시킨다.
▫ 무한순환탐색을 방지하기 위해 E의 다음상태 중에서 OPEN 또는 CLOSED 집합에
이미 있는 상태들은 제외한 나머지 상태들만을 OPEN 집합의 뒷쪽으로 추가시킨다.
탐색의 방향
• 전향추론(forward reasoning)
▫ 초기상태에서 목표상태로 탐색
• 후향추론(backward reasoning)
▫ 목표상태에서 초기상태로 탐색
• 주어진 문제의 성격에 따라 좌우된다
▫ 시작 상태의 단순성과 복잡성 비교
▫ 예: 런던을 거쳐 도버로 여행가는 길 찾기
노리지
코벤트리
캠브리지
노스앰톤
옥스포드
콜체스트
마케트
런던
브리스톨
솔즈베리
사우스앰톤
캔터베리
도버
포츠머스
헤이스팅즈
휴리스틱(Heuristic) 기법
• 논리적으로 혹은 수학적으로 증명할 수 없으나 경험이나 직관
에 의해 효율적으로 해를 얻을 수 있으리라는 기대를 갖게 하는
어떤 근거에 의한 방법
• 용도
▫ 정의하기 힘든 문제 예) 직업선택, 예산지출
▫ 맹목적인 기법(blind search)으로 풀기에는 비현실적인 문제
• 인간의 사고형태는 대부분 휴리스틱이다
• 해법이 유일하지 않으며, 최적의 해를 보장할 수 없다
• 해의 결정에 허용치를 부과하는 방법이 유용하다
예) TSP(Traveling Salesman Problem)
n개의 도시 순회 방문  (n-1)!/2
n=3  3, n=20  60,822,550,204,416,000
• 표 2.2 외판원 방문 예
▫ 현재 위치에서 가장 가까운 도시부터 먼저 방문
언덕등반기법(hill-climbing)
• 평가함수(evaluation function or objective function) 사용
▫ 평가함수값을 증가(감소)시키는 방향으로 나가는 탐색전략
▫ 계곡하강법(valley declining)
• 깊이우선 탐색기법에 평가함수를 활용한 형태
• 최단의 경로에 대한 보장이 없다
• 국부최대가 존재할 수 있다(plateau)
• 과정 회복 불가능(irrevocable)
예) 8-퍼즐 문제
2
3
1 8 4
7 6 5
1 2 3
8
4
7 6 5
초기상태
목표상태
8-퍼즐문제의 탐색
1
5
2
3
1 8 4
7 6 5
5
2 8 3
1
4
7 6 5
▫ 평가함수값:
 목표상태와 같은 위치에 있는
타일 수
6
2
2 3
1 8 4
7 6 5
3
7
6
1 2 3
7 8 4
6 5
6
1 2 3
8 4
7 6 5
2 3
1 8 4
7 6 5
2
3
1 8 4
7 6 5
5
8
4
1 2 3
8
4
7 6 5
4
2 3
1 8 4
7 6 5
언덕등반기법의 실패
5
5
2 8 3
1 4
7 6 5
5
2 8 3
1
4
7 6 5
2
3
1 8 4
7 6 5
4
2 8 3
1 4
7 6 5
4
2 8 3
1 6 4
7
5
Local Search
• Simulated Annealing
• Tabu Search
• Genetic Algorithm
최고우선탐색(best-first)
• 모든 말단 노드를 대상으로 평가함수 값을 비교하
는 방법
▫ 선택 안 된 노드도 추후 선택 가능
• 국부최대를 만나도 탐색이 계속된다
• 너비우선 방식에 비해 탐색비용이 절감된다
• 최적의 경로를 보장할 수 없다
▫ 아직 선택 안 된 노드를 또 확장해 보면 더 나은 해
를 발견 가능
Best-first 탐색 알고리즘
• OPEN  {초기상태}, CLOSED  {},
• OPEN 집합이 공집합이 될 때까지 다음 과정을 반복수행
▫ OPEN 집합의 가장 좋은 평가값을 갖는 상태 Sc를 선택한다.
▫ Sc가 목표상태이면 탐색을 중지하고 Sc에 이르는 경로를 되돌려준다.
▫ Sc에 상태전이규칙을 적용하여 다음상태 SN1, SN2, SN3,…,SNk를 생성한
다.
▫ Sc의 다음 상태 SNj (1 <= j <= k)에 다음 과정을 각각 수행한다.
 SNj가 OPEN 또는 CLOSED 집합에 포함되어 있지 않으면 SNj 상태값을 평
가한 후 OPEN 집합에 추가시킨다.
 SNj가 이미 OPEN 집합에 포함되어 있는 경우: 현 SNj 상태의 평가값이
OPEN집합에 있는 SNj 상태의 평가값보다 더 좋은 경우, 기존 OPEN 집합에
있는 SNj 상태의 평가값을 새로운 값으로 대치시킨다.
 SNj가 CLOSED 집합에 포함되어 있는 경우 : 현 SNj 상태의 평가값이
CLOSED 집합에 있는 SNj 상태의 평가값보다 더 좋은 경우, CLOSED 집합
에 있는 SNj 상태를 OPEN 집합으로 이동시키고 새로운 평가값으로 부여한
다.
▫ Sc를 CLOSED 집합으로 이동시킨다.
최고우선 탐색법 예 (그림 2.12)
a
4
4
5
f
a
6
2
s
1
b
2
s
1
b
g
5
2
c
5
d
4
c
3
a
4
e
2
s
1
b
a
5
2
d
2
s
1
b
c
3
e
5
c
5
f
6
g
2
d
5
h
3
i
8
j
3
e
A* 알고리즘
• 빔 탐색(beam search)
▫ 최고우선기법에서 기억노드의 수를 제한하는 방법
▫ 기억공간이 축소되지만 너무 빠른 가지치기를 초래
• 휴리스틱 평가함수
▫ 최적의 경로 : 초기노드에서 목표노드까지의 최단 경로
▫ 탐색경로상의 각 상태를 평가하기 위한 함수
▫ f(n)을 현재의 상태에 도달하는데 소요된 비용과 앞으로 목표상태까지 도달하는데
필요한 비용의 합으로 정의, 앞으로 필요한 비용은 예측치를 사용
▫ 임의의 노드 N에 대한 휴리스틱 평가함수
 f(n) = g(n) + h*(n)
 g(n) : 초기상태에서 n 상태로 도달하기까지 소요된 비용
 h*(n) : n 상태에서 목표상태로 도달하기까지 소요되는 비용의 예측치
 h(n) : 현상태에서 목표상태까지 드는 실제최소비용
• A 알고리즘
▫ Best-first 탐색 알고리즘이 휴리스틱 평가함수로 f(n)을 사용한 경우
▫ 해 경로가 존재하는 경우 이를 반드시 발견하나 최단 해 경로를 찾는다는 보장은 없
다.
A* 알고리즘
• A 알고리즘에서 모든 N에 대해 h*(N)  h(N)가 성립되도
록 하면 허용성을 가짐  A* 알고리즘
▫ 허용성(admissibility): 최적의 경로를 보장하는 조건
• f(N) = g(N)로 두면(h*(N)=0), 허용성 조건을 만족
▫ 평가함수로 초기노드와의 거리만을 고려  낮은 깊이 노드
를 우선 탐색  BFS
▫ BFS가 최단 경로를 발견한다는 것을 다시 입증
• BFS를 해나가는 데 있어 각 노드에서 목표에 이르는 경로
가 얼마나 짧은 것인가의 추정치를 이용하는 방법
(cf. 8-puzzle에서 상태 n에서의 평가 함수)
f(N) = g(N) + W(N)
여기서 W(N)은 목표상태와 틀린 위치의 타일의 갯수
2
8
3
1
6
4
7
2
8
3
2
1
6
4
1
7
5
7
8
3
2
1
4
1
6
5
7
상태 E
f(E)=5, h(E) =3
2
7
8
3
2
8
3
1
4
7
1
4
6
5
6
5
상태 H
f(H)=6, h(H) =3
8
3
4
6
5
3
2
8
3
8
4
1
6
4
6
5
7
5
상태 F
f(F)=5, h(F) =3
상태 I
f(I)=7, h(I) =4
2
8
3
1
6
4
7
5
g(n)=2
상태 G
f(G)=6, h(G) =4
2
3
2
3
1
8
4
1
8
4
7
6
5
7
6
5
상태 J
f(J)=5, h(J) =2
1
7
2
3
8
4
6
5
g(n)=1
상태 D
f(D)=6, h(D) =5
상태 C
f(C)=4, h(C) =3
2
g(n)=0
5
7
상태 B
f(B)=6, h(B) =5
상태 A
f(A)=4, h(A) =4
g(n)=3
상태 K
f(K)=7, h(K) =4
g(n)=4
상태 L
f(L)=5, h(L) =1
1
상태 M
f(M)=5, h(M) =0
2
8
7
6
3
1
2
3
4
7
8
4
6
5
5
상태 N
f(N)=7, h(N) =2
g(n)=5
OPEN, CLOSED
• 초기상태: A ()안의 값은 각 상태의 평가값
1. OPEN  {A(4)}, CLOSED  {}
2. A 선택: OPEN  {B(6), C(4), D(6)}, CLOSED  {A(4)}
3. C 선택: OPEN  {B(6), D(6), E(5), F(5), G(6)}, CLOSED 
{C(4), A(4)}
4. E 선택: OPEN  {B(6), D(6), F(5), G(6),H(6), I(7)}, CLOSED
 {E(5), C(4), A(4)}
5. F 선택: OPEN  {B(6), D(6), G(6),H(6), I(7),J(5),K(7)},
CLOSED  {F(5), E(5), C(4), A(4)}
6. J 선택: OPEN  {B(6), D(6), G(6),H(6), I(7), K(7),L(5)},
CLOSED  {J(5), F(5), E(5), C(4), A(4)}
7. L 선택: OPEN  {B(6), D(6), G(6),H(6), I(7), K(7),M(5),
N(7)}, CLOSED  {L(5), J(5), F(5), E(5), C(4), A(4)}
8. M 선택: 목표상태 발견, 알고리즘 중지
게임트리 탐색
• 게임을 위한 탐색
▫ 다수(2인)가 상호 배타적인 환경에서 승리하기 위한 경로를
탐색
▫ 앞을 내다봄으로써 현재 상태의 선택을 결정한다
▫ 대부분의 게임에서 완벽한 평가함수의 정의가 불가능  휴
리스틱한 기준에 의한 추정치 만을 제공
• 말패(last-one-loses) 게임
▫ 평가함수
▫
1 {N  n  (4k  1)}  0를만족하는 k가 존재
f 
otherwise
0
그림 2.13 참조
게임트리 탐색
• 최소최대(minimax) 탐색법
▫ 최소화자와 최대화자로 구성되어 있다고 가정하고
탐색해 나가는 전략
▫ 몇 수 앞을 내다보느냐가 탐색의 양에 영향
▫ 최소최대법을 사용하면 탐색의 영역을 축소 가능
 어떤 노드가 그 함수값을 구하거나 확장하지 않아도
판단을 내리는데 지장이 없는 경우에 이 노드를 고려
대상에서 제외
 - pruning(알파-베타 가지치기)
최소최대 탐색 예 (1)
• 평가함수 값을 최대화 시키려는 최대화자 A의 탐
색
A
[c1]
[c2]
[c3]
f=0.8
f=0.3
f=-0.2
최소최대 탐색 예 (2)
• 최소화자 B의 의도를 고려한 A의 선택
A
최소화자(B)
단계
[c1]
[c2]
[c3]
f=0.8
f=0.3
f=-0.2
[c11]
[c12]
[c13]
[c21]
[c22]
[c31]
[c32]
f=0.9
f=0.1
f=-0.6
f=0.1
f=-0.7
f=-0.1
f=-0.3
알파베타 가지치기
• 최대화 노드에서 가능한 최소의 값(알파 )과 최소화의 노
드에서 가능한 최대의 값(베타 )를 사용한 게임 탐색법
• 기본적으로 DFS로 탐색 진행
[c0]
=0.2
[c1]
[c2]
f=0.2
f= -0.1
[c11]
[c12]
[c21]
f=0.2
f=0.7
f= -0.1
[c22]
[c23]
C21의 평가값 -0.1이 C2에 올려지면
나머지 노드들(C22, C23)을
더 이상 탐색할 필요가 없음
알파베타 탐색 문제 (1)
• 다음 법칙을 이용하여 아래의 알파-베타 탐색 트
리를 완성하라
알파베타 탐색 문제 (2)
가지치기가 일어나는 법칙:
1. 어떤 최소화노드의 베타값이 자신보다 상위(선조노드)에 있는 어떤 최대화 노드의 알파값보다 작거나 같을 때, 이 최
소화 노드는 가지치기 된다.
2. 어떤 최대화노드의 알파값이 자신보다 상위(선조노드)에 있는 어떤 최소화 노드의 베타값보다 크거나 같을 때, 이 최
대화 노드는 가지치기 된다.
3. 최상위의 최대화노드의 알파값은 최종적으로 올려진 값(backed-up value)로 주어진다.
최대화 노드
최소화 노드
=0
=0
=0
=-3
0
5 -3
3
3
-3
0
2
-2
3
5
2
5 -5 3 0
1
5
1 -3
0
제약조건만족 문제(Constraint
Satisfaction Problem)
• n개의 변수로 구성된 CSP 정의
▫ 유한하고 이산적인 영역들인 D1, D2, …,Dn으로부
터 값을 취하고 그 값들 간에는 제약조건
pk(xk1,xk2,…xkl)이 존재하는 문제
x2 = 7
▫ 일종의 NP-complete 문제
▫ 8-Queen 문제
 여왕 xi, xj의 위치사이의 제약조건
xi  x j  | i  j || xi  x j |
탐색기법의 활용
• 공장자동화, 로보트의 경로계획
▫ NASA의 GPSS(ground processing scheduling system)
• 비행기 좌석예약 시스템
• 게임
▫ chess - Deep Thought
▫ 바둑 - 아직 수준이 요원 (?)
• 다자가 공동의 공간에서 자신의 이익을 달성하려는
경제적 문제
• 실제 게임의 경우 탐색의 양이 폭증  지식 활용에 대
한 연구가 많이 요구됨
탐색 기법을 활용한 마케팅 모형
자동 갱신 방법에 대한 연구
송용욱 (연세대학교 원주캠퍼스 경영학부)
김현수 (국민대학교 경영학부)
박주영 (숭실대학교 벤처중소기업학과)
Objective
• Marketing Intelligence Solution (MIS) 개발
• 신제품 출시 여부 결정
▫ 신제품 시도구매량
• 신제품 시도구매량 추정
▫ 자료 : 소비자 설문, 광고평점, 취급고 등
▫ 단계




인지율 추정
시도구입의사 보정
시도구매율
시도구매량
로그인
로그인 NG
로그인
로그인 OK
메뉴 설명
• 마케팅 인텔리전스 솔루션 사용법 설명
적용 제품(서비스) 선택
• 제품 카테고리 선택
• 수요과련 자료 입력
Marketing DB
모델 선택
• 세부모델 설명
• 모델공식
• 자료입력 Format Setting 및 Option 지정
• 관련 자료 Link
컨셉테스트
수요예측
STP
모델 Running
• 모델 Running
결과값 도출
• 결과물 View
• 결과물 파일 전환(엑셀포맷)
• 결과물 출력
• 결과물 저장여부/장소
자동학습 알고리즘 선택
마케팅믹스
시뮬레이션
• Tabu Search/ Genetic Algorithm
Survey DB
Case DB
파라메타DB
자동학습 Running
• 자동학습 알고리즘 Running
결과값 도출
• 결과물 View
• 결과물 파일 전환(엑셀포맷)
• 결과물 출력
Model 1: 인지율 추정모형
Lat = a0 + a1 GRPt + a2 DISTt
Lat : 인지율 로그값,
단, Lat = ln [ (1 - At) / (1 - At-1) ]
At : t기 인지율(%),
단, At = 1 - exp(Lat) x (1 - At-1)
GRPt : TV 광고에 대한 Reach * Frequency * 100
DISTt : 해당 브랜드가 유통점에 얼마나 취급되고
있는지를 나타내는 비율
Model 2: 시도구입의사 보정모형
Kit = (hit + lit)/2 * mi
Kit : 구입의사 보정율 (%)
hit = pit * Vit
lit = pit * Uit
Vit = 1 / (1+ exp(-cit*di))
Uit = 1 / (1+ exp(-bit*ei))
pit : 컨셉 제품 i에 대한 소비자의 구입의사
cit : i제품 카테고리에 대한 t기의 컨셉제품에 대해 느끼는
가치
bit : i제품 카테고리에 대한 t기의 컨셉제품 독특함 정도
mi : 할인율 - 장기(0.25), 단기(0.46) (상수)
Model 3: 시도구매율 추정모형
Tit = [ Kit x At ] x DISTt fi
Tit : i제품 카테고리에 대한 t기의 컨셉제품을 처음
구입하려는 소비자비율
Kit : 구입의사 보정율 (%)
At : t기 인지율(%)
DISTt : 해당 브랜드가 유통점에 얼마나 취급되고
있는지를 나타내는 비율
Model 4: 시도구매량 추정모형
TVit = TMt x Tit x Qit x µit
TVit : i제품 카테고리에 대한 t기에 시도구매에
의해 컨셉 제품을 판매할 수 있는 판매량
TMit : 서울지역에서의 t기의 잠재 목표시작의 가구
수
Tit : i제품 카테고리에 대한 t기의 실제 구매확률을
감안한 시도구매율(%)
Qit : i제품 카테고리 t기 시도구매 시 1회당 구입할
브랜드개수
[통합 모형] 시도구매량 추정모형
[Model 1: 인지율 추정모형]
Ln((1 - At) / (1 - At-1)) = a0 + a1 GRPt + a2 DISTt
[Model 2, 3, 4: 시도구매량 추정모형]
TVit = TMt x ([pit x (1 / (1+ exp(-cit*di)) + 1 / (1+
exp(-bit*ei))) / 2 * mi) x At ] x DISTt fi) x Qit x µit
Model Update
• Model 1
▫
▫
▫
▫
종속변수 : Ln((1 - At) / (1 - At-1))
독립변수 : GRPt, DISTt
계수 : a0, a1, a2
계수 Update – Linear
 Regression
• Model 2, 3, 4
▫
▫
▫
▫
▫
종속변수 : TVit
독립변수 : TMt, pit, cit, bit, At, DISTt, Qit
계수 : di, ei, fi, µit
상수 : mi
계수 Update – Non-linear
 탐색 : Simulated Annealing, Tabu Search, Genetic Algorithm, …
▫ 모형 추정
 Artificial Neural Network
Automatic Model Update
로그인
메뉴 설명
• 마케팅 인텔리전스 솔루션 사용법 설명
모델 선택
• 모델 설명 – 모델링(공식) 구성 포맷 제시
적용 제품(서비스) 선택
• 제품 카테고리 선택
자동학습 알고리즘 선택
• Simulated Annealing, Tabu Search
• Genetic Algorithm
자동학습 Running
파라메타DB
• 자동학습 Running
Case DB
Parameter Update 값 출력
• 결과물 View
• 결과물 파일 전환(엑셀포맷)
• 결과물 출력
Simulated Annealing
s ← s0; e ← E(s)
// Initial state, energy.
sbest ← s; ebest ← e
// Initial "best”
solution k ← 0
// Energy evaluation count.
while k < kmax and e > emax // While time left & not good enough:
snew ← neighbour(s)
// Pick some neighbor.
enew ← E(snew)
// Compute its energy.
if enew < ebest then
// Is this a new best?
sbest ← snew; ebest ← enew // Save 'new neighbor' to 'best found'.
if P(e, enew, temp(k/kmax)) > random() then // Should we move to
it?
s ← snew; e ← enew
// Yes, change state.
k←k+1
// One more evaluation done
return sbest
// Return the best solution found.
Neighbor Structure
(+, +, +, +)
(+, +, +, 0)
(+, +, +, -)
(+, +, 0, +)
(+, +, 0, 0)
(+, +, 0, -)
(+, +, -, +)
(+, +, -, 0)
(+, +, -, -)
(+, 0, +, +)
(+, 0, +, 0)
(+, 0, +, -)
(+, 0, 0, +)
(+, 0, 0, 0)
(+, 0, 0, -)
(+, 0, -, +)
(+, 0, -, 0)
(+, 0, -, -)
(+, -, +, +)
(+, -, +, 0)
(+, -, +, -)
(+, -, 0, +)
(+, -, 0, 0)
(+, -, 0, -)
(+, -, -, +)
(+, -, -, 0)
(+, -, -, -)
(0, +, +, +)
(0, +, +, 0)
(0, +, +, -)
(0, +, 0, +)
(0, +, 0, 0)
(0, +, 0, -)
(0, +, -, +)
(0, +, -, 0)
(0, +, -, -)
(0, 0, +, +)
(0, 0, +, 0)
(0, 0, +, -)
(0, 0, 0, +)
(0, 0, 0, 0)
(0, 0, 0, -)
(0, 0, -, +)
(0, 0, -, 0)
(0, 0, -, -)
(0, -, +, +)
(0, -, +, 0)
(0, -, +, -)
(0, -, 0, +)
(0, -, 0, 0)
(0, -, 0, -)
(0, -, -, +)
(0, -, -, 0)
(0, -, -, -)
(-, +, +, +)
(-, +, +, 0)
(-, +, +, -)
(-, +, 0, +)
(-, +, 0, 0)
(-, +, 0, -)
(-, +, -, +)
(-, +, -, 0)
(-, +, -, -)
(-, 0, +, +)
(-, 0, +, 0)
(-, 0, +, -)
(-, 0, 0, +)
(-, 0, 0, 0)
(-, 0, 0, -)
(-, 0, -, +)
(-, 0, -, 0)
(-, 0, -, -)
(-, -, +, +)
(-, -, +, 0)
(-, -, +, -)
(-, -, 0, +)
(-, -, 0, 0)
(-, -, 0, -)
(-, -, -, +)
(-, -, -, 0)
(-, -, -, -)
• Neighbor of di, ei, fi, µit
• E.g.
▫ Current
 1.0, 1.0, 1.0, 1.0
▫ Precision
 0.1
▫ Neighbor
 +, +, 0,  1.1, 1.1, 1.0, 0.9
Evaluation
• 관측치 : Tvit
• 추정치 : Tvit' = TMt x ([pit x (1 / (1+ exp(-cit*di))
+ 1 / (1+ exp(-bit*ei))) / 2 * mi) x At ] x DISTt fi) x
Qit x µit
• 오류율
▫ ((Tvit - Tvit')2 / n)1/2
▫ n : number of data
Tabu Search
Notation
o S,
the current solution,
o S*, the best-known solution,
o f*, value of S*,
o N(S),
the neighborhood of S,
o Ñ(S),
the “admissible” subset of N(S) (i.e., non-tabu or allowed by aspiration).
Initialization
Choose (construct) an initial solution S0.
Set S := S0 , f* := f(S0), S* := S0 , T := Ø.
Search
While termination criterion not satisfied do
o
Select S in argmin [f(S')] for S'ε Ñ(S) ;
o
If f(S) < f*, then set f* := f(S), S* := S;
o
Record tabu for the current move in T (delete oldest entry if necessary);
Endwhile.
Genetic Algorithm
• Choose the initial population of individuals
• Evaluate the fitness of each individual in that
population
• Repeat on this generation until termination:
(time limit, sufficient fitness achieved, etc.)
▫ Select the best-fit individuals for reproduction
▫ Breed new individuals through crossover and
mutation operations to give birth to offspring
▫ Evaluate the individual fitness of new individuals
▫ Replace least-fit population with new individuals
Genetic Algorithm for MIS
• Size of population = 100
• Fitness = 오류율 = ((Tvit - Tvit')2 / n)1/2
• Crossover
▫
▫
▫
▫
di' = (diF + diM) / 2
ei' = (eiF + eiM) / 2
fi' = (fiF + fiM) / 2
µit' = (µitF + µitM) / 2
• Mutation
▫ Normal(0, precision)
Experiment
• 20개의 실험용 자료 세트 생성
• 자료 세트 당 100개의 자료 생성
▫ 계수, 독립변수 : 임의 생성
▫ 상수 : mi = 0.46
▫ 종속변수 : 계산
 TVit = TMt x ([pit x (1 / (1+ exp(-cit*di)) + 1 / (1+
exp(-bit*ei))) / 2 * mi) x At ] x DISTt fi) x Qit x µit
• 100개 중 학습용 50개, 검증용 50개 사용
• 오류율
▫ ((Tvit - Tvit')2 / n)1/2
Experiment : Simulated Annealing
실험
관측치
No.
di
ei
1
0.9365
2
0.9199
3
0.5142
4
0.3713
5
0.7137
6
0.7359
7
0.4120
8
0.0885
9
0.4185
10
0.8392
11
0.8382
12
0.6600
13
0.5018
14
0.4362
15
0.2453
16
0.1878
17
0.9065
18
0.2501
19
0.1664
20
0.8440
평균
추정치
fi
0.4382
0.8765
0.5995
0.2902
0.3485
0.7618
0.2482
0.5231
0.8520
0.6276
0.5747
0.7270
0.1308
0.7303
0.4088
0.6660
0.2633
0.4298
0.7223
0.4600
µit
0.0436
0.7002
0.0900
0.8729
0.1205
0.1242
0.3735
0.8920
0.4351
0.5864
0.6915
0.2438
0.6828
0.9359
0.2786
0.7074
0.8208
0.4895
0.4325
0.8055
di
0.7803
0.9718
0.6093
0.1717
0.7633
0.1640
0.3031
0.5658
0.0868
0.7889
0.5206
0.1101
0.9445
0.6039
0.7923
0.5474
0.2182
0.8934
0.3814
0.1501
오류
ei
0.9365
0.9199
0.5142
0.3713
0.7137
0.7359
0.4120
0.0885
0.4185
0.2598
0.8382
0.6600
0.5592
0.4362
0.2453
0.1878
0.9065
0.2501
0.1664
0.2469
fi
0.4382
0.8765
0.5995
0.2902
0.3485
0.7618
0.2482
0.5231
0.8520
0.5387
0.5747
0.7270
1.0000
0.7303
0.4088
0.6660
0.2633
0.4298
0.7223
0.6389
µit
0.0436
0.7002
0.0900
0.8729
0.1205
0.1242
0.3735
0.8920
0.4351
0.5915
0.6915
0.2438
0.6870
0.9359
0.2786
0.7074
0.8208
0.4895
0.4325
0.8077
sqrt(ESS/n)
0.7803
0.9718
0.6093
0.1717
0.7633
0.1640
0.3031
0.5658
0.0868
0.8919
0.5206
0.1101
0.7471
0.6039
0.7923
0.5474
0.2182
0.8934
0.3814
0.1633
0.00
0.02
0.00
1.10
0.02
0.00
0.02
0.04
0.04
587,559.69
0.08
3.00
5,914,427.69
0.07
0.01
0.03
1.22
0.01
0.18
649,919.28
357,595.63
Experiment : Genetic Algorithm
실험
관측치
No.
di
ei
1
0.9365
2
0.9199
3
0.5142
4
0.3713
5
0.7137
6
0.7359
7
0.4120
8
0.0885
9
0.4185
10
0.8392
11
0.8382
12
0.6600
13
0.5018
14
0.4362
15
0.2453
16
0.1878
17
0.9065
18
0.2501
19
0.1664
20
0.8440
평균
추정치
fi
0.4382
0.8765
0.5995
0.2902
0.3485
0.7618
0.2482
0.5231
0.8520
0.6276
0.5747
0.7270
0.1308
0.7303
0.4088
0.6660
0.2633
0.4298
0.7223
0.4600
µit
0.0436
0.7002
0.0900
0.8729
0.1205
0.1242
0.3735
0.8920
0.4351
0.5864
0.6915
0.2438
0.6828
0.9359
0.2786
0.7074
0.8208
0.4895
0.4325
0.8055
di
0.7803
0.9718
0.6093
0.1717
0.7633
0.1640
0.3031
0.5658
0.0868
0.7889
0.5206
0.1101
0.9445
0.6039
0.7923
0.5474
0.2182
0.8934
0.3814
0.1501
오류
ei
0.9365
0.8922
0.5142
0.3713
0.7137
0.3021
0.4120
0.0885
0.4701
0.2598
0.8382
0.6458
0.5018
0.4362
0.2453
0.1878
0.9384
0.2501
0.9386
0.2470
fi
0.4382
0.8949
0.5995
0.2902
0.3485
0.9638
0.2482
0.5231
0.7436
0.5387
0.5747
0.6955
0.1308
0.7303
0.4088
0.6660
0.9306
0.4298
0.6772
0.6389
µit
0.0436
0.6999
0.0900
0.8729
0.1205
0.1225
0.3735
0.8920
0.4402
0.5915
0.6915
0.2442
0.6828
0.9359
0.2786
0.7074
0.8189
0.4895
0.4235
0.8077
sqrt(ESS/n)
0.7803
0.9740
0.6093
0.1717
0.7633
0.1777
0.3031
0.5658
0.0853
0.8919
0.5206
0.1106
0.9445
0.6039
0.7923
0.5474
0.1928
0.8934
0.3290
0.1633
0.11
92,054.96
0.21
1.38
0.24
24,725.34
0.39
5.25
17,522.20
587,559.69
2.29
4,932.28
3.22
2.94
0.76
2.14
849,636.53
0.88
287,461.00
649,919.28
125,691.56
Summary
• Marketing Intelligence Solution 개발
• 신제품 출시 결정을 위한 시도구매량 추정




Model 1: 인지율 추정 모형
Model 2: 시도구입의사 보정 모형
Model 3: 시도구매율 모형
Model 4: 시도구매량 모형
• Model 2, 3, 4 통합모형
▫ 계수 Update
▫ Non-linear
• 탐색 기법에 의한 계수 Update
▫ Simulated Annealing
▫ Tabu Search
▫ Genetic Algorithm
• 실험 및 알고리즘 수정 중