본문으로 건너뛰기

규칙 추출: 가중치에서 규칙 읽어내기

📍 현재 위치: I부 · 증명, 충실성, 신뢰 — 3장. 충실성은 설명을 그것을 만든 모델에 대비해 채점했습니다; 이 장은 한 걸음 더 나아가 설명을 명시적 규칙 집합으로 생산하고, 그 규칙 집합과 모델이 얼마나 일치하는지를 측정합니다.

앞 장은 우리에게 하나의 규율을 남겼습니다: 설명은 모델의 실제 메커니즘과 측정된 일치만큼의 가치만을 가진다는 것입니다. 그 규율은 하나의 뻔한 상승을 요구합니다. 일치가 통화라면, 다른 누군가가 제안한 설명을 채점하는 일을 멈추고, 그 대신 일치 점수를 구성 자체에 내장한 채로 최선의 기호적 대리물을 직접 구성하십시오. 이것이 바로 규칙 추출(rule extraction)입니다: 훈련된 네트워크가 주어지면, 그 네트워크를 흉내 내는 명시적 기호 규칙의 집합(결정 트리, 불(Boolean) 논리식, 논리적 연쇄 규칙의 목록)을 산출하고, 그 흉내가 얼마나 잘 유지되는지를 보고합니다. 이것이 성공하면 세 가지 상이 동시에 주어집니다: 규칙을 읽음으로써 모델을 감사(audit)할 수 있고, 모델이 배운 것을 네트워크 없이도 실행되는 기호 체계로 이전(transfer)할 수 있으며, 그 규칙들을 독립적인 진리 기준에 대비해 검증(verify)할 수 있는데, 이는 어떤 그래디언트나 어텐션 맵도 결코 받아들일 수 없는 것입니다. 이것이 실패하면, 그 실패는 어깨를 으쓱하는 것이 아니라 하나의 숫자입니다. 이 장은 실행 예제인 학술 세계 위에서 고전적인 두 가지 추출 방식을 모두 구축하고, 이 사업을 정직하게 유지해 주는 평가 삼중 지표를 정의하며, 다음 부(Part)를 동기 부여하는 실험으로 마무리합니다: 자신의 모델에는 완벽하게 충실하지만 세계에 대해서는 틀린 추출입니다.

쉽게 말하면

말은 못 하지만 뛰어난 한 장인이 입사 지원서를 합격과 불합격 더미로 분류하고 있고, 여러분은 그의 판단 방침을 글로 옮기고 싶다고 상상해 보세요. 한 가지 방법: 그에게 수천 장의 가상 지원서를 건네고, 모든 판정을 기록한 뒤, 그의 분류를 재현하는 가장 짧은 규칙집을 써내는 것입니다; 여러분은 그의 머릿속을 결코 들여다보지 않고, 오직 그를 면담할 뿐입니다. 다른 방법: 그가 일하는 동안 눈길을 관찰하여, 그가 서식의 어느 줄을 실제로 읽는지를 기록하고, 그 습관을 규칙으로 옮겨 적는 것입니다. 어느 쪽이든 결국 규칙집 하나와 결정적인 숫자 하나로 끝납니다: 이 규칙집은 몇 장의 지원서에서 그 사람과 일치하는가? 그리고 마지막에는 함정이 하나 기다리고 있습니다: 만약 그 장인이 몰래 우편번호로 분류하고 있다면, 완벽한 규칙집은 "우편번호로 분류하라"고, 글로, 충실하게 말할 것입니다. 규칙집은 그가 무엇을 하는지 말해 줍니다. 그것이 옳은 일인지는 말해 줄 수 없습니다.

이 장에서 다루는 내용

  • 채점에서 생산으로: 추출이 어떻게 충실성을 구성적으로 만드는 것인지, 그리고 1990년대 초부터 이 분야가 그것을 원하게 만든 세 가지 보상(감사, 이전, 검증).
  • 고전적 분류 체계: 네트워크를 블랙박스로 질의하는 교육적 방법, 가중치에서 구조를 읽어내는 분해적 방법, 그리고 그 중간의 절충적 방법; 각각이 무엇을 가정하는지, 그리고 이 셋 모두에 대해 한 번에 정의되는 충실도 지표.
  • 정확히 수행된 교육적 추출: 시드가 고정된 다층 퍼셉트론을 숨겨진 불 논리식으로 훈련시키고, 열여섯 개 입력 전체에 대한 멤버십 질의로 심문한 뒤, 결정 트리로 증류하고, 주 함의항으로 최소화하여, 정확히 복원해 내는 과정이며, 모든 단계가 커밋된 코드에서 assert로 지켜집니다.
  • 실제로 작동하는 기계 장치에 대한 분해적 추출: 4권의 Neural-LP 헤드를 다시 임포트하여 비트 단위로 재훈련시키고, 그 주의를 신뢰도가 붙은 연쇄 규칙들로 풀어헤치며, 신뢰도 컷오프를 관대한 값에서 치명적인 값까지 훑습니다.
  • 평가 삼중 지표: 충실도(규칙 집합이 모델과 일치하는가?), 건전성(그 답이 기호적 폐쇄에서 성립하는가?), 완전성(폐쇄의 답을 전부 복원하는가?), 하나의 커밋된 표가 명확히 갈라내는 세 가지 서로 다른 질문.
  • 틀림의 실험: 편향된 데이터로 훈련된 네트워크를 충실하게 추출하여 완벽한 충실도로 가짜 규칙을 보고하게 만드는 실험; 추출이 인증서가 아니라 현미경이라는 것의 정확한 의미.

채점에서 생산으로

충실성 장은 설명을 주어진 것으로 다루고 그것이 모델을 얼마나 잘 추적하는지를 물었습니다. 추출은 그 작업 흐름을 뒤집습니다: 설명이 산출물이 되고, 모델을 추적하는 것이 목표가 됩니다. 이는 오래된 야심입니다. 1990년대 중반 이 분야를 정리한 조사 논문은 지금도 유효한 동기들을 정리해 두었습니다: 추출된 규칙은 훈련된 네트워크를 승인해야 하는 사람들이 검사할 수 있게 만들고, 네트워크를 실행할 수 없는 시스템으로도 이식할 수 있게 만들며, 네트워크가 결코 본 적 없는 도메인 지식에 대비해 점검할 수 있게 만듭니다 [1]. 같은 시대는 완전한 왕복 여정도 만들었습니다: 이미 알고 있는 것을 네트워크로 부호화하고(삽입, insertion), 데이터로 훈련시키며(정제, refinement), 개선된 이론을 다시 읽어냅니다(추출, extraction). 그럼으로써 네트워크는 오라클이 아니라 이론 수정자(theory reviser)가 됩니다; KBANN(Knowledge-Based Artificial Neural Networks)이 그 순환을 구체화했으며, 이 장 뒷부분에서 다시 등장합니다. 앞 장에서 바뀌지 않은 것이 하나 있습니다: 만들어 낸 규칙 집합은 명시된 입력에 대해 명시된 지표로 모델과의 일치가 측정되기 전까지는 아무런 가치도 얻지 못합니다. 그 측정 없는 추출은 그저 활자체가 더 나은 두 번째 모델일 뿐입니다.

