본문 바로가기

분류 전체보기46

Multi Armed Bandit for RL(1) - 개요 이번 포스팅에서는 Multi Armed Bandit (MAB)을 다루려고 합니다. 다만 여기에서는 Reinforcement Learning으로 나아가기 위한 관점에서 서술합니다. (철저한 MAB 관점의 글은 이곳에서 확인할 수 있습니다.) MAB은 엄밀하게 강화학습은 아니지만, 강화학습으로 나아가기 위한 과도기적 방법이고, 적용이 간편하여 널리 사용되고 있습니다. Multi Armed Bandit (MAB) MAB 정의 MAB 정의는 굉장히 심플합니다. 아래 그림과 같이 살펴보겠습니다. MAB는 위 상황으로부터 출발합니다. k개의 슬롯머신이 있는데 에이전트는 각 시도 마다, k개중 단 1개의 슬롯을 당겨 최종적으로 최고의 보상을 얻고 싶은 상황을 말합니다. 다시 말하면 에이전트가 1000번의 게임을 하는.. 2019. 9. 15.
강화학습개요 이번 포스팅에선 강화학습이 무엇이고, 머신러닝의 큰 틀 안에서 어떤 포지션을 잡고 있는지 살펴보겠습니다. 강화학습개요를 시작으로 강화학습의 전반적인 내용을 다룰 생각입니다. 강화학습개요 강화학습이란? 강화학습(Reinforcement Learning)은 머신러닝의 한 영역으로 행동심리학에서 영감을 받은 방법입니다. 어떤 환경(Environment)안에서 행동의 주체인 에이전트(Agent)가 선택 가능한 행동(Action)들 중 보상(Reward)을 최대화하는 행동 또는 행동 순서를 선택하도록 학습하는 방법입니다. (Wikipedia, Reinforcement Learning) 머신러닝의 한 영역 치고는 새롭게 등장하는 용어(환경, 에이전트, 행동, 보상)가 많아서 잘 와닿지 않을 것 같습니다. 이번 포스.. 2019. 9. 12.
Gated Recurrent Units (GRU) Gated Recurrent Units (GRU) GRU는 게이트 메커니즘이 적용된 RNN 프레임워크의 일종으로 LSTM에 영감을 받았고, 더 간략한 구조를 가지고 있습니다. 아주 자랑스럽게도 한국인 조경현 박사님이 제안한 방법입니다. (Cho et al., 2014) GRU는 LSTM에 영감을 받은 만큼 굉장히 유사한 구조로 LSTM을 제대로 이해하고 있으면 쉽게 이해할 수 있습니다. LSTM은 이곳에 자세히 정리되어 있으니 가볍게 읽고 이어질 포스팅을 읽으면 더 유익할 것 같습니다. GRU의 작동원리 LSTM과 같은 그림을 이용해서 GRU를 이해해보겠습니다. 전체적인 흐름은 아래와 같습니다. 뭔가 되게 복잡해보이지만, LSTM을 이해하셨다면 생각보다 단순합니다. 하나씩 단계별로 살펴보도록 하겠습니다... 2019. 8. 15.
Long Short-Term Memory (LSTM) 이번 포스팅에서는 Long Short-Term Memory (LSTM)에 대하여 작성하고자 합니다. LSTM은 이전 포스팅에서 다룬 RNN의 발전된 형태입니다. RNN 구조의 큰 특징은 과거의 정보를 은닉층에 저장하는 것인데, Bengio et al., 1994에 Long-term dependency 문제로 과거의 정보를 충분히 활용할 수 없음을 알게되었습니다. 위 RNN의 단점을 보안한 모형 LSTM을 Hochreciter et al., 1997이 제안합니다. 먼저 Long-term dependency 문제가 어떤 것인지 살펴보고 LSTM의 구조와 작동원리에 대해서 살펴보도록 하겠습니다. The Problems of Long-term Dependencies 장기의존성 문제(the problems of .. 2019. 8. 15.
Recurrent Neural Networks (RNN) RNN이란? Recurrent Neural Networks(RNN)은 순차적 데이터를 분석하기 위한 딥러닝 구조로 Rumelhart et al., 1986에 근간을 두고있습니다. Deep Neural Network (DNN)은 은닉층 내 노드간에 연결이 안되어 있지만, RNN은 은닉층 내 노드를 연결하여, 이전 스텝의 정보를 은닉층 노드에 담을 수 있도록 구성했습니다. 위 그림에서 볼 수 있듯 $x^{(1)}$으로 부터 $h^{(1)}$을 얻고 다음 스텝에서 $h^{(1)}$과 $x^{(2)}$을 이용하여 과거 정보와 현재 정보 모두를 반영할 수 있습니다. 은닉층의 노드의 값을 $t+1$ 시점으로 넘겨주고, $t+1$ 시점의 입력을 받아서 계산하는 작업을 반복적으로 진행하여 "Recurrent" 이름이 .. 2019. 8. 13.
Word2vec 학습 개요 이전 포스팅에서 Word2vec에 대해서 다루었습니다. CBOW와 Skip-Gram 모두 학습할 목적함수의 계산 복잡도가 높았습니다. CBOW의 목적함수는 $$\mathcal{L}_{CBOW}=-u_{c}^{\top}\hat{v}+\log{\sum_{j=1}^{|V|}exp(u_{j}^{\top}\hat{v})}$$와 같으며, Skip-Gram의 경우 $$\mathcal{L}_{skip-gram}=-\sum_{j=0,j\ne m}^{2m}u_{c-m+j}^{\top}v_{c}+2m\log{\sum_{k=1}^{|V|}exp(u_{k}^{\top}v_{c})}$$였습니다. 계산 복잡도가 높다는 말은 $|V|$와 직접적인 관련이 있습니다. $|V|$는 분석하고자하는 데이터로 부터 구축한 사전의 단어의 .. 2019. 7. 28.
Word2vec 본 포스팅은 스탠포드 대학교 CS244n 강의 자료를 참고하여 작성되었습니다. 이전 포스팅에서는 SVD 기반 word embedding에 대해서 살펴보았습니다. 포스팅 말미에 SVD 기반 방법의 단점 몇 가지를 서술하며 Word2vec을 예고했습니다. 이번 포스팅에서는 Word2vec에 대해서 살펴보겠습니다. Word2vec 개요 SVD 기반 모형에서는 대용량의 데이터를 계산하고 정보를 도출하는 방식을 취했습니다. 이에 따라 단어가 하나만 추가되더라도 많은 계산을 해야되는 단점이 있었습니다. 전체를 계산하는 것 대신, 어떤 계산을 한 번 반복할 때마다 가중치를 학습할 수 있고, 계속 반복하여 주어진 맥락(context)에 따른 단어(word)의 확률을 계산해나가는 방식을 Iteration based me.. 2019. 7. 22.
Word Embedding 개요 본 포스팅은 스탠포드 대학교 CS244n 강의 자료를 참고하여 작성되었습니다. Natural Language Processing (NLP)란 무엇인가? 자연어(Natural Language)란 인간이 실생활에서 사용하는 언어를 말하며, 자연어 처리(Natural Language Processing)이란 자연어의 의미를 분석하여 컴퓨터가 처리 할 수 있도록 하는 일을 말합니다. 인간의 언어는 의미를 전달하기 위한 어떤 구조적인 체계입니다. 예를 들어 "말을 하다." 와 "말이 달린다." 두 문장에서 말은 다른 의미를 지닙니다. 이에 따라 NLP는 다른 머신러닝이나 컴퓨터 비전과는 매우 다른 성격을 지닙니다. NLP는 아주 쉬운 영역부터 어려운 영역까지 다양한 과제가 있습니다. 쉬운 영역으로는 오타 확인, .. 2019. 7. 8.
SVD, Singular Value Decomposition 데이터 분석 방법론을 공부하다 보면 빈번하게 특이값분해(SVD, Singular Value decomposition)을 마주치게 됩니다. 이번 포스팅에서는 SVD의 정의는 무엇이고, 어떤 이유로 데이터 분석 방법론에서 차원 축소의 관점으로 자주 이용되는지 살펴보도록 하겠습니다. SVD 정의 SVD는 실수공간과 복소공간에서 정의됩니다. 하지만 여기에서는 실수공간에 국한하여 정의하도록 하겠습니다. $M$은 $m\times n$ 실수 행렬이라고하면, SVD가 다음의 factorization 형태로 존재합니다. $$M=U\Sigma V^{\top},$$ 여기에서 $U$: $m\times m$ orthogonal matrix $\Sigma$: $m \times n$ diagonal matrix $V^{\top}$.. 2019. 7. 8.
CNN 역전파 (Backpropagation for CNN) 이번 포스팅에서는 CNN의 가중치를 학습하기 위한 역전파가 계산이 어떻게 이루어지는지 살펴 보겠습니다. 이번 포스팅에서 이미지 픽셀 좌표는 좌상단에서 0 부터 시작하기로 약속하겠습니다. 예를 들어 3x3 이미지에서는 (0, 0)으로 시작해서 (2, 2)로 끝나는 형태입니다. 역전파를 하려면 그래디언트가 필요합니다. Convolutional layer의 연산을 수식으로 표현해보겠습니다. 보통 CNN 구조는 Convolutional Layer, Activation Function, Pooling의 순으로 분석이 진행됩니다. 이를 도식화 하면 다음과 같습니다. 큰 흐름은 입력($x$)에 필터 가중치($w$)로 convolution하고($z$), 이를 활성화 시킨 뒤($a$), Pooling($x$)하는 절차입.. 2019. 7. 2.
Convolution Neural Networks (합성곱 신경망) CNN 이란? CNN은 Convolutional Neural Networks의 줄임말로 인간의 시신경을 모방하여 만든 딥러닝 구조 중 하나입니다. 특히 convolution 연산을 이용하여 이미지의 공간적인 정보를 유지하고, Fully connected Neural Network 대비 연산량을 획기적으로 줄였으며, 이미지 분류에서 좋은 성능을 보이는 것으로 알려져있습니다. CNN의 간단한 역사 시신경의 구조 David H. Hubel과 Torsten Wiesel은 1959년 시각 피질에 구조에 대한 고양이 실험을 수행했습니다. 실험에서 시각 피질 안의 많은 뉴런들이 작은 local receptive field를 가진다는 사실을 밝혀냈습니다. Local의 의미는 보이는 것 중 일부 범위 안에 있는 시각 자.. 2019. 6. 23.
기울기 강하법 기본 본 포스팅에서는 답러닝 역전파 알고리즘에 적용되는 여러 기울기 강하법을 익히기 위한 기본 개념에 대해서 정리하려고 합니다. 초보적인 내용부터, Batch Gradient Descent, Stochastic Gradient Descent, Mini-Batch Gradient Descent까지 살펴보겠습니다. 기울기 강하법 (Gradient Descent Algorithms) 인공신경망의 가중치를 학습하기 위해서 기울기 강하법을 사용합니다. 기울기 강하법은 국소 최소값(Local Minimum)을 찾기 위한 수치적인 방법(numerical method)으로 기울기의 역방향으로 값을 조금씩 움직여 함수의 출력 값이 수렴할 때까지 반복하는 방법입니다 어떤 함수 $f$의 국소 최소값을 찾기 위한 기울기 강하법은 .. 2019. 6. 1.
Gradient Descent Algorithms 본 내용은 "An overview of gradient descent optimization algorithms."을 참고하여 작성하였습니다. 기울기 강하법 기본 포스팅에서 기울기 강하법의 기초적인 내용과 강하법시 이용되는 데이터의 크기에 따라서 Batch, Mini-Batch, Stochastic Gradient Descent를 구분했습니다. 위 세 가지 알고리즘을 편의상 앞에 "Vanilla(기본의)"를 붙여부르도록 하겠습니다. 용어의 혼란을 줄이기 위해 첨언하면, 통상적으로 딥러닝 프레임워크(tensorflow, keras 등)에 적용된 Batch Gradient라는 컨셉은 Mini-batch를 의미합니다. Challenges Vanilla Mini-batch Gradient Descent는 좋은 .. 2019. 5. 30.
Artificial Neural Network (인공신경망) Artificial Neural Network (인공신경망) 인공신경망(ANNs; Artificial Neural Networks)은 인간 뇌의 신경망에서 영감을 받은 분석방법으로, 입력($X$)과 반응($Y$)을 모두 알고서 학습하는 지도 학습(Supervised Learning)의 한 부분입니다. 생물학적 뉴런의 수상돌기(Dendrite)은 다른 신경세포로부터 입력(Inputs)을 받아들이는 역할을 합니다. 받아진 입력들은 세포체(Cell body)에서 정해진 방식에 따라 처리를 합니다. 이어서 축색(Axon)은 처리된 정보를 다른 신경세로 전달하는 역할을 합니다. 인공신경망은 생물학적 뉴런의 작동 과정을 흉내낸 것(정확히 같지는 않음)으로, 데이터를 입력(input)으로 받아, 가중치와 입력을 곱한.. 2019. 5. 24.
Perceptron (Deep Learning의 시작) 간략한 Deep Learning의 역사 F. Rosenblatt의 Perceptron모형부터 현재 GAN, R-CNN에 이르기 까지의 간략한 역사입니다. Deep Learning 관련 포스팅은 크게 역사 기반 진행될 예정입니다:) 먼저 Rosenblatt의 Perceptron 모형부터 시작하겠습니다. Perceptron (단층퍼셉트론) 퍼셉트론 모형은 1958년 F. Rosenblatt이 최초 고안한 모형으로 현재 딥러닝의 효시가 되었습니다. 퍼셉트론 모형은 단순히 입력 변수($x$)와 가충치($w$)의 곱이 thereshold($\theta$)보다 크면, 1, 아니면 0으로 분류하는 모형입니다. 간단히 수식으로 나타내면, $$x^{\top}w+b\geq\theta\rightarrow 1$$가 됩니다. .. 2019. 5. 24.
LIME (Local Interpretable Model-agnostic Explanations) 본 내용은 "Why should i trust you?: Explaining the predictions of any classifier." 논문의 내용을 참조하여 작성되었습니다. Introduction 의사결정을 위해 다양한 분야에서 머신러닝 기법이 활용되기 시작했습니다. 하지만 머신러닝 모형 대부분은 블랙박스(black box)모형이기에 해석이 어렵다는 단점이 있습니다. 최근 이를 해석하기 위한 연구가 활발히 진행되고 있습니다. 논문에서는 결과를 신뢰하는 것을 예측결과 신뢰도와 모형 신뢰도로 정의합니다. 예측결과를 신뢰(Trusting a prediction) 하는 것은 개별 예측결과를 믿고, 의사결정을 할 수 있는가에 대한 문제입니다. 예를 들어, 감기를 예측 하는 모형을 가정해보겠습니다. 어떤 사.. 2019. 5. 23.