Artificial Life - 인공생명
@ 책 - The Nature of Code
@ Java로 만든 언어 Processing (아두이노 등에 쓰이는)
@ 푸앵카레 정리
@ 우주가 구형이냐 도넛(토러스)모양이냐
@ 네모난 2차원 공간이 위아래, 좌우 Wrapping 되어 있으면 구형인가, 도넛(토러스)모양인가
@ Tierra - Assembly 프로그램 진화
@ Bosstown Dynamics
@ Coined 고안하다
@ Investigate 파다 조사하다
@ Discipline 학문 분야
@ Concerns
💫 Boids
- Boids 요소가 움직이는 규칙
- Separation : 주변 무리로부터 멀어지려고 함
- Alignment : 방향을 주변 무리와 맞춤
- Cohesion : 무리 사이에 있어야 함
횡단보도 앞 기둥의 역할은, 많은 사람들이 서로 충돌하지 않고 빠르게 지나갈 수 있도록 도와주는 것. 이를 Boids를 통한 연구를 통해서
💫 Game of Life
- 살아있는 세포 : 주위 2~3개 살아있으면 유지
- 죽은 세포 : 주위 3개 살아있으면 반전
💫 Artificial Life - 인공 생명
@ U 기말고사 출제 : Boids, 먹이사슬모델, 개미알고리듬의 공통된 특징이 뭔지 설명하시오.
🫧 Artificial Life_
담금질/유전 알고리듬 처럼 특정 알고리듬이 아니라 하나의 분야
인공지능 조차도 포함된 개념
새, 물고기, 곤충 무리
Boids, Game of Life,
Simple Rule :
Local Rule :
이머전시 : 복잡한 행태를 관찰할 수 있다
- (인공) 생명
- (일반적으로) 성장 Grow
- 자기 재생산 Reproduce
- 신진대사 Nutrients/Energy
- 반응
- 내부 구성 성분 상호작용
- 작은 변화에 둔감
- 자기유지 Self-Maintaining, 자기조절 Self-Regulating
- Self-Organization 무질서하던것 질서있게, Like 냄비 물 끓일때 물방울 패턴
- 진화
- 특정한 물질적 객체라기보다는, 시공간상의 한 패턴
- 생명체를 표현하는 정보의 저장소
적어도 부분적으로, 생명체처럼 보이는, 만든 시스템에 대한 연구
Artificial Life - ALife는 Chris Langton이 고안한 용어로, 자연 시스템을 흉내내는 큰 범위의 계산적 매커니즘을 묘사하는 개념이다. (Describe)
ALife는 다음과 같이 이용된다 (used to model)
- Agents trading resources in artificial economies
- Ecologies of insects
- The behavior of animals
- Entities negotiating with one another to study models in gam theory
수업에서는 ALife를 배워보고 (Investigate), 인공 환경에서의 먹이사슬 Agents 시뮬레이션을 구현해본다
Synthetic ethology - 행동 합성
approach to the study of animal behavior
🫧 Artificial Life__
크리스 랭턴(Chris Langton)은 자연계를 모델링하는 데 사용되는 다양한 계산 메커니즘을 설명하기 위해 인공 생명체(Artificial Life) 또는 Alife라는 용어를 만들었습니다. 인공 생명체는 인공 경제에서 자원을 거래하는 에이전트, 곤충의 생태, 동물의 행동, 그리고 게임 이론의 모델을 연구하기 위해 서로 협상하는 개체를 모델링하는 데 사용되었습니다. 이번 장에서는 인공 생명체에 대해 살펴본 후 먹이 사슬 내의 에이전트가 인공 환경에서 경쟁하는 것을 보여주는 시뮬레이션을 구현할 것입니다.
인공 생명체는 다양한 관심사가 있는 큰 학문이지만, 여기서는 행동합성(Synthetic Ethology)
이라고 불리는 것에 초점을 맞출 것입니다. 브루스 맥레넌은 이것을 가장 간결하게 정의했습니다:
행동합성은 동물의 행동을 연구하는 접근법으로, 단순하고 합성된 유기체가 합성 세계에서 행동하고 진화하도록 허용하는 것입니다. 유기체와 그들의 세계는 모두 합성이기 때문에, 특히 특정한 가설을 테스트하기 위해 특정한 목적을 위해 구성될 수 있습니다.
인공 생명체는 생물학적 시스템 모델링과 시뮬레이션을 위한 이론과 실제로서 묘사될 수 있습니다. 인공 생명체와 함께 일하는 연구자들의 한 가지 희망
은 생물학적 시스템을 모델링함으로써, 우리가 왜 그리고 그것들이 어떻게 작동하는지에 대해 더 잘 이해할 수 있다는 것입니다. 그 모델들을 통해, 연구자들은 시스템과 환경이 어떻게 변화에 반응하는지를 이해하기 위해 게임을 하기 위해 그들의 환경을 조작할 수 있습니다.
💫 Simulating Food Chain - 먹이 사슬 모의실험
세 계의 엔티티로 이루어진 아주 간단한 먹이사슬을 고려해보자.
바닥에는 식물이 있을 것이다.
식물은 자연으로부터 에너지를 얻는다. (비, Soil, 그리고 태양)
중간에는 Herbivores이 있을 것이다.
Herbivore는 식물을 소비함으로써 생존한다.
천장에는 Carnivores가 있을 것이다.
Carnivore는 Herbivore를 소비함으로써 생존한다.
환경에 죽은 Herbivore와 Carnivore를 무시한다면, 먹이 사슬은 아래과 같이 묘사된다.
Carnivore -(consumes)→ Herbivore -(consumes)→ Plant
엔티티들 사이에는 Delicate Balance 미묘한 균형
이 있는 것이 분명하다.
Plants의 수가 줄어든다면 어떤 일이 일어날까?
~하면 어떤 일이 일어날까?
이를 시뮬레이션 해본다.
@ Free Lunch
💫 Food Chain Model
@ U 기말고사 출제 : 먹이사슬모델에서 초식동물과 육식동물이 각각 취할 수 있는 전략이 뭔지 하나씩 설명하시오. (교재 내 먹이사슬모델에 나온 것에 한하여)
@ PPT, 여기서는 어떻게 구현했는지 (꼭 이렇게 구현하라는 게 아님)
@ 별표, 지역성, 나는 강의실 안에 있고, 강의실 밖에는 무슨 일이 일어나고 있는지 모른다
@ i.e. 스타크래프트 유닛 돌아다닐때 어떤 상황에서 어떤 행동을 취하냐 - 오토마타
@ 개미 알고리듬과 다른 것, 에너지가 유지되냐
@ 에너지가 0이되면 죽음
단순한 먹이사슬을 모델링하기 위해서는 시뮬레이션의 여러 측면을 정의해야 합니다. 여기에는 환경(에이전트들이 상호 작용하는 물리적 공간), 에이전트 자체(및 환경 내에서의 인식과 작동), 상호 작용이 어떻게 그리고 언제 일어나는지를 설명하는 일련의 법칙이 포함됩니다. 이러한 요소들은 다음 섹션에서 설명될 것입니다.
🫧 Overview
🫧 Environment
🫧 Anatomy of an Agent
🫧 Sensors
🫧 Actuators
🫧 Agent Brain
에이전트의 두뇌는 다양한 계산 구성 요소 중 하나가 될 수 있습니다. 기존의 인공 생명 시뮬레이션은 유한 오토마타(상태 기계), Classifier 시스템 또는 신경망을 사용했습니다. 이 시뮬레이션의 생물학적 동기에 따라 에이전트의 행동 요소로 단순하고 Fully-Interconnected 완전하게 상호 연결된 Winner-Takes-All 승자독식 신경망(5장에서 사용한 것)을 사용할 것입니다. 그림 7.5는 에이전트의 전체 네트워크를 보여줍니다.
@ 7.5
센서 입력은 특정 영역에서 개체 수를 나타냅니다.각 입력 중 각 입력 중 각 입력을 통해 이 입력을 출력으로 전파합니다. 이것은 방정식 7.1을 사용하여 수행됩니다.
즉, 네트워크의 각 출력 셀(oj)에 대해 입력 셀에서 출력 셀(wij)까지의 연결의 가중치로 입력 셀(ui)의 곱을 합합니다. 출력 셀에 대한 바이어스도 추가됩니다. 결과는 출력 셀에서 값의 집합입니다. 그러면 에이전트의 행동 요소는 이 값을 사용합니다. 에이전트의 신경망의 초기 가중치는 무작위로 선택되지만 재생을 통해 가중치는 환경 내에서 생존을 위해 조정되어야 합니다.
@ 수식에서 b - bias 입력 - 모든 요소에게 공통되게 들리는 목소리, 마음의 소리
@ 구현할 때 몰라도 되는 값 - 실제 입력이 아니니까
💫 Sample Iteration
@ U 기말고사 출제 : 가중치 계싼, 선이 가지는 의미 (점선, 실선) (출제 안됨)
@ U 기말고사 출제 : 먹이사실모델에서 특정 개체에 대한 특정 시점의 행렬을 보고, 입력이 어떻게 나오는지, 이와 가중치를 바탕으로 개체가 다음 단계에 어떤 행동을 취할지 설명하시오.
이제 진화된 에이전트의 샘플 Action-Selection Iteraction을 살펴보도록 하겠습니다. 이 예에서 우리는 시뮬레이션을 하는 동안 진화한 초식동물을 살펴볼 것입니다. 완벽하진 않지만, 이 특정한 에이전트는 환경에서 300번 넘게 살아남았습니다. 포식자를 피하고 식물을 찾아 먹는 것을 통해서도 가능했습니다.
@ 예시 7.6 - 신경망
신경망의 실선은 흥분성 연결인 반면, 점선은 억제성입니다. 출력 셀 안에는 활성화되면서 각 출력 셀에 가해지는 편향이 있습니다. 그림 7.6을 보면 식물이 가까이 있을 때 (식물이 작용제에 가까이 있을 때만 먹을 수 있는) 섭식작용에 흥분성 연결이 존재한다는 것을 알 수 있습니다. 육식동물이 앞에 있을 때 이동작용을 억제하는 연결도 역시 흥미롭습니다. 이것은 초식동물의 생존을 위한 또 다른 유익한 작용입니다.
에이전트의 행동은 한 번의 연결로 형성되는 것이 아닙니다. 대신 가장 큰 값을 가진 행동은 센서 입력의 조합에 따라 Fire(Trigger)가 허용됩니다. 그림 7.6의 신경망에서 설명한 초식동물을 몇 번 반복해서 살펴보도록 하겠습니다.
식 7.1에서 가중치 벡터에 입력 벡터를 곱한 다음 Bias를 더한다는 것을 기억하세요.
우리의 첫 번째 Epoch에, 우리의 초식동물은 그림 7.7과 같은 장면을 보여줍니다. 다른 영역은 그들을 설명하기 위해 음영으로 표시됩니다(그림 7.4 참조). 이 장면에서 X는 초식동물의 위치(그 장면의 기준점)를 나타냅니다. 식물은 ‘proximity’ 영역 안에 위치하고 육식동물은 ‘front’ 영역 안에 위치합니다.
@ 예시 7.7
@ 시뮬이 가지는 의미, 100만번 시행한 그래프 (시간, 최고령자 나이)