분류 체계, 그리고 한 번에 정의되는 충실도

고전적 분류 체계는 추출 알고리즘을 그것이 볼 수 있도록 허용된 것에 따라 나눕니다 [1]. 교육적(pedagogical) 방법은 네트워크를 닫힌 블랙박스로 다룹니다: 입력을 던지고 출력을 관찰할 수 있을 뿐 그 이상은 할 수 없으며, 마치 교사가 오직 학생의 답안만으로 학생의 오개념을 파악하듯, 그 입출력 행동에 기호적 모사물을 맞춥니다. 분해적(decompositional) 방법은 상자를 엽니다: 개별 가중치, 유닛, 혹은 어텐션 분포를 검사하여 각 내부 구조를 하나의 규칙으로 번역합니다. 절충적(eclectic) 방법은 둘을 섞습니다. 그 가정들은 뚜렷하게 다릅니다. 교육적 방법은 오직 질의 접근만을 가정하므로 어떤 모델에도 적용될 수 있지만, 보통 천문학적으로 큰 입력 공간에 대한 질의 비용을 치릅니다. 분해적 방법은 아키텍처가 읽어낼 가치가 있는 규칙 모양의 구조(논리 게이트를 근사하는 유닛, 관계 선택을 근사하는 어텐션 벡터)를 유지하고 있다고 가정합니다; 그 가정이 성립하면 저렴하고 정확하지만, 성립하지 않으면 그저 읽어낼 것이 아무것도 없습니다.

방식보는 것가정하는 것치르는 비용companion 실험
교육적입력과 출력만질의 접근질의 예산이 입력 공간과 함께 커짐숨겨진 논리식 네트워크, 16개 멤버십 질의 전부
분해적가중치와 활성값규칙 모양의 내부 구조구조가 없으면 읽어낼 것이 없음4권의 Neural-LP 주의, 풀어헤침
절충적둘 다각각 조금씩각각 조금씩(구축하지 않음; 여기서는 두 극단으로 충분함)

하나의 지표가 이 셋 모두에 쓰이며, 그 조사 논문은 이를 이 분야의 핵심 기준으로 만들었습니다: 충실도(fidelity), 즉 대리물과 모델 사이의 일치율입니다 [1]. 이를 한 번에, 완전한 형태로 적어 봅시다. ff를 훈련된 모델, RR을 추출된 규칙 집합, QQ를 입력 xx에 대한 분포(어떤 입력을 얼마의 확률로 물어볼지를 정하는 규칙)라 합시다. 그러면

fid(R,f;Q)  =  PrxQ[R(x)=f(x)],\mathrm{fid}(R, f; Q) \;=\; \Pr_{x \sim Q}\big[\, R(x) = f(x) \,\big],

이는 다음과 같이 읽습니다: QQ에 따라 입력 xx를 뽑아, 규칙 집합과 모델 양쪽에 물어보고, 둘이 동일하게 답할 확률을 보고합니다(PrxQ\Pr_{x \sim Q}는 "xxQQ에서 표본추출될 때의 확률"로 풀어 읽습니다). 분포 QQ는 사소한 기술적 문제가 아닙니다; 그것은 이 정의의 세 번째 인자입니다. 충실도는 언제나 어떤 입력에 대한 충실도입니다: 규칙 집합은 훈련 분포에서는 모델과 완벽히 일치하면서도 그 바깥에서는 크게 갈라질 수 있으며, QQ가 명시되기 전까지 그 숫자는 아무 의미도 없습니다. 우리의 실험들은 QQ를 명시적으로, 그리고 의도적으로 전면적으로 만듭니다: 교육적 실험은 가능한 열여섯 개 입력 전부에 대한 일치를 측정하고(전체 정의역에 대한 균등 QQ, 표본추출 간극 없음), 분해적 실험은 훈련 질의들의 모아진 질의-답 판정에 대한 일치를 측정하는데, 이는 삼중 지표 절에서 정밀하게 다듬어지는 형태입니다.

세 패널로 이 장을 요약한 히어로 다이어그램입니다. 교육적이라는 제목이 붙은 왼쪽 패널은 물음표가 그려진 밀봉된 블랙박스로 그려진 작은 다층 퍼셉트론을 보여주며, 이는 4비트 입력 열여섯 개 전부를 멤버십 질의로 받아 예 또는 아니오 답을 내놓습니다; 그 답들은 점점 자라나는 결정 트리로 흘러 들어가고, 트리의 양성 경로들이 읽혀 나와 불 논리식 (f1 그리고 f2) 또는 (f3 그리고 f4 아님)으로 최소화되며, 정확함, 16개 중 16개라는 주석이 붙습니다. 분해적이라는 제목이 붙은 가운데 패널은 열한 개 연산자에 대한 두 개의 소프트맥스 주의 막대를 드러내는 열린 상자로 그려진 4권의 Neural-LP 헤드를 보여줍니다; 주의 곱을 통과하는 모든 경로는 신뢰도가 붙은 하나의 연쇄 규칙이 되며, 임계값이라는 이름표가 붙은 수직 슬라이더가 0.999에서 하나의 막대가 지배하는 111개 규칙 신뢰도의 막대그래프를 가로질러 훑는데, 그 막대에는 advises와 advises의 합성이라는 이름표가 붙어 있습니다. 삼중 지표라는 제목이 붙은 오른쪽 패널은 추출된 하나의 규칙 집합에서 세 개의 서로 다른 심판으로 향하는 세 개의 화살표를 보여줍니다: 소프트 모델로 향하며 충실도라는 이름표가 붙은 화살표, 1권의 전방 연쇄 폐쇄로 향하며 건전성이라는 이름표가 붙은 화살표, 그리고 폐쇄에서 규칙 집합으로 되돌아오며 완전성이라는 이름표가 붙은 화살표입니다; 아래쪽에는 작은 경고 띠가 편향된 실험을 보여주는데, 배지와 일치하는 학자들만으로 훈련된 네트워크의 충실한 추출이 단순히 f4, 즉 배지만을 읽어내며, 충실도는 16개 중 16개이지만 진실성은 16개 중 8개입니다. 상자로 들어가는 두 갈래 길과 출구의 세 심판: 교육적 추출은 모델을 면담하고, 분해적 추출은 그 가중치를 읽으며, 충실도/건전성/완전성 삼중 지표는 복원된 규칙이 실제로 어떤 가치가 있는지를 결정합니다. 저자가 AI의 도움을 받아 직접 제작한 원본 도해.

정확히 수행된 교육적 추출

