Neural Darwinism은 Gerald Edelman(1987)이 제안한 이론으로, 뇌 발달과 학습이 유전 프로그램이 아니라 신경 회로 변이체(variant repertoires)에 대한 선택(Darwinian selection) 과정을 통해 진행된다고 보는 관점이다.
핵심
세 가지 원리 (Edelman의 TNGS)
발달 선택 (Developmental Selection): 배아·초기 발달 시기에 시냅스 연결의 다양한 변이체가 형성되고, 활동에 따라 일부가 살아남는다 → "primary repertoire".
경험 선택 (Experiential Selection): 출생 후 환경 자극에 따라 시냅스 강도가 변하여 특정 회로 패턴이 강화/약화된다 → "secondary repertoire".
재진입(Reentry): 분리된 뇌 영역들이 양방향 신호 교환으로 동기화되어 통합된 의식·지각을 형성. (Edelman의 consciousness 가설 핵심.)
핵심 단위: Neuronal Group
단일 뉴런이 아니라 50–10,000개로 묶인 neural group이 선택 단위.
변이 → 선택 → 차등 증식의 다윈적 알고리즘이 신경계에 적용된다는 주장.
학습 모델 (Darwin 시리즈 로봇)
Edelman 그룹은 Darwin I~XI 자동기를 만들어 시뮬레이션 / 임바디드 실험 수행.
Hebbian + value system + reentry 결합한 신경 시뮬레이터.
의식 이론과의 연결
The Remembered Present (1989), A Universe of Consciousness (Edelman & Tononi 2000).
1차 의식 (현재의 통합 장면) vs. 고차 의식 (언어·자기) 구분.
Tononi의 IIT(Integrated Information Theory)로 후속 발전.
비판: Crick("neural Edelmanism", 1989)은 진정한 변이/유전이 없으므로 다윈주의가 아니라고 일축.
그러나 value-driven learning, reentry 같은 개념은 현대 predictive coding / global workspace 이론에 영향.
AI/ML 연결
Evolutionary algorithms, neuroevolution(NEAT), neural architecture search와 정신적 유사성.
그러나 직접적 알고리즘 영향은 제한적 — 대부분 비유.
💻 패턴 (이론 모델 / 시뮬레이션)
# 1. Neural group 선택 시뮬레이션 — 단순화 버전importnumpyasnpclassNeuralGroup:def__init__(self,n_neurons=100):self.weights=np.random.randn(n_neurons,n_neurons)*0.1self.activity=np.zeros(n_neurons)self.value=0.0# value system signalgroups=[NeuralGroup()for_inrange(50)]# primary repertoire
# 2. 경험 선택 — Hebbian + value reinforcementdefexperiential_select(group,stimulus,value_signal,lr=0.01):group.activity=np.tanh(group.weights@stimulus)# Hebb: 함께 발화한 시냅스 강화, value가 양수일 때만ifvalue_signal>0:group.weights+=lr*value_signal*np.outer(group.activity,stimulus)
# 3. Reentry — 두 영역 간 양방향 동기화defreentrant_signal(group_a,group_b):# 양방향 메시지 교환, 반복 안정화for_inrange(5):a_to_b=group_a.activity@W_abb_to_a=group_b.activity@W_bagroup_b.activity=np.tanh(group_b.activity+a_to_b)group_a.activity=np.tanh(group_a.activity+b_to_a)
# 4. 발달 가지치기 (synaptic pruning) 시뮬레이션defprune(group,threshold=0.05):mask=np.abs(group.weights)>thresholdgroup.weights*=mask# 약한 시냅스 제거
# 5. Value system — 도파민 유사 신호classValueSystem:def__init__(self):self.baseline=0.0defevaluate(self,outcome,expected):returnoutcome-expected# reward prediction error 유사
# 6. 변이 + 선택 사이클 (Darwin-like loop)defdarwinian_cycle(groups,env,generations=100):forginrange(generations):scores=[run_in_env(grp,env)forgrpingroups]# 상위 50% 선택, 변이로 새 groups 생성survivors=[grpfor_,grpinsorted(zip(scores,groups),reverse=True)][:25]offspring=[mutate(grp)forgrpinsurvivors]groups=survivors+offspringreturngroups
# 7. NEAT (neuroevolution) — Edelman과 정신적 유사# neat-python으로 위상 + 가중치 동시 진화