본문 바로가기

인공지능11

[강화학습] PPO 란? 안정성과 성능을 동시에 잡은 PPO 알고리즘 완전 해부Proximal Policy Optimization(PPO)은 OpenAI가 제안한 대표적인 정책 기반 강화학습 알고리즘입니다. PPO는 Actor-Critic 구조 위에 "정책 변화의 폭을 제한하는 방식"을 더해 학습 안정성과 성능을 동시에 확보합니다.왜 PPO인가?기존의 정책 경사(policy gradient) 방식은 다음과 같은 문제를 안고 있었습니다:학습률을 너무 크게 주면 정책이 급격히 바뀌어 불안정해짐너무 작게 주면 수렴 속도가 느려짐TRPO(Trust Region Policy Optimization)는 이를 해결했지만 계산량이 많고 구현이 복잡PPO는 TRPO의 아이디어를 유지하면서도, 계산은 훨씬 간단한 방식으로 안정적인 학습을 가능하게.. 2025. 6. 30.
[강화학습] Actor-Critic 이란? 정책과 가치를 함께 학습하는 Actor-Critic 구조 강화학습에서 대표적인 접근 방식으로는 정책 기반(Policy-based)과 가치 기반(Value-based)이 있습니다. 그 두 가지를 결합한 구조가 바로 Actor-Critic입니다. 이 글에서는 Actor-Critic의 구조, 작동 방식, 수식, 그리고 장단점까지 단계적으로 살펴봅니다.왜 Actor-Critic인가?기존의 DQN과 같은 가치 기반 방식은 행동(action)을 선택하기 위해 Q함수를 학습합니다. 반면, 정책 기반 방식은 **확률적으로 직접 행동을 선택하는 정책(policy)**을 학습합니다.Actor-Critic은 다음과 같은 이유로 등장합니다:가치 기반은 불연속(discrete) 행동 공간에서만 잘 작동정책 기반은 varianc.. 2025. 6. 29.
[강화학습] DQN 이란? Q-learning을 신경망으로 확장한 DQN!!Deep Q-Network(DQN)은 2015년 DeepMind가 발표한 Q-learning + 딥러닝 기반의 강화학습 알고리즘입니다. DQN은 Atari 2600 게임에서 인간 이상의 성능을 보이며 크게 주목받았으며, 특히 픽셀 단위의 이미지 입력을 CNN으로 처리하고, Q값으로 행동을 결정하는 구조는 강화학습에서 딥러닝의 활용 가능성을 처음으로 입증했습니다. 기존 Q-learning이 테이블 기반이라 확장에 한계가 있었던 반면, DQN은 고차원 상태 공간에서도 작동할 수 있도록 **Q 함수를 신경망으로 근사**함으로써 획기적인 전환점을 만들었습니다. 이 글에서는 DQN의 구조, 수식, 작동 원리, 그리고 실용적인 개선 방법까지 상세하게 살펴봅니다. Q-.. 2025. 6. 28.
[강화학습] Q-learning 이란? 강화학습을 시작하는 가장 쉬운 길, Q-learning 완전 정복강화학습(RL, Reinforcement Learning)은 환경 속에서 스스로 경험을 쌓으며 학습하는 인공지능 분야입니다. 그 중에서도 Q-learning은 가장 널리 알려지고, 구현이 쉬운 대표적인 알고리즘입니다. 본 글에서는 Q-learning의 개념, 동작 원리, 수식, 그리고 간단한 예제까지 모두 하나씩 짚어보겠습니다.Q-learning이란?Q-learning은 모델-프리(Model-free) 강화학습 알고리즘입니다. 즉, 에이전트는 환경의 내부 구조(상태 전이 확률 등)를 알 필요 없이 단지 보상과 상태만 보고 학습합니다. Q-learning의 목적은 각 상태(state)에서 가능한 행동(action)에 대한 기대 보상을 추정하는.. 2025. 6. 26.
[Kakao map] Javascript API 지도 불러오기 Kakao map API 이번 포스팅에서는 카카오 지도에서 제공하는 지도를 그리는 Javascipt API에 대해 소개합니다. 학습에 지도 데이터가 필요하여 찾아보던 중 카카오 지도 API가 설명도 잘되어 있어 사용하게 되었습니다. 자세한 내용은 아래 주소에서 확인할 수 있습니다. https://apis.map.kakao.com/web/guide/ API 키 발급 및 웹 서버 기동 해당 API를 사용하기 위해서는 우선 API 키를 발급받아야 합니다. 키를 발급받는 방법은 위 사이트('준비하기')에 자세히 소개되어 있어서 따로 언급하진 않겠습니다. 만약 발급을 받으셨다면 https://developers.kakao.com 에서 로그인 후 '내 애플리케이션'에 들어가시면 발급받으신 키를 확인할 수 있습니다... 2022. 12. 11.
[mmrotate] 나만의 데이터 셋으로 rotated RetinaNet 학습하기 이번 포스팅에서는 mmrotate에서 제공하는 데이터 셋이 아닌 임의의 데이터 셋을 이용하여 모델을 학습하려 합니다. 새로운 데이터 셋으로는 앞선 포스팅에서 공부했던 COCO 데이터를 이용합니다. 1. DOTA 데이터 형태로 변환 먼저, COCO 데이터 셋을 DOTA 데이터 형태로 변환합니다. COCO는 bbox가 x, y, w, h 형태이므로 이를 x1, y1, x2, y2, x3, y3, x4, y4 형태로 바꾸는 함수를 작성합니다. 여기서 COCO의 x, y는 왼쪽 위(left-top)의 꼭지점 위치이며 이미지의 좌상단을 원점으로 합니다. DOTA도 x1, y1를 왼쪽 위로 하며 나머지들은 시계 방향으로 꼭지점들을 의미합니다. 추가로 category정보와 difficult정보(1: 어려움, 0: 쉬.. 2022. 10. 14.