examples/frontier/rule_extract.py의 교육적 실험은 고전적 파이프라인을 끝까지 실행하며, 어떤 것도 표본추출되거나 근사되지 않습니다. 이 세계는 44개의 불 특징을 가지므로, 입력은 튜플 x=(f1,f2,f3,f4)x = (f_1, f_2, f_3, f_4)이고 각 fj{0,1}f_j \in \{0, 1\}입니다(\in은 "~중 하나"로 읽습니다: 각 특징은 00 아니면 11이며, 색인 jj는 네 특징에 걸쳐 있습니다). 입력 공간은 정확히 24=162^4 = 16개의 원소를 가집니다. 특징들은 학술 세계의 해석을 그대로 담고 있으며, 소스에 고정되어 있습니다(rule_extract.py 178–190행): f1f_1 = 학생을 지도함, f2f_2 = 논문을 저술함, f3f_3 = 대학에 소속됨, f4f_4 = 직원 배지를 소지함. 네트워크가 배워야 하는 레이블은 숨겨진 논리합 표준형(disjunctive normal form, DNF) 논리식이며, 이는 (아마도 부정된) 특징들의 논리곱(AND)들에 대한 논리합(OR)입니다:

y  =  (f1f2)(f3¬f4),y \;=\; (f_1 \land f_2) \,\lor\, (f_3 \land \lnot f_4),

여기서 \land는 논리곱(AND), \lor는 논리합(OR), ¬\lnot은 부정(NOT)입니다. 코드에서 논리곱 항은 항목이 11(그 특징이 성립해야 함), 00(성립하지 않아야 함), 또는 None(검사하지 않음)인 함의항(implicant) 튜플이며, 숨겨진 논리식은 상수 HIDDEN_DNF입니다(rule_extract.py 193행). 모델은 4→6→1 다층 퍼셉트론(multilayer perceptron, MLP)입니다: 네 개의 입력, 여섯 개의 시그모이드 은닉 유닛, 하나의 시그모이드 출력이며, 모든 그래디언트를 손으로 적어 낸 완전-배치 그래디언트 하강법으로 평균 교차 엔트로피에 대해 훈련됩니다. 이는 정확히 1권의 기계 장치와 같습니다(train_mlp, rule_extract.py 219–256행). LL을 평균 교차 엔트로피 손실, z2z_2를 출력 유닛의 사전 활성값, pp를 예측 확률, yy를 레이블, nn을 훈련 입력의 개수(여기서는 1616개 전부), σ\sigma를 시그모이드, L/z2\partial L/\partial z_2를 그 사전 활성값에 대한 손실의 편미분이라 쓰면, 출력층은 237–242행에서 시그모이드-플러스-교차 엔트로피 소거 L/z2=(py)/n\partial L/\partial z_2 = (p - y)/n을 쓰고, 은닉층은 243–248행에서 시그모이드의 도함수 σ=σ(1σ)\sigma' = \sigma(1 - \sigma)를 통해 연쇄됩니다. 시드 33으로 고정되어 학습률 1.01.0으로 30003000번의 에폭 동안 실행되면, 그 커밋된 손실은 스냅숏 에폭 1,10,100,1000,30001, 10, 100, 1000, 3000에 걸쳐 0.77960.67900.29610.01530.00310.7796 \to 0.6790 \to 0.2961 \to 0.0153 \to 0.0031로 떨어지고, 열여섯 개 레이블 전부에 들어맞습니다. 이 시점부터 가중치는 봉인됩니다. 추출은 그것을 들여다볼 수 없습니다; 오직 물어볼 수만 있습니다.

멤버십 질의와 트리

멤버십 질의(membership query)는 하나의 입력을 던지고 모델의 하드 답을 기록하며, 여기서는 출력 시그모이드가 1/21/2을 넘을 때 정확히 y^(x)=1\hat y(x) = 1입니다(mlp_predict, rule_extract.py 258–261행). 정의역이 열여섯 개의 원소를 가지므로, 이 실험은 그 전부를 질의하며, 따라서 오라클의 행동은 완전히 알려집니다; 이는 아래에서 정직하게 표시해 둘 장난감의 사치입니다. 열여섯 개의 답에 대해 추출은 평범한 ID3(Iterative Dichotomiser 3, Quinlan의 고전적 결정 트리 학습기)로 결정 트리를 키워 나갑니다 [2]: 각 노드에서 가장 큰 정보 이득(information gain)을 주는 특징으로 분할합니다. 두 양을 풀어 봅시다. 양성 비율 pp를 가진 레이블 집합의 이진 섀넌 엔트로피(binary Shannon entropy)는

H(p)  =  plog2p    (1p)log2(1p),H(p) \;=\; -\,p \log_2 p \;-\; (1 - p)\log_2(1 - p),

레이블 하나당 평균 놀라움의 비트 수이며, 집합이 순수할 때(p=0p = 0 또는 p=1p = 1) 0이고 p=1/2p = 1/2에서 최대입니다(entropy, rule_extract.py 264–271행). 어떤 노드의 nn개 예제를 특징 fjf_j로 분할할 때의 정보 이득은, 두 쪽이 각각 n0n_0개와 n1n_1개의 예제를 가진다면, 제거된 엔트로피입니다:

IG(j)  =  H(labels)    n0nH(labels with fj=0)    n1nH(labels with fj=1),\mathrm{IG}(j) \;=\; H(\text{labels}) \;-\; \frac{n_0}{n} H(\text{labels with } f_j = 0) \;-\; \frac{n_1}{n} H(\text{labels with } f_j = 1),

동점은 가장 낮은 특징 색인 쪽으로 깨뜨려 실행이 결정적이 되도록 합니다(id3, rule_extract.py 273–297행). 커밋된 레이블로부터 손수 루트 분할을 계산해 봅시다. 숨겨진 논리식은 1616개 입력 중 77개에서 참입니다(f1f2f_1 \land f_2를 만족하는 것이 44개, f3¬f4f_3 \land \lnot f_4를 만족하는 것이 또 44개이며, 입력 11101110은 둘 다 만족하므로, 합집합은 4+41=74 + 4 - 1 = 7개의 원소를 가집니다), 이는 루트 엔트로피 H(7/16)=0.988699H(7/16) = 0.988699 비트를 줍니다. 네 특징 각각은 열여섯 개 입력을 여덟 개씩 두 쪽으로 나누며, 각각은 88개 중 22개가 양성인 쪽과 88개 중 55개가 양성인 쪽을 만들어 냅니다(예를 들어 f1=0f_1 = 0은 첫 번째 논리합 항을 죽여, f3=1,f4=0f_3 = 1, f_4 = 022개의 입력만 남깁니다). 그래서 모든 특징이 같은 이득을 냅니다:

IG  =  0.988699    816H(2/8)    816H(5/8)  =  0.98869912(0.811278)12(0.954434)  =  0.105843.\mathrm{IG} \;=\; 0.988699 \;-\; \tfrac{8}{16}\, H(2/8) \;-\; \tfrac{8}{16}\, H(5/8) \;=\; 0.988699 - \tfrac{1}{2}(0.811278) - \tfrac{1}{2}(0.954434) \;=\; 0.105843.

