실습 · 연습문제 2개
UCB와 EI 획득함수 acquisition-functions
closed-loop의 "실험 선택" 단계는 대리모델의 예측 평균 와 표준편차 로 후보마다 점수를 매긴다. 최대화 문제(수율을 높이기)의 두 획득함수를 구현한다.
UCB (upper confidence bound)
EI (expected improvement). 지금까지의 최고 측정값이 일 때
이다. , 와 는 표준정규분포의 누적분포함수와 밀도다(scipy.stats.norm.cdf, norm.pdf). 인 점에서는 개선이 확정적이므로 으로 정의한다.
함수 두 개를 완성한다.
ucb(mu, sd, beta): 배열mu,sd(shape(C,))에 대해 UCB 배열을 반환한다.expected_improvement(mu, sd, best): 위 식의 EI 배열을 반환한다.sd == 0인 원소도 처리한다. 결과는 0 이상이어야 한다.
테스트는 손으로 계산한 값, 몬테카를로 추정과의 일치, 처리, 그리고 "평균이 같으면 불확실성이 큰 쪽의 EI가 더 크다"는 성질을 확인한다.
측정된 점들의 Pareto front pareto-front
자율 실험이 수율과 순도처럼 여러 목적을 함께 측정했다. 측정값 F (shape (N, k))의 각 행은 실험 하나, 각 열은 목적 하나이고, 모든 목적은 클수록 좋다.
실험 가 실험 를 지배(dominate)한다는 것은 가 모든 목적에서 보다 같거나 크고, 적어도 하나의 목적에서 엄격하게 크다는 뜻이다. 어떤 실험에도 지배되지 않는 실험들이 Pareto front다.
함수 pareto_mask(F)를 완성해 길이 의 불리언 배열을 반환한다. True는 그 실험이 Pareto front에 있다는 뜻이다.
테스트는 다음을 확인한다.
- 손으로 정답을 알 수 있는 작은 예
- 완전히 같은 측정값이 두 개 있으면 둘 다 front에 남는지(서로를 지배하지 않는다)
- 목적이 하나뿐이면 최댓값만 남는지
- front의 어떤 점도 다른 점에 지배되지 않고, front 밖의 모든 점은 front의 어떤 점에 지배되는지
힌트: 이 수백 이하이면 모든 쌍을 비교하는 방법으로 충분하다. 브로드캐스팅으로 (N, N, k) 비교 배열을 만들 수 있다.