f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
290 lines
9.0 KiB
Markdown
290 lines
9.0 KiB
Markdown
---
|
|
id: wiki-2026-0508-cybernetics
|
|
title: Cybernetics Foundations
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [cybernetics, Norbert Wiener, feedback loop, homeostasis, control theory, second-order cybernetics, autopoiesis]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.88
|
|
verification_status: applied
|
|
tags: [cybernetics, systems-thinking, control-theory, feedback, homeostasis, ai-history, wiener, ashby]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack:
|
|
language: systems theory
|
|
applicable_to: [Multi-agent Design, Control Systems, AI Architecture]
|
|
---
|
|
|
|
# Cybernetics
|
|
|
|
## 매 한 줄
|
|
> **"매 living + 매 machine 의 control + communication 의 universal"**. Norbert Wiener (1948). 매 feedback loop + homeostasis + 매 information transmission. 매 AI / robotics / biology / sociology 의 cross-disciplinary roots. 매 modern: 매 multi-agent system + 매 control + 매 active inference.
|
|
|
|
## 매 핵심
|
|
|
|
### Wiener (1st-order cybernetics)
|
|
- 매 system 의 observe.
|
|
- 매 input → process → output → feedback.
|
|
- 매 negative feedback 의 stabilize.
|
|
- 매 positive feedback 의 amplify / explode.
|
|
|
|
### 2nd-order cybernetics (Foerster, Maturana)
|
|
- 매 observer 의 part of system.
|
|
- 매 self-reference.
|
|
- 매 autopoiesis (self-creating).
|
|
|
|
### 매 핵심 concept
|
|
|
|
#### Feedback Loop
|
|
- **Negative**: 매 thermostat, 매 homeostasis.
|
|
- **Positive**: 매 microphone feedback, 매 viral growth.
|
|
|
|
#### Homeostasis
|
|
- 매 internal state 의 stable.
|
|
- 매 perturbation 의 counter.
|
|
- 매 biological + 매 artificial.
|
|
|
|
#### Black Box
|
|
- 매 internal X — 매 I/O 만.
|
|
- 매 abstraction principle.
|
|
|
|
#### Variety (Ashby's Law)
|
|
- 매 controller 의 variety ≥ disturbance 의 variety.
|
|
- 매 system 의 control 의 limit.
|
|
|
|
#### Requisite Variety
|
|
- 매 system 의 manage 의 environment 의 capable variety.
|
|
|
|
### 매 history
|
|
- 1948 Wiener "Cybernetics".
|
|
- 1956 Dartmouth (AI 이름).
|
|
- Macy Conferences (1946-1953): cyber + systems.
|
|
- 2nd-order: Heinz von Foerster, Maturana-Varela.
|
|
- Decline (1970s): AI vs Cybernetics 의 split.
|
|
- Revival (2000s+): control + agent + autopoiesis.
|
|
|
|
### 매 modern relevance
|
|
|
|
#### Control theory
|
|
- PID, MPC, optimal control.
|
|
- Robotics: 매 closed-loop.
|
|
- 매 autonomous vehicle.
|
|
|
|
#### Multi-agent system
|
|
- 매 distributed control.
|
|
- 매 swarm.
|
|
|
|
#### Active inference (Friston)
|
|
- 매 free energy minimization.
|
|
- 매 cybernetic + Bayesian.
|
|
- [[Bayesian-Brain-Hypothesis]] 참조.
|
|
|
|
#### Organizational
|
|
- 매 systems thinking (Senge "Fifth Discipline").
|
|
- 매 viable system model (Beer).
|
|
|
|
#### AI alignment
|
|
- 매 reward hacking 의 cybernetic 의 lens.
|
|
- 매 unintended feedback.
|
|
|
|
### 매 응용
|
|
1. **Thermostat / HVAC**: 매 simplest.
|
|
2. **Robotics**: 매 control.
|
|
3. **Biology**: 매 endocrine / neural.
|
|
4. **Economics**: 매 supply-demand.
|
|
5. **Organization**: 매 managed system.
|
|
6. **AI agent**: 매 action + observation loop.
|
|
|
|
## 💻 패턴
|
|
|
|
### PID Controller (classic feedback)
|
|
```python
|
|
class PID:
|
|
def __init__(self, kp=1.0, ki=0.1, kd=0.05):
|
|
self.kp, self.ki, self.kd = kp, ki, kd
|
|
self.integral = 0
|
|
self.prev_error = 0
|
|
|
|
def update(self, target, current, dt):
|
|
error = target - current
|
|
self.integral += error * dt
|
|
derivative = (error - self.prev_error) / dt
|
|
|
|
output = self.kp * error + self.ki * self.integral + self.kd * derivative
|
|
self.prev_error = error
|
|
return output
|
|
|
|
# 매 example: 매 thermostat
|
|
pid = PID()
|
|
while True:
|
|
error_correction = pid.update(target_temp=22, current=sensor.read(), dt=1.0)
|
|
heater.set_power(error_correction)
|
|
sleep(1)
|
|
```
|
|
|
|
### Negative feedback (homeostasis)
|
|
```python
|
|
class Homeostat:
|
|
def __init__(self, target):
|
|
self.target = target
|
|
self.state = target
|
|
|
|
def perturbate(self, disturbance):
|
|
self.state += disturbance
|
|
|
|
def regulate(self, gain=0.1):
|
|
# 매 negative feedback 의 self-correct
|
|
error = self.target - self.state
|
|
self.state += gain * error
|
|
|
|
# 매 simulate
|
|
h = Homeostat(target=37) # 매 body temp
|
|
for _ in range(100):
|
|
h.perturbate(random.gauss(0, 1)) # 매 environment
|
|
h.regulate()
|
|
print(h.state) # 매 ~37
|
|
```
|
|
|
|
### Positive feedback (caution)
|
|
```python
|
|
def viral_growth(initial, gain, steps):
|
|
"""매 positive feedback — 매 amplify."""
|
|
state = initial
|
|
for _ in range(steps):
|
|
state *= (1 + gain)
|
|
if state > LIMIT: break # 매 saturation needed
|
|
return state
|
|
```
|
|
|
|
### Ashby's Law check
|
|
```python
|
|
def can_control(controller_variety, disturbance_variety):
|
|
"""매 'Only variety can destroy variety.'"""
|
|
return controller_variety >= disturbance_variety
|
|
|
|
# 매 example: 매 thermostat 의 매 1 mode 만 → 매 매 disturbance 매 multiple 의 fail
|
|
print(can_control(1, 5)) # False
|
|
print(can_control(10, 5)) # True
|
|
```
|
|
|
|
### Black Box (system identification)
|
|
```python
|
|
import numpy as np
|
|
|
|
def identify_black_box(system_fn, n_samples=100):
|
|
"""매 input-output 의 model 의 fit."""
|
|
X = np.random.randn(n_samples, INPUT_DIM)
|
|
Y = np.array([system_fn(x) for x in X])
|
|
|
|
from sklearn.linear_model import LinearRegression
|
|
model = LinearRegression().fit(X, Y)
|
|
return model # 매 estimated transfer function
|
|
```
|
|
|
|
### Active inference (Friston-style)
|
|
```python
|
|
def active_inference(belief, world_model, possible_actions):
|
|
"""매 minimize expected free energy."""
|
|
best_action, best_efe = None, float('inf')
|
|
for a in possible_actions:
|
|
next_belief = world_model.predict(belief, a)
|
|
# 매 epistemic value
|
|
info_gain = expected_kl(next_belief, belief)
|
|
# 매 pragmatic value
|
|
pragmatic = expected_log_preference(next_belief)
|
|
efe = -info_gain - pragmatic
|
|
if efe < best_efe:
|
|
best_efe, best_action = efe, a
|
|
return best_action
|
|
```
|
|
|
|
### MPC (Model Predictive Control)
|
|
```python
|
|
import cvxpy as cp
|
|
|
|
def mpc_step(x_current, x_target, horizon=10):
|
|
x = cp.Variable((horizon + 1, STATE_DIM))
|
|
u = cp.Variable((horizon, ACTION_DIM))
|
|
|
|
cost = 0
|
|
constraints = [x[0] == x_current]
|
|
for t in range(horizon):
|
|
cost += cp.sum_squares(x[t+1] - x_target) + 0.1 * cp.sum_squares(u[t])
|
|
constraints += [x[t+1] == A @ x[t] + B @ u[t]]
|
|
constraints += [cp.abs(u[t]) <= U_MAX]
|
|
|
|
cp.Problem(cp.Minimize(cost), constraints).solve()
|
|
return u[0].value
|
|
```
|
|
|
|
### Multi-agent feedback (consensus)
|
|
```python
|
|
def consensus_step(agents, alpha=0.1):
|
|
"""매 distributed averaging."""
|
|
new_states = []
|
|
for a in agents:
|
|
avg_neighbor = mean(n.state for n in a.neighbors)
|
|
new_states.append(a.state + alpha * (avg_neighbor - a.state))
|
|
for a, ns in zip(agents, new_states):
|
|
a.state = ns
|
|
|
|
# 매 매 step 의 모두 의 average 의 converge.
|
|
```
|
|
|
|
### Reward hacking detection (cybernetic perspective)
|
|
```python
|
|
def detect_reward_hacking(agent_trajectory, true_objective):
|
|
"""매 unintended feedback 의 detect."""
|
|
declared_reward = sum(t.reward for t in agent_trajectory)
|
|
actual_progress = measure_against_intent(agent_trajectory, true_objective)
|
|
|
|
if declared_reward > 0.9 * MAX_DECLARED and actual_progress < 0.5:
|
|
return 'WARN: reward hacking — 매 metric 의 game'
|
|
return 'OK'
|
|
```
|
|
|
|
## 🤔 결정 기준
|
|
| 응용 | Approach |
|
|
|---|---|
|
|
| Setpoint regulation | PID |
|
|
| Multi-state control | MPC |
|
|
| Distributed | Consensus protocol |
|
|
| Homeostatic system | Negative feedback |
|
|
| Growth (controlled) | Positive feedback + saturation |
|
|
| Multi-agent | Active inference / consensus |
|
|
| AI alignment | Reward hacking detection |
|
|
|
|
**기본값**: PID 의 baseline. 매 model-aware = MPC. 매 multi-agent = active inference.
|
|
|
|
## 🔗 Graph
|
|
- 부모: [[Systems-Theory]] · [[Control-Theory]] · [[Multi-agent-System|Multi-Agent-Systems]]
|
|
- 변형: [[Feedback-Loop]] · [[Homeostasis (항상성)|Homeostasis]] · [[Autopoiesis]]
|
|
- 사상가: [[Norbert-Wiener]]
|
|
- 응용: [[PID]] · [[MPC]] · [[Active-Inference]] · [[Bayesian-Brain-Hypothesis]]
|
|
- Adjacent: [[Antifragility]] · [[Artificial-Life]] · [[Biological-Intelligence]] · [[Anarchism]]
|
|
|
|
## 🤖 LLM 활용
|
|
**언제**: 매 control system. 매 multi-agent. 매 active inference. 매 cybernetic / systems thinking.
|
|
**언제 X**: 매 specific math (control theory 의 textbook). 매 single-step decision.
|
|
|
|
## ❌ 안티패턴
|
|
- **Open-loop control**: 매 perturbation 의 ignore.
|
|
- **Variety mismatch (Ashby)**: 매 controller 의 weak.
|
|
- **Positive feedback 의 unbounded**: 매 explosion.
|
|
- **Reward hacking 의 ignore**: 매 unintended.
|
|
- **2nd-order observer 의 X**: 매 self-reference 의 limit.
|
|
|
|
## 🧪 검증 / 중복
|
|
- Verified (Wiener "Cybernetics", Ashby "Introduction to Cybernetics", Friston FEP).
|
|
- 신뢰도 A.
|
|
- Related: [[Bayesian-Brain-Hypothesis]] · [[Antifragility]] · [[Multi-agent-System|Multi-Agent-Systems]] · [[Anarchism]] · [[Computational-Neuroscience-RL]].
|
|
|
|
## 🕓 Changelog
|
|
| 날짜 | 변경 |
|
|
|---|---|
|
|
| 2026-05-08 | Phase 1 |
|
|
| 2026-05-10 | Manual cleanup — Wiener + 2nd-order + Ashby + 매 PID / MPC / consensus / active inference code |
|