전체 글

개발 내용과 지식을 정리한 블로그입니다.
Step 1: DQN 개념DQN(Deep Q-Network)은 Q-Learning을 딥러닝과 결합한 강화학습 알고리즘입니다. Q-Learning이 Q-테이블을 사용하는 것과 달리, DQN은 신경망을 사용하여 Q-값을 근사합니다. 이를 통해 대규모 상태 공간에서도 Q-값을 학습할 수 있습니다.Step 2: Q-Learning의 한계 해결기존 Q-Learning은 상태-행동 공간이 커질수록 Q-테이블 관리가 어려워집니다. DQN은 신경망을 통해 연속적이거나 고차원인 상태 공간에서도 효과적으로 학습할 수 있습니다.Step 3: DQN의 구조입력: 현재 상태 $s$출력: 각 행동에 대한 Q-값 $Q(s,a)$DQN의 신경망은 상태 $s$를 입력으로 받아 각 행동 $a$에 대한 Q-값을 근사합니다.Step 4: ..
Step 1: Q-Learning 개념Q-Learning은 강화학습 알고리즘 중 하나로, Off-policy 방식입니다. 에이전트가 환경에서 최적의 행동을 찾기 위해 Q-값을 학습합니다.Step 2: Q-값 정의Q-값은 상태-행동 쌍에서 얻을 수 있는 누적 보상의 기대치를 의미합니다. Q(s, a)로 표현됩니다.Step 3: Bellman 방정식Q-Learning은 Bellman 방정식을 기반으로 Q-값을 업데이트합니다.$Q(s,a) = Q(s,a) + \alpha \left( R + \gamma \max_{a'} Q(s', a') - Q(s, a) \right)$$\alpha$: 학습률$\gamma$: 할인율$R$: 즉각적인 보상$\max_{a'} Q(s', a')$: 다음 상태에서 예상되는 최대 보상..
Step 1: 강화학습 개념 이해강화 학습(Reinforcement Learning, RL)은 에이전트(Agent)가 환경(Environment)과 상호작용하면서 보상(Reward)을 통해 최적의 행동(Policy)을 학습하는 방법입니다. 여기서 에이전트는 목표를 달성하기 위해 행동을 선택하고, 그에 따라 보상이나 벌을 받습니다. 목표는 장기적인 누적 보상(Return)을 최대화하는 최적의 정책을 학습하는 것입니다.주요 구성 요소에이전트(Agent): 행동을 수행하고 환경에서 보상을 받는 주체.환경(Environment): 에이전트가 상호작용하는 대상.상태(State): 에이전트가 현재 환경에서 처한 상황.행동(Action): 에이전트가 상태에서 선택할 수 있는 동작.보상(Reward): 행동의 결과로 ..
1.  다익스트라 알고리즘다익스트라 알고리즘은 그래프 상에서 한 정점으로부터 모든 다른 정점까지의 최단 경로를 계산하는 알고리즘이다. 매번 최단 경로를 가진 정점을 선택하여, 이를 반복적으로 탐색함으로써 출발 정점에서 나머지 모든 정점으로의 최단 경로를 찾는다. 단, 모든 링크의 가중치는 양의 값이어야 한다.최단 경로를 구하는 방법으로는 다익스트라 외에도 벨만-포드, 플로이드-워셜 알고리즘이 존재한다. 경로 계산 방식은 크게 세 가지가 있다.한 지점에서 다른 특정 지점까지의 경로를 찾는 방식(One-to-One).한 지점에서 모든 다른 지점까지의 경로를 구하는 방식(One-to-All).모든 지점에서 모든 지점까지의 경로를 찾는 방식(All-to-All)이다. 다익스트라 알고리즘은 이 중 두 번째 유형인..
렌더링 파이프라인3D 오브젝트들을 화면에 표현하기 위한 일련와 과정들.렌더링 파이프라인(Rendering Pipeline) 또는 그래픽스 렌더링 파이프라인(Graphics rendering pipeline)이라 부르며 3차원으로 만들어진 모델을 2차원에 투영하는 렌더링 과정의 프로세스를 자세하게 표현한 것이다. 컴퓨터에 데이터로 존재하는 3D 리소스가 모니터에 출력되는 과정이 렌더링 파이프라인을 따르게 된다.파이프라인의 종류고정 기능 파이프라인(Fixed PipeLine)Direct3D에서 제공하는 미리 정해진 연산을 수행하는 파이프라인.고정적으로 정해진 연산만을 수행하며,프로그래머가 직접 관여할 수 없다.프로그래머블 파이프라인(Programmable PipeLine)고정 기능 파이프 라인에서 제공하는 ..
1. 동적 계획법이란? 동적 계획법(Dynamic Programming)은 주어진 문제를 작은 부분 문제로 분할하고, 그 결과를 저장하여 중복 계산을 방지하는 알고리즘 기법이다. 특히 부분 문제의 수가 기하급수적으로 증가할 때 유용하다. 분할 정복법과는 달리, 중복되는 부분 문제의 결과를 재활용하여 속도를 높인다.각 부분 문제가 서로 독립적일 때: 분할 정복법 사용.부분 문제가 중복될 때: 동적 계획법 사용.2. 메모이제이션이란?메모이제이션(Memoization)은 계산 결과를 저장해두고, 동일한 계산이 다시 필요할 때 저장된 값을 사용하는 최적화 기법이다. 이를 통해 중복 계산을 방지하고 속도를 향상시킬 수 있다. 메모리를 사용해 계산 시간을 줄이는 방식이다.3 - 1. 메모이제이션의 활용: 이항 계수..
게임에서 컴퓨터 그래픽스(Computer Graphics)는 필수적인 요소다. 초기의 단순한 텍스트 기반 게임에서 시작하여, 시각적인 요소를 더해주기 위해 픽셀 게임이 등장했고, 점차 2D에서 3D로 발전해왔다. 이러한 그래픽의 발전은 게임의 몰입감과 현실감을 크게 향상시켰다. 오늘날의 게임은 정교한 그래픽 기술을 활용해 매우 사실적인 시각적 경험을 제공하며, 플레이어의 상상력을 현실로 구현해준다.나 역시 게임 개발자 나부랭이로 발전하기 위해 컴퓨터 그래픽스에 대해 공부하려고 한다. 하지만 그 이전에, 컴퓨터 그래픽스가 어떻게 발전하였는가에 대해 알아보려고 한다.1. 초기 컴퓨터 그래픽스 (1960-1970년대)초기 1960년대, 컴퓨터 그래픽스는 단순한 와이어프레임 모델로 시작됐다. MIT와 같은 선도..
· 유니티
게임에서 빼놓을 수 없는 것이 AI(Artificial Intelligence)입니다. AI는 컨텐츠를 풍부하게 하는 주 전력이 되며, 플레이어에게 도움을 주거나, 혹은 적대하거나, 혹은 능동적인 상호작용을 통해 플레이어에게 다양한 경험을 제공할 수 있습니다. 저의 경우 AI를 구현할 때 FSM(Finite State Machine - 유한 상태 머신) 방식을 사용했다. 정의할 상태나 상태전이가 적은 소규모 프로젝트에서는 충분했지만, 더 많은 상호작용과 시스템이 있는 대규모 프로젝트에서는 FSM을 사용하여 AI를 구현하기 힘들어집니다. FSM은 다른 기법들에 비해 쉽고 직관적이기 때문에 프로그래머가 아니더라도 누구나 쉽게 설계할 수 있다는 장점이 있지만, 상태와 액션이 다양해지고 복잡해질수록 각 상태의 ..
NewtronVania
Newtron의 프로그래밍 블로그