Akinator.com 및 Naive Bayes 분류기


12

맥락 : 저는 유니 코스 통계에서 (반반 잊혀진) 경험이있는 프로그래머입니다. 최근에 나는 http://akinator.com을 우연히 발견 하고 실패하기 위해 시간을 보냈습니다. 누가 아니 었어? :)

나는 그것이 작동하는 방법을 찾기로 결정했습니다. 인터넷 검색 및 관련 블로그 게시물을 읽은 후 결과 혼합에 내 제한된 지식을 추가 한 후 다음 모델을 생각해 냈습니다 (잘못된 표기법을 사용한다고 확신합니다. 저를 죽이지 마십시오).

과목 (S)과 질문 (Q)이 있습니다. 예측 자의 목표는 지금까지 수집 된 질문과 답변을 고려하여 사용자가 생각하고있는 주제 일 가능성이 가장 큰 주제 S를 선택하는 것입니다.

게임 G를 과 같은 일련의 질문과 답변으로 지정하십시오 .{q1,a1},{q2,a2}...{qn,an}

그런 다음 예측 변수는 찾습니다 .P(S|G)=P(G|S)P(S)P(G)

피험자에 대한 선행 ( )은 피험자가 추측 한 횟수를 총 게임 수로 나눈 것일 수 있습니다.P(S)

모든 답변이 독립적이라는 가정을해서 게임 G가 주어지면 주제 S의 가능성을 계산할 수 있습니다.

P(G|S)=i=1..nP({qi,ai}|S)

사용 된 주제에 대해 어떤 질문과 답변을 는지 추적 하면 계산할 수 있습니다.P({qi,ai}|S)

P(q,a|S)=answer a was given to question q in the game when S was the subjectnumber of times q was asked in the games involving S

이제 는 주제에 대한 확률 분포를 정의하고 다음 질문을 선택해야 할 때이 분포의 엔트로피에서 예상되는 변화가 최대 인 질문을 선택해야합니다.P(S|G)

