Програмування лінії за роботом з навчанням підкріплення


15

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

Слідуючи за книгою « Саттон і Барто» для навчання підкріплення, я вирішив проблему вправ, пов’язану з іподромом, де автомобільний агент навчився не їхати з траси і регулювати його швидкість. Однак ця проблема вправ змусила агента навчитися орієнтуватися на треку, на якому він навчався.

Чи варто в рамках навчання підкріплення отримати робота, щоб орієнтуватися на довільні шляхи? Є чи агент абсолютно мати карту гоночної траси або шляху? Які параметри я міг би використовувати для простору свого стану?


1
Я не знаю як, але я впевнений, що можна навчити його тримати себе в межах шляху, незалежно від його форми. Метою навчання в цьому випадку повинно бути те, що місцеве рішення приймає робот, виходячи з його безпосередніх внесків (або, можливо, певної історії). Таким чином, не має значення, яка форма шляху, оскільки всі рішення є локальними.
Шахбаз

@Shahbaz - Що б ви запропонували використовувати для простору держави?
Лорд Лох.

Я насправді не впевнений. Хоча я вивчав ШІ в університеті, це ніколи не було моєю сферою роботи / дослідження. Відповідь, яку ви прийняли, здається розумною!
Шахбаз

Ви використовуєте відповідь для тестування Markdown? Ви можете просто написати те, що ви хочете, і побачити негайне відображення під ним, а потім не публікувати його.
Шахбаз

Відповіді:


8

Одним із ключових заходів будь-якого алгоритму машинного навчання є його здатність узагальнювати (тобто застосовувати те, що він навчився, до раніше небачених сценаріїв). Студенти з посилення (RL) можуть добре узагальнити, але ця здатність частково є функцією формулювання простору стану у моєму досвіді. Це означає, що якщо ви зможете знайти правильну настройку, тоді студенту RL не знадобиться карта гоночного кола.

Це залишає питання, які параметри використовувати. Не знаючи більше про сенсори, наявні у вашого робота, я можу лише здогадуватися. Перший мій нахил - спробувати закодувати відносну орієнтацію лінії та робота (тобто робота прагне вправо, вліво чи просто рухається паралельно лінії). Це може призвести до маленького простору держави. Хоча це і не є суворо необхідним, це зробило б швидке та просте впровадження. Крім того, якщо робот не збирається рухатись з постійною швидкістю, це може допомогти кодувати швидкість роботи, оскільки роботові потрібно буде швидше реагувати при русі з більшою швидкістю.


Без карти простір стану - це саме те, що робот може відчути зі свого безпосереднього положення. Тож певною мірою карта - це лише спосіб "заглянути вперед". Навчена поведінка за сценарієм без карт буде по суті "робити те саме, що і раніше, але йти повільніше, тому що ми не знаємо, де в цей час повороти". (Імовірно, ви зможете сказати, де знаходяться краї доріжки.)
Ян

Політика повідомляє нам, який контроль слід застосувати для даної держави. Якщо простір стану добре сформульований для агента RL, то чітко різні сценарії можуть виглядати однаково в просторі станів і викликати однакову поведінку. Це називається узагальненням і бажано при правильному виконанні. Робот матиме максимальну швидкість, виходячи зі швидкості його петлі управління. Вивчена поведінка не обов’язково буде сповільнюватись. Якщо винагорода обернено пов'язана з тривалістю пробігу, то агент буде схильний до максимальної швидкості відносно швидкості його циклу управління.
DaemonMaker

0

Я не впевнений, який тип роботи у вас є, але я вже кілька років займаюся рятувальною лінією robocup. Я зрозумів, що якщо ви хочете добре слідувати лінії, використовуючи PID - це хороший варіант. Дозвольте мені розширити це. Якщо ви уявляєте два датчики світла з обох боків лінії, ви хочете, щоб вони були однаковими, так що лінія знаходиться посередині. Потім ви можете використовувати різницю між значенням двох датчиків, щоб змінити відсоток повороту робота. Завдяки цій техніці можна змусити робота дотримуватися лінії з надзвичайною швидкістю. я так само, як ви роздумували над тим, щоб робот навчився вдосконалювати свої можливості відстеження ліній. Що я придумав - почніть з початкових значень PID, вищих, ніж ви хочете, щоб вони були, і використовуйте гіроскопічний датчик для вимірювання частоти коливань робота, коли він відстежує лінію. Ви можете звідти створити свою власну функцію, щоб визначити, на скільки знизити свої значення, щоб отримати стабільну систему, це не зовсім штучний інтелект більше схожий на алгоритм автоматизованої оптимізації, але ей 18, і я навчився кодувати з Інтернет. Я сподіваюся, що це допомагає. Якщо у вас є запити по електронній пошті, це не моя головна адреса електронної пошти, тому я не буду регулярно перевіряти її. 69darkeagle@sigaint.org

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.