B251 - Robot Learning - UROB

Code: B3B33UROB Level: Undergraduate Semester: Winter 2024/2025 Credits: 6 ECTS

The course will teach deep learning methods for well-known robotic problems, such as semantic segmentation or reactive robot motion control. The overall goal is timeless universal knowledge rather than an enumeration of all known deep learning architectures. Students are assumed to have prior knowledge of mathematics (gradient, jacobian, hessian, gradient descend, Taylor polynomial) and machine learning (Bayesian risk minimization, linear classifier). The labs are divided into two parts, in the first part students will solve basic deep ML problems from scratch (including reimplementing autograd backpropagation), in the second part students will build on existing templates to solve complex problems including RL, transformers and generative networks.

Learning Objectives

  • Understand and implement machine learning algorithms
  • Develop autograd-based backpropagation for scalar, vector, and tensor operations
  • Apply convolutional neural networks and reinforcement learning to robotic tasks
  • Learn about reinforcement learging and transformer based architectures

My Labs

Lab 4: Backpropagation

+

Learn the mechanics of the backpropagation algorithm and implement it from scratch for a deeper understanding.

  • Courseware: Labs Page
  • Objective: Implement backpropagation for a simple neural network
  • Materials: Lab Files | Slides
  • Tasks: Code forward and backward passes, test with scalar inputs

Lab 5: Convolutional Neural Networks

+

Explore convolutional neural networks and their applications in robotic vision tasks like semantic segmentation.

  • Courseware: Labs Page
  • Objective: Build and train a CNN for image-based tasks
  • Materials: Lab Files
  • Tasks: Understand and implement convolution layers

My Homework

HW 2: Autograd (10 pts)

+

Implement a custom autograd library supporting vector and tensor operations, similar to the scalar-based autograd shown in Lab 4.

  • Courseware: HW2 Autograd
  • Repository: GitHub
  • Task: Complete engine.py for forward and backward passes. Use NumPy only (no PyTorch/TensorFlow).
  • Key Notes:
    • Implement functions within marked sections (ellipses and comments)
    • Handle broadcasting in __add__ and __mul__ using reshape_gradient
    • __pow__ accepts int or float, not Tensor
  • Getting Started:
    1. Clone the repository: git clone https://github.com/urob-ctu/hw2-autograd.git
    2. Install requirements: pip install -r requirements.txt
  • Testing: You may test your implementation with: python test.py.
  • Submission: Zip the directory and upload to BRUTE using ./submit.sh. Auto-evaluated, with possible tutor re-evaluation.
  • Grading: Max 10 points, -1 point per 24 hours late (up to -9 points).

Resources

Courseware

Access all course materials and announcements.

Visit Courseware

Main GitHub Repository

Explore code samples and lab templates.

Visit Repository

Unofficial Materials

Contribute to community-driven docs for extra credit.

View Docs

Office Hours

Schedule a consultation for questions or project help.

Contact Me