네 갈래 동점이며, 결정적 규칙에 의해 f1f_1로 해소됩니다. 모든 리프가 순수해질 때까지 재귀하면 1313개 노드(66개 내부 노드, 77개 리프)로 이루어진 트리가 나오는데, 이는 열여섯 개 질의 전부에서 오라클을 재현합니다. 완전한 진리표 위에서는 순수성이 보장됩니다: 열여섯 개 입력이 모두 서로 다르므로, 최악의 경우 하나의 경로가 네 특징을 전부 검사하게 되고, 그 뒤에는 그 경로의 리프가 정확히 하나의 입력만을 담으며, 원소가 하나뿐인 레이블 집합은 순수합니다. 따라서 재귀는 모든 리프가 순수한 채로 반드시 종료되고, 그 흉내는 구성상 정확합니다(rule_extract.py 424–425행에서 assert됩니다).

트리에서 최소 DNF로

규칙은 트리에서 기계적으로 뽑혀 나옵니다: 루트에서 양성 리프까지의 모든 경로는 그 경로를 따라 거친 검사들의 논리곱인 하나의 함의항이며, 이 경로 함의항들의 논리합은 트리가 양성 리프로 보내는 입력들에서 정확히 참이 됩니다(tree_to_dnf, rule_extract.py 304–314행). 커밋된 경로 DNF는 세 개의 항을 가지며 눈에 띄게 어설픈데, 이는 함수 자체가 아니라 탐욕적인 분할 순서의 산물입니다. 마지막 단계는 무차별 대입 콰인-매클러스키(Quine–McCluskey) [3] 처리로 이를 최소화하는데, 이는 각 특징이 독립적으로 참으로-검사, 거짓으로-검사, 혹은 미검사인 모든 34=813^4 = 81개의 후보 함의항을 훑습니다(minimize_dnf, rule_extract.py 317–345행). 세 가지 정의가 이 작업을 해냅니다. 어떤 후보가 대상 함수의 함의항(implicant)인 것은, 그것이 덮는 모든 입력이 레이블 11을 가질 때입니다. 어떤 함의항이 주 함의항(prime implicant)인 것은, 리터럴을 단 하나라도 빼면 그 성질이 깨질 때입니다. 어떤 주 함의항이 필수 주 함의항(essential prime implicant)인 것은, 어떤 양성 입력이 다른 어떤 주 함의항으로도 덮이지 않아 그것이 모든 올바른 덮개에 강제로 들어갈 때입니다. 여기서는 정확히 두 개의 주 함의항이 살아남으며, 둘 다 필수적입니다: 입력 11011101은 오직 (f1f2)(f_1 \land f_2)로만 덮이고, 00100010은 오직 (f3¬f4)(f_3 \land \lnot f_4)로만 덮이며, 이 모듈은 필수 주 함의항만으로 이미 모든 양성 입력을 덮는다는 것을 assert합니다(342–343행). 그래서 최소 덮개는 유일하며 탐색이 필요 없습니다. 커밋된 실행:

[4] pedagogical (TREPAN-style): hidden DNF → MLP → membership queries → tree → minimal DNF
hidden rule : y = (f1 ∧ f2) ∨ (f3 ∧ ¬f4)
MLP 4→6→1 (lr=1.0, seed 3), CE loss: [1] 0.7796 [10] 0.6790 [100] 0.2961 [1000] 0.0153 [3000] 0.0031; fits 16/16
ID3 tree on all 16 membership queries: 13 nodes, mimics the oracle 16/16
tree path DNF : (¬f1 ∧ f3 ∧ ¬f4) ∨ (f1 ∧ ¬f2 ∧ f3 ∧ ¬f4) ∨ (f1 ∧ f2)
minimized : (f1 ∧ f2) ∨ (f3 ∧ ¬f4) (2 prime implicants, all essential)
round trip : minimal DNF == hidden DNF — the extraction is EXACT

복원된 논리식은 함의항 하나하나까지 숨겨진 논리식과 동일하며, 16/1616/16개의 입력에서 모델과 일치합니다; 두 사실 모두 관찰이 아니라 assert입니다(rule_extract.py 428–431행; 모델과의 일치라는 절반은, 오라클이 숨겨진 레이블과 같다는 421행의 assert를 거쳐 성립합니다). 충실도는 전체 정의역에서 1.01.0이며, 이는 추출이 낼 수 있는 가장 강력한 진술입니다.

이제 정직한 이야기를 할 차례입니다. 완전 탐색 질의가 통하는 것은 24=162^4 = 16이기 때문입니다; 특징이 마흔 개면 정의역은 2402^{40}개의 원소, 대략 101210^{12}개를 가지며, 완전한 심문은 끝난 이야기입니다. TREPAN은 그 벽에 대한 고전적인 답입니다 [4]: 이는 입력 분포의 모델에서 멤버십 질의를 표본추출하되, 각 트리 경로를 따라오는 제약 조건에 조건화하여, 깊은 노드도 신뢰성 있게 분할할 만큼 충분한 질의를 여전히 받도록 합니다; 트리를 최선-우선으로 키워서, 다음으로 충실도를 가장 많이 개선할 노드를 확장합니다; 그리고 트리를 컴팩트하게 유지하기 위해 m-of-n 분할 검사(나열된 nn개 조건 중 적어도 mm개가 성립할 때 발화하는 노드 검사)를 사용합니다. 그 설계 원리는 알고리즘으로 읽힌 충실도의 정의 그 자체입니다: 질의 예산을 QQ가 질량을 두는 곳, 그리고 불일치가 아직 남아 있는 곳에 씁니다. 우리의 실험은 파이프라인은 유지하되 예산은 없애는데, 이는 정확히 열여섯 개 원소짜리 정의역이 허용하는 것이며 그보다 더 큰 정의역은 허용하지 않는 것입니다. 교육적 순환은 또한 훨씬 더 오래된 하나의 원을 닫습니다: KBANN은 손으로 작성한 도메인 이론을 네트워크의 초기 가중치로 삽입하고 그 네트워크를 데이터로 정제했으며 [5], 그 자매 추출 논문은 수정된 이론을 다시 읽어내어 그것이 들어간 것을 측정 가능할 정도로 능가함을 보였습니다 [6]. 거기서 추출은 감사가 아니라, 네트워크가 이론 수정자로 봉사하는 왕복 여정의 귀환 경로였으며, 그 왕복 여정은 여전히 신경-기호 통합이라는 야심에 대한 역사적 벤치마크로 남아 있습니다.

실제로 작동하는 기계 장치에 대한 분해적 추출

