인공신경망 (Artificial Neural Networks, ANN)

개요

인공 신경망(Artificial Neural Networks, 이하 ANN)은 생물학적 신경망을 모델로 하여 설계된 컴퓨팅 시스템으로, 다층 구조와 가중치(weight)를 활용해 복잡한 패턴 인식을 수행하는 알고리즘이다. ANN은 기계 학습(machine learning)과 딥러닝(deep learning) 분야의 핵심 기술로, 다양한 형태의 데이터 처리에 사용된다. ANN의 기본 단위는 인공 뉴런(artificial neuron)으로, 여러 개의 뉴런들이 서로 연결되어 신경망을 구성하며, 각 연결에는 가중치가 부여된다.

인공 신경망의 기본 구조

ANN은 일반적으로 입력층(input layer), 은닉층(hidden layers), 출력층(output layer)으로 구성된다. 입력층은 외부에서 데이터를 받아들이며, 출력층은 예측값 또는 분류 결과를 제공한다. 은닉층은 입력 데이터를 비선형적 방식으로 변환하여 복잡한 문제를 해결할 수 있도록 한다.

  • 입력층 (Input Layer): 입력 데이터를 뉴런에 전달하는 층으로, 각 뉴런은 하나의 입력값에 해당한다. 입력 데이터의 차원 수에 따라 뉴런의 개수가 결정된다.

  • 은닉층 (Hidden Layers): 은닉층은 입력 데이터를 변환하여 출력층으로 전달하기 전에 중간 계산을 수행한다. 은닉층의 뉴런들은 활성화 함수(activation function)를 사용하여 입력 신호를 비선형적으로 변환한다. 다층 퍼셉트론(Multi-Layer Perceptron, MLP)과 같은 구조에서 은닉층의 수가 많을수록 네트워크는 더 복잡한 패턴을 학습할 수 있다.

  • 출력층 (Output Layer): 최종 결과를 출력하는 층으로, 일반적으로 예측값 또는 클래스 확률을 나타낸다. 출력층의 뉴런 수는 해결하고자 하는 문제의 출력 차원에 따라 달라진다.

활성화 함수 (Activation Function)

활성화 함수는 뉴런의 출력을 결정하는 비선형 함수이다. 활성화 함수는 ANN이 비선형 문제를 해결할 수 있도록 해주며, 대표적으로 시그모이드(sigmoid), ReLU(Rectified Linear Unit), 하이퍼볼릭 탄젠트(hyperbolic tangent, tanh) 등이 있다.

  • Sigmoid 함수: 출력값을 0과 1 사이로 압축하며, 주로 이진 분류(binary classification) 문제에서 사용된다. 그러나, vanishing gradient 문제로 인해 깊은 네트워크에서는 잘 사용되지 않는다.

  • ReLU 함수: 음수를 모두 0으로 변환하고, 양수는 그대로 유지하는 함수이다. ReLU는 계산이 간단하고, 기울기 소실(vanishing gradient) 문제를 완화하는 데 효과적이어서 깊은 네트워크에서 많이 사용된다.

  • Tanh 함수: 출력값을 -1과 1 사이로 압축하며, 신호를 0을 중심으로 양극화시켜 시그모이드 함수보다 학습을 더 빠르게 할 수 있다.

학습 과정

ANN은 주어진 데이터에 대해 최적의 가중치와 바이어스(bias)를 찾기 위해 학습한다. 학습 과정에서 ANN은 입력 데이터를 통해 예측값을 계산하고, 이 예측값과 실제 값의 차이를 손실 함수(loss function)를 통해 계산한 후, 역전파(backpropagation) 알고리즘을 사용해 가중치를 갱신한다.

  • 순전파 (Forward Propagation): 입력 데이터가 네트워크를 통과하면서 각 뉴런에서 계산이 이루어지고, 최종적으로 출력값이 계산되는 과정이다.

  • 손실 함수 (Loss Function): 예측값과 실제 값의 차이를 측정하는 함수로, 대표적으로 평균 제곱 오차(Mean Squared Error, MSE), 교차 엔트로피(Cross-Entropy) 등이 사용된다.

  • 역전파 (Backpropagation): 출력층에서 계산된 손실을 기반으로, 기울기(gradient)를 계산하여 각 가중치를 갱신하는 알고리즘이다. 역전파 과정에서는 체인 룰(chain rule)을 사용해 각 가중치에 대한 손실 함수의 미분값을 계산한다.

  • 최적화 알고리즘 (Optimization Algorithm): 가중치 갱신을 위한 방법으로, 대표적으로 확률적 경사 하강법(Stochastic Gradient Descent, SGD), 모멘텀(momentum), Adam(Adaptive Moment Estimation) 등이 있다.

과적합과 규제

ANN의 학습에서 과적합(overfitting)은 모델이 학습 데이터에 지나치게 맞춰져, 새로운 데이터에 대해 일반화하지 못하는 문제를 의미한다. 이를 방지하기 위해 여러 규제(regularization) 기법이 사용된다.

  • L1/L2 규제: 가중치의 크기를 제한하여 과적합을 방지한다. L1 규제는 가중치의 절대값 합을 최소화하며, L2 규제는 가중치의 제곱합을 최소화한다.

  • 드롭아웃 (Dropout): 학습 과정에서 무작위로 일부 뉴런을 제거하여 과적합을 방지하는 기법이다. 드롭아웃은 신경망의 일반화를 도모하고, 학습 속도를 높이는 데 기여할 수 있다.

역전파의 수렴 문제

ANN의 깊이가 깊어질수록 역전파 과정에서 발생할 수 있는 주요 문제는 기울기 소실(vanishing gradient)과 기울기 폭발(exploding gradient)이다. 이 문제들은 네트워크의 학습을 방해할 수 있으며, 이를 해결하기 위해 다양한 기법들이 제안되었다.

  • 기울기 소실: 기울기 소실 문제는 역전파 과정에서 기울기가 점점 작아져서, 초기에 있는 레이어들의 가중치가 거의 갱신되지 않게 되는 현상이다. 이를 해결하기 위해 ReLU와 같은 비포화(non-saturating) 활성화 함수가 사용된다.

  • 기울기 폭발: 기울기 폭발 문제는 기울기가 점점 커져서, 가중치가 급격히 큰 값으로 갱신되는 현상이다. 이를 해결하기 위해 기울기 클리핑(gradient clipping)과 같은 기법이 사용된다.

