1. An Introduction to Neural Networks

1.1. Introduction

인공 신경망은 생물학적 유기체에서 학습의 과정을 흉내내는 인기 있는 기계 학습 기법이다. 이는 뉴런이라 하는 계산 유닛을 포함하는 인공 신경망으로 모방된다. 이런 생물학적 비교는 매우 형편 없는 모방으로 비판받고는 하지만 뇌과학의 이론들은 신경망 구조를 설계하는 데 있어 가끔은 도움이 된다.

1.1.1. Humans Versus Computers: Stretching the Limits of Artificial Intelligence

사람과 컴퓨터는 다른 종류의 작업에 특화되어 있다. 사람이 특화된 일에 특별한 성능을 보여주는 심층 학습 구조는 분별 업싱 계산 유닛을 연결하는 것만으로 만들어지지 않았다. 인간의 신경 연결 구조는 생존에 기반해 최적화되었고 기계는 그렇지는 않다. 빅 데이터 시대는 데이터 수집 기술의 발전을 불러일으켰다.

1.2. The Basic Architecture of Neural Networks

신경망의 기본 구조를 알아보자.

1.2.1. Single Computational Layer: The Perceptron

가장 간단한 신경망은 퍼셉트론으로 불린다. 이는 단일 입력 층과 출력 노드를 포함한다. 입력 층은 d개의 특성을 출력 노드와 각각 가중치 간선으로 연결한다. 출력 노드는 이 가중치 합의 부호이다. 이것을 활성 함수라 불린다. 많은 설정에서 예측의 불변 요소인 편향치가 존재한다. 최초에 이것이 개발되었을 때에는 이에 대한 최적화는 휴리스틱한 형식으로 진행되었다. 이 때 목적 함수는 전체 학습 데이터에 대해 정의되지만, 신경망의 학습 알고리즘은 각 입력 데이터 인스턴스를 하나씩 (또는 배치마다) 집어넣음으로써 이루어진다. 퍼셉트론에서 제안된 모델은 선형 모델이므로 데이터가 선형 분리 가능할 때 잘 작동한다. 이것이 특정한 경우에도 이론적으로 수렴하는지를 증명하는 것은 중요하다.

1.2.1.1. What Objective Function Is the Perceptron Optimizing?

퍼셉트론이 최적화하는 함수는 무엇일까? 이진 분류에서는 1 - y_{i} sgn(\mathbf{W} \mathbf{X}_{i})로 볼 수 있다. 이는 미분가능하지 않으므로 대리 손실 함수를 만들 수 있는데, 이것이 꼭 잘 작동하지는 않는다. 선형 분리 가능하지 않은 데이터의 경우에는 분리 기준을 비선형으로 만든다.

1.2.1.2. Relationship with Support Vector Machines

퍼셉트론의 최적화 기준은 보조 벡터 함수에서 사용되는 경첩 손실 함수를 변형한 것이다.

1.2.1.3. Choice of Activation and Loss Functions

활성 함수의 선택은 신경망 설계에서 핵심적인 부분이다. 이는 비선형이어야 한다. 부호 함수, 많이 쓰이는 것은 시그모이드 함수, tanh 함수, ReLU 함수, hardtanh 등이 있다. 이런 함수들은 서로 다른 함수들을 조합해서 강력한 혼합을 만들기 때문에 다층 퍼셉트론에서 매우 유용하다.

1.2.1.4. Choice and Number of Output Nodes

출력 노드의 선택과 숫자 또한 활성 함수와 연결되어 있다.

1.2.1.5. Choice of Loss Function

출력에 대한 손실 함수를 결정하는 것도 매우 중요하다. 이진 예측이 아닐 때에는 이진 예측일 때와 다른 함수를 사용한다.

1.2.1.6. Some Useful Derivatives of Activation Functions

신경망 최적화에는 경사 하강법이 쓰이므로 자주 쓰이는 활성 함수의 미분은 알아두는 것이 좋다.

1.2.2. Multilayer Neural Networks

