2. Machine Learning with Shallow Neural Networks

2.1. Introduction

이 장에서는 많은 최적화 기반 기계 학습 기법이 층이 1~2개인 매우 단순한 신경망 구조로 포착될 수 있음을 보인다. 사용 가능한 데이터 수가 적을 때는 복잡하거나 층이 많은 신경망 구조는 과도하다. 심층 학습 모델을 보는 하나의 방법은 선형/로지스틱 회귀 같은 단순한 모델을 쌓는 것이지만, 항상 그런 것은 아니다. 최초의 신경망과 전통적 기계학습 알고리즘들에는 밀접한 관계가 있다. 이 장에서는 지도학습 모델과 비지도학습 모델을 모두 다룬다.

2.2. Neural Architectures for Binary Classification Models

이 절에서는 최소 제곱 회귀나 분류 같은 기본 모델을 다룬다. 이 절에서는 신경망의 층은 한 층으로 가정한다.

2.2.1. Revisiting the Perceptron

퍼셉트론을 다시 생각해보자. 이의 손실 함수는 미분가능하지 않지만, 동치인 미분가능한 손실 함수 L_{i} = \max(0, -y_{i}(\mathbf{w} \mathbf{x}_{i}))을 적용 가능한데, 이를 퍼셉트론 기준이라 한다. 쉬운 최적화를 위해, 손실 함수를 계산하는 출력은 점수로 가정하자.

2.2.2. Least-Square Regression

벡터에 대해 실변수 대상을 매핑하는 함수를 학습하는 것을 최소 제곱 회귀라 한다. 이는 \hat{y}_{i} = \mathbf{w} \mathbf{x}_{i}에서 \mathbf{w}를 학습한다. 오차는 e_{i} = y_{i} - \hat{y}_{i}이며 손실 함수는 오차의 제곱의 합이다. 이는 추계적 경사 하강법으로 학습될 수 있다. 최소 제곱 회귀를 이진 타겟에 적용한 것을 위드로우-호프 학습이라 한다.

2.2.2.1. Widrow-Hoff Learning

위드로우-호프 학습은 최소 제곱 분류로도 볼 수 있다. 이것을 이진 타겟으로 제한한 경우를 피셔 판별식이라 한다. 경사 하강법 과정은 같지만, 오차가 계산되는 방식만 다르다. 이는 다른 배경에서 출발했지만, 비슷한 카테고리의 학습법으로 수렴하였다. 손실 함수는 L_{i} = (1 - y_{i}\hat{y}_{i})^{2}로도 쓰일 수 있다. 경사 하강법도 y_{i}^{2} = 1임을 이용해 다르게 쓸 수 있다.

2.2.2. Closed Form Solutions

최소 제곱 회귀와 분류의 특별한 경우는 경사 하강법 없이 닫힌 해 \mathbf{W}^{T} = (\mathbf{D}^{T} \mathbf{D} + \lambda \mathbf{I})^{-1} \mathbf{D}^{T} \mathbf{y}가 존재한다.

2.2.3. Logistic Regression

로지스틱 회귀는 인스턴스를 확률로 분류하는 확률적 모델이다. 이는 \hat{y}_{i} = \frac{1}{1 + e^{-\mathbf{w} \mathbf{x}_{i}}}을 사용해 확률을 예측한다. 최대가능도추정에서의 손실 함수는 \mathcal{L} = \prod_{i=1}^{n} \lvert \frac{y_{i}}{2} - 0.5 + \hat{y}_{i} \rvert로 나타내어진다. 경사 업데이트는 \mathbf{w} = \mathbf{w}(1 - \alpha \lambda) + \alpha \frac{y_{i} \mathbf{x}_{i}}{1 + e^{y_{i}(\mathbf{w} \mathbf{x}_{i})}}로 나타내어진다.

2.2.3.1 Alternative Choices of Activation and Loss

손실 함수를 L_{i} = \log(1 + e^{-y_{i} \hat{y}_{i}})로 쓰는 것도 가능하다. 이의 이점은 퍼셉트론이나 위드로우-호프 학습과 일관성이 있다는 점이다.

