[디자이너가 들려주는 ai 이야기 #1
정답이 없는데ㄷ 정답을 이야기하는 방법, 강화학습]
강화학습이라고 들어보셨나요?
제가 다니고 있는 회사는 ai 도메인으로,
저처럼 직접적으로 개발을 다루지않는 직무에 있는 사람도
ai지식을 폭넓게 알기를 권장하고 있습니다.
매주 진행하는 기초세미나는
매번 주제가 바뀌는데,
이번엔 ai 강화학습을 다루고있습니다.
정리도 해볼겸, 디자이너가 이해한
'강화학습'을 살짝 공유합니다.
강화학습이란 뭘까요?
대비되는 개념을 들어 설명하면 조금 쉬울 것 같습니다.
바로 비교적 많이 알려진 개념인 '머신러닝'입니다.
정답이 있는 데이터를 기반으로 학습하고,
주어진 입력값에 대해 예측을 수행합니다.
간단한 예로는 '지도학습'이라는 것을 들 수 있어요.
모델은 카메라로 찍은 이미지를 입력 받는다고 할게요.
그럼 이를 통해 찍힌 이미지 속 동물이 무엇인지을 추정하는 작업을 합니다. 입력과 출력이 이렇게 이루어지는데요.
이 과정에서 모델은 라벨, 즉 정답이 있는 데이터를 사용해서 학습니다. '이 이미지는 고양이야.'라고 이미 정답이 있는 데이터를 이용해 학습하는거죠.
그럼 다음에 새로운 이미지가 들어오면
어떤 동물인지를 추정하고,
정답이 있는 데이터를 활용해
'이건 코끼리야.' 할 수 있는거죠.
휴대폰 속 사진첩 안에
'아빠' '엄마' '동생' '나' 신기하게 잘 구분하는 이유는
이런 머신러닝 덕분입니다.
반면 강화학습은 에이전트(로봇이나 컴퓨터)가 보상을 제일 크게 받기 위해 스스로 경험을 통해 학습합니다.
정답을 알지 못하는 상황에서 사용한다고 합니다.
정답을 알지 못하는데 어떻게 학습하냐구요?
여기서 에이전트는 정답을 모르고 대신
'리워드(보상)'을 통해 학습하게됩니다.
에이전트는 어떤 행동을 하고 나서
그 행동이 얼마나 좋은 결과를 가져왔는지를 보는데요.
즉 보상이 큰지 작은지를 통해 학습하게 됩니다.
강화학습의 과정을
간단하게 예를 들어 설명해보겠습니다.
1. 상황 관찰: 로봇이 현재 환경을 관찰합니다.
2. 행동 선택: 현재 상태에서 할 수 있는 여러 행동 중, 하나를 선택합니다.
3. 보상 획득: 행동 후 로봇은 그 행동이 얼마나 적절한지에 따라 보상을 받습니다. 예를 들어 물건을 제대로 집었는지, 실패했는지가 될 수 있습니다.
4. 경험 축적: 이런 경험을 바탕으로 어떤 행동이 보상을 최대화 할 수 있는지 학습합니다. 이렇게도 집어보고 저렇게도 집어보면서 물건을 집을 수 있는 가장 좋은 방법을 터득하게하는거죠.
강화학습은 정확한 모델링이
어려운 상황에서 큰 힘을 발휘합니다.
예를 들어 로봇이 물건을 집는 작업은
매우 복잡하고 다양한 변수가 존재합니다.
이렇게 잡으면 좋은지, 저렇게 잡으면 좋은지
모든 경우의 수를 개발자가 붙어
하나하나 코딩하는 것은 굉장히 어렵겠죠.
이렇게 모든 상황을 모델링하는 것은 불가능하지만,
강화학습은 에이전트가 스스로 경험을 통해
최적의 행동을 학습하게 합니다.
저도 배우고 있는 과정이라
정확하지 않은 이야기가 있을 수도 있지만
수식이 난무하는 매주 세미나에서
제가 이해할 수 있는 부분을 조금 정리해보았습니다.
만약 제가 알고 있는게 틀렸다면
따뜻하게 알려주세요.
더 열심히 이해해보겠습니다 🙋♀️