인공 신경망의 다양한 구조

ANN은 기본 구조 외에도 다양한 변형이 존재하며, 각기 다른 문제에 최적화된 설계를 갖추고 있다. 주요한 구조로는 합성곱 신경망(Convolutional Neural Network, CNN)과 순환 신경망(Recurrent Neural Network, RNN)이 있다.

  • 합성곱 신경망 (CNN): CNN은 이미지 데이터와 같은 2차원 구조를 처리하는 데 최적화된 신경망이다. 합성곱 층(convolutional layer), 풀링 층(pooling layer), 완전 연결 층(fully connected layer)으로 구성된다. 합성곱 층에서는 필터(filter)를 통해 국소적인 패턴을 학습하며, 풀링 층에서는 차원을 축소하여 계산 효율성을 높인다.

  • 순환 신경망 (RNN): RNN은 순차 데이터(시계열 데이터, 자연어 등)를 처리하는 데 최적화된 신경망이다. RNN은 시간 축을 따라 정보를 유지하면서 이전 시점의 출력을 다음 시점의 입력으로 사용하는 순환 구조를 갖는다. 그러나, 장기 의존성 문제(long-term dependency)를 해결하기 위해 LSTM(Long Short-Term Memory)과 GRU(Gated Recurrent Unit)와 같은 변형이 사용된다.

인공 신경망의 역사 (History of Artificial Neural Networks)

초기 개념과 퍼셉트론 (Perceptron)

인공 신경망의 역사는 1943년 Warren McCulloch와 Walter Pitts의 연구로 거슬러 올라간다. 이들은 "A Logical Calculus of the Ideas Immanent in Nervous Activity" 논문에서 생물학적 뉴런을 수학적 모델로 표현하여, 이진 출력을 가지는 단순한 신경망을 제안하였다. 이 모델은 이후 뉴런의 동작을 이진 함수로 표현하는 이진 뉴런(binary neuron)으로 발전하게 된다.

1958년, Frank Rosenblatt는 이러한 이진 뉴런을 기반으로 한 퍼셉트론(perceptron)을 제안하였다. 퍼셉트론은 인공 신경망의 첫 번째 실제 구현 중 하나로, 단층 퍼셉트론(single-layer perceptron)은 선형적으로 분리 가능한 문제를 해결할 수 있었다. 퍼셉트론 학습 알고리즘은 입력 벡터와 가중치의 선형 결합을 통해 출력값을 계산하고, 이를 바탕으로 가중치를 업데이트하는 방식으로 동작한다.

신경망의 암흑기 (The AI Winter)

퍼셉트론의 초기 성공에도 불구하고, 1969년 Marvin Minsky와 Seymour Papert의 저서 "Perceptrons"는 퍼셉트론의 한계를 지적하며, 다층 퍼셉트론(multilayer perceptron)을 위한 학습 알고리즘이 없다는 점을 강조하였다. 이로 인해 인공 신경망 연구는 침체기를 맞게 되었으며, 이를 흔히 "AI 겨울(AI Winter)"이라고 부릅니다. 이 시기에는 인공 신경망의 연구가 크게 위축되었고, 다른 인공지능 접근법들이 주목을 받았다.

역전파 알고리즘의 등장 (Backpropagation Algorithm)

인공 신경망이 다시 주목받기 시작한 것은 1980년대에 들어서이다. 특히, 1986년 David Rumelhart, Geoffrey Hinton, 그리고 Ronald Williams가 제안한 역전파(backpropagation) 알고리즘은 다층 퍼셉트론의 학습 문제를 해결하는 중요한 돌파구였다. 역전파 알고리즘은 오차 역전파(error backpropagation)라는 개념을 도입하여, 출력층에서 발생한 오차를 입력층으로 역으로 전파시켜 각 가중치를 조정하는 방식으로 동작한다. 이로 인해 다층 퍼셉트론이 비선형 문제를 효과적으로 해결할 수 있게 되었고, 신경망 연구가 다시 활기를 띠게 되었다.

딥러닝의 도래 (The Rise of Deep Learning)

2000년대 중반 이후, 인공 신경망은 딥러닝(deep learning)의 등장으로 또 한 번의 변혁을 겪게 된다. 딥러닝은 여러 개의 은닉층을 가진 심층 신경망(deep neural networks)을 사용하여, 더욱 복잡한 패턴 인식 문제를 해결할 수 있었다. 특히, 2006년 Geoffrey Hinton이 제안한 제약 볼츠만 머신(Restricted Boltzmann Machines, RBM)과 심층 신뢰 신경망(Deep Belief Networks, DBN)은 심층 신경망 학습의 초기 발전에 중요한 기여를 하였다.

2012년, AlexNet으로 알려진 Convolutional Neural Network(CNN) 구조가 이미지넷(ImageNet) 대회에서 우승하면서, 딥러닝의 가능성이 대중적으로 주목받기 시작하였다. AlexNet의 성공은 강력한 그래픽 처리 장치(GPU)의 활용, ReLU 활성화 함수의 사용, 드롭아웃(dropout)과 같은 정규화 기법의 도입 등으로 가능하였다. 이후 딥러닝은 다양한 영역에서 뛰어난 성과를 내며 인공지능 연구의 핵심으로 자리 잡았다.

신경망의 현대적 발전 (Modern Developments in Neural Networks)

최근 몇 년간 신경망의 구조와 학습 방법론에 대한 많은 발전이 이루어졌다. 2014년에는 Ian Goodfellow가 생성적 적대 신경망(Generative Adversarial Networks, GAN)을 제안하여 생성 모델(generative models)의 연구를 크게 발전시켰다. GAN은 두 개의 네트워크, 즉 생성자(generator)와 판별자(discriminator) 간의 경쟁적 학습을 통해 데이터를 생성하는 모델이다.

또한, 변형된 신경망 구조들이 발전하면서, 다양한 문제에 최적화된 모델들이 등장하였다. 예를 들어, Transformer 모델은 자연어 처리(Natural Language Processing, NLP) 분야에서 뛰어난 성능을 보여주며, Attention 메커니즘의 중요성을 부각시켰다. 이러한 현대적 발전은 신경망의 적용 범위를 넓히고, 더욱 복잡한 문제를 해결할 수 있는 기반을 마련하였다.

인공신경망의 필요성

인공신경망의 기초 개념