2.2.4. Support Vector Machines

보조 벡터 기계의 손실 함수는 로지스틱 회귀와 밀접하게 연관되어 있다. 보조 벡터 기계의 신경망 구조는 최소 제곱 회귀 분류와 같지만, 손실 함수가 다르다. 손실 함수는 L_{i} = \max(0, 1 - y_{i} \hat{y}_{i})가 된다. 위드로우-호프 손실 함수에서 \mathbf{w} \mathbf{x} > 1에 대해 손실 함수를 0을 주면 이차 손실 SVM이 된다. 이는 추계적 경사 하강법을 자연스럽게 정의한다. 즉, 퍼셉트론, 위드로우-호프, 로지스틱 회귀, SVM, SVM-L^{2}는 같은 구조에 손실 함수만 다르다. 이는 모두 추계적 경사 하강법을 적용 가능하다.

2.3. Neural Architectures for Multiclass Models

다클래스 모델에 대한 신경망 구조를 알아보자.

2.3.1. Multiclass Perceptron

손실 함수는 다음과 같다. L_{i} = \max_{r : r \neq c(i)} max(\mathbf{w}_{r} \mathbf{x}_{i} - \mathbf{w}_{c(i)} \mathbf{x}_{i}, 0) 업데이트는 다음과 같다: \mathbf{w}_{r} = \mathbf{w}_{r} + \alpha \mathbf{x}_{i} if r = c(i), -\alpha \mathbf{x}_{i} if r \neq c(i) 가 가장 미분류된 예측일 때, 이외엔 0.

2.3.2. Weston-Watkins SVM

웨스톤-왓킨스 SVM은 다클래스 퍼셉트론과 2가지로 다르다: 웨스톤-왓킨스 SVM은 진짜 클래스보다 더 분류된 모든 클래스를 업데이트하고, 틀린 클래스가 올바른 클래스에 너무 가까운 경우도 징벌한다. 손실 함수는 L_{i} = \sum_{r : r \neq c(i)} \max(\mathbf{w}_{r} \mathbf{x}_{i} - \mathbf{w}_{c(i)} \mathbf{x}_{i} + 1, 0)이다. 경사 업데이트는 \mathbf{w}_{r} = \mathbf{w}_{r} (1 - \alpha \lambda) + \alpha \mathbf{x}_{i}[\sum_{j \neq r} \delta(j, \mathbf{x}_{i})] if r = c(i), 이외엔 \alpha( -\mathbf{x}_{i} [\delta(r, \mathbf{x}_{i})]).

2.3.3. Multinomial Logistic Regression Softmax Classifier