두 번째 실험은 상자를 열며, 그 상자는 실재합니다: 4권의 Neural-LP(Neural Logic Programming) 헤드로, examples/integration/neural_lp.py에서 임포트되어 이 모듈 안에서 비트 단위로 재훈련됩니다(동일한 시드 00, 동일한 손으로 유도한 그래디언트, 동일한 30003000번의 에폭; train_soft_model, rule_extract.py 93–103행). 그 해부 구조를 한 단락으로 되짚어 봅시다. 학술 지식 그래프의 모든 관계는 하나의 TensorLog 연산자가 되는데, 이는 1313개의 개체에 대한 13×1313 \times 13 인접 행렬 MkM_k이며, 그 항목 (h,t)(h, t)는 훈련 그래프에 엣지 (h,k,t)(h, k, t)가 있을 때 정확히 11입니다; 연산자 어휘는 K=11K = 11개의 항목, 즉 55개의 관계, 그 55개의 역관계, 그리고 항등 연산자를 가집니다. 이 헤드는 grandAdvisor(x, ?)T=2T = 2번의 추론 단계로 답하며, 각 단계는 이전 상태들의 메모리에 대한 소프트맥스 주의가 적용된, 연산자들에 대한 소프트맥스 주의 ata_t이고, 1권의 전방 연쇄기가 같은 엣지들로부터 도출하는 원자들 위에서 훈련됩니다 [7]. 커밋된 재훈련은 4권의 숫자를 정확히 재현합니다: 에폭 1에서 손실 13.708313.7083이 에폭 3000에서 0.00200.0020까지 떨어지고, 모델의 소프트 답 집합(점수가 답 컷오프 0.10.1을 넘는 개체들)은 기호적 폐쇄, 즉 alice → carol과 bob → erin과 일치합니다.

추출은 그 논문의 알고리즘 1입니다: 두 단계 계산 그래프를 통과하는 모든 경로는 하나의 연쇄 규칙(chain rule)이며, 그 신뢰도(confidence)는 그 경로를 따라 있는 주의 가중치들의 곱입니다 [7]. 이 모듈은 참조 구현의 신뢰도 컷오프(논문 자체는 컷오프를 규정하지 않습니다; 공개된 저장소가 --rule_thr, 기본값 0.010.01로 걸러내며, 4권이 채택한 것이 바로 그 컷오프입니다) 없이 풀어헤치므로, 컷오프 자체가 실험이 됩니다(unroll_rules, rule_extract.py 106–133행):

add(float(b3[0]), ())
for k in range(nlp.K):
add(float(b3[1] * a1[k]), (nlp.OP_NAMES[k],))
add(float(b3[2] * b2[0] * a2[k]), (nlp.OP_NAMES[k],))
for k1 in range(nlp.K):
for k2 in range(nlp.K):
add(float(b3[2] * b2[1] * a1[k1] * a2[k2]),
(nlp.OP_NAMES[k1], nlp.OP_NAMES[k2]))

여기서 a1,a2a_1, a_2는 두 연산자 주의이고 b2,b3b_2, b_3는 메모리 주의이며, 각각은 소프트맥스이므로 확률 벡터입니다. 단계 tt의 메모리 주의는 주의를 기울일 수 있는 상태 하나당 항목 하나를 가지는데, 그 상태들은 초기 원-핫 상태와 각 이전 단계의 결과입니다: b2=(b2[0],b2[1])b_2 = (b_2[0], b_2[1])는 초기 상태와 1단계의 출력 사이에서 선택하고, b3b_3의 세 항목은 초기 상태(이를 곧바로 읽어내면 빈 몸체, 즉 항등 연쇄가 됩니다), 1단계의 출력, 2단계의 출력 가운데에서 선택합니다. 이 소프트맥스라는 사실은 깔끔한 보존 법칙을 낳습니다: ka1[k]=ka2[k]=1\sum_k a_1[k] = \sum_k a_2[k] = 1을 이용해(이 합은 연산자 색인 kk마다 항 하나씩을 더합니다) 모든 경로에 걸쳐 신뢰도를 합하면,

pathsconf=b3[0]+b3[1] ⁣ka1[k]+b3[2]b2[0] ⁣ka2[k]+b3[2]b2[1](k1a1[k1])(k2a2[k2])=b3[0]+b3[1]+b3[2](b2[0]+b2[1])=1,\sum_{\text{paths}} \mathrm{conf} = b_3[0] + b_3[1]\!\sum_k a_1[k] + b_3[2]\, b_2[0]\!\sum_k a_2[k] + b_3[2]\, b_2[1] \Big(\sum_{k_1} a_1[k_1]\Big)\Big(\sum_{k_2} a_2[k_2]\Big) = b_3[0] + b_3[1] + b_3[2]\big(b_2[0] + b_2[1]\big) = 1,

b2b_2b3b_3 자체도 확률 벡터이기 때문입니다. 풀어헤쳐진 신뢰도들은 규칙 몸체에 대한 확률 분포를 이루며, 이는 기계 정밀도까지 assert됩니다(rule_extract.py 385행). 전체 목록을 4권의 컷오프 0.010.01로 걸러내면 4권 자신의 추출을 그대로 재현해야 하며, 이 역시 assert됩니다(387–388행). 동일한 몸체를 병합한 뒤(항등 홉은 제거), 커밋된 읽어냄:

[2] decompositional read-off (Neural LP Algorithm 1, NO cutoff): 111 merged bodies, Σ conf = 1
0.999005 grandAdvisor(X,Y) ← advises(X,Z1) ∧ advises(Z1,Y)
0.000339 grandAdvisor(X,Y) ← advises(X,Y)
0.000111 grandAdvisor(X,X) ← ⊤ (the identity chain)
0.000032 grandAdvisor(X,Y) ← inv_advises(X,Z1) ∧ advises(Z1,Y)
... and 107 more, none above 0.000032; filtered at Volume 4's cutoff 0.01 == nlp.extract_rules

하나의 규칙이 주의 질량의 99.9%99.9\%를 차지하며, 이는 1권의 규칙입니다: 대지도자(grand-advisor)는 지도자의 지도자입니다. 나머지 110110개 몸체는 1퍼센트의 10분의 1을 나누어 가집니다. 이는 최선의 조건 아래에서의 분해적 추출입니다: 내부 구조가 그 자체로 규칙 몸체에 대한 확률 분포 아키텍처가, 참인 규칙이 하나뿐인 과제 위에서 거의 확신에 가깝게 훈련된 것입니다. 이 목록에 임계값이 무엇을 하는지가 흥미로운 질문이며, 이를 위해서는 삼중 지표가 필요합니다.

삼중 지표: 세 명의 심판, 세 가지 질문

임계값이 적용된 규칙 집합은 서로 다른 두 권위에 대비해 판정될 수 있으며, 그 판정들이 흐려져서는 안 됩니다. 이 모듈은 대상들을 한 번에 고정합니다(rule_extract.py 80–82행). 질의 집합은 두 개의 훈련 질의, alice와 bob입니다. 컷오프 θ\theta(그리스 문자 세타, 신뢰도 임계값)에 대해, 하드 답 집합(hard answer set) HH는 신뢰도가 적어도 θ\theta인 어떤 규칙이 훈련 엣지들에 대해 xx로부터 순수하게 기호적으로(집합값 홉, 부동소수점 없음; 4권의 apply_rule, neural_lp.py 296–313행) 적용되어 yy에 도달하는 모든 쌍 (x,y)(x, y)를 모읍니다. 소프트 답 집합(soft answer set) SS는 모델 자신의 임계값 적용 답들, 즉 점수 py0.1p_y \ge 0.1yy를 모읍니다. 폐쇄(closure) CC는 같은 엣지들에 대한 1권의 전방 연쇄 정답이며, 여기서는 정확히 두 쌍, (alice, carol)과 (bob, erin)입니다. 세 가지 비율, 세 가지 질문입니다(triad_at, rule_extract.py 155–173행):