인공신경망(Artificial Neural Networks, ANN)은 생물학적 신경망의 구조와 기능을 모방한 계산 모델로, 기계 학습의 핵심 구성 요소로 자리 잡고 있다. 인공신경망은 노드로 불리는 뉴런과 같은 기본 단위로 구성되며, 이들 노드는 다층 구조로 연결되어 있다. 이러한 계층적 구조는 입력 데이터가 여러 차례의 변환을 거쳐 복잡한 패턴을 학습할 수 있게 한다.

인공신경망의 핵심은 학습이다. 초기에는 무작위로 설정된 가중치를 가지는 뉴런들이, 오류 역전파(Backpropagation) 알고리즘 등을 통해 반복적으로 학습함으로써 점차 정확도를 높여간다. 이 과정에서 네트워크는 입력과 출력 간의 비선형 관계를 모델링할 수 있게 되어, 단순한 선형 회귀나 분류 모델로는 해결할 수 없는 문제들을 다룰 수 있게 된다.

고차원 데이터의 처리 능력

인공신경망이 중요한 이유 중 하나는 고차원 데이터를 처리하는 능력이다. 고차원 데이터는 보통 매우 복잡한 상호작용을 포함하며, 이로 인해 전통적인 통계 방법이나 간단한 기계 학습 모델로는 이 데이터를 처리하기 어렵다. 반면, 인공신경망은 다층 구조를 통해 데이터의 다양한 차원을 표현하고, 학습 과정에서 필수적인 특징들을 자동으로 추출한다.

또한, 인공신경망의 계층 구조는 데이터를 점차 추상화하여 고차원 데이터에서 핵심적인 정보를 압축할 수 있게 해준다. 이를 통해 인공신경망은 이미지, 음성, 텍스트 등 복잡한 데이터에서도 우수한 성능을 발휘할 수 있다.

비선형 문제 해결 능력

인공신경망은 비선형 문제를 해결하는 데 있어 특히 유리하다. 많은 현실 세계의 문제들은 단순한 선형 모델로는 해결할 수 없는 복잡한 비선형성을 가진다. 예를 들어, 이미지 인식, 음성 인식, 자연어 처리 등의 문제는 매우 높은 차원의 비선형 관계를 포함한다.

이러한 문제들을 해결하기 위해서는 모델이 데이터 내의 비선형 패턴을 학습하고 표현할 수 있어야 한다. 인공신경망의 활성화 함수(Activation Function)는 이러한 비선형성을 모델링하는 데 중요한 역할을 하며, 네트워크의 각 층이 서로 다른 비선형 변환을 적용함으로써 매우 복잡한 함수를 근사할 수 있게 된다.

일반화 능력과 과적합 방지

인공신경망의 또 다른 중요한 특성은 데이터의 일반화 능력이다. 일반화는 모델이 학습한 데이터 외에도 새로운 데이터에 대해 높은 성능을 발휘하는 능력을 의미한다. 이를 위해 인공신경망은 정규화 기법, 드롭아웃(Dropout), 배치 정규화(Batch Normalization) 등을 통해 과적합(Overfitting)을 방지한다.

과적합은 모델이 학습 데이터에 지나치게 맞추어져 새로운 데이터에 대한 예측력이 떨어지는 현상을 말한다. 이를 방지하기 위한 다양한 기법들이 인공신경망에서 사용되며, 이로 인해 ANN은 다양한 데이터셋에 대해 높은 일반화 성능을 유지할 수 있다.

자동 특징 추출과 표현 학습

인공신경망의 또 다른 강점은 자동으로 특징을 추출할 수 있는 능력이다. 전통적인 기계 학습 모델에서는 도메인 지식을 바탕으로 수동으로 특징을 설계해야 했다. 그러나 인공신경망은 대규모 데이터에서 스스로 중요한 특징을 학습한다.

표현 학습(Representation Learning)은 이와 관련된 중요한 개념으로, 입력 데이터를 고차원에서 저차원으로 효과적으로 압축하고, 그 압축된 표현에서 중요한 정보를 유지하는 것이다. 이를 통해 모델은 복잡한 데이터를 효율적으로 처리할 수 있으며, 성능이 향상된다.

인공 신경망을 이해하는 데 필요한 사전 지식

선형 대수학 (Linear Algebra)

인공 신경망(Artificial Neural Networks, ANN)의 이해를 위해서는 선형 대수학에 대한 깊은 이해가 필수적이다. 신경망의 기본적인 연산들은 선형 대수학에 기반하고 있으며, 특히 벡터와 행렬 연산은 신경망의 핵심 구성 요소이다.

  • 벡터와 행렬: ANN의 입력 데이터는 벡터로 표현되며, 신경망의 각 층에서의 연산은 행렬 곱셈(matrix multiplication)으로 수행된다. 행렬은 여러 개의 벡터를 집합적으로 표현할 수 있는 도구로, 각 층의 뉴런들과 그들 간의 연결을 수학적으로 모델링한다.

  • 벡터 공간: 벡터 공간의 개념은 데이터의 변환을 이해하는 데 필요하다. 특히, 데이터의 차원 축소(dimensionality reduction)나 변환(transformation)은 신경망의 학습과 예측 과정에서 중요한 역할을 한다.

  • 특이값 분해(Singular Value Decomposition, SVD): SVD는 행렬의 분해 방법 중 하나로, 신경망의 차원 축소나 데이터 압축에서 유용하다. 이 방법은 대규모 데이터 세트를 처리하는 데 필요한 계산 효율성을 제공한다.

미적분학 (Calculus)

미적분학은 ANN의 학습 과정에서 중요한 역할을 한다. 특히, 역전파(Backpropagation) 알고리즘과 기울기 계산에서 필수적인 도구이다.

  • 미분 (Differentiation): 신경망의 학습은 손실 함수(loss function)의 기울기(gradient)를 계산하여 가중치(weight)를 조정하는 과정이다. 이때, 함수의 미분은 기울기를 계산하는 데 사용된다.

  • 연쇄 법칙 (Chain Rule): 연쇄 법칙은 복합 함수의 미분을 구하는 방법으로, 역전파 과정에서 필수적이다. 신경망의 각 층에서 기울기를 계산할 때, 연쇄 법칙을 통해 전체 네트워크에 걸쳐 기울기를 전파한다.

  • 적분 (Integration): 적분은 주로 확률적 신경망에서 확률 분포를 모델링하거나, 연속적인 입력 데이터의 처리에서 필요하다. 신경망의 손실 함수나 확률 모델링에서는 적분의 개념이 사용된다.

