AI한테 '자기 성적표 보고 스스로 개선해'라고 시켰더니 — 3단계 피드백 루프
AI한테 "자기 성적표 보고 스스로 개선해"라고 시켰더니 — 3단계 피드백 루프
결과부터 — AI가 매주 자기 성적표를 보고 스스로 조정한다
로또 분석 앱에 AI 예측 엔진이 5개 있어요. 매주 번호를 예측하는데, 문제는 엔진마다 잘 맞는 주와 못 맞는 주가 있다는 거예요. 어떤 엔진은 이번 주에 4등을 맞추는데, 다른 엔진은 하나도 못 맞추고.
그래서 이런 생각이 들었어요. 매주 성적표를 자동으로 채점하고, 잘하는 엔진의 비중을 높이면 되지 않을까?
AI한테 시켰더니 진짜 만들어줬습니다. 3단계로:
매주 토요일 추첨 후, 이 3단계가 자동으로 돌아갑니다. 사람이 할 일은 없어요.
왜 필요했나 — 5개 엔진의 성적이 롤러코스터였다
예측 엔진 5개가 있는데, 매주 성적이 들쭉날쭉해요:
| 엔진 | 이번 주 | 지난주 | 설명 |
|---|---|---|---|
| AlphaGo | 평균 0.71개 | 1.05개 | 게임 이론 기반 |
| LSTM | 0.60개 | 0.80개 | 딥러닝 예측 |
| Statistical | 0.51개 | 0.90개 | 통계 분석 |
| Association | 1.05개 | 0.50개 | 연관 규칙 |
| 통합 AI | 0.21개 | 0.75개 | 5개 합친 것 |
"자동으로 비중 조절해줘" — 프롬프트가 핵심이었다
Before — 초급 프롬프트:AI 엔진들 가중치를 자동으로 바꿔줘
AI가 "매 예측마다 실시간으로 가중치를 변경하는" 복잡한 구조를 제안했어요. 과도하게 복잡하고, 매번 변경하면 오히려 불안정해질 수 있었습니다.
After — 중급 프롬프트:당신은 앙상블 머신러닝 전문가입니다.
[현재 상태]
- 5개 AI 예측 엔진이 매주 로또 번호를 예측
- 각 엔진의 가중치가 고정(각 20%)으로 되어 있음
- 매주 토요일 추첨 후 "주간 리포트"가 자동 생성됨
(엔진별 평균 적중 개수, 4등/5등 건수 포함)
[요구사항]
- 주간 리포트를 기반으로 가중치를 자동 재계산
- 최근 8주 데이터로 판단 (너무 오래된 건 반영 안 함)
- 한 엔진이 독점하면 안 됨 (최소 10%, 최대 45%)
- 매주 토요일 추첨 후 자동 실행 (cron)
[제약]
기존 weekly_reports 테이블을 그대로 활용해야 합니다.
새 테이블은 ensemble_weights 하나만 추가 가능합니다.
"최소 10%, 최대 45%"라는 제약조건이 핵심이었어요. 이걸 안 넣으면 AI가 한 엔진에 90%를 몰아주는 극단적인 구조를 만들어요. 한 주 잘했다고 몰빵하면 다음 주에 망할 수 있거든요.
1단계 — 잘 맞춘 엔진의 비중을 높여라
AI가 만든 가중치 계산 공식:
점수 = (평균 적중률 × 70%) + (4등·5등 건수 × 30%)
왜 이렇게 나눴냐면, 평균적으로 꾸준히 맞추는 것과 가끔이라도 대박(4등 이상)을 치는 것 둘 다 중요하거든요. 평균 적중률만 보면 "매번 1개씩 맞추는 엔진"이 높은 점수를 받는데, "평균은 낮지만 가끔 4등을 터뜨리는 엔진"의 가치를 놓치게 돼요.
실제 1216회 결과에서:
- Association: 평균 1.05개, 5등 3건 → 점수 가장 높음 → 가중치 상향
- LSTM: 평균 0.60개, 당첨 없음 → 점수 낮음 → 가중치 하향
- Statistical: 평균 0.51개인데 4등 1건! → 보너스 점수로 살아남음
이 계산이 매주 자동으로 돌아갑니다.
2단계 — "어디서 빗나갔는지" 감지해서 보정
가중치만 바꾸는 건 "누구 말을 더 듣겠다"를 정하는 거예요. 2단계는 "각 엔진이 어떤 방향으로 틀렸는지"를 찾아서 보정하는 단계입니다.
당신은 예측 모델 튜닝 전문가입니다.
[요청]
각 AI 엔진의 예측이 빗나간 방향을 감지하고,
다음 예측에서 반대 방향으로 보정하는 시스템을 만들어주세요.
[감지할 편향]
1. 구간별: 30-40번대를 너무 많이 예측했는데 실제는 1-20번대가 많음
2. 홀짝: 홀수를 너무 많이 예측했는데 실제는 짝수가 많음
3. 고저: 고번호(23-45)를 너무 많이 예측했는데 실제는 저번호가 많음
[예시]
지난 8주간 AlphaGo가 30-40번대를 40% 예측했는데
실제 당첨은 25%만 30-40번대 → "고번호 편향" 감지
→ 다음 주 예측에서 30-40번대 가중치를 0.8배로 낮춤
이게 비유하면 이래요. 축구 코치가 "너 왼쪽으로만 슛 차는 버릇이 있어. 오른쪽도 연습해"라고 말하는 거예요. AI가 매주 자기가 어느 쪽으로 치우쳤는지 자동으로 감지하고, 반대 방향으로 살짝 보정합니다.
3단계 — 완전히 새로운 "메타 패턴" 엔진
1-2단계는 기존 엔진을 튜닝하는 거예요. 3단계는 아예 새로운 관점의 엔진을 추가한 겁니다.
당신은 데이터 패턴 분석 전문가입니다.
[배경]
기존 4개 엔진은 각각 개별 번호를 예측합니다.
하지만 "전체적인 윤곽"을 보는 엔진이 없습니다.
[요청]
당첨번호의 메타 패턴(전체적 특성)을 학습하는 새 엔진을 만들어주세요.
[학습할 메타 패턴 5가지]
1. 합계: 6개 번호의 총합 (보통 100-170 사이)
2. 홀짝비: 홀수 몇 개, 짝수 몇 개 (보통 3:3 근처)
3. 연번: 연속 번호 쌍이 있는지 (14-15 같은)
4. 구간분포: 1-10, 11-20, 21-30, 31-40, 41-45 각 구간에 몇 개
5. 끝자리: 0-9 끝자리가 얼마나 다양한지
[동작 방식]
최근 200회 데이터에서 메타 패턴 트렌드를 파악하고,
5000번 시뮬레이션으로 다음 주에 가장 유력한 조합을 찾기
기존 엔진들은 "이 번호가 나올 확률이 높다"를 예측하는데, 메타 패턴 엔진은 "다음 주 전체 윤곽이 어떤 모양일까"를 예측해요.
예를 들어, 1216회 당첨번호(3, 10, 14, 15, 23, 24)의 메타 패턴:
- 합계: 89 (평균보다 매우 낮음)
- 홀짝: 3:3 (완벽 균형)
- 연번: 2쌍 (14-15, 23-24) — 드문 패턴
- 구간: 1-10에 2개, 11-20에 2개, 21-30에 2개
이런 "윤곽"을 학습해서, "다음 주에는 합계가 올라갈 가능성이 높고, 연번은 줄어들 것"이라고 예측하는 거예요.
681건 중 338건이 틀려있었다 — 매칭 검증 자동화
피드백 루프를 만들면서 예측 데이터를 점검했더니, 681건 예측 중 338건(49.6%)의 매칭 결과가 틀려있었어요.
[피드백]
예측 아카이브에서 매칭 결과를 재검증했더니
681건 중 338건이 실제 당첨번호와 다르게 기록되어 있습니다.
[원인 추정]
예측 저장 시점과 당첨번호 확정 시점 사이의 타이밍 차이
[요청]
1. 338건 전부 재매칭해주세요
2. 앞으로 매주 자동으로 재검증하는 로직을 추가해주세요
AI가 100건씩 배치로 나눠서 재매칭하고, 매주 추첨 후 자동 재검증 로직까지 추가해줬어요. "앞으로 자동으로"라는 한 마디가 재발 방지까지 이어졌습니다.
전체 파이프라인 — 매주 자동으로 돌아간다
토요일 추첨
→ 당첨번호 자동 수집
→ 681건 예측 결과 자동 매칭 + 검증
→ 주간 리포트 자동 생성 (엔진별 성적표)
→ [1단계] 앙상블 가중치 자동 재계산
→ [2단계] 각 엔진 편향 감지 → 파라미터 보정
→ [3단계] 메타 패턴 트렌드 업데이트
→ 다음 주 예측에 반영
사람이 할 일: 없음. 전부 자동.
솔직한 한계점
- 8주 데이터로 판단하기엔 짧을 수 있어요. 로또는 랜덤이라 8주 성적이 실력인지 운인지 구분이 어렵습니다
- 메타 패턴이 실제로 효과가 있는지는 시간이 더 필요해요. 아직 몇 주밖에 안 돌렸으니까
- 통합 AI(5개 앙상블)가 개별 엔진보다 못한 경우가 여전히 있어요. 가중치 조정으로 개선될 수 있지만, "합치면 무조건 좋다"는 보장은 없습니다
"피드백을 시스템으로" — 이게 핵심이었다
매주 "이번 주 어떤 엔진이 잘했지?" 하고 수동으로 확인하는 건 일주일에 한 번이라 해도 귀찮아요. 이걸 시스템으로 만들어서 자동으로 돌아가게 한 게 핵심이었습니다.
AI한테 시킬 때 효과가 있었던 프롬프트 패턴:
AI도 매주 성적표를 받고 피드백을 받으면 개선됩니다. 사람이랑 같아요.