5강 / 20강

신뢰도 — 부하마다 무게가 다르다

자르는 대신 목소리 크기를 조절한다

신뢰도 — 부하마다 무게가 다르다
확실한 부하는 큰 목소리로, 미심쩍은 부하는 작은 목소리로 증언합니다.

명부에 적힌 부하들이 다 같은 무게일 리 없습니다. 어떤 부하는 ARACNe 가 아주 강한 증거로 붙였고, 어떤 부하는 겨우 문턱을 넘겼습니다.

보통이라면 문턱을 정해서 자릅니다. 신뢰도 0.5 미만은 버린다는 식으로요. 그런데 이 방식에는 못난 구석이 있습니다 — 0.49 와 0.51 사이에 무슨 큰 차이가 있다고 하나는 통째로 버리고 하나는 온전히 살릴까요?

VIPER 는 자르는 대신 가중치를 씁니다. 재판에서 증인마다 신빙성이 다르듯, 확실한 부하의 증언은 크게, 미심쩍은 부하의 증언은 작게 반영합니다. 아무도 쫓아내지 않지만 아무나 같은 목소리를 내지도 못합니다.

①은 레귤론 안에서의 상대 크기, ②는 가중평균을 내기 위한 정규화입니다.
Python 브라우저에서 실행

가중치가 실제로 하는 일

VIPER 의 활성 점수는 결국 부하들의 증언을 가중평균한 것입니다. 아주 거칠게 적으면 이렇게 생겼습니다.

활성 ≈ Σ ( 가중치 × MoR × 시그니처 ) / Σ 가중치

가중치가 큰 부하가 이상하게 움직이면 점수가 크게 흔들리고, 가중치가 작은 부하는 어떻게 움직이든 점수가 별로 안 흔들립니다. 미심쩍은 정보가 결론을 뒤집지 못하게 하는 장치예요.

🎮 목소리 크기를 직접 조절해 보세요

부하 여섯의 신뢰도를 슬라이더로 바꿔 보세요. 오른쪽의 목소리 막대가 따라 변하고, 그 아래에 그 레귤론의 유효 크기가 나옵니다. 한 부하만 신뢰도를 아주 높이면 유효 크기가 1 에 가까워집니다 — 부하가 여섯이어도 실제로는 한 명이 결정하는 명부가 되는 것입니다.

신뢰도를 조절하며 가중치와 레귤론의 유효 크기를 봅니다
불러오는 중…
부하가 25개여도 하나가 압도하면 사실상 부하 1개짜리 레귤론입니다.
Python 브라우저에서 실행
🤔 확인 문제
VIPER 가 신뢰도가 낮은 부하 유전자를 버리지 않고 가중치를 낮추는 이유로 옳지 않은 것은?
🤔 확인 문제
어떤 레귤론에 부하가 30개 있는데 그중 하나의 신뢰도가 1.0 이고 나머지 29개는 모두 0.02 입니다. 이 레귤론의 성격은?
🤔 확인 문제
어떤 상사의 레귤론에서 부하 X 의 likelihood 가 0.5, 다른 상사의 레귤론에서 부하 Y 의 likelihood 가 0.5 입니다. 옳은 해석은?