Skip to content

Commit

Permalink
docs clean up very minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
alhasacademy96 committed Jan 24, 2024
1 parent 34305dc commit 2d211c2
Show file tree
Hide file tree
Showing 17 changed files with 791 additions and 623 deletions.
313 changes: 170 additions & 143 deletions docs/Arena-Object-Definitions.md

Large diffs are not rendered by default.

35 changes: 18 additions & 17 deletions docs/Background-Cognitive-Science.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# Background: Cognitive Science

#### Table of Contents
- [Introduction to Cognitive Science](#Introduction-to-Cognitive-Science)
- [What is Cognitive Science?](#What-is-Cognitive-Science?)
- [Key Areas in Cognitive Science](#Key-Areas-in-Cognitive-Science)

* [Introduction to Cognitive Science](#Introduction-to-Cognitive-Science)
+ [What is Cognitive Science?](#What-is-Cognitive-Science?)
+ [Key Areas in Cognitive Science](#Key-Areas-in-Cognitive-Science)
- [Perception and Sensation](#Perception-and-Sensation)
- [Memory and Learning](#Memory-and-Learning)
- [Language and Cognition](#Language-and-Cognition)
- [Decision Making and Problem Solving](#Decision-Making-and-Problem-Solving)
- [Computational Models](#Computational-Models)
- [Neuroscience](#Neuroscience)
- [Cognitive Science in Practice](#Cognitive-Science-in-Practice)
- [Conclusion](#Conclusion)

+ [Cognitive Science in Practice](#Cognitive-Science-in-Practice)
+ [Conclusion](#Conclusion)


# Introduction to Cognitive Science

Cognitive Science is an interdisciplinary field that explores the nature of cognition, encompassing a wide range of topics from the workings of the brain to the processes of thinking and learning. This document aims to provide a foundational overview of cognitive science and its various research areas.
Expand All @@ -28,51 +29,51 @@ Cognitive Science is the scientific study of the mind and its processes, includi

Understanding how humans perceive the world around them is a fundamental aspect of cognitive science. This includes the study of sensory systems and perceptual processes.

- **Resource**: [Sensation and Perception](https://en.wikipedia.org/wiki/Sensory_processing)
* **Resource**: [Sensation and Perception](https://en.wikipedia.org/wiki/Sensory_processing)

### Memory and Learning

Memory and learning are central to cognitive science, encompassing how we encode, store, and retrieve information, and how learning occurs.

- **Resource**: [Memory](https://en.wikipedia.org/wiki/Memory), [Learning](https://en.wikipedia.org/wiki/Learning)
* **Resource**: [Memory](https://en.wikipedia.org/wiki/Memory), [Learning](https://en.wikipedia.org/wiki/Learning)

### Language and Cognition

The study of language in cognitive science involves understanding how language is processed and produced, and its role in cognition.

- **Resource**: [Language Processing](https://en.wikipedia.org/wiki/Language_processing_in_the_brain)
* **Resource**: [Language Processing](https://en.wikipedia.org/wiki/Language_processing_in_the_brain)

### Decision Making and Problem Solving

This area focuses on how individuals make decisions, solve problems, and think critically.

- **Resource**: [Decision Making](https://en.wikipedia.org/wiki/Decision-making)
* **Resource**: [Decision Making](https://en.wikipedia.org/wiki/Decision-making)

### Computational Models

Cognitive science uses computational models to simulate and understand cognitive processes.

- **Resource**: [Computational Cognition](https://en.wikipedia.org/wiki/Computational_cognition)
* **Resource**: [Computational Cognition](https://en.wikipedia.org/wiki/Computational_cognition)

### Neuroscience

Neuroscience in cognitive science explores the neural basis of cognitive processes.

- **Resource**: [Cognitive Neuroscience](https://en.wikipedia.org/wiki/Cognitive_neuroscience)
* **Resource**: [Cognitive Neuroscience](https://en.wikipedia.org/wiki/Cognitive_neuroscience)

## Cognitive Science in Practice

Cognitive science has practical applications in areas such as artificial intelligence, human-computer interaction, education, and mental health.

- **AI and Machine Learning**: Applying cognitive principles to develop intelligent systems.
- **Human-Computer Interaction**: Designing user interfaces that align with human cognitive processes.
- **Educational Technology**: Enhancing learning experiences based on cognitive research.
- **Mental Health**: Understanding and treating cognitive disorders.
* **AI and Machine Learning**: Applying cognitive principles to develop intelligent systems.
* **Human-Computer Interaction**: Designing user interfaces that align with human cognitive processes.
* **Educational Technology**: Enhancing learning experiences based on cognitive research.
* **Mental Health**: Understanding and treating cognitive disorders.

## Conclusion

Cognitive Science offers profound insights into the workings of the human mind and its processes. Its interdisciplinary nature allows for a comprehensive understanding of cognition, making it a pivotal field in both theoretical research and practical applications.

---

**N.B:** _This document provides a concise yet comprehensive overview of cognitive science, designed to introduce newcomers to the field and its diverse research areas. We hope it has provided you with a solid understanding of the fundamental concepts of cognitive science, as understanding the workings of the human mind is essential enhancing the capabilities of artificial intelligence, which is the primary goal of Animal-AI as a research platform._
**N. B:** _This document provides a concise yet comprehensive overview of cognitive science, designed to introduce newcomers to the field and its diverse research areas. We hope it has provided you with a solid understanding of the fundamental concepts of cognitive science, as understanding the workings of the human mind is essential enhancing the capabilities of artificial intelligence, which is the primary goal of Animal-AI as a research platform._
17 changes: 9 additions & 8 deletions docs/Background-Machine-Learning.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
# Background: Machine Learning

#### Table of Contents
- [Introduction to Machine Learning Concepts](#Introduction-to-Machine-Learning-Concepts)
- [What is Machine Learning?](#What-is-Machine-Learning?)
- [Types of Machine Learning Algorithms](#Types-of-Machine-Learning-Algorithms)

* [Introduction to Machine Learning Concepts](#Introduction-to-Machine-Learning-Concepts)
+ [What is Machine Learning?](#What-is-Machine-Learning?)
+ [Types of Machine Learning Algorithms](#Types-of-Machine-Learning-Algorithms)
- [Unsupervised Learning](#Unsupervised-Learning)
- [Supervised Learning](#Supervised-Learning)
- [Reinforcement Learning](#Reinforcement-Learning)
- [Deep Learning in Machine Learning](#Deep-Learning-in-Machine-Learning)
- [Training and Inference in ML](#Training-and-Inference-in-ML)
- [Conclusion](#Conclusion)

+ [Deep Learning in Machine Learning](#Deep-Learning-in-Machine-Learning)
+ [Training and Inference in ML](#Training-and-Inference-in-ML)
+ [Conclusion](#Conclusion)


# Introduction to Machine Learning Concepts

This document aims to provide an accessible overview of Machine Learning (ML) for those new to the field, particularly users of the ML-Agents Toolkit. While we won't cover machine learning exhaustively, we'll touch upon its key aspects, as numerous comprehensive resources are available online.
Expand Down Expand Up @@ -46,4 +47,4 @@ All ML branches involve a training phase, where the model is built using provide

Machine Learning's diverse algorithms and applications make it a fascinating and impactful field. Understanding its core concepts is essential for anyone looking to explore AI or utilize tools like the ML-Agents Toolkit for game development and beyond.

---
---
50 changes: 25 additions & 25 deletions docs/Background-Unity.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
# Background: Unity

#### Table of Contents
- [Unity Engine: Fundamental Concepts](#Unity-Engine:-Fundamental-Concepts)
- [Unity Editor](#Unity-Editor)
- [Prefabs](#Prefabs)
- [Scripting](#Scripting)
- [Physics](#Physics)
- [Animation](#Animation)
- [Asset Management](#Asset-Management)
- [User Interface (UI)](#User-Interface-(UI))
- [Conclusion](#Conclusion)


* [Unity Engine: Fundamental Concepts](#Unity-Engine:-Fundamental-Concepts)
+ [Unity Editor](#Unity-Editor)
+ [Prefabs](#Prefabs)
+ [Scripting](#Scripting)
+ [Physics](#Physics)
+ [Animation](#Animation)
+ [Asset Management](#Asset-Management)
+ [User Interface (UI)](#User-Interface-(UI))
+ [Conclusion](#Conclusion)


# Unity Engine: Fundamental Concepts

Unity is a powerful game development engine that offers a rich set of features for creating immersive 2D and 3D games. This document provides an overview of the fundamental concepts of the Unity Engine, complete with links to resources for deeper understanding. We try to provide a comprehensive overview of the Unity Engine, but we recommend that you refer to the [Unity Documentation](https://docs.unity3d.com/Manual/index.html) for more detailed information.
Expand All @@ -22,55 +23,54 @@ Unity is a powerful game development engine that offers a rich set of features f
<img height="200" src="/docs/figs/prefabs/Referential.png">
</p>


## Unity Editor

The Unity Editor is the core interface where game development takes place. It provides a user-friendly environment for building game scenes, adding assets, and scripting behavior.

- **Overview**: [Unity Editor Overview](https://docs.unity3d.com/Manual/UsingTheEditor.html)
- **Interface Guide**: [Unity Editor Interface](https://learn.unity.com/tutorial/unity-editor-interface-overview)
* **Overview**: [Unity Editor Overview](https://docs.unity3d.com/Manual/UsingTheEditor.html)
* **Interface Guide**: [Unity Editor Interface](https://learn.unity.com/tutorial/unity-editor-interface-overview)

## Prefabs

Prefabs in Unity are pre-configured templates of game objects that can be reused across your projects. They are essential for efficient game development.

- **Introduction to Prefabs**: [Working with Prefabs](https://docs.unity3d.com/Manual/Prefabs.html)
- **Prefab Workflow**: [Prefab Workflow Guide](https://learn.unity.com/tutorial/introduction-to-prefabs)
* **Introduction to Prefabs**: [Working with Prefabs](https://docs.unity3d.com/Manual/Prefabs.html)
* **Prefab Workflow**: [Prefab Workflow Guide](https://learn.unity.com/tutorial/introduction-to-prefabs)

## Scripting

Scripting in Unity is primarily done using C#. It allows you to define the behavior of your game objects, control game logic, and interact with user inputs.

- **Scripting Overview**: [Unity Scripting API](https://docs.unity3d.com/ScriptReference/)
- **C# Scripting Tutorial**: [C# Scripting in Unity](https://learn.unity.com/tutorial/introduction-to-scripting)
* **Scripting Overview**: [Unity Scripting API](https://docs.unity3d.com/ScriptReference/)
* **C# Scripting Tutorial**: [C# Scripting in Unity](https://learn.unity.com/tutorial/introduction-to-scripting)

## Physics

Unity's physics engine allows for realistic simulation of physical interactions between objects in the game world.

- **Physics System**: [Unity Physics System](https://docs.unity3d.com/Manual/PhysicsSection.html)
- **Rigidbody and Colliders**: [Using Rigidbody and Colliders](https://learn.unity.com/tutorial/physics-rigidbodies-and-colliders)
* **Physics System**: [Unity Physics System](https://docs.unity3d.com/Manual/PhysicsSection.html)
* **Rigidbody and Colliders**: [Using Rigidbody and Colliders](https://learn.unity.com/tutorial/physics-rigidbodies-and-colliders)

## Animation

Unity provides a comprehensive system for animating characters and objects, offering tools for creating detailed animations and controlling them via scripts.

- **Animation Overview**: [Unity Animation System](https://docs.unity3d.com/Manual/AnimationOverview.html)
- **Animator Component**: [Using the Animator](https://learn.unity.com/tutorial/animator-component)
* **Animation Overview**: [Unity Animation System](https://docs.unity3d.com/Manual/AnimationOverview.html)
* **Animator Component**: [Using the Animator](https://learn.unity.com/tutorial/animator-component)

## Asset Management

Managing assets is a crucial part of game development in Unity. Unity supports a wide range of asset types including 3D models, textures, audio, and more.

- **Asset Management**: [Unity Asset Workflow](https://docs.unity3d.com/Manual/AssetWorkflow.html)
- **Asset Store**: [Unity Asset Store](https://assetstore.unity.com/)
* **Asset Management**: [Unity Asset Workflow](https://docs.unity3d.com/Manual/AssetWorkflow.html)
* **Asset Store**: [Unity Asset Store](https://assetstore.unity.com/)

## User Interface (UI)

Unity's UI system allows you to create interactive and intuitive user interfaces for your games.

- **UI Overview**: [Unity UI System](https://docs.unity3d.com/Manual/UISystem.html)
- **UI Toolkit**: [Using Unity's UI Toolkit](https://learn.unity.com/tutorial/introduction-to-the-new-ui-system)
* **UI Overview**: [Unity UI System](https://docs.unity3d.com/Manual/UISystem.html)
* **UI Toolkit**: [Using Unity's UI Toolkit](https://learn.unity.com/tutorial/introduction-to-the-new-ui-system)

## Conclusion

Expand Down
18 changes: 10 additions & 8 deletions docs/Background-YAML.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Background: YAML

#### Table of Contents
- [Background: YAML](#background-yaml)

* [Background: YAML](#background-yaml)
- [Table of Contents](#table-of-contents)
- [YAML? What is it?](#yaml-what-is-it)
- [Configuration of Training Environments and Agents](#configuration-of-training-environments-and-agents)
+ [YAML? What is it?](#yaml-what-is-it)
+ [Configuration of Training Environments and Agents](#configuration-of-training-environments-and-agents)
- [Defining Agent Behaviors](#defining-agent-behaviors)
- [Setting Hyperparameters for Training](#setting-hyperparameters-for-training)
- [Example of a YAML Configuration in ML-Agents](#example-of-a-yaml-configuration-in-ml-agents)
- [Example of a YAML Configuration in Animal-AI](#example-of-a-yaml-configuration-in-animal-ai)
- [Advantages in Animal-AI Context](#advantages-in-animal-ai-context)
+ [Example of a YAML Configuration in ML-Agents](#example-of-a-yaml-configuration-in-ml-agents)
+ [Example of a YAML Configuration in Animal-AI](#example-of-a-yaml-configuration-in-animal-ai)
+ [Advantages in Animal-AI Context](#advantages-in-animal-ai-context)
- [Easy to Read and Modify](#easy-to-read-and-modify)
- [Facilitating Complex Configurations](#facilitating-complex-configurations)


## YAML? What is it?

*YAML* (YAML Ain't Markup Language) is a data serialization format widely used in Unity and other setups (as well as in ML-Agents) for its readability and ease of use. It allows developers and researchers to define and adjust the behavior and training parameters of AI agents within Unity simulations. Due to it's human-readable format, YAML is also useful for researchers who have little experience with programming.
Expand Down Expand Up @@ -51,6 +51,7 @@ behaviors:
time_horizon: 64
summary_freq: 10000
```
The above example shows a YAML configuration file for a soccer player agent in ML-Agents, for agent training. The agent's behavior is defined by the `SoccerPlayer` behavior name. The `trainer_type` parameter specifies the type of training algorithm used to train the agent. The `hyperparameters` section defines the hyperparameters for the training process. The `network_settings` section defines the neural network architecture for the agent. The `reward_signals` section defines the reward signals used to train the agent. The `max_steps` parameter defines the maximum number of steps the agent can take in the environment. The `time_horizon` parameter defines the number of steps the agent can take before the environment is reset. The `summary_freq` parameter defines the frequency at which the agent's training progress is logged.

## Example of a YAML Configuration in Animal-AI
Expand Down Expand Up @@ -78,6 +79,7 @@ arenas:
spawnProbability: 1.0
rewardSpawnPos: !Vector3 {x: 20, y: 0, z: 35}
```

The above example shows a YAML configuration file for an arena in Animal-AI. The `!ArenaConfig` tag indicates that the file is a configuration file for an arena. The `arenas` section defines the arenas in the environment. The `0` tag indicates that the arena is the first arena in the environment. The `pass_mark` parameter defines the minimum score required to pass the arena. The `t` parameter defines the maximum number of steps the agent can take in the arena. The `items` section defines the objects in the arena. The `name` parameter defines the name of the object. The `positions` parameter defines the positions of the object. The `rotations` parameter defines the rotations of the object. The `moveDurations` parameter defines the durations of the object's movements. The `resetDurations` parameter defines the durations of the object's resets. The `rewardNames` parameter defines the names of the object's rewards. The `rewardWeights` parameter defines the weights of the object's rewards. The `spawnProbability` parameter defines the probability of the object spawning. The `rewardSpawnPos` parameter defines the position of the object's reward.

## Advantages in Animal-AI Context
Expand All @@ -90,4 +92,4 @@ YAML's human-readable format makes it easier for developers and researchers to u

The structure of YAML supports complex configurations with nested parameters, allowing for clear hierarchies and groupings of settings in Animal-AI. This makes it easier for developers to organize and modify their configurations.

---
---
Loading

0 comments on commit 2d211c2

Please sign in to comment.