fidelity=HSHS,soundness=HCH,completeness=HCC,\mathrm{fidelity} = \frac{\lvert H \cap S \rvert}{\lvert H \cup S \rvert}, \qquad \mathrm{soundness} = \frac{\lvert H \cap C \rvert}{\lvert H \rvert}, \qquad \mathrm{completeness} = \frac{\lvert H \cap C \rvert}{\lvert C \rvert},

여기서 \lvert \cdot \rvert는 집합의 원소 개수를 세고, \cap은 교집합, \cup은 합집합입니다; 충실도 비율은 자카드 지수(Jaccard index), 즉 교집합 크기를 합집합 크기로 나눈 값이며, HH가 공집합일 때 건전성은 정의되지 않은 채로 남습니다(건전할 대상이 아무것도 없으므로). 충실도는 묻습니다: 규칙이 모델처럼 답하는가? 건전성은: 규칙이 답하는 것 중, 폐쇄가 얼마나 확인해 주는가? 완전성은: 규칙이 폐쇄의 얼마만큼을 복원하는가? 첫 번째는 추출 공동체의 기준이고, 나머지 둘은 2권의 논리학자가 어떤 도출 체계에든 던지는 그녀의 두 가지 영원한 질문입니다.

충실도 비율은 하나의 유도를 받을 자격이 있는데, 뻔한 대안이 함정이기 때문입니다. 왜 결정 단위별 단순 일치가 아니라, 모아진 양성 쌍들에 대한 자카드 일치일까요? 2×13=262 \times 13 = 26개의 (질의, 개체) 결정이 걸려 있고, 참 답은 그중 22개뿐입니다. 규칙 집합은 오직 모델의 22개 양성에 대해서만 소프트 모델과 불일치하므로, 결정 단위별 일치는 그것에 24/26=0.92324/26 = 0.923을 안겨 주는데, 이는 아무 말도 하지 않는 대리물에게 주어지는 훌륭한 점수입니다: 계급 불균형이 충실도로 위장한 것입니다(rule_extract.py 162–164행). 자카드 형태는 빈 규칙 집합에 0/2=00/2 = 0을 매기는데, 이것이 그것이 받아 마땅한 점수입니다. 훑기 격자는 풀어헤쳐진 목록의 구조를 중심으로 선택됩니다(rule_extract.py 83–86행): 가장 약하게 살아남은 경로 계열보다 낮은 값(2×1052 \times 10^{-5}), 경로 계열들 사이의 값(10410^{-4}, 5×1045 \times 10^{-4}), 참조 구현의 기본 컷오프(0.010.01), 그리고 최상위 규칙의 신뢰도 0.9990050.999005를 넘어선 값(컷오프 0.99950.9995)입니다. 커밋된 표:

[3] the fidelity triad vs the cutoff — compactness against agreement
cutoff #rules #answers fidelity soundness completeness
2e-05 21 9 0.222 0.222 1.000
0.0001 3 6 0.333 0.333 1.000
0.0005 1 2 1.000 1.000 1.000
0.01 1 2 1.000 1.000 1.000
0.5 1 2 1.000 1.000 1.000
0.9995 0 0 0.000 -- 0.000
too permissive drowns the 2 sound answers among 9; too strict (0.9995 > top conf 0.999005) keeps none

한 줄씩 읽어 봅시다. 2×1052 \times 10^{-5}에서는 스물한 개의 규칙이 살아남아 함께 99개의 쌍에 답합니다; 참인 두 답이 그 안에 있지만(완전성 1.0001.000) 77개의 가짜 답 속에 파묻혀, 충실도와 건전성이 모두 2/9=0.2222/9 = 0.222로 떨어집니다. 10410^{-4}에서는 세 개의 규칙이 66개의 쌍에 답합니다: 2/6=0.3332/6 = 0.333. 5×1045 \times 10^{-4}부터 0.50.5까지, 임계값의 세 자릿수(decade)에 걸쳐, 정확히 하나의 규칙, advises∘advises만이 살아남고, 삼중 지표는 완벽합니다. 0.99950.9995에서는 임계값이 최상위 규칙 자체의 신뢰도를 넘어서 규칙 집합이 텅 비게 됩니다: 충실도 00, 완전성 00, 건전성은 정의되지 않음. 양 끝 모두 무너지며, 이 실행은 그 전체 형태를 assert합니다: 단조로운 규칙 개수, 관대한 끝에서의 파묻힘, 완벽한 구간, 텅 빈 엄격한 끝(rule_extract.py 399–410행).

이 트레이드오프에 대한 정직한 해석은 이렇습니다: 여기서 압축이 거의 공짜였던 것은 훈련된 주의가 질량의 99.9%99.9\%를 하나의 몸체에 집중시켜 두었기 때문이며, 그래서 마지막까지 남은 규칙이 옳은 것이었고 그것이 죽은 것은 오직 임계값이 0.9990.999를 넘었을 때뿐입니다. 주의가 퍼져 있는 곳, 즉 하나의 참인 규칙의 질량을 여러 몸체가 나누어 가지는 곳(4권 DRUM 실험의 뒤엉킨 랭크-1 헤드들이 전형적인 사례입니다)에서는, 각 조각의 신뢰도가 낮아 임계값이 일찍 물어뜯기 시작하고, 규칙 집합이 조각조각 압축될 때마다 충실도가 떨어집니다. 압축성과 충실도는 정확히 모델의 내부 구조가 규칙 모양이기를 실패하는 정도만큼 긴장 관계에 있습니다.

삼중 지표의 가치는 진단적입니다. 그 세 숫자가 구별 가능한 패턴으로 실패하기 때문입니다:

패턴커밋된 사례진단
높은 충실도, 높은 건전성, 높은 완전성5×1045 \times 10^{-4}에서 0.50.5까지의 구간모델이 옳고 규칙이 그것을 포착함; 추출은 둘 다에 대한 인증서임
낮은 충실도, 낮은 건전성, 완전성 1.01.02×1052 \times 10^{-5}과잉 생성하는 대리물: 진실이 그 안에 있지만 파묻혀 있음; 임계값을 올릴 것
높은 건전성, 낮은 완전성(이 헤드에서는 도달하지 않음; 이미 하나의 규칙이 CC를 덮음)신중한 부분 이론: 말하는 모든 것이 검증되지만, 폐쇄의 일부에 대해서는 침묵함
높은 충실도, 낮은 건전성다음에 나올 편향된 실험추출은 멀쩡하고 모델이 틀림; 어떤 임계값도 이를 고칠 수 없음