확률 및 통계 (Probability and Statistics)

확률 및 통계는 ANN의 데이터 분석과 모델 평가에서 필수적이다. 데이터의 분포, 모델의 예측 정확도, 그리고 학습 알고리즘의 안정성을 이해하는 데 필요하다.

  • 확률 분포 (Probability Distributions): ANN의 출력값을 확률로 모델링할 때, 확률 분포의 개념이 중요하다. 예를 들어, 교차 엔트로피(cross-entropy) 손실 함수는 분포 간의 차이를 측정한다.

  • 통계적 추정 (Statistical Estimation): 모델의 성능을 평가할 때 사용하는 평균, 분산 등의 통계적 측정이 필요하다. 데이터의 평균 및 분산, 분포의 특성을 이해하는 것은 모델의 성능 분석에 도움이 된다.

  • 검정 및 신뢰 구간 (Hypothesis Testing and Confidence Intervals): 모델의 예측 성능을 검증하고, 결과의 신뢰성을 평가하는 데 필요한 통계적 기법이다. 예를 들어, 모델의 일반화 능력을 평가할 때 신뢰 구간을 설정한다.

최적화 이론 (Optimization Theory)

신경망의 학습 과정에서 최적화 이론은 모델의 가중치를 조정하여 손실 함수를 최소화하는 데 필수적이다. 다양한 최적화 알고리즘은 신경망의 성능을 결정짓는 중요한 요소이다.

  • 경사 하강법 (Gradient Descent): 경사 하강법은 손실 함수의 기울기를 계산하여 가중치를 조정하는 기본적인 최적화 알고리즘이다. 확률적 경사 하강법(Stochastic Gradient Descent, SGD), 미니 배치 경사 하강법(Mini-Batch Gradient Descent) 등 다양한 변형이 있다.

  • 모멘텀 (Momentum): 모멘텀 기법은 이전 기울기 정보를 활용하여 현재의 가중치 업데이트에 반영한다. 이는 최적화 과정에서 수렴 속도를 높이고, 지역 최적해(local minima)에서 벗어나게 한다.

  • Adam (Adaptive Moment Estimation): Adam은 학습률을 동적으로 조정하여 각 파라미터의 적응적인 업데이트를 수행하는 알고리즘이다. 이는 기울기 소실(vanishing gradient) 문제와 기울기 폭발(exploding gradient) 문제를 완화하는 데 효과적이다.

신경망 구조에 대한 이해 (Understanding Neural Network Architectures)

신경망의 다양한 구조와 그에 따른 특성을 이해하는 것은 신경망의 설계와 응용에 매우 중요하다.

  • 다층 퍼셉트론 (Multi-Layer Perceptron, MLP): MLP는 기본적인 피드포워드(feedforward) 신경망으로, 입력층, 은닉층, 출력층으로 구성된다. 각 층의 뉴런은 완전히 연결되어 있으며, 비선형 활성화 함수가 사용된다.

  • 합성곱 신경망 (Convolutional Neural Networks, CNN): CNN은 이미지 데이터와 같은 2차원 구조를 처리하는 데 최적화된 신경망으로, 합성곱 층과 풀링 층을 포함하여 특성 추출과 차원 축소를 수행한다.

  • 순환 신경망 (Recurrent Neural Networks, RNN): RNN은 순차 데이터(시계열, 자연어 등)를 처리하는 신경망으로, 이전 상태의 출력을 다음 상태의 입력으로 사용하는 순환 구조를 갖는다. LSTM(Long Short-Term Memory) 및 GRU(Gated Recurrent Unit)와 같은 변형이 이 문제를 해결하는 데 사용된다.

컴퓨터 과학 및 프로그래밍 기초 (Fundamentals of Computer Science and Programming)

ANN을 구현하고 실험하기 위해서는 프로그래밍 및 컴퓨터 과학의 기초 지식이 필요하다.

  • 알고리즘 및 데이터 구조 (Algorithms and Data Structures): 효율적인 신경망 구현을 위해 알고리즘 및 데이터 구조에 대한 이해가 필요하다. 예를 들어, 배열(array), 리스트(list), 트리(tree)와 같은 기본 데이터 구조와 이들의 성능 특성을 이해하는 것이 중요하다.

  • 프로그래밍 언어 (Programming Languages): Python, R, MATLAB 등은 신경망 구현에 널리 사용되는 프로그래밍 언어이다. 이들 언어의 문법과 주요 라이브러리(예: TensorFlow, PyTorch) 사용법을 익히는 것이 중요하다.

인공 신경망의 장점 (Advantages of Artificial Neural Networks)

높은 표현력과 유연성

인공 신경망(Artificial Neural Networks, ANN)의 가장 큰 장점 중 하나는 높은 표현력(expressive power)과 유연성(flexibility)이다. ANN은 다층 구조와 비선형 활성화 함수(activation function)를 통해 복잡한 함수와 패턴을 학습할 수 있다. 이는 선형 모델이나 다른 전통적인 기계 학습 방법들보다 다양한 데이터 구조를 더 정확하게 모델링할 수 있음을 의미한다.

  • 비선형성 (Non-linearity): ANN은 비선형 활성화 함수를 사용하여 데이터의 비선형적 관계를 캡처할 수 있다. 이는 복잡한 데이터 간의 관계를 학습하는 데 있어 강력한 도구가 된다. 특히 다층 퍼셉트론(Multi-Layer Perceptron, MLP)은 이론적으로 임의의 함수도 근사할 수 있는 능력을 지닌다(universal approximation theorem).

  • 다양한 입력 형식에 대한 처리 능력: ANN은 이미지, 텍스트, 음성, 시계열 데이터 등 다양한 형태의 데이터를 처리할 수 있다. 각기 다른 데이터 유형에 대해 적절히 조정된 신경망 구조(CNN, RNN 등)를 사용하면, 특정 문제에 최적화된 방식으로 데이터를 분석할 수 있다.

자가 학습 능력 (Self-learning Ability)