argmaxj(H[P(S|G)]a=yes,no,maybe...H[P(S|G{qj,a})]

나는 이것을 구현하려고 노력했지만 작동합니다. 그러나, 분명히, 환자의 수는 상승으로 인해 다시 계산해야 할 필요성 성능이 저하 각 이동 후 업데이트 분포 계산 위한을 질문 선택.P(S|G)P(S|G{qj,a})

나는 내가 아는 한도에 의해 제약을받는 잘못된 모델을 선택한 것 같다. 또는 수학에 오류가있을 수 있습니다. 제게 계몽하십시오 : 수백만의 주제와 수천 개의 질문에 대처할 수 있도록 예측자를 바꾸거나 어떻게 예측해야합니까?


4
나는 그것이 Naive Bayes라고 의심합니다.

1
그러한 의사 결정 트리가 업데이트하기에 너무 다루기 지 않습니까? 또한 실수로-잘못 / 정직한 실수의 답을 계정에 쉬운 방법을 볼 여전히 올바른 결정 트리 결국 그것을 얻을
숙달

5
이제 20q.net 에있는 20 살짜리 20 개 질문 추측의 환생처럼 보입니다 . 작동 방식은 인기있는 설명이다 mentalfloss.com/blogs/archives/13725은
야로 슬라브 Bulatov

5
실례 합니다만, "인공 지능"과 "신경망"을 맥락없이 사용하는 것이 설명이라고 생각합니다. 그리고 이런 종류의 일에 신경망을 어떻게 사용할 수 있는지 알 수 없습니다. 예를 들어 출력 기능은 무엇입니까?
ADEpt

안녕하세요 @ADEpt, 질문을한지 오래되었지만, 다시 구현 한 소스 코드를 공유 할 수 있습니까?
prikha

답변:


10

이 게임은 http://20q.net의 20 가지 질문과 유사하며 , 제작자 가보고 하는 신경망을 기반으로합니다. 개념 설명 벡터 및 20 질문 게임에 설명 된 신경망과 비슷한 네트워크를 구성하는 한 가지 방법이 있습니다.

당신은

  1. "최종"질문으로 표시된 일부 질문과 함께 고정 된 수의 질문.
  2. 질문 당 하나의 입력 단위로, 답변을 0/1나타냅니다 no/yes. 초기 설정0.5
  3. 질문 당 하나의 출력 단위, 시그 모이 드가 0.1 범위로 뭉개 짐
  4. 모든 입력 장치를 모든 출력 장치에 연결하는 숨겨진 계층.

답변 된 질문에 대한 입력 단위는 0 또는 1로 설정되며, 신경망은 일련의 기존 답변이 주어진 경우 "예"답변이있는 질문에 대해 출력 단위 출력 값을 1에 가깝게 만들도록 훈련되었다고 가정합니다.

각 단계 NN에서 가장 확실하지 않은 질문을 선택합니다 . 즉, 해당 출력 장치가에 가깝고 0.5질문을 한 다음 해당 입력 장치를 답변으로 설정합니다. 마지막 단계에서 가장 가까운 값을 가진 "최종 질문"목록에서 출력 단위를 선택합니다 1.

20 개의 질문으로 구성된 각 게임은 NN역전 파로 가중치 를 업데이트하는 데 사용할 수있는 20 개의 데이터 포인트를 제공합니다 . 즉, 가중치를 업데이트하여 현재 신경망의 출력이 이전에 요청 된 모든 질문에 대한 실제 답변과 일치하도록합니다.


7

나는 그것이 실제로 분류 문제라고 생각하지 않습니다. 20 개의 질문은 종종 압축 문제 로 특징 지워집니다 . 이것은 실제로 엔트로피에 관해 이야기하는 질문의 마지막 부분과 더 잘 일치합니다.

의 5.7 장 ( Google 도서 ) 참조

AT, TM 및 Joy, AT (2006) 정보 이론의 요소

그리고 허프만 코딩 . arXiv에서 찾은이 백서도 흥미로울 수 있습니다.

길, JT 및 우, W. (2010) "20 개의 질문 게임이 항상 끝납니다" http://arxiv.org/abs/1002.4907

간단하게하기 위해 예 / 아니오로 가정합니다 (akinator.com에서는 허용, 모름) 가능한 모든 주제 (akinator.com이 아는 것)를 예 / 아니오로 구성된 일련의 질문과 답변 (기본적으로 이진 벡터)으로 고유하게 식별 할 수 있다고 가정합니다.

질문과 답변은 주제 공간의 재귀 분할을 정의합니다. 이 분할은 트리 구조에도 해당합니다. 나무의 내부 정점은 질문에 해당하고 나뭇잎은 주제에 해당합니다. 잎의 깊이는 정확하게 주제를 식별하는 데 필요한 질문 수입니다. 가능한 모든 질문을하여 알려진 모든 주제를 (사소하게) 식별 할 수 있습니다. 잠재적으로 수백 개의 질문이 있기 때문에 흥미롭지 않습니다.

허프만 코딩과의 연관성은 평균 확률이 (거의) 최소가되도록 트리를 구성하는 최적의 방법 (특정 확률 모델에서)을 제공한다는 것입니다. 다시 말해, 질문 순서가 평균적으로 작도록 질문 순서를 정렬하는 방법 (트리 구성)을 알려줍니다. 욕심 많은 접근 방식을 사용합니다.

물론 이것보다 akinator.com에 더 많은 것이 있지만 기본 아이디어는 나무의 관점에서 문제를 생각하고 잎의 평균 깊이를 최소화하려고한다는 것입니다.


좋은 출발이지만 문제가 더 있다고 생각합니다. 예를 들면 : 그들은 어떻게 질문에 대한 답을 얻습니까? 아마도 그들은 이전 플레이어가 제공 한 답변 (강화 학습 문제)을 사용합니다.
Simon Byrne

얼핏 보면 20 개의 질문과 Huffman 코딩 사이의 유추를 그리는 능력은 "범위 질문"을하는 능력에 달려 있습니다. 즉, "캐릭터가 우주에 가본 적이 있습니까?" 우리는 "담요"와 같은 질문을하고있다. "그가 우주에 가본 적이 있습니까, 아니면 남성이거나, 대머리이거나, 영화에 있었거나, (100500 기타 옵션)?" 내가 맞아? 그렇다면, "하나씩 물어
보기

또한, 20 개 질문을 모델로 허프만 코드를 사용하는 기사의 대부분은, 그 질문자는 아래 에센스 종기에 자신의 질문을 만들어 무료입니다 의미 "합니까 비트 개체에 대한 코드 워드에 "? 그러나 필자의 경우 (또는 오히려 akinator.com의 경우) 일련의 질문이 미리 정의되어 있으며 허프만 코드 워드와 관련이 없습니다. 지금은 질문에서 허프만 코드로 전환하는 방법을 볼 수 없습니다. 아마도 당신은 정교한 수 있습니까? 0i0
ADEpt

@vqv : Re : "실제로 분류 문제가 아니라고 생각합니다. 20 개의 질문은 종종 압축 문제로 특징 지어집니다." 통계적 추론과 정보 압축이 직접 관련되거나 같은 문제가 아니십니까?
Yang

@Yang Jorma Rissannen의 주장을 언급하고 있습니까? 통계적 추론과 정보 압축은 모두 확률 론적 모델을 사용하여 불확실성을 설명하지만 그 관점과 그 분야의 연구원들이 일반적으로 매우 다른 경우의 관점. 위에서 말하는 것은 20 개의 질문이 분류 문제가 아니라 압축 (구체적으로 소스 코딩) 문제로보다 자연스럽게 공식화 될 수 있다는 것입니다. … 아래 계속
vqv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.