• [서평] 게임 AI를 위한 탐색 알고리즘 입문

    [서평] 게임 AI를 위한 탐색 알고리즘 입문

    이 책은 게임 AI의 기초부터 심화 내용까지 깊이 있게 다루며, 개발자가 직접 AI를 구현해보는 실습까지 포함하고 있어 이론과 실제의 균형을 매우 잘 잡고 있습니다. 1장에서는 게임 AI의 기본 개념을 설명하고, 게임의 종류별로 적용할 수 있는 탐색 알고리즘을 소개합니다. 이는 게임 개발에 입문하는 이들에게 필수적인 지식을 제공합니다. 2장은 개발 환경 설정 방법을 자세히 안내하여 독자들이 본격적인 게임 AI 개발을 시작하기 전에 필요한 준비를 할 수 있게 도와줍니다. WSL 설치부터 C++ 개발 환경 구축까지의 과정을 단계별로 설명함으로써 초보자들도 쉽게 따라할 수 있습니다. 3장 이후의 장들은 각기 다른 형태의 게임에 적합한 다양한 탐색 알고리즘을 소개하고, 이를 구현하는 방법을 실제 게임 예제를 통..

  • [서평] GPT-4를 활용한 인공지능 앱 개발

    [서평] GPT-4를 활용한 인공지능 앱 개발

    ChatGPT의 등장 이후 지금까지 많은 사람들이 GPT를 더욱 효과적으로 활용하기 위해 연구를 진행해왔으며, 세상에 긍정적인 영향을 미칠 수 있는 GPT 기반 애플리케이션을 개발하고 있습니다. 이러한 흐름에 발맞춰, GPT를 처음으로 활용하는 개발자들과 연구자들을 위해 한빛미디어에서 이라는 책이 출간되었습니다. 다른 GPT 관련 도서들과 달리 은 NLP 분야의 발전 과정과 GPT에 대한 개괄적인 내용부터 설명을 시작합니다. 이는 NLP 분야에 대한 기초 지식은 있지만, GPT 기술의 발전을 따라잡지 못한 독자들에게 매우 유용할뿐만 아니라, GPT로 처음 NLP 분야에 입문하신 분들에게도 많은 도움이 될 것 같습니다. 간단한 NLP 분야에 대한 소개 다음으로 OpenAI의 Playground를 통한 GP..

  • ML. Pinball Loss

    ML. Pinball Loss

    주로 Quantile Prediction을 위해 사용되는 Loss로 Quantile Loss라고도 불린다. 계산식은 다음과 같다.$$ \begin{align} \mathcal{L} &=(Y_{t}-Q_{t}(u)){\cdot}u{\cdot}{\mathbb{1}\{Q_{t}(u){\leq}Y_{t}\}} +(Q_{t}(u)-Y_{t}){\cdot}(1-u){\cdot}{\mathbb{1}\{Q_{t}(u){\gt}Y_{t}\}} \\ \\ &=\begin{cases} (Y_{t}-Q_{t}(u)){\cdot}u & if $Q_{t}(u){\leq}Y_{t}$, \\ \\ (Q_{t}(u)-Y_{t}){\cdot}(1-u) & otherwise. \end{cases} \end{align} $$ 이 때 $Y_..

  • SQLAlchemy. 조건식의 원하는 곳에 괄호 추가하기

    Calendar라는 테이블에 Mapping되는 모델을 다음과 같이 정의했다고 하자. from sqlalchemy import Column, INTEGER from sqlalchemy.orm import declarative_base Base = declarative_base() class Calendar(Base): __tablename__ = "calendar" year = Column(INTEGER, primary_key=True) month = Column(INTEGER, primary_key=True) day = Column(INTEGER, primary_key=True) ... 위 테이블에서 2021년 12월과 2022년 1월의 정보를 얻고자 하면 다음과 같이 SQL Query를 작성할 것이다...

  • Alembic. 버전 관리 테이블이 생성될 스키마 지정하기

    Alembic이 적용된 DB에는 적용된 Revision을 기록하기 위한 `alembic_version`과 같은 테이블이 생성되게 된다. (큰 상관이 없을 수도 있지만) 서비스와 관련된 테이블과 같은 곳에 있는 것은 구분을 어렵게 하므로 다음 방법을 통해 Alembic과 관련된 테이블을 별도의 스키마에 저장할 수 있다. # In env.py, from sqlalchemy.schema import CreateSchema def run_migrations_online(): ... with connectable.connect() as connection: context.configure( connection=connection, target_metadata=target_metadata, include_schem..