ANN은 데이터로부터 직접 학습하는 자가 학습 능력(self-learning ability)을 가지고 있다. 이는 사전 정의된 규칙이나 피쳐 엔지니어링 없이도, 데이터로부터 중요한 피쳐(feature)를 자동으로 추출해낼 수 있음을 의미한다.

  • 피쳐 학습 (Feature Learning): ANN은 입력 데이터를 여러 층을 통해 점진적으로 추상화하여 고차원 피쳐를 학습한다. 특히 딥러닝 모델에서는 낮은 층에서 기본적인 패턴을, 높은 층에서는 더 복잡한 패턴을 학습하게 된다. 이러한 과정은 많은 경우, 도메인 전문가가 설계한 피쳐보다 더 유용한 피쳐를 자동으로 학습할 수 있다.

  • 엔드투엔드 학습 (End-to-end Learning): ANN은 입력 데이터에서부터 출력까지의 전체 과정을 하나의 학습 과정으로 통합할 수 있다. 이는 중간 과정에서 별도의 피쳐 추출 단계 없이, 모델이 직접 최적의 표현을 찾을 수 있게 한다.

병렬 처리에 적합한 구조

ANN의 구조는 대규모 병렬 처리(parallel processing)에 적합한다. 각 뉴런의 계산이 독립적으로 이루어지기 때문에, 병렬 컴퓨팅 환경에서의 효율성이 매우 높다. 이는 대규모 데이터 처리에 필수적인 속성이다.

  • GPU 및 TPU 가속: 현대의 ANN 학습은 주로 GPU(Graphics Processing Unit)나 TPU(Tensor Processing Unit)와 같은 병렬 처리에 최적화된 하드웨어에서 수행된다. 이 하드웨어들은 대규모 행렬 연산을 병렬로 처리할 수 있어 ANN의 학습 속도를 크게 향상시킨다.

  • 분산 학습 (Distributed Learning): ANN은 분산 학습 환경에서도 효과적으로 학습할 수 있다. 네트워크의 각 부분을 여러 노드에 분배하여 병렬로 학습함으로써, 대규모 데이터셋에 대해 더 빠르고 효율적으로 학습할 수 있다.

잡음에 대한 강건성 (Robustness to Noise)

ANN은 데이터의 잡음(noise)에 대해 비교적 강건한다. 이는 특히 비정형 데이터(unstructured data)나 노이즈가 많은 환경에서 유용하다.

  • 노이즈 데이터에서의 학습: ANN은 학습 과정에서 잡음이 섞인 데이터로부터도 의미 있는 패턴을 추출할 수 있다. 이는 ANN이 다수의 뉴런을 통해 다수결(vote) 방식을 사용해 출력값을 결정하는 구조적 특성 때문이다. 이러한 특성은 부분적으로 손상되거나 잡음이 섞인 데이터에서도 안정적인 성능을 발휘할 수 있게 한다.

  • 드롭아웃 (Dropout)과 같은 규제 기법: 잡음에 대한 강건성은 드롭아웃(dropout)과 같은 규제(regularization) 기법을 통해 더욱 강화될 수 있다. 드롭아웃은 학습 중 무작위로 뉴런을 제거하여, 네트워크가 특정 뉴런에 과도하게 의존하지 않도록 만든다. 이는 모델이 잡음에 대해 더 일반화된 성능을 갖도록 한다.

비지도 학습과 전이 학습

ANN은 비지도 학습(unsupervised learning)과 전이 학습(transfer learning)에서도 강점을 가지고 있다. 이는 데이터에 대한 레이블이 부족하거나, 새로운 작업에서 기존에 학습한 지식을 활용하고자 할 때 유리한다.

  • 비지도 학습: ANN은 비지도 학습 환경에서 데이터의 내재된 구조를 발견할 수 있다. 예를 들어, 오토인코더(autoencoder)는 입력 데이터를 압축한 후 복원하면서, 데이터의 중요한 특징을 학습할 수 있다.

  • 전이 학습: ANN에서 전이 학습은 기존에 학습한 모델의 가중치를 새로운 문제에 재사용하여, 적은 데이터로도 높은 성능을 달성할 수 있게 한다. 이는 특히 대규모 데이터로 사전 학습된 모델을 다른 유사한 작업에 적용할 때 매우 효과적이다.

인공 신경망의 한계 (Limitations of Artificial Neural Networks)

과적합과 일반화 문제

인공 신경망(Artificial Neural Networks, ANN)은 매우 강력한 모델이지만, 그 복잡성 때문에 과적합(overfitting) 문제가 발생할 수 있다. 과적합은 모델이 학습 데이터에 지나치게 맞춰져서 새로운 데이터에 대한 일반화(generalization) 성능이 저하되는 현상을 의미한다.

  • 데이터 의존성: ANN은 대량의 학습 데이터를 필요로 하며, 데이터가 충분하지 않거나 편향된 경우, 모델은 해당 데이터에 과적합될 수 있다. 이는 새로운 데이터에 대한 예측 성능을 심각하게 저하시킬 수 있다.

  • 규제의 한계: 과적합을 방지하기 위해 L1/L2 규제(regularization), 드롭아웃(dropout) 등의 기법이 사용되지만, 이러한 기법들은 완벽한 해결책이 아니다. 특히, 네트워크가 매우 복잡할 경우 이러한 규제 기법만으로는 과적합을 완전히 방지할 수 없다.

해석 가능성의 부족

ANN의 또 다른 주요 한계는 해석 가능성(interpretability)의 부족이다. ANN은 '블랙 박스(black box)' 모델로 여겨지며, 입력 데이터가 어떤 방식으로 최종 출력에 도달했는지를 명확히 설명하기 어렵다.

  • 비선형성: ANN은 여러 층의 비선형 변환을 거쳐 결과를 도출하기 때문에, 각 입력 변수의 기여도나 상호작용을 명확하게 파악하기 어렵다. 이는 특히 안전-critical한 애플리케이션에서 중요한 문제로 작용할 수 있다.

  • 특성 중요도: 특정 특성이 모델 결과에 어떻게 영향을 미치는지 설명하기 어려워, 모델의 의사결정 과정을 이해하거나 신뢰성을 평가하는 데 제약이 따른다. 이는 특히 의료, 금융 등의 분야에서 ANN의 사용을 제약하는 요소로 작용한다.

학습과 최적화의 어려움

