π§ Hebbian Learning: λ΄λ°μ μλ¦¬λ‘ κ΅¬ννλ μ°¨μΈλ AI
1. μλ‘ : μλ μ€ κ°μμ±μ μνμ μΉν
1949λ λλλ ν΅(Donald Hebb)μ΄ μ μν Hebbian Learningμ νλ μ κ²½κ³Όνκ³Ό μΈκ³΅μ§λ₯μ κ°κ΅μ λλ€. ν΅μ¬ μ리λ κ°κ²°ν©λλ€. "ν¨κ» λ°ννλ λ΄λ°μ μλ‘ μ°κ²°λλ€."
μ΄κ²μ AIκ° μ λ΅(Label) μμ΄λ λ°μ΄ν° κ°μ μκ΄κ΄κ³λ₯Ό μ€μ€λ‘ νμ΅νλ λΉμ§λ νμ΅(Unsupervised Learning)μ λͺ¨νκ° λμμ΅λλ€. νΉν μ΅κ·Όμλ GPU μ λ ₯ μλͺ¨λ₯Ό μ€μ΄κΈ° μν λ΄λ‘λͺ¨ν½ μΉ©(Neuromorphic Chip)μ ν΅μ¬ νμ΅ μκ³ λ¦¬μ¦μΌλ‘ λ€μκΈ μ£Όλͺ©λ°κ³ μμ΅λλ€.
2. μκ³ λ¦¬μ¦: λ¨μ κ·μΉμμ Oja's RuleκΉμ§
κΈ°λ³Έ μμ (Basic Rule)
Ξwij = Ξ· Β· xi Β· xj
μ λ ₯($x_i$)κ³Ό μΆλ ₯($x_j$)μ΄ λμμ νμ±νλ λ κ°μ€μΉ($w$)λ₯Ό κ°νν©λλ€. νμ§λ§ μ΄ λ°©μμ κ°μ€μΉκ° 무νλλ‘ λ°μ°ν μνμ΄ μμ΅λλ€.
μμ ν: Oja's Rule
κ°μ€μΉμ ν¬κΈ°κ° 1μ΄ λλλ‘ μ κ·ν(Normalization) νμ μΆκ°νμ¬ νμ΅μ μμ μ±(Stability)μ ν보ν λ°©μμ λλ€. μ£Όμ±λΆ λΆμ(PCA)κ³Ό μνμ μΌλ‘ λμΌν ν¨κ³Όλ₯Ό λ λλ€.
3. ꡬν: Python (NumPy) μ½λ
Oja's Ruleμ μ μ©νμ¬ λ°μ°νμ§ μλ Hebbian Updateλ₯Ό ꡬνν μμ μ λλ€.
import numpy as np def hebbian_update(weights, x, lr=0.01): """ weights: μλ μ€ κ°μ€μΉ νλ ¬ (N x M) x: μ λ ₯ λ²‘ν° (M,) """ # 1. Feed Forward (μ ν μΆλ ₯ κ³μ°) y = np.dot(weights, x) # 2. Oja's Rule (κ°μ€μΉ λ°μ° λ°©μ§) # Ξw = Ξ· * y * (x - y * w) y_expanded = y[:, np.newaxis] # Shape λ§μΆκΈ° delta_w = lr * y_expanded * (x - np.dot(y_expanded, weights)) return weights + delta_w
4. 2026 μ λ§: μμ ν(Backprop)μ λμ?
νμ¬ λ₯λ¬λμ νμ€μΈ μμ ν(Backpropagation)λ μ±λ₯μ λ°μ΄λμ§λ§, μ 체 λ€νΈμν¬μ μλ¬λ₯Ό κ³μ°ν΄μΌ νλ―λ‘ λ©λͺ¨λ¦¬μ μ°μ° λΉμ©μ΄ λ§λν©λλ€.
- Local Learning: ν΅ νμ΅μ κ° λ΄λ°μ΄ μμ μ μ μΆλ ₯λ§ λ³΄κ³ κ°μ€μΉλ₯Ό μ λ°μ΄νΈν©λλ€. μ΄λ λ³λ ¬ μ²λ¦¬μ κ·Ήλλ‘ μ 리ν©λλ€.
- Explainable AI (XAI): μ΄λ€ μ λ ₯ ν¨ν΄μ΄ μ΄λ€ λ΄λ°μ νμ±ννλμ§ μΆμ νκΈ° μ¬μ, λͺ¨λΈμ ν¬λͺ μ±μ λμ΄λ λ° κΈ°μ¬ν©λλ€.
π‘ Tech Leader's Insight
"νμ΄λΈλ¦¬λ μν€ν μ²μ μ£Όλͺ©νμμμ€."
μμν Hebbian Learningλ§μΌλ‘λ 볡μ‘ν λΆλ₯ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μ΄λ ΅μ΅λλ€. νμ§λ§ CNNμ νν° νμ΅ μ΄κΈ°ν(Initialization) λ¨κ³λ, **μκΈ° μ§λ νμ΅(Self-Supervised Learning)**μ μ¬μ νμ΅(Pre-training) λ¨κ³μ ν΅ κ·μΉμ μ μ©νλ©΄ νμ΅ μλλ₯Ό 30% μ΄μ κ°μνν μ μμ΅λλ€. μ£μ§ λλ°μ΄μ€μ© AIλ₯Ό κ°λ°νλ€λ©΄ λ°λμ κ²ν ν΄μΌ ν κΈ°μ μ λλ€.