-
Notifications
You must be signed in to change notification settings - Fork 601
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #430 from josejuanmartinez/unit-5-quiz
Unit 5 quiz and some rewording for Unit 6
- Loading branch information
Showing
3 changed files
with
141 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
# Quiz | ||
|
||
The best way to learn and [to avoid the illusion of competence](https://www.coursera.org/lecture/learning-how-to-learn/illusions-of-competence-BuFzf) **is to test yourself.** This will help you to find **where you need to reinforce your knowledge**. | ||
|
||
### Q1: Which of the following tools are specifically designed for video games development? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Unity (C#)", | ||
explain: "", | ||
correct: true, | ||
}, | ||
{ | ||
text: "Unreal Engine (C++)", | ||
explain: "", | ||
correct: true, | ||
}, | ||
{ | ||
text: "Godot (GDScript, C++, C#)", | ||
explain: "", | ||
correct: true, | ||
}, | ||
{ | ||
text: "JetBrains' Rider", | ||
explain: "Although useful for its support of C# for Unity, it's not a video games development IDE", | ||
correct: false, | ||
}, | ||
{ | ||
text: "JetBrains' CLion", | ||
explain: "Although useful for its support of C++ for Unreal Engine, it's not a video games development IDE", | ||
correct: false, | ||
}, | ||
{ | ||
text: "Microsoft Visual Studio and Visual Studio Code", | ||
explain: "Including support for both Unity and Unreal, they are generic IDEs, not video games oriented.", | ||
correct: false, | ||
}, | ||
]} | ||
/> | ||
|
||
### Q2: What of the following statements are true about Unity ML-Agents? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Unity ´Scene´ objects can be used to create learning environments", | ||
explain: "", | ||
correct: true, | ||
}, | ||
{ | ||
text: "Unit ML-Agents allows you to create and train your agents using Reinforcement Learning", | ||
explain: "", | ||
correct: true, | ||
}, | ||
{ | ||
text: "Its `Communicator` component manages the communication between Unity's C# Environments/Agents and a Python back-end", | ||
explain: "", | ||
correct: true, | ||
}, | ||
{ | ||
text: "The training process uses Reinforcement Learning algorithms, implemented in Pytorch", | ||
explain: "", | ||
correct: true, | ||
}, | ||
{ | ||
text: "Unity ML-Agents only support Proximal Policy Optimization (PPO)", | ||
explain: "No, Unity ML-Agents supports several families of algorithms, including Actor-Critic which is going to be explained in the next section", | ||
correct: false, | ||
}, | ||
{ | ||
text: "It includes a Gym Wrapper and a multi-agent version of it called `PettingZoo`", | ||
explain: "", | ||
correct: true, | ||
}, | ||
]} | ||
/> | ||
|
||
### Q3: Fill the missing letters | ||
|
||
- In Unity ML-Agents, the Policy of an Agent is called a b _ _ _ n | ||
- The component in charge of orchestrating the agents is called the _ c _ _ _ m _ | ||
|
||
<details> | ||
<summary>Solution</summary> | ||
- b r a i n | ||
- a c a d e m y | ||
</details> | ||
|
||
### Q4: Define with your own words what is a `raycast` | ||
|
||
<details> | ||
<summary>Solution</summary> | ||
A raycast is (most of the times) a linear projection, as a `laser` which aims to detect collisions through objects. | ||
</details> | ||
|
||
### Q5: Which are the differences between capturing the environment using `frames` or `raycasts`? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "By using `frames`, the environment is defined by each of the pixels of the screen. By using `raycasts`, we only send a sample of those pixels.", | ||
explain: "`Raycasts` don't have anything to do with pixels. They are linear projections (lasers) that we spawn to look for collisions.", | ||
correct: false, | ||
}, | ||
{ | ||
text: "By using `raycasts`, the environment is defined by each of the pixels of the screen. By using `frames`, we spawn a (usually) line to check what objects it collides with", | ||
explain: "It's the other way around - `frames` collect pixels, `raycasts` check for collisions.", | ||
correct: false, | ||
}, | ||
{ | ||
text: "By using `frames`, we collect all the pixels of the screen, which define the environment. By using `raycast`, we don't use pixels, we spawn (normally) lines and check their collisions", | ||
explain: "", | ||
correct: true, | ||
}, | ||
]} | ||
/> | ||
|
||
|
||
### Q6: Name several environment and agent input variables used to train the agent in the Snowball or Pyramid environments | ||
|
||
<details> | ||
<summary>Solution</summary> | ||
- Collisions of the raycasts spawned from the agent detecting blocks, (invisible) walls, stones, our target, switches, etc. | ||
- Traditional inputs describing agent features, as its speed | ||
- Boolean vars, as the switch (on/off) in Pyramids or the `can I shoot?` in the SnowballTarget. | ||
</details> | ||
|
||
|
||
Congrats on finishing this Quiz 🥳, if you missed some elements, take time to read the chapter again to reinforce (😏) your knowledge. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters