[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -2,91 +2,324 @@
|
||||
id: wiki-2026-0508-computational-creativity
|
||||
title: Computational Creativity
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
aliases: [computational creativity, AI creativity, generative AI, Margaret Boden, exploration vs exploitation]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [auto-consolidated, technical-documentation]
|
||||
source_trust_level: B
|
||||
confidence_score: 0.85
|
||||
verification_status: applied
|
||||
tags: [creativity, generative-ai, computational-creativity, boden, novelty-search, quality-diversity, art]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: psychology / AI
|
||||
applicable_to: [Generative AI, Game Design, Music Generation, Co-creation Tools]
|
||||
---
|
||||
|
||||
# [[Computational Creativity|Computational Creativity]]
|
||||
# Computational Creativity
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "기계에게 영감을 입력하다: 인간만의 성역으로 여겨졌던 '창의성'을 컴퓨터 코드와 확률 모델로 구현하여, AI가 스스로 새로운 예술적 학술적 가치를 가진 결과물을 생성하고 인간의 창의성을 확장하게 돕는 도전적 영역."
|
||||
## 매 한 줄
|
||||
> **"매 machine 의 inspiration"**. Margaret Boden 의 3 type (combinational + exploratory + transformational). 매 modern: 매 GAN, 매 diffusion, 매 LLM, 매 quality-diversity, 매 evolutionary. 매 imitation 의 X — 매 transformational 의 frontier.
|
||||
|
||||
---
|
||||
## 매 핵심
|
||||
|
||||
> "기계는 영감을 받을 수 있는가?: 인간의 고유 영역이라 믿었던 '창의성'을 알고리즘으로 모델링하여, AI가 단순히 학습데이터를 흉내 내는 수준을 넘어 새로운 규칙을 만들고 예술적 가치를 창출하게 만드는 지능의 최전선."
|
||||
### Margaret Boden's 3 type
|
||||
1. **Combinational**: 매 existing concept 의 새 combination.
|
||||
2. **Exploratory**: 매 concept space 의 frontier exploration.
|
||||
3. **Transformational**: 매 space rule 의 break — 매 새 paradigm.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
계산적 창의성(Computational Creativity)은 소프트웨어가 인간을 모방하거나 인간과 협업하여 창의적인 행위를 수행하도록 하는 연구 분야입니다.
|
||||
→ 매 LLM / Diffusion 의 most 의 #1 + #2. #3 의 still elusive.
|
||||
|
||||
1. **창의성의 3요소 (Margaret Boden)**:
|
||||
* **Combinational**: 기존 개념들의 새로운 조합.
|
||||
* **Exploratory**: 지식 공간 내부의 새로운 영역 탐색.
|
||||
* **Transformational**: 기존의 규칙 자체를 뒤집어 새로운 지형 생성.
|
||||
2. **왜 중요한가?**:
|
||||
* 단순 자동화를 넘어, 인간이 상상하지 못한 새로운 양식(Style)이나 전략을 발견하여 예술과 공학의 지평을 넓힘. (Arts와 연결)
|
||||
### 매 evaluation criteria
|
||||
- **Novelty**: 매 다른 가?
|
||||
- **Quality**: 매 좋 가?
|
||||
- **Surprise** (Bayesian): 매 expectation 의 violate?
|
||||
- **Value** (utility): 매 use 가능?
|
||||
|
||||
---
|
||||
→ 매 4 의 trade-off (novelty vs quality 의 typical).
|
||||
|
||||
계산적 창의성(Computational-Creativity)은 인공지능을 사용하여 창의적인 결과물을 생성하거나 인간의 창발적 사고 과정을 모델링하는 연구 분야입니다.
|
||||
### 매 method
|
||||
|
||||
1. **창의성의 3원칙 (Margaret Boden)**:
|
||||
* **Combinational**: 기존 요소들의 새로운 조합.
|
||||
* **Exploratory**: 개념 공간(Conceptual Space)의 경계까지 탐구.
|
||||
* **Transformational**: 공간의 규칙 자체를 변화시켜 이전에 불가능했던 것을 가능케 함.
|
||||
2. **왜 중요한가?**:
|
||||
* AI가 단순 도구(Tool)를 넘어 창의적 파트너(Co-creator)로 진화하며, 음악, 미술, 문학은 물론 과학적 가설 수립 및 신약 개발 등 혁신 전반에 기여하기 때문임. ([[Synergy|Synergy]]와 연결)
|
||||
#### Generative
|
||||
- **GAN**: 매 photoreal.
|
||||
- **VAE**: 매 latent control.
|
||||
- **Diffusion**: 매 modern (Stable, Flux).
|
||||
- **LLM**: 매 text, code.
|
||||
- **AutoEncoder**.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 기계의 창작물을 '데이터 짜깁기 정책'으로 폄하했으나, 현대 정책은 예술의 본질이 결과물 자체의 가치와 수용자의 해석 정책에 있음을 인정하고 AI를 '메타 창작자 정책'으로 수용함(RL Update).
|
||||
- **정책 변화(RL Update)**: 저작권 및 창작자 보호 정책 수립 시, AI 생성물에 대한 법적 지위 정책과 '인간의 기여도 측정 정책'이 새로운 산업 표준 정책으로 자리 잡고 있음.
|
||||
#### Search
|
||||
- **Genetic algorithm**.
|
||||
- **Simulated annealing**.
|
||||
- **MCTS**.
|
||||
- **Bayesian optimization**.
|
||||
|
||||
---
|
||||
#### Open-ended
|
||||
- **Novelty Search**: 매 "새로움 만" objective.
|
||||
- **MAP-Elites**: 매 quality-diversity.
|
||||
- **POET**: 매 endless challenge.
|
||||
|
||||
- **과거 데이터와의 충돌**: 과거에는 "결과물이 좋으면 창의적이다"라는 결과 중심 정책(Output-centric)이었으나, 현대 정책은 AI 가 그 결과를 내기까지의 '의도 정책'과 '과정 정책'을 어떻게 평가하고 피드백할 것인가 하는 가치 평가 정책(Evaluation)을 더 중시함(RL Update).
|
||||
- **정책 변화(RL Update)**: 생성형 AI (LLM, Diffusion) 정책의 폭발적 보급으로 인해, 이제는 기술적 생성 정책보다는 '인간의 예술적 권위 정책'과 'AI 의 창작권 정책'에 대한 철학적, 법적 논의 정책이 계산적 창의성의 핵심 어젠다가 됨.
|
||||
#### Hybrid
|
||||
- **Human-AI co-creation**.
|
||||
- **Critic + generator** (GAN-like).
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Arts|Arts]], [[Gen-AI|Gen-AI]], [[Aesthetic-Value|Aesthetic-Value]], [[Authenticity|Authenticity]], [[Style-Transfer|Style-Transfer]]
|
||||
- **Modern Tech/Tools**: Stable Diffusion, Suno/Udio (Music), Sora (Video), Copilot for coding.
|
||||
---
|
||||
### 매 응용
|
||||
|
||||
---
|
||||
#### Art
|
||||
- **Image**: Stable Diffusion, Midjourney.
|
||||
- **Music**: Suno, Udio, MusicGen.
|
||||
- **Video**: Sora, Veo, Runway.
|
||||
- **3D**: DreamFusion.
|
||||
|
||||
- [[Synergy|Synergy]], Deep Learning (DL), [[Representation-Learning|Representation-Learning]], [[Structuralism|Structuralism]], [[Search-Strategy|Search-Strategy]]
|
||||
- **Key Models**: GANs, [[Variational Autoencoders (VAE)|Variational Autoencoders (VAE)]], Genetic Algorithms.
|
||||
---
|
||||
#### Game
|
||||
- **PCG** (Procedural Content Generation).
|
||||
- **Level design**.
|
||||
- **NPC behavior**.
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
#### Science
|
||||
- **AlphaFold**: 매 protein design.
|
||||
- **Drug discovery**.
|
||||
- **Material design** (GNoME).
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
#### Engineering
|
||||
- **Topology optimization**.
|
||||
- **Architecture (building) generation**.
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
#### Code
|
||||
- **Copilot, Cursor**: 매 code completion.
|
||||
- **Aider, Cline**: 매 agentic generation.
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
### 매 philosophy debate
|
||||
- "Can machines truly be creative?"
|
||||
- 매 Strong vs Weak AI 의 connection.
|
||||
- 매 Searle's Chinese Room.
|
||||
- 매 attribution / authorship.
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
→ 매 Boden 의 implementation 가능, 매 transformational 의 hardest.
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
### 매 modern issue
|
||||
- **Authorship**: 매 AI 가 / 매 prompt 의 user 가.
|
||||
- **Training data**: 매 copyright (LAION lawsuit).
|
||||
- **Evaluation**: 매 subjective.
|
||||
- **Mode collapse**: 매 generic look.
|
||||
- **Slop**: 매 quantity > quality.
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
## 💻 패턴
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
### Novelty search (vs fitness-based)
|
||||
```python
|
||||
import numpy as np
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
class NoveltySearch:
|
||||
def __init__(self, k=15):
|
||||
self.archive = []
|
||||
self.k = k
|
||||
|
||||
def novelty(self, behavior):
|
||||
if not self.archive: return 1.0
|
||||
distances = [np.linalg.norm(behavior - b) for b in self.archive]
|
||||
return np.mean(sorted(distances)[:self.k])
|
||||
|
||||
def add(self, behavior):
|
||||
if self.novelty(behavior) > 0.5: # 매 threshold
|
||||
self.archive.append(behavior)
|
||||
|
||||
def select(self, candidates):
|
||||
# 매 select most novel — 매 not most fit
|
||||
return max(candidates, key=lambda c: self.novelty(c.behavior))
|
||||
```
|
||||
|
||||
### MAP-Elites (quality-diversity)
|
||||
```python
|
||||
from collections import defaultdict
|
||||
|
||||
def map_elites(generations=1000, mutate_fn=None, evaluate_fn=None, descriptor_fn=None, grid=10):
|
||||
archive = {} # 매 cell → (fitness, genome)
|
||||
|
||||
for gen in range(generations):
|
||||
if not archive:
|
||||
genome = random_genome()
|
||||
else:
|
||||
parent = random.choice(list(archive.values()))[1]
|
||||
genome = mutate_fn(parent)
|
||||
|
||||
fitness = evaluate_fn(genome)
|
||||
descriptor = descriptor_fn(genome)
|
||||
cell = tuple(int(d * grid) for d in descriptor)
|
||||
|
||||
if cell not in archive or archive[cell][0] < fitness:
|
||||
archive[cell] = (fitness, genome)
|
||||
|
||||
return archive # 매 grid 의 매 cell 의 best
|
||||
```
|
||||
|
||||
### Co-creation UI (LLM-aided)
|
||||
```ts
|
||||
function CoCreationCanvas({ prompt, onUpdate }) {
|
||||
return (
|
||||
<div>
|
||||
<textarea value={prompt} onChange={e => onUpdate(e.target.value)} />
|
||||
<div className="suggestions">
|
||||
{/* 매 LLM 의 매 alternative direction */}
|
||||
{alternatives.map(alt => (
|
||||
<button onClick={() => onUpdate(alt)}>
|
||||
{alt.description}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
<div className="generated">
|
||||
{/* 매 다양한 stage 의 generated content */}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### Diffusion + style mixing
|
||||
```python
|
||||
def style_combine(prompt_a, prompt_b, mix_ratio=0.5, n_steps=30):
|
||||
"""매 두 prompt 의 latent 의 mix → 매 combinational creativity."""
|
||||
text_emb_a = text_encoder(prompt_a)
|
||||
text_emb_b = text_encoder(prompt_b)
|
||||
|
||||
mixed = mix_ratio * text_emb_a + (1 - mix_ratio) * text_emb_b
|
||||
|
||||
image = diffusion_pipe(prompt_embeds=mixed, num_inference_steps=n_steps).images[0]
|
||||
return image
|
||||
```
|
||||
|
||||
### Music generation (MusicGen)
|
||||
```python
|
||||
from audiocraft.models import MusicGen
|
||||
|
||||
model = MusicGen.get_pretrained('facebook/musicgen-large')
|
||||
model.set_generation_params(duration=30)
|
||||
|
||||
descriptions = ['hip hop with energetic drums', 'ambient piano with rain']
|
||||
wav = model.generate(descriptions)
|
||||
```
|
||||
|
||||
### PCG (procedural game level)
|
||||
```python
|
||||
def generate_level(theme, difficulty, seed=None):
|
||||
"""매 cellular automata + 매 ML constraint."""
|
||||
rng = np.random.default_rng(seed)
|
||||
|
||||
# 매 base CA
|
||||
grid = rng.choice([0, 1], size=(50, 50), p=[0.55, 0.45])
|
||||
for _ in range(5):
|
||||
grid = ca_smooth(grid)
|
||||
|
||||
# 매 difficulty constraint
|
||||
if difficulty == 'hard':
|
||||
grid = add_obstacles(grid, density=0.1)
|
||||
|
||||
# 매 theme 의 ML refine
|
||||
grid = theme_model(grid, theme)
|
||||
|
||||
return grid
|
||||
```
|
||||
|
||||
### Critic-guided generation
|
||||
```python
|
||||
def critic_guided(generator, critic, prompt, n_iters=5):
|
||||
"""매 GAN-like — 매 generator + 매 critic 의 loop."""
|
||||
candidate = generator.generate(prompt)
|
||||
|
||||
for i in range(n_iters):
|
||||
critique = critic.evaluate(candidate, criteria=['novelty', 'quality', 'on-prompt'])
|
||||
if all(c.score > 0.7 for c in critique): break
|
||||
candidate = generator.refine(prompt, candidate, critique)
|
||||
|
||||
return candidate
|
||||
```
|
||||
|
||||
### POET (open-ended evolution)
|
||||
```python
|
||||
class POET:
|
||||
"""매 open-ended challenge generation + 매 agent evolution."""
|
||||
def __init__(self):
|
||||
self.environments = []
|
||||
self.agents = []
|
||||
|
||||
def step(self):
|
||||
# 매 1. 매 mutate environment (challenge)
|
||||
new_env = mutate_env(random.choice(self.environments))
|
||||
if not too_easy(new_env) and not too_hard(new_env):
|
||||
self.environments.append(new_env)
|
||||
|
||||
# 매 2. 매 mutate agent
|
||||
for env in self.environments:
|
||||
for agent in self.agents:
|
||||
if not agent.solved(env):
|
||||
agent.train_on(env)
|
||||
|
||||
# 매 3. 매 transfer (agent A 의 env B 의 try)
|
||||
for agent in self.agents:
|
||||
for env in self.environments:
|
||||
if agent.solves(env):
|
||||
record_solver(agent, env)
|
||||
```
|
||||
|
||||
### Authorship / attribution
|
||||
```python
|
||||
def attribute_authorship(work, generation_log):
|
||||
return {
|
||||
'human_contribution': {
|
||||
'prompts': generation_log.prompts,
|
||||
'curation_decisions': generation_log.selections,
|
||||
'manual_edits': generation_log.manual_edits,
|
||||
},
|
||||
'ai_contribution': {
|
||||
'model': generation_log.model_version,
|
||||
'generation_count': generation_log.total_generations,
|
||||
'auto_decisions': generation_log.auto_choices,
|
||||
},
|
||||
'attribution': 'human-led (prompt + curate + edit)' if
|
||||
len(generation_log.manual_edits) > 5 else 'AI-generated, human-curated',
|
||||
}
|
||||
```
|
||||
|
||||
## 🤔 결정 기준
|
||||
| 목적 | Approach |
|
||||
|---|---|
|
||||
| Image | Diffusion (SD, Flux, MJ) |
|
||||
| Music | MusicGen / Suno |
|
||||
| Code | LLM (Cursor, Copilot) |
|
||||
| Game level | PCG + ML |
|
||||
| Drug | AlphaFold + RFdiffusion |
|
||||
| Open-ended | POET / MAP-Elites |
|
||||
| Co-creation | LLM + human |
|
||||
| Transformational | 매 still hard |
|
||||
|
||||
**기본값**: 매 task-specific generative + 매 human curation + 매 attribution.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[AI]] · [[Creativity]] · [[Generative-Models]]
|
||||
- 변형: [[Boden-Three-Types]] · [[Novelty-Search]] · [[Quality-Diversity]] · [[POET]]
|
||||
- 응용: [[Stable-Diffusion]] · [[MusicGen]] · [[Sora]] · [[AlphaFold]] · [[PCG]]
|
||||
- Adjacent: [[Authenticity]] · [[Arts]] · [[Artificial-Life]] · [[Beckett]] (creative AI metaphor)
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: 매 generative system design. 매 co-creation tool. 매 PCG. 매 art / music / writing.
|
||||
**언제 X**: 매 deterministic task. 매 fact-based.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Imitation 만**: 매 transformational 의 X.
|
||||
- **Mode collapse**: 매 single style.
|
||||
- **No human curate**: 매 slop.
|
||||
- **No attribution**: 매 ethics.
|
||||
- **Single objective (fitness only)**: 매 novelty 의 lose.
|
||||
- **Copyright 무시**: 매 lawsuit risk.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (Boden "Creative Mind", Stanley novelty search, MAP-Elites, ALife conferences).
|
||||
- 신뢰도 B.
|
||||
- Related: [[Arts]] · [[Authenticity]] · [[Artificial-Life]] · [[Stable-Diffusion]] · [[Best-of-N_Sampling]].
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — Boden 3 + 매 novelty search / MAP-Elites / POET / co-creation code |
|
||||
|
||||
Reference in New Issue
Block a user