다층 신경망은 하나 이상의 계산 층을 포함한다. 이는 편향을 포함할 수도 있고 아닐 수도 있다. (대개 포함한다) 많이 쓰이는 재귀적 식과 벡터 구조는 층별 피드포워드 망에만 유효하다. 이를 변형해서 복수의 출력 노드를 갖게 할 수도 있다. 완전 연결망 대신 많은 연결을 가지치기하는 것이 실제로는 좋은 성능을 낸다.

1.2.3. The Multilayer Network as a Computational Graph

신경망을 계산 그래프로 보는 관점은 도움이 된다. 이는 각 노드에서 계산된 합성함수를 최종 계산한다고 볼 수 있다. 이를 이용해 역전파를 수행한다.

1.3. Training a Neural Network with Backpropagation

다층 망에서는 경사가 합성함수이므로 역전파를 이용해 학습해야 한다. 이는 합성함수 미분의 연쇄법칙을 계산 그래프에 동적 계획법을 적용한 것에 의해 이루어진다.

1.4. Practical Issues in Neural Network Training

신경망의 문제는 과적합이 발생할 수 있다.

1.4.1. The Problem of Overfitting

과적합이란 학습 데이터에선 좋은 성능을 보여도 보지 않은 테스트 데이터에서는 좋은 성능을 보이지 못하는 성능이다. 이는 기계학습의 편향과 분산의 트레이드오프로 이해할 수 있다. 신경망은 임의의 함수를 근사하기 위해 충분한 것으로 이론적으로 증명되었지만 데이터의 낮은 가용성은 그 본격적인 활용을 최근에서야 가능케 했다.

1.4.1.1. Regularization

많은 수의 매개변수가 과적합을 일으키므로, 자연스러운 방법은 0이 아닌 매개변수의 수를 줄이는 것이다. 이를 정규화라고 하며 손실 함수에 징벌항을 추가함으로써 이루어진다.

1.4.1.2. Neural Architecture and Parameter Sharing

신경망을 만드는 가장 효율적인 방법은 기반 데이터 영역에 대한 고려를 기반으로 신경망의 구조를 짜는 것이다.

1.4.1.3. Early Stopping

정규화의 또 다른 형태로는 경사 하강법을 몇 번의 반복 이후에 중단시키는 이른 중단이 있다.

1.4.1.4. Trading Off Breadth for Depth

신경망에서 층을 늘리는 것은 정규화의 역할을 한다. 반면 각 층의 유닛의 수를 늘리는 것은 모델 용량을 늘리는 역할을 한다. 폭발/증발하는 경사 문제를 막기 위해 적절한 학습율을 택하는 것은 중요하다.

1.4.1.5. Ensemble Methods

이외의 방법으로 배깅, 결합법, 드랍아웃 등이 있다.

1.4.2. The Vanishing and Exploding Gradient Problem

어떤 신경망 구조에서는 연쇄법칙으로 인해 경사가 매우 작아지거나 매우 커질 수 있다. 이를 증발/폭발 경사 문제라 한다. 이를 위해서는 적응적 학습율이나 켤레 경사법 등을 사용한다. 배치 표준화 등도 좋다.

1.4.3. Difficulties in Convergence

최적화 과정에서 빠른 수렴을 얻는 것은 어렵다. 그래서 게이팅 망과 잔여 망 등을 사용한다.

1.4.4. Local and Spurious Optima

신경망의 최적화 함수는 매우 비선형적이므로 가짜 국소해에 갇히는 것을 피하기 위해 탐욕적 층별 사전학습 등을 수행할 수 있다. 사실 국소적 해에 갇히는 경우는 드물다.

1.4.5. Computational Challenges

신경망 설계의 핵심 난점은 학습 시간이다. 현대 하드웨어는 빠른 학습 시간과 추론 시간을 가능케 했다. 대개 추론 시간이 빠른 것이 훨씬 중요하다.

1.5. The Secrets to the Power of Function Composition

