Create quiz for unit 5

This commit is contained in:
Juan Martinez
2023-12-04 17:29:05 +00:00
committed by GitHub
parent 93c5115ed6
commit cc89254cf5

87
units/en/unit5/quiz.mdx Normal file
View File

@@ -0,0 +1,87 @@
# 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: What of the following statemets are true about Unity ML-Agents?
<Question
choices={[
{
text: "It allows you to create learning environments from the Unity ´Scene´ objects",
explain: "",
correct: true,
},
{
text: "It 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 the Python back-end",
explain: "",
correct: true,
},
{
text: "The library which carries out the actual training is 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: "Unity's programming language is C++",
explain: "It's C#. If you are interested in programming in C++, take a look at Unreal Engine `Learning Agents`"
correct: "false"
},
]}
/>
### Q2: Explain with your own words what is the role of the `Academy`.
<details>
<summary>Solution</summary>
The `Academy` is the orchestrating module in charge of attending the requests from the Python API and sending them to the agents (e.g, `collect observations`)
<img src="https://huggingface.co/datasets/huggingface-deep-rl-course/course-images/resolve/main/en/unit5/academy.png" alt="Academy"/>
</details>
### Q3: What 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 projections of geometric shapes, normally lines, that we spawn to check 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 geometric shape (normally lines) 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 geometric shapes (normally lines) and check for collisions",
explain: "",
correct: true,
},
]}
/>
### Q4: Name several input variables which were used in any of the Snowball or Pyramid environments
<details>
<summary>Solution</summary>
- Collisions of the raycasts in charge of detecting blocks, (invisible) walls, stones, our target, switches, etc. in the environment.
- Traditional inputs describing agent features, as its speed (it could also be position, rotation, etc. although that is covered by our raycast already).
- Some 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.