ANN의 학습 과정은 여러 면에서 도전적이다. 복잡한 네트워크 구조와 거대한 파라미터 공간 때문에 최적의 모델을 찾는 것이 매우 어렵다.

  • 기울기 소실 및 폭발: 심층 신경망(deep neural networks)은 역전파(backpropagation) 과정에서 기울기 소실(vanishing gradient) 또는 기울기 폭발(exploding gradient) 문제를 겪을 수 있다. 이는 학습 초기에 특정 층의 가중치가 거의 학습되지 않거나, 너무 빠르게 갱신되어 최적의 학습이 이루어지지 않는 문제를 야기한다.

  • 로컬 미니마: ANN은 비선형 최적화 문제를 해결해야 하며, 이 과정에서 로컬 미니마(local minima)에 갇힐 가능성이 있다. 이는 모델이 최적의 성능을 내지 못하게 하는 요인으로 작용할 수 있다.

  • 학습 속도: ANN의 학습은 계산적으로 매우 비용이 많이 들며, 특히 대규모 데이터셋과 복잡한 네트워크 구조에서 학습 시간이 매우 길어질 수 있다. 이를 해결하기 위해 다양한 최적화 기법이 사용되지만, 여전히 학습 과정은 많은 자원과 시간이 필요하다.

데이터의 요구사항과 처리

ANN은 효과적인 학습을 위해 대규모의 데이터와 고품질의 레이블된 데이터가 필요하다. 이는 실질적으로 많은 경우에서 문제를 일으킬 수 있다.

  • 대규모 데이터 필요: ANN은 복잡한 패턴을 학습하기 위해 많은 데이터가 필요하며, 데이터가 부족할 경우 모델의 성능이 크게 저하될 수 있다. 이는 특히 데이터 수집이 어려운 분야에서 ANN의 적용을 어렵게 만든다.

  • 노이즈와 결측 데이터: 학습 데이터에 노이즈(noise)나 결측값(missing data)이 존재할 경우, ANN은 이를 극복하지 못하고 성능 저하를 초래할 수 있다. 데이터 전처리 과정에서 이러한 문제를 해결하기 위해 많은 노력이 필요하다.

네트워크 구조 설계의 복잡성

효과적인 ANN 모델을 설계하는 것은 매우 도전적인 작업이다. 최적의 네트워크 아키텍처를 설계하기 위해서는 많은 실험과 경험이 필요하며, 이는 시간과 비용이 많이 소요된다.

  • 하이퍼파라미터 조정: ANN은 많은 하이퍼파라미터(hyperparameters)를 가지고 있으며, 이들을 적절하게 조정하는 것이 중요하다. 예를 들어, 학습률(learning rate), 은닉층의 수, 뉴런의 수, 활성화 함수 등의 선택이 모델 성능에 큰 영향을 미친다. 이 과정은 대개 경험적이며, 최적의 값을 찾는 데 상당한 시간이 필요할 수 있다.

  • 모델 선택: 특정 문제에 맞는 최적의 모델을 선택하는 것도 어려운 과제이다. ANN의 성능은 네트워크 구조에 크게 의존하기 때문에, 문제의 특성에 맞는 모델 구조를 찾는 것이 매우 중요하다. 그러나, 이는 많은 실험과 반복 작업을 필요로 한다.

인공 신경망의 개선 (Improvements in Artificial Neural Networks)

개요

인공 신경망(Artificial Neural Networks, 이하 ANN)의 성능을 개선하기 위한 연구는 지속적으로 이루어지고 있다. 이러한 개선은 주로 모델의 학습 효율성, 일반화 성능, 그리고 안정성 향상에 중점을 둔다. 여기에서는 ANN의 주요 개선 기법들을 다양한 측면에서 상세히 설명하겠다.

네트워크 아키텍처 개선

네트워크 아키텍처의 개선은 ANN의 성능을 향상시키기 위해 중요한 역할을 한다. 새로운 아키텍처 설계는 더 깊고 복잡한 네트워크를 구축할 수 있게 하며, 특정 문제에 대한 적합성을 증가시킨다.

  • 심층 네트워크 (Deep Networks): 네트워크의 깊이를 늘려 더 복잡한 표현을 학습할 수 있도록 하는 방식이다. ResNet(Residual Networks)과 같은 구조는 잔차 연결(residual connections)을 도입하여 매우 깊은 네트워크에서도 기울기 소실(vanishing gradient) 문제를 완화한다. 이러한 잔차 연결은 신호가 네트워크를 통해 전달될 때, 특정 층을 건너뛰게 함으로써, 정보 손실을 줄이고 학습을 가속화한다.

  • 모듈러 네트워크 (Modular Networks): ANN의 복잡성을 관리하고 다양한 기능을 모듈화하는 방식이다. Inception 네트워크는 다양한 크기의 필터를 병렬로 사용하는 모듈 구조로, 하나의 입력에서 다양한 특성 맵(feature map)을 생성할 수 있게 한다. 이는 네트워크가 여러 스케일에서의 특징을 효과적으로 포착할 수 있게 한다.

  • 자동 아키텍처 검색 (Neural Architecture Search, NAS): NAS는 네트워크 아키텍처를 자동으로 설계하는 기법으로, 강화 학습(reinforcement learning)이나 진화 알고리즘(evolutionary algorithms)을 사용하여 최적의 네트워크 구조를 탐색한다. 이는 인간이 설계한 구조보다 효율적이거나 특화된 구조를 발견할 수 있다.

최적화 기법 개선

ANN의 학습 과정에서 최적화 기법의 개선은 네트워크가 더 빠르고 효과적으로 학습할 수 있도록 한다. 최적화 기법의 발전은 네트워크가 손실 함수의 복잡한 표면에서 효과적으로 최적점을 찾아가는 데 중요한 역할을 한다.

  • 모멘텀 (Momentum): SGD(Stochastic Gradient Descent)의 변형으로, 현재 기울기뿐만 아니라 이전 기울기도 반영하여 학습을 가속화한다. 모멘텀은 관성처럼 작용하여 SGD의 수렴 속도를 높이고, 지역 최적해(local minima)에서 탈출하는 데 도움을 준다.

  • Adam (Adaptive Moment Estimation): Adam은 1차 및 2차 모멘트(moment)를 모두 사용하는 최적화 알고리즘으로, 학습률(learning rate)을 자동으로 조정한다. Adam은 불안정한 손실 함수에서도 안정적인 학습을 가능하게 하며, 많은 경우 디폴트 최적화 방법으로 사용된다.

  • RMSProp: RMSProp은 학습률을 각 매개변수마다 독립적으로 조정하는 방법으로, 특히 깊은 네트워크에서의 기울기 소실 문제를 완화하는 데 유용하다. 이는 학습률이 지나치게 커지는 것을 방지하고, 더 안정적인 학습을 보장한다.