특정한 유형의 함수를 반복해 합성하는 것은 망의 표현력을 늘리고, 학습에 필요한 매개변수 공간을 줄인다. 아무 기본 함수나 이럴 수 있는 것은 아니다. 예를 들어 항등함수를 활성 함수로 쓰는 다층 망은 그저 선형 회귀를 수행하는 단일 층일 뿐이다. 모든 은닉 층이 선형 함수를 활성 함수로 쓰는 다층 망은 그저 단일 망 퍼셉트론일 뿐이다. 그러므로 심층 망은 중간 층의 활성 함수가 비선형일 때에만 의미가 있다.

1.5.1. The Importance of Nonlinear Activation

비선형 활성 함수를 쓰는 것은 선형으로 분리가능하지 않은 데이터에 대해서도 올바른 분류를 가능케 한다. 다른 좋은 예로는 XOR 함수가 있다.

1.5.2. Reducing Parameter Requirements with Depth

망의 층 수를 늘리는 것은 필요한 매개변수 수를 줄이고 표현력은 높인다. 하지만 학습은 더 어려워지고, 증발/폭발 경사 문제에도 더 취약해진다.

1.5.3. Unconventional Neural Architectures

전통적이지 않은 신경망 구조를 알아보자.

1.5.3.1. Blurring the Distinctions Between Input, Hidden, and Output Layers

은닉층에서도 입력을 받을 수 있다. 이 경우 은닉층과 입력층의 구별이 희미해진다. 또는 손실 함수를 은닉 층에서도 일부 계산할 수 있다. 층간 연결 일부를 스킵할 수도 있다.

1.5.3.2. Unconventional Operations and Sum-Product Networks

LSTM이나 CNN 같은 신경망은 망각 컨볼루션의 형태이다. 다른 구조로는 합-곱 망 등이 있다. 이는 매우 표현력이 높다. 계산 그래프가 순환이 없기만 하면 어떤 형태로 만들어도 괜찮다.

1.6. Common Neural Architectures

자주 쓰이는 신경망 구조를 알아보자.

1.6.1. Simulating Basic Machine Learning with Shallow Models

가장 기본적인 기계학습 모델(선형 회귀, 분류, 보조 벡터 기계, 로지스틱 회귀, 특이값 분해 등)은 신경망으로 흉내낼 수 있다.렬

1.6.2. Radial Basis Function Networks

방사 기저 함수 망은 요즘은 잘 쓰이지 않으나 잠재성은 충분하다. 보조 벡터 기계는 최근접 근방 분류기의 지도학습 버전으로 알려져 있다.

1.6.3. Restricted Boltzmann Machines

제한된 볼츠만 기기는 데이터 모델링을 비지도방식으로 하기 위해 신경망 구조를 만드는 데 에너지 최소화의 개념을 쓴다. 이는 대개 비지도 모델링과 차원 감소에 쓰이지만, 지도 모델링에 쓰일 수도 있다. 이 학습 과정은 피드포워드 망의 학습과 매우 다르며 역전파로 학습할 수 없다. 몬테 카를로 샘플링이 쓰인다.

1.6.4. Recurrent Neural Networks

순환 신경망은 순차적 데이터에 특화되었다. 중요한 점은 연속된 단어는 서로 다른 단어들간에 연관되어 있다는 것이다. 은닉 상태는 이전 은닉 상태와 현재 입력 벡터에 의존한다. 여기서 핵심은 자가 순환의 존재이다. 이는 시간에 따른 역전파를 가능케 한다. 순환 신경망은 데이터와 계산 자원만 풍부하면 어떤 알고리즘이든 흉내낼 수 있다.

1.6.5. Convolutional Neural Networks

컨볼루션 신경망은 이미지 분류와 오브젝트 감지에 사용되는 생물학적으로 영감을 받은 네트워크다. 이는 필터가 활성 함수를 한 층에서 다른 층으로 매핑하는 컨볼루션 연산을 정의한다. 컨볼루션 신경망 내 연결은 매우 희박하다. 이는 매우 성공적이었다. ImageNet 등에 사전학습된 컨볼루션 신경망은 바로 쓸 수 있도록 공개되어 있기도 하다.

1.6.6. Hierarchical Feature Engineering and Pretrained Models

