기초_개념/Deep Learning
-
Convolution기초_개념/Deep Learning 2021. 1. 18. 00:01
Standard 1D Convolution "Convolutional Neural Networks for Sentence Classification"에서 CNN을 Word Vector들에 적용하는 방법이 처음 등장하였습니다. Standard 1D Convolution은 입력벡터의 채널 ($d_{in}$), 출력 벡터의 채널 ($d_{out}$), 커널의 너비 ($k$)일 때, 총 $d_{in}\times d_{out}\times k$ 개의 파라미터가 필요합니다. 입력 시퀀스 $X \in \mathbb{R}^{n\times d_{in}}$와 커널의 가중치 $W \in \mathbb{R}^{d_{in} \times d_{out} \times k}$가 주어졌을 때 연산 결과 $Y \in \mathbb{R}^{..
-
수치 미분과 기울기기초_개념/Deep Learning 2021. 1. 13. 23:03
수치 미분 Gradient Descent는 기울기(경사) 값을 기준으로 나아갈 방향을 정한다는 것은 많이 들어보셨을 것이라 생각됩니다. 이번 글에서는 이 기울기를 구하기 위한 '미분'에 대해 알아보도록 하겠습니다. 우리가 알고 있는 미분은 단순하게 '기울기'라고 생각할 수 있지만, 구체적으로 말하면 어느 한순간의 변화량을 표시한 것입니다. 수식으로는 $\frac{df(x)}{dx} = \displaystyle \lim_{h\rightarrow0} \frac{f(x+h)-f(x)}{h}$로 표현되며 $x$의 '아주 작은 변화'가 $f(x)$를 얼마나 변화시키느냐를 의미합니다. 이를 수치 미분 이라고 합니다. $h$를 무한히 0으로 좁히는 것은 한계가 있기 때문에 수치 미분에는 오차가 포함됩니다. 이 오차를..
-
Normalization기초_개념/Deep Learning 2021. 1. 12. 23:37
Normalization Layer 등장 배경 DNN 연구의 Bottle-neck 현상에 의해 학습시간이 길어지는 것을 해결하고 학습 시간을 단축시키고자 등장하였습니다. 학습 시간을 단축하고 효율을 높이고자 하는 연구는 꾸준히 등장하고 있었습니다. 데이터 및 DNN 자체를 분할해서 계산하는 DNN 연산 병렬화가 등장하였지만, 통신지연과 SW의 복잡화에 의한 문제가 있었습니다. Gradient 계산법 자체를 개선하는 방법 또한 등장하였지만, 2차 미분을 다루게 된다면 계산 비용이 커지고 어디로 튈지 예측할 수 없는 Ill-conditioned problem이 발생할 가능성이 있습니다. Parameter의 공간기하를 수정한다. 이는 Batch Normalization을 의미하며, 실제 학습시간 단축에 성공하..
-
Optimization기초_개념/Deep Learning 2021. 1. 11. 01:39
Optimization 손실 함수의 값을 최소화할 수 있는 매개변수의 최적값을 찾는 것을 최적화(Optimization)이라 합니다. 매개변수 공간은 매우 넓고 복잡하기 때문에 최적화는 매우 어렵고, 뉴럴 네트워크에서는 매개변수의 수가 엄청나게 많기 때문에 이 문제는 더욱 심각해집니다. 지금까지 최적의 매개변수 값을 찾는 단서로 매개변수의 기울기를 이용한 Stochastic Gradient Descent(SDG)를 많이 사용했습니다. SGD SGD의 자세한 내용은 다른 글에서 다루었기 때문에 이번 글에서는 생략하고 다른 Optimization이 등장한 배경을 설명하기 위해 SGD의 한계점에 대해서만 쓰도록 하겠습니다. SGD는 단순하고 구현도 쉽지만, 문제에 따라서는 비효율적일 때가 있습니다. $f(x,..
-
정규화기초_개념/Deep Learning 2021. 1. 5. 19:00
정규화 머신 러닝, 딥러닝을 공부하다 보면 정규화라는 단어를 자주 접할 수 있습니다. 이번 글에서는 정규화에 대해 정리해보도록 하겠습니다. 정규화는 영어 표현에서는 전혀 문제가 없지만 번역하는 과정에서 문제가 생긴다. 머신 러닝, 딥러닝에서 정규화는 Normalization, Standardization, Regularization 세 가지가 있지만, 한글 표현에서는 이 세 가지 모두 정규화라고 불린다. 그러므로, 정규화는 영어로 표현하는 것이 적절하다. Normalization, Standardization, Regularization은 각각 다르지만, 모두 Overfitting을 방지하기 위해 사용된다는 공통점이 있다. Normalization & Standardization Normalization..
-
Recurrent Neural Network기초_개념/Deep Learning 2020. 12. 31. 16:43
RNN RNN은 시계열 데이터에 대해 강력한 성능을 보여주는 뉴럴 네트워크의 한 종류이다. 기본적인 구조는 이전 타임 스텝의 출력을 현재 타임 스텝의 입력으로 사용하며, 모든 타임 스텝에서는 모든 파라미터를 공유한다. RNN이 시계열 데이터에서 강력한 성능을 보이는 이유는 구조상으로 이전 상태에 대한 정보를 일종의 메모리 형태로 저장할 수 있기 때문이다. 시퀀스 데이터는 앞의 정보가 뒤의 정보와 연관관계를 갖기 때문에 이러한 구조는 매우 유용하게 동작한다. BPTT Backpropagation Through Time RNN 계열의 뉴럴 네트워크에서 Gradient를 계산하고 Backpropagation 하는 방법을 의미한다. 뉴럴 네트워크 학습의 최종적인 목표는 파라미터에 대한 에러의 Gradient를 ..
-
Dialog Management기초_개념/Deep Learning 2020. 12. 30. 23:18
Dialog Management NLU ( Natural Language Understading )을 통해 사용자 입력을 추상적인 개념인 Intent와 entity로 구분할 수 있다. 이는 복잡한 데화형 봇 개발을 위한 첫번째 과정이다. 위의 과정을 통해 사용자의 의도를 파악하였다면 봇은 옳바른 대답을 선택할 필요가 있다. 이 대답은 봇이 가지고 있는 지식에 기초한다. 이를 관리하는 작업을 수행하는 것이 DM ( Dialog Management )이다. DM의 기본적인 기능은 사용자 입력에 대한 적절한 대응을 찾는 것이다. 해당 대응은 질문에 대한 직접적인 대답이 될 수도 있으며, 질문에 대한 추가적인 질문이 될 수 있다. 혹은, 사용자의 의도를 파악하지 못했다면 그에 대한 대응이 될 수 있다. Grou..
-
Neural Network Bias기초_개념/Deep Learning 2020. 12. 26. 23:58
뉴럴 네트워크에서의 의미 bias는 bias neuron을 의미하기도 하고 편향을 의미하기도 한다. Bias Neuron bias neuron은 뉴럴 네트워크의 각 레이어에 추가되는 특별한 뉴런이다. 간단한 변수를 저장하고 이를 통해 Activation Function의 그래프를 왼쪽이나 오른쪽으로 이동시키는 것과 같은 효과를 얻을 수 있다. Bias VS Variance Bias와 Variance는 신경망을 포함한 모든 유형의 기계 학습에 중요한 통계 개념이다. Definition Bias : 높은 bias는 모델이 학습 데이터셋에 'fitting'되지 않았음을 의미한다. 반대로 낮은 bias는 모델이 학습 데이터셋을 잘 학습하였음을 의미한다. Variance : 높은 Variance는 모델이 검증 데..