앞의 세 패턴은 추출에 관한 것입니다. 마지막 하나는 세계에 관한 것이며, 이것이 이 장의 가장 깊은 지점입니다.

충실하게 틀리다: 다음 장을 예고하는 실험

같은 4→6→1 MLP를, 같은 시드로, 같은 코드 경로로, 편향된 표본에 대해 재훈련시켜 봅시다. 세계의 참인 규칙, 즉 불 논리로 옷 입은 2권의 교수직 공리는 y=f1f2y = f_1 \land f_2입니다: 교수는 지도하고 저술한 사람입니다. 그러나 이 표본은 자신의 직원 배지가 실제 지위와 일치하는 (16명 중) 88명의 학자만을 담고 있습니다: 표본에 포함된 모든 교수는 배지를 가지고, 표본에 포함된 모든 비교수는 배지가 없습니다(biased_sample, rule_extract.py 353–363행; 남겨진 입력은 번호 0,2,4,6,8,10,13,150, 2, 4, 6, 8, 10, 13, 15입니다). 이 표본에서는 배지 하나만으로 완벽한 예측자가 되며, 이는 참인 규칙보다 더 단순합니다: 두 특징 대신 하나의 특징입니다. 그래디언트 하강법은 값싼 길을 택하여, 표본을 8/88/8로 맞추고 최종 교차 엔트로피 0.00040.0004에 도달하며, 봉인된 상자는 같은 추출 파이프라인을 거칩니다: 열여섯 개 입력 전체에 대한 멤버십 질의, ID3, 최소화. 커밋된 결과:

[5] the honest exhibit: a faithful extraction of a WRONG model
world rule : professor ⟺ (f1 ∧ f2) [f1 advises, f2 authored]
biased sample : only the 8 scholars whose staff badge f4 equals the label are observed
biased MLP : fits its sample 8/8; CE loss [3000] 0.0004
extraction : tree 3 nodes → minimal DNF (f4) [the badge, not the professorship]
fidelity-to-model 16/16 truth-to-world 8/16 (exactly chance)
wrong on all 8 held-out scholars where badge and truth part ways — faithfully wrong

트리는 세 개의 노드이며, f4f_4에 대한 단일 분할이고, 최소 DNF는 단일 리터럴 (f4)(f_4)입니다: 배지를 소지함. 이 추출은 추출로서는 흠잡을 데가 없습니다: 열여섯 개 입력 전부에서 모델과 일치하며, 이 실행은 완벽한 충실도라는 사실과, 추출된 모든 함의항이 세계의 규칙이 결코 언급하지 않는 특징인 배지에 매달려 있다는 사실을 둘 다 assert합니다(rule_extract.py 446–451행). 그리고 이는 배지와 진실이 갈라지는 정확히 그 88명의 held-out 학자에 대해 세계에 관해 틀립니다: 전체적으로 8/168/16, 정확히 우연과 같은 수준이며, 이는 입력 하나하나에 대해 assert됩니다(453–455행). 이 추출은 실패하지 않았습니다. 그것은 성공했으며, 그 성공이 바로 그 보고입니다: 이 모델은 배지로 분류합니다.

이 교훈은 신중하게 진술되어야 합니다. 양쪽 절반 모두가 중요하기 때문입니다. 추출은 하나의 현미경입니다: 그것은 모델의 결정 방침을 사람이나 추론기가 검사할 수 있는 어휘로 보이게 만들며, 가짜 방침에 대한 높은 충실도 추출은 현미경이 고장 난 것이 아니라 작동하고 있는 것입니다. 추출이 아닌 것은 인증서입니다: 충실도는 모델과의 일치이며, 모델만의 함수로는 그 모델을 세계에 대비해 인증할 수 없습니다. 인증에는 모델이 훈련받지 않은 권위가 필요합니다: 기호적 오라클(삼중 지표의 건전성 다리가 정확히 이 일을 했습니다. HH를 1권의 폐쇄에 대비해 검사한 것입니다), 또는 held-out 개입, 즉 의심되는 지름길과 진실이 어긋나는 곳에서 의도적으로 구성된 입력들인데, 이것이 바로 여덟 명의 held-out 학자가 하는 정확한 역할입니다. 이 편향된 모델은, 다음 부(Part) 전체를 차지할 만큼 중요한 현상을 이 권에서 처음 목격하는 것입니다: 훈련받은 모든 것에 대해 옳지만, 그 이유가 틀렸고, 그것도 체계적으로 틀린 모델입니다.

추출이 지금 살아가는 곳

고전적 파이프라인은 살아남았지만, 그 무게 중심은 아키텍처 자체 안으로 옮겨 갔습니다. 미분 가능한 규칙 학습기는 추출을 사후적 구조가 아니라 하나의 기능으로 탑재합니다: Neural-LP의 훈련 루프는 신뢰도가 붙은 규칙을 출력하는 것으로 끝나는데, 이는 위에서 풀어헤친 바로 그 알고리즘 1입니다 [7]. 그리고 DRUM은 같은 방식으로 자신의 저랭크 주의 사슬에서 신뢰도가 붙은 규칙을 읽어내어 신뢰도로 정렬된 목록으로 제시하며, 그 저랭크 구조는 정확히 독립적인 규칙들이 읽어냄 과정에서 뒤엉키지 않도록 존재합니다 [8]. 이 분야 자신의 경고가 그 기능과 함께 따라다닙니다: 소프트 주의에서 읽어낸 규칙은 증명 모양(proof-shaped)이지 증명이 아닙니다. 그 몸체는 소프트 인접 질량에 대한 연속 가중치들의 곱으로 점수가 매겨졌으며, 그 산술 어디에도 이산적인 규칙이 논리로서 적용될 때 모델이 도출한 것을 정말로 도출한다는 보장은 없습니다. 그 수리책은 재검증이며, 두 권 모두 그것을 실천합니다: 4권은 추출된 최상위 규칙을 순수하게 기호적으로 재생하여, 그것이 모든 훈련 답을 재현하고 held-out 엣지로 전이됨을 assert했습니다(neural_lp.py 296–313행 및 497–502행). 그리고 이 장의 건전성 다리는 모든 임계값에서 살아남은 모든 규칙을 폐쇄에 대비해 다시 검증합니다. KBANN은 여전히 이 순환이 무엇을 위한 것인지에 대한 벤치마크로 남아 있습니다: 규칙이 들어가고, 그래디언트에 의한 정제가 있으며, 더 나은 규칙이 나오고, 각 다리가 측정됩니다 [5][6]. 최선의 상태에서 추출은 부검이 아닙니다; 그것은 이론과 그 데이터 사이의 대화에서 읽어내는 절반입니다.

아직 풀리지 않은 부분

