20220517 Reinforcementlearning


title: "강화학습" date: "2022-05-17"

modified: "2022-05-17"

뭔가 의미없지만 의미있는 정리3

면접때 뭘 물어보면 좋을까

강화학습(Reinforcement Learning)

  1. 레벨1기초 : 1.1. 묻고자 하는바 : 강화학습이 무엇인지 알고 있으며 주요 키워드에 대한 이해가 있는가? 1.2. 정답 - 주요 키워드 중심으로 :
  • 원리 : 특정 개체(agent)가 주어진 환경(state)에 대해 행동(action)을 취하면 보상(reward)를 얻음으로 학습을 진행. 원하는 목표(goal)에 도달할 수 있도록 보상함수(reward function)을 설계. 반복적으로 강화학습을 수행하여 보상의 최대가 되는 최적화(optimization)된 모델을 도출.
  • 실제 물리 장치를 통한 학습이 아닌 시뮬레이터를 통한 학습 필요.
  1. 레벨2심화 : 2.1. 묻고자 하는바 ; 강화학습의 주요 키워드를 이용하여 알고리즘을 설계할 수 있는가? 생산라인에서 2.2.
  • 예제 : 생산라인에서 AVG로 물건을 이동하기 위한 길찾기 알고리즘을 강화학습으로 설계할 경우, agv(agent)가 생산 라인의 환경(state)에 대해 좌/우로 방향을 조절하고 속도를 조절하면(action) 그 액션이 물건 배달에 가까운 경우 양의 보상(reward)를 액션이 물건 배달을 방해할 경우 음의 보상을 주는 보상함수(reward function)를 설계한다. 보상함수를 이용하여 반복적으로 강화학습을 진행하여 길찾기에 최적화(optimization)된 모델을 뽑는다.
  1. 레벨3응용 : 3.1. 묻고자 하는바 : 간단한 리워드 펑션을 설계할 수 있는가? agv가 정해진 트랙 위를 따라 이동하고자 한다. 트랙의 폭은 track_width, 트랙 가운데에서 agv까지의 거리가 distance_from_center로 주어진다. 이 두 파라메터를 이용하여 avg가 트랙에서 벗어나지 않도록 하는 보상함수를 설계하시오 제약 정의) agv의 형태, 바퀴 수, 부분적인 트랙아웃 등은 고려하지 않고 distance_from_center*2가 track_width보다 커지면 agv가 트랙 밖으로 나간 것으로 가정한다.

3.2. 정답 : distance_from_center가 작을 수록 큰 리워드를 주는 방향의 설계를 하고 있으면 정답으로 처리. 나머지는 면접관 재량으로.

예제) aws deepracer reward function 예제에서 발췌
def reward_function(track_width, distance_from_center):
marker_1 = 0.1 * track_width
marker_2 = 0.25 * track_width
marker_3 = 0.5 * track_width
# Give higher reward if the car is closer to center line and vice versa
if distance_from_center <= marker_1:
reward = 1
elif distance_from_center <= marker_2:
reward = 0.5
elif distance_from_center <= marker_3:
reward = 0.1
else:
reward = 1e-3 # likely crashed/ close to off track
return reward