전체 글

오늘은 Loss function: 손실함수에 대하여 알아볼 것이다. 크게 손실함수의 중요성과 대표적인 손실 함수들, 해석 관점 등을 알아볼 것이다. 손실함수를 바꾼다는 것은, 파라미터를 조정하는 최적화 방법 즉 학습 방법도 달라진다. 따라서 모델의 성능에 매우 크게 영향을 끼치는 것이다. 1. 대표 손실함수 1-1. 평균제곱오차 MSE `평균제곱오차`는 `Mean Squared Error: MSE` 라고 부르며, `Quadratic Loss` 혹은 `L2 Loss`고도 부른다. $$ MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 $$ 이 함수는 실제값($y$)와 모델의 예측값(y hat)의 차이를 제곱하여 평균 낸 값을 말한다. 실제값과 예측값 사이의 오차..
이번에는 역전파 알고리즘에 대하여 알아볼 것이다. 0. 역전파 배경 이전에 확률적, 미니배치 경사하강법이 등장한 이유를 Loss 값을 계산을 할 때 모든 데이터 셋에 대하여 계산하는 것이 아니라, 학습 샘플(1 혹은 배치사이즈)만큼의 평균 Loss값을 이용하여 계산을 효율적으로 하였다. 그러나 경사하강법을 진행하기 위해서는 모델을 구성하는 각 파라미터에 대한 손실함수를 미분한 결과(그래디언트)는 여전히 계산해야 한다. 이 모든 파라미터에 대한 미분값을 그래디언트 하고 불렀다. 이때, 모든 파라미터에 대한 편미분을 효율적으로 하기 위해 역전파란 개념이 등장하였다. 손실함수가 단순 선형식일 경우 각 파라미터에 대하여 편미분 하는 것은 간단하다. 예를 들어, 모델을 $ y=ax+b $라하고, 손실함수로 MSE..
딥러닝에서 손실 함수의 값이 최소가 되도록 모델의 파라미터를 조정하는 최적화 알고리즘에 대하여 정리해 봤다. 최적화 알고리즘에 쓰이는 미분에 대하여 먼저 정리하고 넘어가자 1. 미분(differentiation) 미분이란, 변수의 변화에 따른 함수값의 변화 혹은 함수 위의 주어진 점에서의 접선의 기울기를 의미한다. 직접 구하기 위해서는 $ h->0 $ 극한을 계산해야 한다. $ \frac{df(x)}{dx} = \lim_{{h \to 0}} \frac{f(x + h) - f(x)}{h}$ 즉 변수 x에 대한 미분값 = 변수값이 바뀔 때의 f(x)가 얼마나 변하는지를 의미한다. 1-1. 2차원 평면에서의 미분 $ x $에서의 미분값은 함수 $ f $의 주어진 점$(x,f(x))$에서의 접선의 기울기와 동일..
· ML & DL/NLP
이번 글에서는 Word2Vec을 이용한 워드 임베딩을 구현해 볼 것이다. 1. 영어 워드 임베딩 구축 우선 scikit-learn에서 제공하는 데이터 set을 사용할 예정이다. import pandas as pd import numpy as np from sklearn.datasets import fetch_20newsgroups dataset = fetch_20newsgroups(shuffle=True, random_state=1, remove=('headers', 'footers', 'quotes')) dataset = dataset.data news_df = pd.DataFrame({'document':dataset}) news_df 위의 데이터셋에는 총 11314개의 데이터가 포함되어 있다. 1-..
· ML & DL/NLP
분산표현은 분포가설이라는 가정하에 만들어진 표현방법으로, 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다는 가설로, 주변(window크기) 단어에 따라 정의되는 문맥의 의미를 이용하여 단어를 벡터로 표현하는 것이다. 이 또한 원-핫 벡터처럼 차원이 단어집 합의 크기일 필요가 없으므로, 효율적인 방식이다. 이는 이전에 말한 밀집 표현과 혼용하여 사용되며 하나의 차원이 하나의 속성을 표현하는 것이 아니라, 여러 차원들이 조합되어 속성들을 표현한다. 이런 방법을 이용하여 단어의 유사도 또한 계산할 수 있다. 1. Word2Vec `Word2Vec`모델은 분포 가설 하에 표현한 분산 표현을 따르는 Google이 공개한 워드 임베딩 모델이다. 이 모델에는 두 가지 방식 `CBOW`와 `Skip-Gram` ..
· ML & DL/NLP
워드임베딩은 단어를 컴퓨터가 이해하고, 효율적으로 처리할 수 있도록 단어를 벡터화하는 기술로 단어를 sparse matrix 형태로 표현한다. 이러한 과정을 거쳐 나온 것을 임베딩 벡터라고 부른다. 임베딩 벡터는 모델의 입력으로 사용되게 된다. 기계는 자연어를 이해할 수 없기 때문에 데이터를 기계가 이해할 수 있도록 숫자 등으로 변환해 주는 작업 자체를 인코딩이라고 부른다. Sparse representation 원-핫 인코딩을 통해서 나온 원-핫 벡터들은 표현하고자 하는 단어의 인덱스값만 1로, 나머지는 모두 0으로 표현한 벡터이다. 이렇게 벡터 혹은 행렬의 값이 모두 0으로 표현된 것을 희소 표현이라 한다. 이렇게 만들어진 sparse matrix는 단어의 개수가 늘어나면 벡터의 차원이 한없이 커지기..
1. 인공신경망 ANN 인공신경망 ANN: Artificial Neural Network는 인간의 뉴런을 이용한 자극 전달 방식을 본떠 만들어진 머신러닝 알고리즘이다. 뉴런의 시냅스(synapse)는 다른 뉴런으로부터 짧은 전기 신호를 받는 역할을 하고, 인간은 이 시냅스를 통하여 다른 뉴런으로부터의 자극을 전달하면서 학습하는데 이 과정을 본 따 이를 레이어(layer)과 퍼셉트론(perceptron)이라는 구조로 구현하여 만든 알고리즘이다. 현대의 딥러닝은 모두 이 ann으로부터 비롯된 neural network를 이용하여 만든 모델들을 통해 학습을 진행된다. 이러한 인공신경망에 사용되는 퍼셉트론에 대하여 먼저 알아보도록 하겠다. 1-1.퍼셉트론(Perceptrons) 퍼셉트론은 노드와 엣지로 구성되어..
창빵맨
Let's be Developers