은닉층에서 학습한 특성들은 다른 문제로 일반화할 수 있는 경우가 많으므로 학습을 한 뒤 출력층만 원하는 문제로 갈아끼우는 경우도 존재한다. 이 때 각 은닉층의 출력은 데이터의 변환된 특성 표현식이어야 한다. 이렇게 사전학습된 모델을 사용하는 것을 전이 학습이라 한다. 예로는 word2vec 등이 있다.

1.7. Advanced Topics

심화 토픽들을 알아보자.

1.7.1. Reinforcement Learning

강화 학습은 계 내에서의 행위와 그에 대한 보상이 주어진다. 이는 상태간 변화에 대한 보상을 최적화하는 방식으로 이루어진다.

1.7.2. Separating Data Storage and Computations

신경망의 중요한 점은 데이터 저장소와 계산이 강하게 연결되어 있다는 것인데, 이를 분리할 수 있다.

1.7.3. Generative Adversarial Networks

생성적 대립쌍 망은 두 플레이어간 대립생성적 대립망은 두 플레이어간 대립 게임을 사용해 기본 데이터 셋에 대한 생성적 모델을 만드는 것이다. 이는 기반 데이터 셋에 대한 실제적인 표본을 만들 수 있다.

1.8. Two Notable Benchmarks

2개의 눈여겨볼 만한 벤치마크 셋을 알아보자.

1.8.1. The MNIST Database of Handwritten Digits

MNIST 데이터베이스는 손으로 쓴 0~9 숫자들을 분류하는 데 쓰이는 좋은 데이터셋이다. 이는 컨볼루션 신경망에 최적화되었지만 784차원의 데이터로도 볼 수 있다. 이런 표현도 여러 모델 테스트에 유용하다.

1.8.2. The ImageNet Database

ImageNet은 1400만 이미지에 대한 큰 데이터베이스이다. 이는 ILSVRC에 대해 이 데이터셋을 분류하는 대회가 있다. 이는 이미지 영역의 핵심 시각적 개념을 학습하기에 적합하다.

1.9. Summary

신경망은 생물체의 학습 과정을 흉내낸 것처럼 보이지만, 직접적인 이해는 계산 그래프로 하는 것이 좋다. 계산 그래프는 단순한 함수를 합성해 더 복잡한 함수를 학습한다. 이 계산 그래프는 매개화되었으므로, 문제는 그래프의 매개변수를 학습해 손실 함수를 최적화하는 것으로 이루어진다. 신경망의 가장 간단한 형태는 선형 회귀와 같은 가장 기본적인 기계학습 모델이다. 신경망의 가장 큰 힘은 기반 함수의 복잡한 결합으로부터 나온다. 이런 망의 매개변수는 역전파로 알려진 동적 계획법을 통해 이루어진다. 신경망 모델을 학습하는 데 있어서는 과적합과 학습 불안정성 등 여러 난점이 존재한다. 최근에는 여러 알고리즘적 성취가 이 문제들을 줄였다. 텍스트나 이미지 등 특정 영역에서의 심층 학습 방법의 설계는 주의 깊게 만들어진 구조들을 필요로 한다. 그런 구조들의 예는 순환 신경망이나 컨볼루션 신경망이 있다. 계 내에서 연속된 결정들이 학습되어야 하는 동적 세팅에서는 강화 학습 등이 유용하다.

1.10. Bibliographic Notes

신경망 설계의 이해는 기계 학습 알고리즘에 대한 탄탄한 이해, 특히 경사 하강법이 기반한 선형 방법에 대한 이해를 필요로 한다. 퍼셉트론 알고리즘은 이의 근본이다. 예전에는 신경망 학습에 난점이 많았으나 이는 차차 극복되었다. 신경망의 이론적 강력함은 오래 전부터 증명되어 있었던 사항이다.

1.10.1. Video Lectures

심층 학습 관련 여러 비디오 강의를 인터넷에서 찾아볼 수 있다.

1.10.2. Software Resources

심층 학습 관련 여러 소프트웨어 프레임워크를 인터넷에서 찾아볼 수 있다.

답글 남기기

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

WordPress.com 로고

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

Google photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중