Контрольоване навчання порівняно з навчанням на підсилення для простого автомобіля, що керує собою


12

Я будую дистанційно керований автомобіль для самостійного водіння для задоволення. Я використовую Raspberry Pi як бортовий комп'ютер; і я використовую різні плагіни, наприклад, камеру Raspberry Pi та датчики відстані, для зворотного зв’язку щодо оточення автомобіля. Я використовую OpenCV для перетворення відеокадрів у тензори, а я використовую TensorFlow від Google, щоб створити згорнуту нейронну мережу для вивчення меж дороги та перешкод. Головне моє запитання: чи слід використовувати наглядове навчання, щоб навчити автомобіль керувати автомобілем, чи слід передбачати цілі та покарання та вчитися підкріпленню (тобто добиратись до точки В якомога швидше, не зачепивши нічого і не залишаючись у межах дороги)? Нижче наведено список плюсів і мінусів, які я придумав.

Професійні методи навчання:

  • Вхід до алгоритму навчання досить простий. Автомобіль вчиться асоціювати показання відстані тензора відеокадру та датчика з переміщенням вперед, назад та кутом колеса
  • Я можу більш-менш навчити машину керувати автомобілем саме так, як я хочу (звичайно, без надягання)
  • Раніше я робив багато проблем з навчанням під наглядом, і цей підхід, здається, зручно відповідає моєму наявному набору навичок

Контрольовані мінуси навчання:

  • Незрозуміло, як навчити швидкості, а правильна швидкість є досить довільною, доки автомобіль не їде так швидко, що відхилиться від дороги. Я думаю, я міг би швидко їздити під час тренувань, але це здається грубим підходом. Можливо, я міг би вручну додати постійну змінну під час тренінгу, що відповідає швидкості цього навчального заняття, а потім, коли алгоритм навчання розгорнуто, я встановлю цю змінну відповідно до потрібної швидкості?

Плюси підвищення кваліфікації:

  • Якщо я будую свій автомобіль з конкретною метою гонок на машинах, що самостійно керують людьми, здається, що навчання підкріплення є природним способом сказати моєму автомобілю «дістатися якомога швидше».
  • Я читав, що RL іноді використовується для автономних безпілотників, тому теоретично в автомобілях повинно бути простіше, тому що мені не потрібно турбуватися про вгору і вниз

Мінуси для посилення навчання:

  • Я відчуваю, що для навчання для підкріплення потрібно багато додаткових датчиків, і, чесно кажучи, мій автомобіль, який триває пішки, не має стільки місця всередині, враховуючи, що йому також потрібно помістити акумулятор, Raspberry Pi і дошку

  • Автомобіль спочатку буде вести себе дуже хаотично, настільки, що, можливо, він руйнує себе. Також може знадобитися нерозумно багато часу, щоб навчитися (наприклад, місяці чи роки)

  • Пізніше я не можу створити явні правила, наприклад, зупинитися на червоному вогні іграшки. Завдяки контрольованому навчанню я міг би включити численні алгоритми SL (наприклад, класифікатор Хаар Каскад для виявлення вибірок) в конфігураційну систему правил, яка оцінюється між кожним відеокадром. Таким чином, двигун правил міг би змінити алгоритм SL водіння, якби він побачив червону стійку, навіть якщо столевий вигляд не міг би бути частиною навчання алгоритму водіння. RL здається занадто нескінченним, щоб це зробити (тобто зупинятися тільки в термінальному стані)
  • Я не маю багато досвіду застосування прикладного навчання підкріплення, хоча я, безумовно, хочу навчитися цьому незалежно

Це насправді не відповідь, я фактично роблю той самий проект, самостійно керуючий автомобіль з Q-learning (RL) (ще на початку), і я хотів би запитати, чи доступний ваш проект проекту десь в Інтернеті, це було б дуже корисно для мене. Це проект, за яким я зараз переслідую : medium.com/@harvitronix/… він використовує RL з NN, як Google глибоке навчання Q (документ Atari), але він не використовує наглядове навчання. Його код доступний тут: github.com/harvitronix/reinfo
Махмуд Хоссам

@MahmoudHossam У вас є альтернативне місце для коду? Посилання, яке ви надали, мертве.
Homunculus Reticulli

@MahmoudHossam Схоже, репо змінилось на: github.com/harvitronix/rl-rc-car
Ryan Zotti

Відповіді:


12

Я б запропонував вам спробувати гібридний підхід:

  • Спочатку тренуйте свій автомобіль під наглядом, демонструючи . Просто керуйте ним і використовуйте свої команди як мітки. Це дозволить отримати всі плюси SL.
  • Потім тонко відрегулюйте свою нервову мережу за допомогою підсилення. Для цього вам не потрібні додаткові датчики: винагороду можна отримати від датчиків відстані (більша відстань = краща) та від самої швидкості. Це дасть вам переваги RL та навчить ваш NN до правильної мети швидкої їзди, уникаючи перешкод замість мети наслідувати вас.
  • Поєднуючи обидва підходи, ви отримаєте плюси як SL, так і RL, уникаючи їх мінусів. RL не почнеться з випадкової поведінки, а лише з невеликих поступових відхилень від того, на що ви торкалися NN. Аналогічний підхід успішно застосував Google DeepMind з AlphaGo .
  • Ви завжди можете додавати чіткі правила поверх цього. Реалізуйте їх з високим пріоритетом і зателефонуйте в мережу Інтернет лише тоді, коли немає чіткого правила для поточної ситуації. Це нагадує архітектуру передплати .

DeepMind навіть зірвав Меттью Лая, свіжий від його захоплюючих результатів шахів Giraffe NN: motherboard.vice.com/en_us/article/…
DukeZhou
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.