규제 및 일반화 기법 개선

규제(regularization) 및 일반화(generalization) 기법은 네트워크가 훈련 데이터에 과적합(overfitting)되지 않고, 새로운 데이터에 대해 일반화 능력을 유지하도록 돕는다.

  • 드롭아웃 (Dropout): 드롭아웃은 학습 과정에서 무작위로 일부 뉴런을 제거함으로써, 네트워크가 특정 뉴런에 의존하지 않도록 하는 기법이다. 이는 모델의 분산을 줄이고 일반화 성능을 향상시키는 데 기여한다. 드롭아웃은 특히 대규모 네트워크에서 과적합을 방지하는 데 효과적이다.

  • 정규화 (Normalization): 정규화 기법은 신경망의 입력이나 은닉층 출력의 분포를 일정하게 유지하여 학습 안정성을 높인다. 배치 정규화(Batch Normalization, BN)는 각 미니 배치에서 출력의 평균과 분산을 조정하여, 학습을 가속화하고 초기화 민감성을 줄이다.

  • 가중치 정규화 (Weight Regularization): L1 및 L2 정규화는 가중치 값의 크기를 제한하여 네트워크가 지나치게 복잡한 패턴을 학습하지 않도록 한다. L1 정규화는 가중치의 절대값 합을 최소화하여 희소성(sparsity)을 촉진하고, L2 정규화는 가중치의 제곱합을 최소화하여 가중치가 균일하게 분포되도록 유도한다.

데이터 효율성 개선

데이터 효율성을 높이는 것은 ANN이 적은 데이터로도 높은 성능을 발휘할 수 있도록 돕는 방법이다. 이는 데이터 증강(data augmentation), 반감학습(semisupervised learning), 자기 지도 학습(self-supervised learning) 등을 포함한다.

  • 데이터 증강 (Data Augmentation): 데이터 증강은 주어진 데이터셋에 다양한 변형을 적용하여 학습 데이터를 증가시키는 방법이다. 이는 네트워크가 다양한 상황에 대해 더 잘 일반화할 수 있도록 돕는다. 예를 들어, 이미지 회전, 이동, 확대 등의 방법이 사용된다.

  • 전이 학습 (Transfer Learning): 전이 학습은 미리 학습된 모델(Pre-trained Model)의 가중치를 새로운 문제에 재사용하는 방법으로, 적은 데이터로도 좋은 성능을 낼 수 있게 한다. 이는 특히 데이터가 부족한 문제에서 유용하며, 기존의 대규모 데이터셋에서 학습된 특성을 활용한다.

  • 컨트라스티브 학습 (Contrastive Learning): 컨트라스티브 학습은 자기 지도 학습의 일종으로, 데이터 간의 유사성과 차이를 학습하여 더 나은 표현을 학습할 수 있도록 한다. 이는 labeled 데이터의 필요성을 줄이고, 더 나은 데이터 효율성을 제공한다.

학습률 조정 기법 개선

학습률(learning rate)은 ANN의 학습에서 매우 중요한 하이퍼파라미터이다. 학습률 조정 기법은 학습 과정에서 최적의 학습률을 유지하도록 하여, 수렴 속도와 학습 안정성을 모두 확보하는 것을 목표로 한다.

  • 적응형 학습률 (Adaptive Learning Rate): 학습 과정에서 학습률을 자동으로 조정하여 최적의 수렴 속도를 유지한다. 대표적으로 Adam이나 RMSProp과 같은 알고리즘이 이러한 방식으로 학습률을 조정한다.

  • 사이클릭 학습률 (Cyclic Learning Rate): 학습률을 일정 주기마다 변화시키는 방법으로, 특정 지점에서 탈출할 수 있도록 돕는다. 이는 학습 초기의 탐색(exploration)과 후반의 수렴(exploitation) 사이에서 균형을 맞춘다.

  • Warm Restarts: 초기 학습률을 높게 설정하고 점차 낮추다가 다시 높이는 방식으로, 주기적으로 새로운 최적점을 탐색할 수 있도록 한다. 이는 지역 최적점에서 탈출하여 더 나은 글로벌 최적점을 찾는 데 기여할 수 있다.

인공 신경망 사용 사례 (Applications of Artificial Neural Networks)

패턴 인식 (Pattern Recognition)

인공 신경망(Artificial Neural Networks, 이하 ANN)은 패턴 인식 문제에서 탁월한 성능을 발휘한다. 특히 이미지, 음성, 텍스트와 같은 고차원 데이터를 다룰 때 ANN은 복잡한 패턴을 효과적으로 학습할 수 있다.

  • 이미지 인식 (Image Recognition): ANN은 이미지 데이터에서 객체를 식별하고 분류하는 데 널리 사용된다. 합성곱 신경망(Convolutional Neural Networks, CNN)은 이미지 처리에서 특히 강력한 도구로, 필터를 통해 이미지의 국소적인 특징을 학습한다. 예를 들어, 얼굴 인식 시스템에서 CNN은 얼굴의 다양한 특징을 자동으로 추출하고 이를 바탕으로 개별 얼굴을 정확하게 인식한다.

  • 음성 인식 (Speech Recognition): 음성 인식은 연속된 음향 신호에서 단어를 식별하는 문제이다. 순환 신경망(Recurrent Neural Networks, RNN)과 그 변형인 LSTM(Long Short-Term Memory)은 시간에 따라 변화하는 음성 데이터를 처리하는 데 효과적이다. ANN을 사용하면, 배경 소음이 있는 환경에서도 높은 정확도의 음성 인식을 구현할 수 있다.

  • 텍스트 인식 (Text Recognition): ANN은 OCR(Optical Character Recognition)과 같은 텍스트 인식 작업에도 사용된다. CNN은 이미지에서 문자를 추출하는 데 사용되며, 이를 통해 문서 디지털화나 자동화된 데이터 입력 시스템에서 높은 성능을 발휘할 수 있다.

예측 모델링 (Predictive Modeling)