이 장의 두 성공 모두 구조에 기대고 있었습니다. 교육적 실험은 열여섯 개 원소짜리 정의역을 가졌으므로 충실도를 어디에서나 측정할 수 있었고, 분해적 실험은 매개변수가 말 그대로 규칙 몸체에 대한 분포 그 자체 아키텍처를 가지고 있었습니다. 대규모 분산 모델에는 이 두 목발 중 어느 것도 존재하지 않습니다. 트랜스포머의 가중치는 풀어헤칠 규칙별 해부 구조를 전혀 제공하지 않습니다: 그것이 배운 규칙성이 무엇이든, 그것은 어텐션 헤드와 피드포워드 층 전체에 걸쳐 중첩 상태로 뭉개져 있으며, 분해적 추출에는 분해할 대상이 아예 없습니다. 교육적 추출은 원리적으로는 여전히 적용될 수 있는데, 오직 질의 접근만을 필요로 하기 때문입니다. 하지만 그 지표는 조용히 무너집니다: 개방형 입력에 대해서는 정경적인 QQ가 없고, 열거할 방법도 없으며, 오늘의 QQ에서 측정된 일치가 내일의 분포 변화에서도 살아남으리라는 보장도 없습니다; 벤치마크에서 충실한 대리물이 다른 패러프레이즈 하나만 지나면 임의로 불충실해질 수 있습니다. 이 두 문제 밑바닥에는 이 부(Part)가 계속 마주치는 세분성 질문이 놓여 있습니다: 어떤 어휘 위에서의 규칙인가? 우리의 실험들은 자신의 원자들(f1f_1부터 f4f_4까지, 열한 개의 연산자)을 손에 쥐여 받았고, 추출은 그저 그것들을 배열하기만 하면 되었습니다. 모델의 내부 특징이 어떤 인간의 술어와도 정렬되지 않을 때는, 컴팩트하고 충실한 규칙 집합이 존재할 수 있는 어휘 자체가 아예 없을 수도 있습니다. 정직한 요약은 이렇습니다: 추출은 아키텍처가 구조를 유지한 곳에서 작동하며, 이는 나중에 구조를 찾아내기를 바라기보다 그 구조를 처음부터 지어 넣어야 한다는, VII부를 위해 저축해 둔 또 하나의 논거입니다.

왜 중요한가

이 장은 이 권의 신뢰 질문을 점수판이 딸린 하나의 공학적 순환으로 바꾸어 놓습니다. 충실성은 우리에게 기준을 주었고, 추출은 그것을 최적화하는 구성적 절차를 주며, 삼중 지표는 그 산출물의 가격을 각 권위에 대해 따로 매깁니다: 모델(충실도), 논리(건전성), 그리고 논리의 전체 범위(완전성). 이 시리즈의 전체 궤적에서, 이 두 실험은 검사 가능하게 만들어진 신경-기호 거래의 두 절반입니다: 교육적 왕복 여정은 그래디언트로 훈련된 네트워크에서 1권의 불 세계를 복원하고, 분해적 읽어냄은 미분 가능한 아키텍처가 자신만의 기호 이론을 담을 수 있다는 4권의 핵심 주장을 현금으로 바꿉니다. 여러분 자신의 연구를 위한 이식 가능한 교훈은 편향된 실험입니다: 추출을 할 때마다 충실도 숫자와 함께 심판도 함께 발표하십시오. 대리물은 그것이 흉내 내는 모델만큼만 진실할 수 있으며, 그 간극은 모델이 결코 통제한 적 없는 정답에 대비해서만 측정 가능하기 때문입니다.

핵심 용어

  • 규칙 추출(rule extraction): 훈련된 네트워크에 대한 명시적 기호 대리물(트리, DNF, 연쇄 규칙)을 산출하는 동시에, 둘 사이의 측정된 일치를 함께 내놓는 것입니다.
  • 교육적 / 분해적 / 절충적(pedagogical / decompositional / eclectic): 접근 방식에 따른 고전적 분류 체계입니다: 모델을 블랙박스로 질의하거나, 그 가중치에서 구조를 읽어내거나, 혹은 둘을 섞습니다.
  • 멤버십 질의(membership query): 모델에 오라클로서 던져진 하나의 입력이며, 그 하드 답이 대리물을 위한 훈련 레이블로 기록됩니다.
  • 충실도(fidelity): 명시된 질의 분포 QQ에 대한 대리물과 모델 사이의 일치율입니다; 언제나 어떤 입력에 대한 충실도이며, 결코 추상적으로 존재하지 않습니다.
  • 건전성 / 완전성(soundness / completeness, 규칙 집합의): 규칙 집합의 답 중 기호적 폐쇄가 확인해 주는 비율, 그리고 폐쇄의 답 중 규칙 집합이 복원하는 비율입니다.
  • 함의항, 주 함의항, 필수 주 함의항(implicant, prime implicant, essential prime implicant): 오직 양성 입력만을 덮는 논리곱; 리터럴을 하나도 뺄 수 없는 것; 어떤 양성 입력이 유일하게 필요로 하는 것. DNF 최소화의 어휘입니다.
  • 연쇄 규칙(chain rule, 규칙 학습에서): 몸체가 경로를 따라 합성된 관계들의 수열인 규칙으로, Neural-LP 방식 추출에서 신뢰도가 붙은 주의 곱으로 읽혀 나옵니다.
  • 증명 모양, 증명이 아님(proof-shaped, not a proof): 기호적 재검증 이전, 소프트 주의에서 읽어낸 규칙의 지위입니다; 삼중 지표의 건전성 다리가 바로 그 재검증입니다.
  • 충실하게 틀림(faithfully wrong): 학습된 방침이 가짜인 모델에 대한 높은 충실도 추출입니다; 이 추출은 정확히 틀린 규칙을 보고함으로써 성공합니다.

이 다음으로 이어지는 것

이 편향된 MLP가 발각된 것은 오직 우리가 세계의 참인 규칙과, 지름길과 진실이 어긋나는 여덟 명의 held-out 학자를 가지고 있었기 때문입니다. 다음 장은 우리가 그렇게 운이 좋지 않을 때 무슨 일이 일어나는지를 묻습니다: 어떤 모델이, 특히 그 개념이 무언가를 의미하기로 되어 있는 신경-기호 모델이, 체계적으로 틀린 내부 규칙을 통해 옳은 답에 도달하고, 훈련 신호는 증명 가능하게 그것을 알아챌 수 없을 때 말입니다. 그 현상에는 이름이 있고, 계수 이론이 있으며, 벤치마크 모음이 있는데, 이는 추론 지름길이 다루는 내용입니다.


컴패니언 코드: examples/frontier/rule_extract.py는 두 실험과 삼중 지표를 구현합니다: 임계값 스윕이 딸린, 4권 Neural-LP 헤드의 컷오프 없는 풀어헤치기, 정확한 왕복 여정을 갖는 멤버십 질의 증류(MLP, ID3, 콰인-매클러스키), 그리고 편향된 데이터 추출까지, 모든 주장이 assert로 지켜집니다. 이 장의 모든 숫자를 재현하려면 python3 examples/frontier/rule_extract.py를 실행하십시오; 이 실행은 결정적이며, 임포트된 소프트 모델은 examples/integration/neural_lp.py로부터 비트 단위로 재훈련됩니다.