Data Science

    [서평] 게임 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_..

    Vision Transformer(1): Theory

    Vision Transformer(1): Theory

    차근차근 이해하는 Transformer에 이어 Transformer를 Vision 분야에 적용한 Vision Transformer(ViT)을 이해하고 코드로 구현해보겠습니다. Introduction 자연어 처리 분야에서 Transformer는 표준 모델이 된지 오래이지만, Vision 분야에서는 Attention이 Convolotional Network와 함께 사용되거나, Convolutional Network의 일부가 Attention으로 대체되는 정도에 그쳤습니다. 이런 가운데 Dosovitskiy, Alexey, et al. (2020)은 Vision 문제를 Convolutional Network 대신 Transformer만을 이용하여 해결하는 방법을 제시하였습니다. 그럼 3차원 데이터인 이미지 데..

    차근차근 이해하는 Transformer(5): Positional Encoding

    차근차근 이해하는 Transformer(5): Positional Encoding

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. 이번 글에서는 Transformer에서 다루지 않은 마지막 요소인 Positional Encoding에 대해 알아보겠습니다. Positional Encoding Positional Encoding이란 말 그대로 위치의 Representation을 벡터로 표현한 것을 말합니다. 조금 더 엄밀하게 표현한다면 $A=[a_0, a_1, \cdots, a_n]$가 주어졌을 때 A의 Positional Encoding은 각 원소의 위치와 ..

    차근차근 이해하는 Transformer(4): Masked Multi-Head Attention과 Decoder

    차근차근 이해하는 Transformer(4): Masked Multi-Head Attention과 Decoder

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. 이번 글에서는 Encoder에 이어서 Transformer를 구성하는 또 다른 Building Block인 Decoder의 구성 요소를 하나씩 살펴보겠습니다. Revisit: Transformer의 전체 구조 지난 번에 보여드린 Transformer의 전체 구조 그림을 보면 Decoder가 대부분 익숙한 이름을 가진 요소들로 이루어져 있음을 알 수 있습니다. 하지만 조금 다른 부분도 존재합니다. 첫 번째 Multi-Head At..

    차근차근 이해하는 Transformer(3): Multi-Head Attention과 Encoder

    차근차근 이해하는 Transformer(3): Multi-Head Attention과 Encoder

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. 이번 글에서는 Transformer의 Encoder를 이해하기 위한 마지막 요소인 Multi-Head Attention에 대해 알아보겠습니다. Multi-Head Self Attention 사실 Multi-Head (Self) Attention은 지난 글에서 다룬 Single-Head (Self) Attention을 여러 개 이용하는 것에 불과합니다. 하나의 Attention Value를 이용하는 대신 여러 개의 Attenti..

    [PyTorch] model.train() vs. model.eval() vs. torch.no_grad()

    PyTorch 코드를 보면 자주 나오는 model.train(), model.eval(), 그리고 torch.no_grad()에 대해서 간단히 정리해봤습니다. model.train() 학습할 때와 추론할 때 다르게 동작하는 Layer들을 Training mode로 바꿔줍니다. 예를 들어 Batch Normalization Layer는 Batch Statistics를 이용하게 되고, Dropout Layer가 주어진 확률에 따라 활성화됩니다. model.eval() 학습할 때와 추론할 때 다르게 동작하는 Layer들을 Evaluation(Inference) mode로 바꿔줍니다. 예를 들어 Batch Normalization Layer는 학습할 때 사용된 Batch Statistics를 통해 결정된 Run..

    차근차근 이해하는 Transformer(2): Single-Head Attention으로 이해하는 Encoder

    차근차근 이해하는 Transformer(2): Single-Head Attention으로 이해하는 Encoder

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. Transformer에서 사용하는 Attention을 다룬 지난 글에 이어 이번에는 Transformer의 Encoder가 어떻게 구성되었는지 정리해보겠습니다. Transformer의 전체 구조 Transformer는 Encoder, Decoder Layer가 Attention과 Feed-Forward Network로 구성된 Encoder-Decoder 구조를 따르고 있습니다. Transformer를 이해하는데 가장 병목이 되..

    차근차근 이해하는 Transformer(1): Scaled Dot-Product Attention

    지난 글에서 Transformer의 핵심적인 Building Block인 Attention을 정리해봤습니다. 이어서 Vaswani et al. (2017) 논문을 통해 현재 나오는 수 많은 모델의 기반이 되고 있는 Transformer를 차근차근 이해할 수 있도록 정리해보았습니다. Transformer 이전의 Sequential Modeling에는 주로 Recurrent, Convolutional Neural Network 기반의 Encoder-Decoder 구조와 Attention Mechanism이 사용되고 있었습니다. 하지만 논문이 발표된 이후 Transformer는 Sequential Modeling을 완전히 평정한 것은 물론, Computer Vision 등 다양한 도메인에서도 사용되는 등 딥러..