ANN은 시계열 데이터나 복잡한 의존성을 갖는 데이터를 기반으로 미래를 예측하는 데 효과적이다. ANN을 이용한 예측 모델링은 경제, 금융, 기상학 등 다양한 분야에서 활용되고 있다.

  • 금융 예측 (Financial Forecasting): 주가 예측이나 시장 동향 예측과 같은 금융 예측 작업에서 ANN은 시계열 데이터를 기반으로 복잡한 패턴을 학습하여 미래의 시장 변동을 예측한다. RNN과 같은 모델은 데이터의 시간적 연속성을 고려하여 과거의 정보를 바탕으로 향후 가격 변동을 예측한다.

  • 수요 예측 (Demand Forecasting): 공급망 관리(supply chain management)에서 ANN은 제품 수요를 예측하는 데 사용된다. 이는 재고 관리의 효율성을 높이고, 생산 계획을 최적화하는 데 중요한 역할을 한다.

  • 기상 예측 (Weather Forecasting): ANN은 기상 데이터를 기반으로 향후 날씨 패턴을 예측하는 데 활용된다. 복잡한 대기 데이터를 학습하여, 강수량, 온도, 바람 속도 등의 변화를 예측할 수 있다.

시맨틱 분석 (Semantic Analysis)

시맨틱 분석은 텍스트나 음성 데이터에서 의미를 추출하고, 감정을 분석하는 데 사용된다. ANN은 자연어 처리(Natural Language Processing, NLP) 작업에서 강력한 도구로, 문장의 의미를 이해하고 분석하는 데 널리 사용된다.

  • 감정 분석 (Sentiment Analysis): ANN은 텍스트 데이터에서 긍정적, 부정적, 중립적 감정을 분류하는 데 사용된다. 이는 소셜 미디어 분석, 고객 리뷰 분석 등에 활용되어, 대중의 감정을 자동으로 파악하고 대응 전략을 수립하는 데 도움을 준다.

  • 자동 번역 (Machine Translation): ANN은 서로 다른 언어 간의 번역을 수행하는 데 사용된다. 시퀀스-투-시퀀스(Sequence-to-Sequence) 모델은 입력 문장을 하나의 시퀀스로 받아들이고, 대응하는 번역 문장을 출력하는 방식으로 작동한다. 이 과정에서 문맥과 문장의 의미를 고려하여 보다 정확한 번역을 생성할 수 있다.

  • 자연어 생성 (Natural Language Generation): ANN은 주어진 데이터를 바탕으로 자연스러운 문장을 생성하는 데 사용된다. 챗봇(chatbot)이나 AI 기반 텍스트 작성 도구에서 ANN은 사용자 입력에 반응하여 자연스러운 대화를 생성한다.

이상 탐지 (Anomaly Detection)

ANN은 데이터에서 비정상적인 패턴을 탐지하는 데 효과적이다. 이는 보안, 금융, 제조 등 다양한 분야에서 이상 징후를 감지하고, 조기에 대응할 수 있는 시스템을 구축하는 데 사용된다.

  • 사이버 보안 (Cybersecurity): ANN은 네트워크 트래픽이나 사용자 행동을 분석하여 비정상적인 활동을 탐지한다. 이는 해킹 시도, 악성 코드 실행, 데이터 유출 등의 위협을 조기에 발견하여 대응하는 데 중요한 역할을 한다.

  • 사기 탐지 (Fraud Detection): 금융 거래 데이터를 분석하여 비정상적인 거래 패턴을 탐지하는 데 ANN이 사용된다. 이를 통해 신용 카드 사기, 보험 사기 등의 금융 범죄를 사전에 방지할 수 있다.

  • 제조 공정 모니터링 (Manufacturing Process Monitoring): 제조 공정에서 발생할 수 있는 이상 징후를 조기에 탐지하여, 장비 고장이나 제품 불량을 예방하는 데 ANN이 활용된다.

추천 시스템 (Recommendation Systems)

ANN은 사용자 취향을 분석하고, 개인화된 추천을 제공하는 데 강력한 도구로 사용된다. 이는 전자 상거래, 콘텐츠 추천, 소셜 미디어 등 다양한 분야에서 활용되고 있다.

  • 콘텐츠 추천 (Content Recommendation): ANN은 사용자의 과거 행동을 분석하여, 관심을 가질 만한 콘텐츠를 추천한다. 이는 동영상 스트리밍 서비스, 음악 추천 서비스 등에서 사용되며, 사용자 경험을 개인화하는 데 중요한 역할을 한다.

  • 전자 상거래 (E-commerce): ANN은 사용자의 구매 이력을 분석하여 관련 상품을 추천한다. 이를 통해 고객 만족도를 높이고, 재구매율을 증대시키는 데 기여한다.

  • 소셜 미디어 (Social Media): ANN은 사용자의 소셜 네트워크 활동을 분석하여, 친구 추천, 관심 그룹 추천 등을 제공하며, 사용자 참여를 촉진한다.


관련 자료:

  • LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.

  • Haykin, S. (2009). Neural Networks and Learning Machines. Prentice Hall.

  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning. MIT Press.

  • Bishop, C. M. (2006). Pattern recognition and machine learning. Springer.

  • Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323(6088), 533-536.

  • Schmidhuber, J. (2015). Deep learning in neural networks: An overview. Neural Networks, 61, 85-117.

  • McCulloch, W. S., & Pitts, W. (1943). A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5(4), 115-133.

  • Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological review, 65(6), 386.

  • Minsky, M., & Papert, S. (1969). Perceptrons. MIT Press.

  • Hinton, G. E., Osindero, S., & Teh, Y. W. (2006). A fast learning algorithm for deep belief nets. Neural computation, 18(7), 1527-1554.

  • Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. Advances in neural information processing systems, 25.

  • Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., ... & Bengio, Y. (2014). Generative adversarial nets. Advances in neural information processing systems, 27.

  • Hinton, G. E., & Salakhutdinov, R. R. (2006). Reducing the dimensionality of data with neural networks. Science, 313(5786), 504-507.

  • Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735-1780.

  • Zhang, C., Bengio, S., Hardt, M., Recht, B., & Vinyals, O. (2017). Understanding deep learning requires rethinking generalization. ICLR 2017.

  • He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778).

  • Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., & Wojna, Z. (2016). Rethinking the inception architecture for computer vision. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 2818-2826).

  • Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.

  • Ioffe, S., & Szegedy, C. (2015). Batch normalization: Accelerating deep network training by reducing internal covariate shift. In International conference on machine learning (pp. 448-456).

Last updated