다클래스 로지스틱 회귀는 P(r | \mathbf{x}_{i}) = \frac{e^{\mathbf{w}_{r} \mathbf{x}_{i}}}{\sum_{j=1}^{k} e^{\mathbf{w}_{j}\mathbf{x}_{i}}}을 사용한다. 손실 함수는 교차 엔트로피르 사용하고 편도함수에 따른 경사 업데이트는 \mathbf{w}_{r} = \mathbf{w}_{r}(1 - \alpha \lambda) + \alpha (\mathbf{x}_{i} (1 - P(r | \mathbf{x}_{i})) if r = c(i), 이외엔 -\mathbf{x}_{i} P(r | \mathbf{x}_{i}) 이다.

2.3.4. Hierarchical Softmax for Many Classes

클래스 수가 많을 때는 트리 구조화 해서 계층적 소프트맥스를 적용할 수 있다. 이 때는 비슷한 클래스를 묶는 것이 좋다. 층이 M개인 자가암호화기는 대개 입력-출력 관점에서 암호화부-복호화부의 대칭 구조를 갖는다.

2.5.1.1. Autoencoder with a Single Hidden Layer

행렬 분해에 쓰이는 층 1개짜리 자가암호화기를 알아보자. 전통적 기계학습에서는 프로베니우스 노름 J = \lVert \mathbf{D} - \mathbf{U}\mathbf{V}^{T} \rVert_{2}^{2}를 최소화함으로써 최적화한다. 이는 특이값 분해로 쓸 수 있다. 이로 학습한 자가암호화기는 원 행렬 D가 아닌 다른 행에 대한 분해에도 쓰일 수 있다.

Encoder Weights

자가암호화기 가중치는 \mathbf{W} = (\mathbf{V}^{T} \mathbf{V})^{-1} \mathbf{V}^{T}의 관계가 있다. 이는 \mathbf{D}\mathbf{W}^{T} \simeq \mathbf{U}가 있다. 재구성 오차를 최소화하는 해는 유일하다.

2.5.1.2. Connections with Singular Value Decomposition

특이값 분해의 해는 단일 층 자가암호화기 신경망의 가능한 해지만, 이 신경망의 해는 정규직교한다는 보장이 없기 때문에 꼭 특이값 분해의 해가 나오는 것은 아니다. 하지만 특이값 분해의 해가 생성하는 부분공간의 기저를 찾기는 한다.

2.5.1.3. Sharing Weights in Encoder and Decoder

단일 층 자가암호화기에서 앞 층과 뒤 층의 가중치를 공유시킬 수도 있다. 이 경우 해를 직교하게 만드는 효과가 있다. 여러 층이면 매칭되는 층끼리 가중치를 공유시키며, 이는 매개변수 수를 반으로 줄이는 효과가 있다. 또한 선형 활성 함수를 쓰는 경우에 한해 열들의 길이를 비슷한 값으로 맞추는 효과도 있다. 이 경우 역전파 알고리즘도 약간 바꿔야 한다.

2.5.1.4. Other Matrix Factorization Methods

다른 여러 행렬 분해에도 쓸 수 있다.

2.5.2. Nonlinear Activations

자가암호화기의 진짜 위력은 복수 층과 비선형 활성 함수를 쓰기 시작할 때 나온다. 시그모이드 함수를 적용해 그 값으로부터 베르누이 추출을 한 이진 행렬을 결과로 낼 수 있는데 이를 로지스틱 분해라 한다. 비선형 활성 함수는 출력층이 아니라 은닉층에도 쓸 수 있다. 이 경우 W는 V의 유사역행렬이 아니게 된다. 비선형 행렬 분해를 이용한 차원 감소도 가능하다. 때때로는 깊은 망을 필요로 할 수도 있다.

2.5.3. Deep Autoencoders

신경망에서 자가암호화기는 층의 수가 많아졌을때 강력해진다. 심층 신경망은 전통적인 기계학습 알고리즘에 비해 비선형 차원 감소를 더 강력하게 수행할 수 있는데, 샘플이 아닌 데이터도 잘 매핑할 수 있고, 층의 변화를 모듈러하게 진행할 수 있으므로 더 유연하다. 이를 통해 극히 컴팩트한 차원 감소를 얻을 수 있다. 이는 PCA 등보다 더 강력하다. 중요한 것은 과적합되지 않도록 검증 집합을 두고 층별 사전학습을 하는 것이다.

2.5.4. Application to Outlier Detection

차원 감소는 이상치 탐지와 밀접한 연관이 있다. 이상치는 암호화-복호화 시에 정보가 대다수 유실되기 때문이다. D - D'의 절대값들은 행렬 요소의 이사이 점수를 표현한다.

2.5.5. When the Hidden Layer is Broader than the Input Layer

은닉층이 입력층보다 폭이 좁을 때는 데이터의 압축 표현을 찾을 때만 의미가 있다. 그 반대의 경우에는 과완전한 표현을 학습하게 된다. 다만 희박성을 학습하진 않는데, 이는 명시적으로 유도해야 한다.

2.5.5.1. Sparse Feature Learning

희박성 조건이 명시적으로 주어지면 결과 자가부호화기는 희박 자가부호화기로 불린다. 이는 L^{1} 징벌항을 둬서 유도할 수도 있지만 잘 쓰이지 않는다. 또는 최대 r ≤ k개의 유닛만 0이 아니도록 허용할 수도 있다. 다른 방법은 전체 학습 데이터에서 활성 함수의 일부분만 허용하는 방법도 있다.

2.5.6. Other Applications

자가암호화기는 신경망의 비지도학습의 큰 부분을 차지한다. 잡음 제거용으로 쓸 수도 있는데 이를 자가암호화기라 한다. 이 경우 입력에는 노이즈가 주어지지만 손실 함수는 노이즈 없는 표본에 대해서 계산된다. 가변 자가암호화기는 은닉층에 특별한 구조가 주어지도록 유도한다. 생성적 대립쌍 망은 복호화 망과 대립적 판별자 쌍을 통해 표본과 유사한 데이터를 생성한다. 또한 결합 잠재 공간에 다빈값의 데이터를 끼워넣는 데 쓸 수도 있다. 신경망의 가중치를 초기화시키는데 사전학습하는 데 쓸 수도 있다.

2.5.7. Recommender Systems: Row Index to Row Value Prediction

행렬 분해의 가장 흥미로운 응용은 신경망 구조를 추천 시스템에 적용하는 것이다. 이를 위해서는 입력이 유실된 항목에 영향을 받지 않고 유일하게 특정될 수 있는 원-핫 인코딩을 사용해야 한다. 이를 통해서 선형 활성함수를 쓰는 신경망을 통해 입력이 유실된 항목에 대해서도 예측을 수행할 수 있다. 학습은 행별로 수행될 수도 있다. 또는 성분별로 수행될 수도 있다.

2.5.8. Discussion

비지도학습에서 신경망은 모듈화된 이점이 있다.

2.6. Word2vec: An Application of Simple Neural Architectures

신경망은 텍스트 데이터의 단어 임베딩을 학습하는 데 쓰인다. SVD는 문서를 단어의 모음으로 다룬다. word2vec에는 2가지 변형이 있다: 맥락으로부터 대상 단어를 예측하는 것, 대상 단어들로부터 맥락을 예측하는 것.

2.6.1. Neural Embedding with Continuous Bag of Words

연속된 단어 모임 (CBOW) 모델에서 학습 쌍은 모든 맥락-단어 쌍으로서 맥락 단어의 윈도우가 입력이고 단일 타겟 단어가 예측된 값이다. 이는 m = 2t이고 앞 단어 t개, 뒤 단어 t개가 있을 때 가운데 단어를 예측하는 것이 목적이다. 이 구조는 m × d 노드의 단일 입력 층, p 노드의 은닉층, d 노드의 출력층으로 구성된다. 은닉층은 p개의 노드로 구성된다. 각 입력에서 은닉층으로 가는 가중치는 공유시킨다. 이 때 각각의 행은 j번째 입력 단어의 p차원 껴묻기로 이해할 수 있다. 은닉 층의 노드들은 소프트맥스 함수를 이용해 대상 단어가 d개의 단어 중 하나인지를 확률적으로 판별한다. 업데이트는 역전파를 통해서 수행된다. j번째 단어를 예측 실패 확률에는 절대값을 쓰지 않는다. word2vec은 입력의 임베딩 (행)과 출력의 임베딩 (열)을 모두 제공한다.

2.6.2. Neural Embedding with Skip-Gram Model

스킵-그램 모델에서는 대상 단어를 통해 m개의 맥락 단어를 예측한다. 이는 m = 2t이고 가운데 단어가 있을 때 앞 단어 t개, 뒤 단어 t개를 예측하는 것이 목적이다. 은닉층의 출력값은 입력 벡터와 은닉층 가중치 행렬의 곱이 된다. 역전파 알고리즘의 손실 함수는 학습 인스턴스의 로그 가능도이다. j번째 단어 예측 실패 확률에는 절대값을 쓰지 않는다.

Practical Issues

은닉층의 노드 수와 맥락 단어의 윈도우 크기에는 편향-분산 트레이드오프가 존재한다. 또한, the 같은 단어는 다운샘플해야 하고, 매우 드문 단어는 스펠링 오류일 수 있으니 무시해야 한다. 출력 임베딩의 업데이트는 소프트맥스를 사용하기 때문에 허프만 인코딩을 사용해야 한다.

Skip-Gram with Negative Sampling

계층 소프트맥스에 대한 대안은 음의 샘플링이다. 기본 아이디어는 맥락 윈도우의 m 단어를 직접 예측하는 대신 d 단어 각각이 윈도우 안에 있는지를 예측하는 것이다. 즉, 마지막 층이 소프트맥스가 아니라 시그모이드의 베르누이 층이 된다. 손실 함수는 m개의 양의 샘플과 mk개 의 음의 샘플에 대해 합해진 것으로 구해진다.

What Is the Actual Neural Architecture of SGNS?

SGNS의 정확한 구조는 어떻게 되나? 소프트맥스를 쓰지 않고, 각 관측된 값이 이진 예측으로 독립적으로 다뤄진다. 또한, 시그모이드 활성 함수를 쓴다. SGNS와 바닐라 스킵-그램 모델은 서로에 대한 최적화로 볼 수는 없다.

2.6.3. Word2vec (SGNS) Is Logistic Matrix Factorization

word2vec의 SGNS 모델은 로지스틱 행렬 분해로 흉내낼 수 있다. 이의 목적은 \min_{U, V} \sum_{i, j} c_{ij}(b_{ij} - \mathbf{u}_{i}\mathbf{v}_{j})^2를 최소화하는 것과 같다. 로지스틱 행렬 분해를 썼을 때 word2vec과 차이점은 이것은 모든 행렬 엔트리에서의 전역 목적 함수라는 것이다. 이는 로그 가능도 최대화의 형태를 갖는다.

Gradient Descent

경사 하강법은 음의 오분류 – 양의 오분류값을 편도함수로 쓴 뒤 이를 업데이트한다.

2.6.4. Vanilla Skip-Gram Is Multinomial Matrix Factorization

스킵 그램은 다항 행렬 분해로 볼 수 있다. 스킵 그램은 C의 r번째 행의 빈도 벡터가 UV의 r번째 행에 소프트맥스를 적용한 실측 인스턴스화가 되는 모델이 된다고 볼 수 있다. 즉 다항 행렬 분해가 되는 것이다.

2.7. Simple Neural Architectures for Graph Embeddings

큰 그래프의 사용은 범용적이 되었다. 이를 임베딩하는 것은 word2vec의 SGNS 모델과 동치인 로지스틱 행렬 분해로 생각할 수 있다. 주된 차이는 노드는 다른 노드에 대해 최대 하나의 이웃으로만 나타내어질 수 있다는 것이다.

2.7.1. Handling Arbitrary Edge Counts

임의의 간선 개수는 각 출력을 베르누이 시행의 결과로 다룸으로써 로그가능도를 적용할 수 있다.

2.7.2. Multinomial Model

다항 모델을 사용해 그래프 임베딩을 만드는 것도 가능하다.

2.7.3.Connections with DeepWalk and Node2vec

이를 확장한 것으로 DeepWalk와 Node2vec 등이 있다.

2.8. Summary

여러 비지도/지도 모델링의 신경망 모델을 알아보았다. 많은 기계 학습의 전통적 모델이 상대적으로 간단한 신경망 모델의 인스턴스화이다. 이진/다클래스 분류와 행렬 분해를 알아보았다. 추가로, 이의 추천 시스템과 단어 임베딩에 대한 적용도 알아보았다. 특이값 분해와 같은 전통적 기계학습 기법은 신경 표현으로 일반화될 수 있고, 이는 전통적 기계 학습에서의 대응 모델에 비하면 비효율적일 때도 있다. 하지만 신경망의 이점은 더 강력한 비선형 모델로 일반화할 수 있다는 점이다. 또한, 신경망을 쓰면 전통적 기계학습 모델의 비선형 변형을 쉽게 실험할 수 있다. 추천 시스템, 텍스트, 그래프 임베딩 등으로 응용 가능하다.

2.9. Bibliographic Notes

이 적용의 레퍼런스는 참고 문헌을 참조하라. 신경망을 이용한 차원 감소, 추천 시스템 내의 차원 감소, word2vec에 대한 참고 문헌도 존재한다.

2.9.1. Software Resources

관련 많은 소프트웨어 리소스가 존재한다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중