ViciousSquid/Dosidicus

Raise a neural network as a pet - a transparent cognitive sandbox where a digital squid learns, grows, and rewires itself via Hebbian learning & Neurogenesis

도시디쿠스란?

Dosidicus electronicus는 뇌가 작고 완전히 투명한 신경망인 디지털 애완 오징어를 키울 수 있는 오픈소스 Python 기반 시뮬레이션입니다. 이 프로젝트는 교육용 신경과학 도구이자 시뮬레이션 게임으로 자리잡고 있습니다. 오징어에게 먹이를 주고, 청소하고, 상호작용하면서 모든 뉴런의 발화, 시냅스 변화, 그리고 학습에 따라 나타나는 새로운 뉴런을 관찰할 수 있습니다.

핵심 아이디어

  • 8개 뉴런의 초기 뇌 – 7개의 '드라이브'(배고픔, 호기심 등)와 1개의 감각 입력을 갖춥니다. 네트워크는 기존 구조가 작업을 해결하지 못할 때만 새로운 뉴런을 생성합니다.
  • 생물학적 영감을 받은 학습 – Hebbian 업데이트와 STDP(Spike-Timing-Dependent Plasticity)가 순수 NumPy로 구현되었습니다(src/plasticity.py 참조). 각 가중치 변경은 무엇이 원인인지, 왜 발생했는지, 어떤 경험이 촉발했는지를 기록합니다.
  • 완전한 출처 기록 – 시스템은 모든 시냅스 수정과 새로 생성된 뉴런에 대해 사람이 읽을 수 있는 설명을 로그로 기록합니다. 따라서 "이 가중치가 0.31에서 0.47로 변한 이유는 무엇인가?"와 같은 질문을 할 수 있습니다.
  • 이중 기억 시스템 – 단기 및 장기 기억 저장소를 통해 오징어가 시간이 지나도 경험을 유지할 수 있습니다.
  • 확장 가능한 엔진(STRINg) – TensorFlow나 PyTorch에 의존하지 않고 NumPy로 처음부터 구축된 맞춤형 시뮬레이션 코어입니다. 동일한 엔진이 GUI, 헤드리스 트레이너, 테스트 스위트를 구동합니다.

사용 방법

  1. 클론 및 설정 – git clone … && python -m venv venv && pip install -r requirements.txt.
  2. 실행 – python main.py는 PyQt5 창을 시작하여 오징어와 상호작용할 수 있습니다.
  3. Docker – GUI 버전(X11/WSLg 필요)과 학습된 뇌 JSON 파일을 출력할 수 있는 헤드리스 CLI 트레이너용 사전 빌드 이미지가 제공됩니다.
  4. 사용자 정의 – Brain Designer 위키 페이지에서 뉴런과 행동을 추가하거나 삭제하는 방법을 설명합니다. 미리 만들어진 뇌 설정은 custom_brains/에 있습니다.
  5. 공유 – 저장된 뇌 파일을 내보내어 SQUID‑EXCHANGE 브랜치에 업로드하면 다른 사람들이 당신의 생물의 신경 이력을 탐색할 수 있습니다.

누구에게 유용한가?

  • 학생 및 애호가 – 단순한 스파이킹 유형 학습 규칙이 어떻게 적응 행동을 만들어내는지 구체적이고 시각적으로 이해하려는 사람.
  • 연구자 – 대규모 딥러닝 프레임워크의 오버헤드 없이 구조적 가소성이나 신용 할당에 대한 아이디어를 프로토타입하기 위한 경량의 완전히 관찰 가능한 샌드박스를 찾는 사람.
  • 게임 디자이너 – 검사하고 조정할 수 있는 창발적 AI 에이전트에 관심이 있는 사람.

리포지토리 내용

  • src/ – STRINg 엔진, 가소성 알고리즘, 뇌 설계 유틸리티, UI 위젯, 플러그인 프레임워크.
  • main.py – PyQt5 GUI의 진입점.
  • headless/ – 그래픽 없이 동일한 엔진을 실행하는 명령줄 트레이너.
  • custom_brains/ – 예제 네트워크 구성.
  • gui 및 headless의 두 가지 빌드 타겟을 가진 Dockerfile.
  • 매니페스트, 엔진 개요, 뇌 설계, STDP 이론, 변경 로그를 다루는 광범위한 위키(57페이지).

TL;DR

Dosidicus는 귀여운 가상 애완동물 게임에 감싸인 투명한 신경망 샌드박스입니다. 간단한 Python/NumPy 코드베이스와 선택적 PyQt5 GUI를 통해 작은 스파이킹 네트워크가 실시간으로 학습하는 것을 관찰하고, 모든 가중치 변화를 검사하고, 새로운 뉴런을 키울 수도 있습니다.


위의 모든 정보는 리포지토리의 README와 연결된 위키 페이지에서 직접 가져온 것입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트