Hebb’s Law
“เซลล์ประสาทที่ทำงานพร้อมกัน จะเชื่อมโยงเข้าด้วยกัน”
ใจความสำคัญ
หัวข้อที่มีชื่อว่า “ใจความสำคัญ”Hebb’s Law เป็นหลักการพื้นฐานในประสาทวิทยา เสนอโดย Donald Hebb ในหนังสือ The Organization of Behavior (1949) ข้อความต้นฉบับของ Hebb ยาวและเจาะจงกว่าที่คนทั่วไปจำกันว่า
“When an axon of cell A is near enough to excite a cell B and repeatedly or persistently takes part in firing it, some growth process or metabolic change takes place in one or both cells such that A’s efficiency, as one of the cells firing B, is increased”
จุดที่มักถูกมองข้ามคือ Hebb เน้นเรื่อง ลำดับเวลา — เซลล์ A ต้องยิงสัญญาณ ก่อน เซลล์ B ซ้ำ ๆ ไม่ใช่แค่ยิงพร้อมกันเฉย ๆ วลีที่คนจดจำกันติดปาก “cells that fire together, wire together” (บางแหล่งใช้ “neurons that fire together, wire together”) จริง ๆ แล้วไม่ใช่คำพูดของ Hebb เอง แต่เป็นการสรุปของนักประสาทวิทยา Carla Shatz ในปี 1992 ซึ่งทำให้เข้าใจง่ายขึ้นแต่ก็ตัดรายละเอียดเรื่องลำดับเวลาออกไป
แก่นของกฎคือ ประสิทธิภาพการส่งสัญญาณระหว่างเซลล์ประสาทสองเซลล์จะเพิ่มขึ้นเมื่อถูกกระตุ้นร่วมกันซ้ำ ๆ กลไกทางชีวภาพเบื้องหลังเรียกว่า long-term potentiation (LTP) — งานของ Eric Kandel บนหอยทะเล Aplysia californica ให้หลักฐานเชิงทดลองว่า LTP ร่วมกับกลไก presynaptic facilitation เป็นพื้นฐานของการเรียนรู้แบบมีเงื่อนไข (classical conditioning) นี่คือรากฐานทางชีวภาพของ “ความเคยชิน” ทุกชนิด ตั้งแต่การเรียนรู้ภาษาไปจนถึงการฝึกฝนทักษะ
ความหมายและนัยยะ
หัวข้อที่มีชื่อว่า “ความหมายและนัยยะ”Hebb’s Law มีสองเส้นทางที่ส่งอิทธิพลต่อวงการซอฟต์แวร์อย่างชัดเจน
เส้นทางที่หนึ่ง — เป็นรากฐานคณิตศาสตร์ของ artificial neural networks กฎการอัปเดตน้ำหนักแบบ Hebbian ถูกนำไปใช้ตรง ๆ ใน Hopfield network ซึ่งเป็น model associative memory ยุคแรก ๆ สูตรคือ w_ij = (1/N) * Σ ξ_i^μ ξ_j^μ — น้ำหนักการเชื่อมต่อระหว่างนิวรอนสองตัวจะถูกเสริมแรงตามความสัมพันธ์ (correlation) ของการกระตุ้นในแต่ละ pattern ที่บันทึกไว้ คุณสมบัติสำคัญของกฎนี้คือ local (น้ำหนักขึ้นกับสถานะของสองปลายทางเชื่อมต่อเท่านั้น), incremental (เรียนรู้ pattern ใหม่ได้โดยไม่ต้องอ้างอิงของเก่า) และ immediate (คำนวณเสร็จในจำนวนขั้นตอนจำกัด) แนวคิดนี้เป็นแรงบันดาลใจตั้งต้นให้กับ connectionism และ unsupervised learning ก่อนที่ backpropagation จะกลายเป็นวิธีฝึก deep network หลักในยุคหลัง
เส้นทางที่สอง — เป็นอุปมาสำหรับ “นิสัย” และ “ทักษะ” ในงานวิศวกรรมซอฟต์แวร์ เพราะกลไกเดียวกันที่ทำให้ synapse แข็งแรงขึ้นจากการยิงซ้ำ ก็คือกลไกที่ทำให้ deliberate practice ได้ผล — งานวิจัยชี้ว่า motor skills ง่าย ๆ แสดงผลของการเสริมแรงเส้นทางประสาทได้ภายใน 2-4 สัปดาห์ ส่วนรูปแบบพฤติกรรมหรือความคิดที่ซับซ้อนกว่าอาจต้องฝึกซ้ำ 2-6 เดือน และการนอนหลับระหว่างรอบฝึกมีบทบาทสำคัญในการทำให้การเชื่อมต่อใหม่มั่นคง (consolidation) ทีมวิศวกรที่ทำ ritual ซ้ำ ๆ ร่วมกัน — pairing, code review, retro — กำลังทำสิ่งเดียวกันกับที่ synapse ทำ: กิจกรรมที่เกิดร่วมกันซ้ำ ๆ จะ “เชื่อม” เป็นนิสัยหรือ convention ของทีม ไม่ว่านิสัยนั้นจะดีหรือไม่ก็ตาม
ตัวอย่างในโลกจริง
หัวข้อที่มีชื่อว่า “ตัวอย่างในโลกจริง”- Hopfield networks และ associative memory — นี่คือการใช้ Hebb’s Law แบบตรงตัวที่สุดในซอฟต์แวร์ เครือข่ายจะจดจำ pattern โดยปรับน้ำหนักตาม correlation ของการกระตุ้นนิวรอนคู่ ๆ เมื่อได้รับ input ที่เป็น pattern บางส่วนหรือมี noise เครือข่ายจะ “คืนค่า” pattern เต็มที่เคยเรียนรู้ไว้ได้ — เป็นต้นแบบทางคณิตศาสตร์ของ model self-organizing และ embedding รุ่นหลัง
- Test-Driven Development และ Red-Green-Refactor — การทำ TDD ซ้ำ ๆ (เขียน test ที่ fail → เขียน code ให้ผ่าน → refactor) คือการฝึกให้ “การเขียน test ก่อน code” กับ “ความมั่นใจในการ refactor” เกิดร่วมกันซ้ำจนกลายเป็นปฏิกิริยาอัตโนมัติของนักพัฒนา — เมื่อทำจนเป็น muscle memory การข้ามขั้นตอนใดขั้นตอนหนึ่งจะรู้สึก “ผิดที่” ทันที
- Pair/Mob Programming — เมื่อนักพัฒนาสองคนขึ้นไปทำงานพร้อมกันบนปัญหาเดียวกันซ้ำ ๆ ความคิดของทั้งคู่จะ “co-activate” บ่อยครั้งพอที่คำศัพท์ แนวคิด และวิธีแก้ปัญหาจะกลายเป็นภาษากลางของทีม ผลลัพธ์คือทีมที่สื่อสารกันได้เร็วขึ้นในระยะยาว — ปรากฏการณ์เดียวกันนี้อธิบายว่าทำไมโครงสร้างการสื่อสารของทีมมักสะท้อนออกมาเป็นโครงสร้างของระบบ (ดู Conway’s Law)
- Code review ที่ทำซ้ำอย่างสม่ำเสมอ — เมื่อ reviewer เตือนเรื่อง naming convention หรือรูปแบบเดิม ๆ ซ้ำ ๆ ทุกสัปดาห์ ทีมจะซึมซับรูปแบบนั้นจนกลายเป็นค่าเริ่มต้นโดยไม่ต้องเตือนอีกต่อไป — นี่คือ Hebb’s Law ในระดับวัฒนธรรมทีม
- ด้านตรงข้าม: การเสริมแรง anti-pattern — ถ้าทีมแก้ bug ด้วยการแปะ patch เฉพาะหน้าซ้ำ ๆ โดยไม่มีใครทักท้วง พฤติกรรมนั้นก็จะ “wire” เข้าเป็นวิธีทำงานปกติเช่นกัน — Hebb’s Law ไม่แยกแยะว่าสิ่งที่ถูกเสริมแรงคือของดีหรือของแย่
บทเรียนที่นำไปใช้
หัวข้อที่มีชื่อว่า “บทเรียนที่นำไปใช้”- ออกแบบการฝึกซ้ำโดยตั้งใจ — ถ้าอยากให้ทีมมีนิสัยที่ดี (เขียน test ก่อน, รีวิว code อย่างสม่ำเสมอ, deploy บ่อย ๆ ด้วยขั้นตอนเดิม) ต้องออกแบบให้กิจกรรมเหล่านั้นเกิดซ้ำอย่างสม่ำเสมอและมีผลตอบรับที่ชัดเจน ไม่ใช่หวังให้เกิดขึ้นเอง
- ระวังการเสริมแรงสิ่งที่ไม่อยากได้ — technical debt, hack เฉพาะหน้า หรือ workaround ที่ไม่มีใครท้วงติง จะถูกเสริมแรงด้วยกลไกเดียวกัน จนกลายเป็น “ธรรมเนียม” ของทีมโดยไม่มีใครตั้งใจ การหยุดวงจรนี้ต้องการ feedback loop ที่ตั้งใจ เช่น code review, retro หรือ Boy Scout Rule
- ความสม่ำเสมอสำคัญกว่าความเข้มข้น — งานวิจัยด้านการเรียนรู้ชี้ว่าการฝึกซ้ำสม่ำเสมอ (spaced repetition) มีผลต่อการเสริมแรงเส้นทางมากกว่าการฝึกหนักครั้งเดียว แปลเป็นบริบททีม: การทำ retro ทุกสองสัปดาห์มีผลยั่งยืนกว่าการจัด workshop ใหญ่ปีละครั้ง
- โครงสร้างทีมจะ “wire” เป็นโครงสร้างระบบ — เมื่อทีมสื่อสารกันเป็นรูปแบบใดซ้ำ ๆ รูปแบบนั้นจะฝังลงในสถาปัตยกรรมของระบบที่ทีมสร้าง ทำให้การจัดทีมเป็นเครื่องมือออกแบบสถาปัตยกรรมทางอ้อมเสมอ
- แยกแยะ correlation จาก causation — Hebb เองเน้นว่า A ต้องยิงก่อน B (temporal precedence) ไม่ใช่แค่เกิดพร้อมกัน ในทีมก็เช่นกัน: สองพฤติกรรมที่มักเกิดพร้อมกัน (เช่น “deploy วันศุกร์” กับ “เหตุขัดข้อง”) อาจไม่ได้มีความสัมพันธ์เชิงเหตุ-ผลจริง ต้องตรวจสอบก่อนสรุปเป็นกฎของทีม
ที่เกี่ยวข้อง
หัวข้อที่มีชื่อว่า “ที่เกี่ยวข้อง”แหล่งอ้างอิง
หัวข้อที่มีชื่อว่า “แหล่งอ้างอิง”- ที่มา · deviq.com/laws/hebbs-law
- Hebbian theory — Wikipedia
- Understanding Hebbian Learning and Hopfield Networks — Fabrizio Musacchio
- The Organization of Behavior — Donald Hebb (1949)