728x90
반응형

분류 전체보기 126

Actor-Critic 샘플 코드

import gymimport torchimport torch.nn as nnimport torch.optim as optimimport torch.nn.functional as Ffrom torch.distributions import Categorical# 1. 하이퍼파라미터 설정learning_rate = 0.001gamma = 0.99n_episodes = 1000# 2. Actor-Critic 네트워크 정의# 핵심: Actor와 Critic이 앞단 레이어를 공유하거나, 별도 헤드를 가짐class ActorCritic(nn.Module): def __init__(self): super(ActorCritic, self).__init__() self.fc1 = nn.Li..

Study/Python 2025.12.04

[Continuous/SAC] 1D Hovering Drone: 고도를 유지하려는 드론 (PID 제어를 AI로 대체하는 컨셉)

1D Hovering Drone + SAC (고도 유지 제어)로봇 제어의 핵심인 PID 제어를 강화학습으로 대체하는 시나리오입니다. 연속 행동 공간(Thrust)을 다루므로 SAC가 적합합니다.물리 모델: F=ma → a=mThrust−Gravity​상태: 현재 높이(y), 수직 속도(vy​)목표: 높이 1.0 유지import gymfrom gym import spacesimport numpy as npimport torchimport torch.nn as nnimport torch.optim as optimimport torch.nn.functional as Ffrom torch.distributions import Normalimport matplotlib.pyplot as plt# ---------..

Study 2025.11.29

[Discrete/PPO] Dynamic Grid World: 움직이는 장애물을 피해 목표로 가는 로봇 (동적 환경 계획)

1. Dynamic Grid World + PPO (동적 장애물 회피)단순한 미로 찾기가 아니라, 움직이는 장애물(Patrolling Obstacle)을 피해야 하므로 타이밍을 학습해야 합니다. 로봇 내비게이션 기초와 연결됩니다. import gymfrom gym import spacesimport numpy as npimport torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torch.distributions import Categoricalimport matplotlib.pyplot as pltimport matplotlib.patches as patches# ----------------..

Study 2025.11.29

Behavior Cloning (모방 학습)

문제 개요배경: 강화학습은 초기에 탐색 비용이 많이 듭니다. 로봇 팔을 무작위로 휘두르면 고장 날 수 있죠. 그래서 **사람이 조종한 데이터(Expert Demo)**를 미리 학습시켜 초기 성능을 확보합니다.목표: CartPole-v1 환경에서, 사전에 수집된 '전문가 데이터(State, Action)'를 사용하여 지도 학습(Supervised Learning) 방식으로 정책 네트워크를 학습시키시오.조건:데이터 생성: 학습된 DQN 모델을 이용해 에피소드 5개 분량의 (state, action) 쌍을 수집하시오. (코드에 포함)학습: 수집된 데이터를 DataLoader로 만들고, CrossEntropyLoss를 사용하여 새 네트워크를 학습시키시오.평가: 모방 학습된 모델로 게임을 실행하여 점수를 출력하시..

Study 2025.11.29

OpenAI Gym 인터페이스를 따르는 Custom Environment 구현

문제 개요상황: 회사에서 자체 개발한 로봇 시뮬레이터가 있다고 가정합니다. 이를 강화학습 에이전트가 학습할 수 있도록 OpenAI Gym(gym.Env) 인터페이스로 래핑(Wrapping)해야 합니다.목표: 5x5 Grid World 환경을 Class로 구현하시오.필수 구현 메서드:__init__: Action Space(이산), Observation Space(Box 또는 Discrete) 정의.reset: 에이전트를 시작 위치로 초기화하고 첫 상태 반환.step(action): 행동을 받아 다음 상태, 보상, 종료 여부, 정보 반환.render: 현재 상태를 텍스트로 출력.환경 규칙:맵: 5x5 (0: 빈곳, 1: 장애물, 2: 목표)보상: 목표 도달(+10), 장애물 충돌(-5), 일반 이동(-0...

Study 2025.11.29

2D Grid Map에서의 A* 최단 경로 탐색

문제 개요환경: 0(이동 가능)과 1(장애물)로 구성된 N×M 2차원 그리드 맵.목표: 시작점(Start)에서 목표점(Goal)까지 충돌 없이 도달하는 최단 경로 좌표 리스트 반환.제약: 4방향(상하좌우) 이동만 허용 (대각선 이동 불가 가정).핵심 평가 항목:Heuristic 함수 설계: 맨해튼 거리(Manhattan Distance) 등을 적절히 사용하여 탐색 효율을 높였는가?자료구조 활용: Priority Queue (최소 힙)를 사용하여 $O(1)$로 최소 비용 노드를 꺼낼 수 있는가?예외 처리: 도달 불가능한 경우나 맵 밖으로 나가는 경우를 처리했는가?import heapq# -----------------------------------# 1. Heuristic Function# -------..

Study 2025.11.29

CartPole-v1 환경에서의 강화학습 에이전트 구현

# 기본 강화학습 환경 및 시각화 도구 설치pip install gym==0.26.2 gym[classic_control] torch numpy matplotlib 문제 개요환경: OpenAI Gym의 CartPole-v1목표: 카트 위에 세워진 막대가 넘어지지 않도록 중심을 잡는 에이전트 학습.성공 기준: 최근 100 에피소드의 평균 점수가 195점 이상 도달 시 조기 종료(Early Stopping) 및 모델 저장.DQN 필수 구현 요구사항Replay Buffer 구현: deque 등을 사용하여 경험(Experience)을 저장하고 랜덤 배치로 샘플링하는 클래스를 직접 구현하시오.Q-Network 모델링: PyTorch를 사용하여 입력(State)에 대한 행동(Action) 가치를 출력하는 신경망을 ..

Study 2025.11.29

집에서 만드는 정통 이탈리아 파스타 소스의 비밀: 세대를 이어온 레시피 완전 가이드

서론이탈리아 요리의 정수는 바로 파스타 소스에 있습니다. 단순해 보이는 재료들이 어떻게 그토록 깊고 풍부한 맛을 만들어내는지, 그 비밀을 알아보겠습니다. 정통 이탈리아 가정에서 세대를 이어 전해져 내려온 파스타 소스 제조법을 통해, 여러분도 집에서 레스토랑 수준의 완벽한 파스타를 만들 수 있습니다.이탈리아 파스타 소스의 기본 철학이탈리아 요리의 핵심은 '신선하고 좋은 재료를 최소한으로 가공하여 본연의 맛을 살리는 것'입니다. 파스타 소스 역시 이 철학을 그대로 따릅니다. 복잡한 양념이나 인공 조미료에 의존하지 않고, 몇 가지 신선한 재료만으로도 놀라운 맛을 창조해냅니다.소스 선택의 기본 원칙파스타 형태에 따른 소스 매칭: 긴 파스타에는 오일 베이스나 크림 소스, 짧은 파스타에는 토마토 소스나 라구 소스계..

기타 2025.07.06
728x90
반응형