본문 바로가기

전체 글234

강화 학습 5.Multi-Armed Bandit (MAB)Problem 서론 이전 장에서 RL 및 여러 RL 알고리즘의 기본 개념과 RL 문제를 MDP(Markov Decision Process)로 모델링하는 방법에 대해 배웠다. MDP를 해결하는 데 사용되는 다양한 모델 기반(model-based) 및 모델 없는(model-free) 알고리즘도 보았다. 이제, RL의 고전적인 문제 중 하나인 MAB(Multi-Armed Bandit) 문제를 볼 것이다. MDP는 일련의 상태(state)와 행동(action)의 시퀀스를 관찰하고, 각 시점에서의 보상(reward)을 최대화하기 위한 최적의 정책(policy)을 찾는 문제로 상태와 행동의 시퀀스를 고려하여 최적의 정책을 찾는 것이 목표이다. 반면, MAB 문제에서는 여러 개의 선택(arm) 중에서 최적의 선택을 찾는 것이 목표.. 2023. 4. 25.
게임 팀 프로젝트 기획부터 개발 서론 팀 프로젝트는 실제로 실행하기 힘들다. 팀 프로젝트 중 게임 프로젝트 진행 경험과 경험을 보완한 과정을 정리한 내용이다. 깃허브를 활용하는 방법으로 소개하겠다. 아이디어 팀을 섭외하기 위해, 게임을 개발하고자 하는 욕구 등으로 아이디어를 우선적으로 생각해야 한다. 아이디어를 만드는 방법으로 유명한 브레인 스토밍, 마인드맵 외에 SWOT기법, SCRAMPER 등 여러 방법을 통해 아이디어를 구체화하는 작업을 한다. 중요한 것은 아이디어를 자신의 머리에만 있지말고, 직접 글과 그림으로 정리를 해야한다. 추천하는 사이트로 Edraw mind, Miro, Figma, Twine이 있다. 특히, 학생들이 프로젝트 시 게임 아이디어를 구상할 때 이미 존재한 게임을 참고하는 경우가 많다. 이때, 우리는 목표를 .. 2023. 4. 18.
강화 학습 4.Temporal Difference(TD) Learning 서론 Monte Carlo 방법은 에피소드 환경에만 적용된다는 단점과 에피소드가 매우 길면 가치 함수를 계산하기 위해 오랜 시간이 걸린다는 단점이 있다. 따라서 모델 없거나(model-free), 모델 역학(model dynamics)을 미리 알 필요가 없는 비 에피소드 작업에도 적용 가능한 학습 알고리즘인 TD(temporal difference) 학습에 대해 알아보자. TD(Temporal Difference) Learning TD방식은 Monte Carlo로 아이디어와 dynamic programming 아이디어의 결합한 방식이다. Monte Carlo 방법과 마찬가지로 TD 방법은 환경의 dynamics models 없이 원시 경험에서 직접 학습할 수 있다. 또한, DP와 마찬가지로 TD 방법은 .. 2023. 4. 18.
깃허브 Wiki 서론 Wiki는 GitHub 저장소에서 간단한 문서를 작성하고 관리할 수 있는 기능이다. Wiki를 사용하면 저장소와 관련된 문서를 쉽게 작성하고 공유할 수 있다. Markdown(마크다운) 형식을 사용하여 문서를 작성한다. 저장소의 협업 기능과 함께 작동하여, 저장소의 모든 참여자가 문서를 수정하고 개선할 수 있다. Wiki를 통해 저장소와 관련된 정보를 효율적으로 관리할 수 있으며, 팀원 간의 의사소통과 지식 공유를 쉽게 할 수 있다. Wiki 세팅하기 wiki창이 없다면 "Settings">"General">"Features">"wiki"로 위키창을 활성화할 수 있다. 아래에 "Restrict editing to collaborators only"를 통하여 공용 작업자만이 작업을 할 수 있게 제한을.. 2023. 4. 17.
깃허브 Project 서론 Project는 특정 프로젝트를 관리하기 위한 도구로, 프로젝트의 작업과 상태를 추적하고 관리하는 데 사용된다. 이를 통해 팀원들이 프로젝트 전반에 대한 정보를 공유하고, 작업을 조직적으로 관리할 수 있다. Project 세팅하기 projects창이 없다면 "Settings">"General">"Features">"Projects"로 프로젝트창을 활성화할 수 있다. 생성하기 "Link a project"로 기존의 프로젝트를 연결할 수 있고, "New project"로 새로 프로젝트를 생성할 수 있다. 생성 시 아래와 같은 템플릿 종류가 있다. 보통 "Project teamplates"의 "Team backlog"를 주로 사용한다. Table: 데이터를 표로 보여주는 형식으로, 프로젝트에서 다루는 데.. 2023. 4. 17.
깃허브 Discussion 서론 디스커션은 GitHub의 웹 인터페이스에서 논의를 할 수 있는 기능을 제공한다. 즉, 관련자들만의 SNS로 개발자들은 다른 개발자들과 아이디어를 공유하고, 의견을 나누며, 새로운 아이디어를 창조할 수 있다. 또한, 사용자 피드백을 받을 수 있다. 사용자들은 디스커션을 사용하여 개선 사항이나 추가 기능을 제안하고, 개발자들은 이에 대한 의견을 나누고 반영할 수 있다. Discussion GitHub의 디스커션은 코드 이슈와는 별도로 프로젝트와 관련된 일반적인 토론을 나눌 수 있는 기능이다. 디스커션은 새로운 아이디어나 기능 제안, 사용자 피드백, 개발자 간의 토론, 그리고 커뮤니티 멤버와의 소통 등에 사용된다. 세팅하기 Discussions창이 없다면 "Settings">"General">"Featu.. 2023. 4. 16.
깃허브 Issues 서론 GitHub의 이슈(issues)는 프로젝트 관리를 위한 툴 중 하나이다. 이슈는 소프트웨어 개발 및 유지보수를 위한 작업 목록, 버그 추적, 기능 개발, 코드 검토 등을 포함하는 모든 작업 항목을 나타낸다. 이슈를 사용하면 프로젝트 관리자와 참여자가 프로젝트 관리를 보다 효율적으로 수행할 수 있다. Issues 이슈(issues)는 GitHub에서 프로젝트 관리를 위한 기능으로, 소프트웨어 개발 및 유지보수를 위한 작업 목록, 버그 추적, 기능 개발, 코드 검토 등을 포함하는 모든 작업 항목을 말한다. 세팅하기 Issues창이 없다면 "Settings">"General">"Features">"Issues"로 이슈창을 활성화할 수 있다. 만약 같이 협업을 하는 사람이 깃허브에 이슈를 등록 및 ass.. 2023. 4. 13.
Instantiate함수 서론 유니티에서 Instantiate 함수는 새로운 게임 오브젝트를 생성하는 데 사용한다. 이 함수를 사용하면 미리 만들어 놓은 프리팹을 이용하여 게임 오브젝트를 생성할 수 있다. 상세한 내용을 알기 위해 프리팹, 부모, 계층창에 대해 가볍게 설명하겠다. Instantiate 매개변수에 따라 자세한 설정으로 프리팹을 생성할 수 있다. 아래 함수들 모두 Object를 반환한다. //1.기본 형태 public static Object Instantiate(Object original); //2.부모 설정 public static Object Instantiate(Object original, Transform parent); //3.부모 설정 + 좌표계 설정 public static Object Instan.. 2023. 4. 12.
OS 7. 동기화 예제 서론 임계구역 문제를 제시하고 여러 병행 프로세스가 데이터를 공유할 때 어떻게 경쟁 조건이 발생할 수 있는지에 중점을 두었다. 계속해서 경쟁 조건이 발생하지 않도록 하여 임계구역 문제를 해결하는 몇 가지 도구를 검토하였다. 고전적인 동기화 문제들(Classical Problems of Synchronization) 유한 버퍼 문제(Bounded-Buffer Problem) 이 문제는 일반적으로 동기화 프리미티브(primitive)들의 능력을 설명하기 위하여 사용된다. 어느 특정 구현에 국한됨 없이 이 해결 방법의 일반적인 구조를 제시한다. int n; // 필수 세마포 semaphore mutex = 1; semaphore empty = n; semaphore ful = 0; N개의 버퍼로 구성된 풀(p.. 2023. 4. 6.
반응형