AWS DeepRacer: самый быстрый способ начать работу с машинным обучением

DeepRacer — это проект, созданный Amazon Web Services (AWS), целью которого является обучение людей обучению с подкреплением (RL) и машинному обучению (ML) с помощью веселого и увлекательного занятия: гонок на автономных автомобилях в моделируемой среде. Проект представляет собой полностью автономный гоночный автомобиль в масштабе 1/18, оснащенный датчиками и камерами, которые можно запрограммировать для навигации по гоночной трассе с помощью RL. На данный момент задача проекта DeepRacer выполнена:

  • Созданная модель с ML & RL транспортным средством / окружающей средой / гиперпараметрами
  • Изменена функция вознаграждения.
  • Загрузил обученную и оцененную модель на физический автомобиль AWS Deepracer через USB.
  • Участвовал в виртуальной гонке на местном и глобальном уровнях, представив обученную и оцененную модель.

Проект DeepRacer помог мне понять RL и ML, предоставив забавную и увлекательную деятельность, а также побудив мысли исследовать другие области, в которых мы могли бы применить машинное обучение и обучение с подкреплением.

Используемые ресурсы:
сервисы AWS

  • Глубокий гонщик AWS
  • AWS Sagemaker
  • Робомейкер AWS
  • АВС S3

Языки программирования

  • Питон

def reward_function(params):

    center_variance = params["distance_from_center"] / params["track_width"]

    left_lane = [13,14,15,16,17,18,19,20,21,22,23,24,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67]
    right_lane = [30,31,32,33,34,35,36,37]
    center_lane = [0,1,2,3,4,5,6,7,8,9,10,11,12,25,26,27,28,29,38,39,68,69]

    reward = 0
    
    if params["all_wheels_on_track"]:
        if params["closest_waypoints"][1] in left_lane and params["is_left_of_center"]:
            reward = 10
        elif params["closest_waypoints"][1] in right_lane and not params["is_left_of_center"]:
            reward = 10
        elif params["closest_waypoints"][1] in center_lane and center_variance < 0.3:
            reward = 10
        else:
            reward = 0.01
    else:
        reward = 0.01
        
    reward *= params["speed"]**2

    return float(reward)