📘
Lif31up's Blog
  • Welcome! I'm Myeonghwan
  • How to Read the Pages
  • Fundamental Machine Learning
    • Foundational Work of ML: Linear/Logistic Regression
    • Early-stage of AI: Perceptron and ADALINE
    • What is Deep Learning?: Artificial Neural Network to Deep Neural Network
    • Challenges in Training Deep Neural Network and the Latest Solutions
  • Modern AI Systems: An In-depth Guide to Cutting-edge Technologies and Applications
  • Few Shot Learning
    • Overview on Meta Learning
    • Prototypical Networks for Few-shot Learning
    • Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks
  • Natural Language Process
    • * Tokenization and Stemming, Lemmatization, Stop-word Removal: Core Fundamental of NLP
    • Bag-of-Words
  • Front-end Development
    • Overview on Front-end Development
    • Learning React Basic
      • React Component: How They are Rendered and Behave in Browser
      • State and Context: A Key Function to Operate the React Application
      • Design Pattern for Higher React Programming
  • Songwriting
    • A Comprehensive Guide to Creating Memorable Melodies through Motif and Phrasing
  • Sound Engineering
    • How to Install and Load Virtual Studio Instruments
    • A Guide to Audio Signal Chains and Gain Staging
    • Equalizer and Audible Frequency: How to Adjust Tone of the Signal
    • Dynamic Range: the Right Way to Compress your Sample
    • Acoustic Space Perception and Digital Reverberation: A Comprehensive Analysis of Sound Field Simulat
  • Musical Artistry
    • What is Artistry: in Perspective of Modern Pop/Indie Artists
    • Visualizing as Musical Context: Choose Your Aesthetic
    • Analysis on Modern Personal Myth and How to Create Your Own
    • Instagram Management: Business Approach to Your Social Account
  • Art Historiography
    • Importance of Art Historiography: Ugly and Beauty Across Time and Space
    • Post-internet Art, New Aesthetic and Post-Digital Art
    • Brutalism and Brutalist Architecture
Powered by GitBook
On this page
  1. Fundamental Machine Learning

What is Deep Learning?: Artificial Neural Network to Deep Neural Network

인공 신경망(artificial neural network)은 포유류 뇌의 신경망 연결 체계를 모방한 머신러닝 모델입니다. 뉴런 또는 노드라 불리는 단위들의 집합으로 구성되며, 이들은 시냅스와 유사하게 연결되어 다른 뉴런으로 신호를 전달합니다. 사용되는 신호는 주로 실수값이며, 뉴런의 출력은 입력에 대한 비선형 함수의 결과를 합산한 것입니다.

  • 뉴런은 신호를 받아 처리한 후, 연결된 다른 뉴런에 새로운 신호를 생성합니다. 이 신호는 실수로 표현되며, 각 출력은 입력의 총합에 대한 비선형 함수로 계산됩니다.

  • 뉴런 간의 연결을 간선이라고 합니다. 뉴런과 간선은 학습을 통해 조정될 수 있는 가중치를 가집니다.

  • 가중치는 연결을 통해 전달되는 신호의 강도를 증가시키거나 감소시킵니다.

인공 신경망을 이루는 요소들

  • 뉴런(nueron)

  • 계층(layer)

  • 초매개변수(hyper-parameter)

  • 비용 함수(cost/lost function)

  • 역전파(backpropagation)

인공 신경망은 인간 뇌의 작동 방식과 구조를 모방하려는 시도에서 시작되었습니다. 뇌는 경험을 바탕으로 원하는 과업을 수행하거나 그 결과를 개선하기 위해 스스로 구조화됩니다. 인공다층신경망 역시 이와 같이 비선형적이고 복잡한 관계를 경험에 기반하여 모델화할 수 있는 능력을 갖추고 있습니다.

신경망은 입력과 출력을 처리하여 가중치를 조정하는 방식으로 학습합니다. 훈련 과정에서는 모델의 출력과 목표 출력 간의 차이, 오를 식별합니다. 이 오류와 학습 알고리즘을 통해 신경망은 가중치를 지속적으로 조정합니다.

Neuron: Fundamental Calculation Unit of ANN

뉴런은 여러 개의 입력 xxx을 받아 하나의 출력 zzz을 생성합니다. 이때 입력은 외부 데이터나 이전 뉴런의 출력일 수 있습니다. 출력은 가중치 www가 적용된 입력의 총합이며, 때로는 이 합에 절편 또는 편향 bbb가 추가되기도 합니다.

input x=[x1,x2,...,xn]weight w=[w1,w2,...,wn]z=w⋅x+b=Σi=1nwi⋅xi+(bif bias needed)f(x)=x∗e2piiξx\text{input } x = [x_1, x_2, ... , x_n] \newline \text{weight }w = [w_1, w_2, ..., w_n] \newline z = w \cdot x + b = \Sigma^{n}_{i = 1}w_i \cdot x_i + (b \quad\text{if bias needed})f(x) = x * e^{2 pi i \xi x}input x=[x1​,x2​,...,xn​]weight w=[w1​,w2​,...,wn​]z=w⋅x+b=Σi=1n​wi​⋅xi​+(bif bias needed)f(x)=x∗e2piiξx

현대의 딥러닝 모델은 대부분 출력에 비선형적 특성을 부여하기 위해 활성화 함수(activation function)를 적용합니다: a=σ(z)=σ(Σi=1nwixi+b)a = \sigma(z) = \sigma{( \Sigma^n_{i=1}{w_ix_i + b} )}a=σ(z)=σ(Σi=1n​wi​xi​+b)a=σ(z)=σ(Σi=1nwixi+b)a = \sigma(z) = \sigma{( \Sigma^n_{i=1}{w_ix_i + b} )}a=σ(z)=σ(Σi=1n​wi​xi​+b)

Layer

뉴런은 층(layer)으로 체계적으로 구조화되어 있으며, 이러한 계층적 구조는 특히 딥러닝 모델에서 더욱 복잡하고 정교하게 나타납니다. 각 층의 뉴런들은 다음 층의 모든 뉴런과 직접적인 연결을 형성하여 정보를 효율적으로 전달합니다. 이러한 층간 연결 구조는 신경망이 복잡한 패턴을 학습하고 추상화된 특징을 추출하는 데 중요한 역할을 합니다.

그림을 통한 이해
  • 입력층(input layer)은 외부 자료를 수신받는 층입니다.

  • 출력층(output layer)은 최종 결과를 출력하는 층입니다.

  • 은닉층(hidden layer)은 입력층과 출력층 사이에 있는 모든 층입니다.

예를 들어, 이미지 인식 분야에서는 초기 층에서 간단한 엣지나 색상과 같은 기본적인 특징을 감지하고, 더 깊은 층으로 갈수록 더 복잡한 형태나 객체의 부분을 인식할 수 있게 됩니다. 이러한 계층적 특징 추출 능력은 딥러닝 모델이 다양한 분야에서 뛰어난 성능을 보이는 핵심 요인 중 하나입니다.

다이어그램을 통한 이해

Hyper Parameters

하이퍼파라미터(hyperparameter)는 신경망의 학습 과정을 제어하는 중요한 요소입니다. 이들은 모델의 구조와 학습 알고리즘을 정의하는 상수 형태의 매개변수로, 학습이 시작되기 전에 설정됩니다. 초매개변수는 모델의 성능과 학습 효율성에 직접적인 영향을 미치며, 최적의 값을 찾는 것이 모델 개발의 핵심 과제 중 하나입니다.

  • 학습률( learning rate)은 오류를 조정하기 위한 단계의 크기를 결정합니다.

    • 높은 학습률은 비용을 빠르게 줄일 수 있지만, 정확도가 낮아질 수 있습니다.

    • 낮은 학습률은 비용 감소가 느리지만, 높은 정확도를 얻을 수 있습니다.

  • 배치 크기(batch size)는 한 번의 훈련 반복에서 처리되는 데이터 샘플의 수를 의미합니다. 이는 모델의 학습 속도와 메모리 사용량, 그리고 일반화 성능에 영향을 미치는 중요한 초매개변수입니다. 큰 배치 크기는 더 안정적인 그래디언트 추정을 제공하지만, 더 많은 메모리를 필요로 합니다. 반면, 작은 배치 크기는 더 자주 가중치를 업데이트하여 빠른 수렴을 가능하게 하지만, 노이즈가 있는 그래디언트 추정을 초래할 수 있습니다.

  • 은닉층의 개수(number of hidden layers)는 신경망의 복잡성과 학습 능력을 결정하는 중요한 요소입니다. 은닉층이 많을수록 더 복잡한 패턴을 학습할 수 있지만, 과적합의 위험도 증가합니다. 적절한 은닉층의 개수는 문제의 복잡성과 가용한 데이터의 양에 따라 결정되며, 이는 모델의 성능에 직접적인 영향을 미칩니다.

하이퍼파라미터의 주요한 특성

이러한 파리미터들은 학습 과정 전반에 걸쳐 고정된 값을 유지하며, 모델이 데이터로부터 학습하는 방식을 결정합니다. 예를 들어, 학습률, 배치 크기, 은닉층의 수와 각 층의 뉴런 수, 활성화 함수의 종류 등이 대표적인 초매개변수에 해당합니다. 이들은 모델의 복잡성, 학습 속도, 일반화 능력 등 다양한 측면에 영향을 주어 최종적인 모델의 성능을 좌우합니다.

  • 하이퍼파리미터들은 서로 밀접하게 연관되어 있으며, 상호 종속적인 관계를 가질 수 있습니다.

  • 파리미터의 값은 대부분 학습 과정을 통해 경험적으로 도출되는 경우가 대부분입니다.

Cost/Loss Function

비용(cost)은 모델의 예측 성능을 수치화한 통계적 지표입니다. 이는 모델이 얼마나 잘 작동하는지를 평가하는 중요한 척도로, 모델의 출력값과 실제 목표값 사이의 차이를 측정합니다. 비용 함수는 이러한 차이를 정량화하여 모델의 성능을 객관적으로 평가하고, 학습 과정에서 모델을 개선하는 데 필수적인 역할을 합니다. 더구체적으로, 비용 함수는 다음과 같은 역할을 수행합니다:

  • 모델의 예측 오차를 수치화하여 현재 성능을 평가합니다.

  • 학습 알고리즘에게 모델을 어떻게 조정해야 할지에 대한 지침을 제공합니다.

  • 다양한 모델 구성이나 하이퍼파라미터 설정의 효과를 비교하는 기준을 제공합니다.

따라서 비용 함수는 모델의 학습 과정을 안내하고, 최종적으로 원하는 성능에 도달하도록 하는 핵심적인 요소라고 할 수 있습니다.

비용과 손실의 차이점 이해하기

손실(loss)과 비용은 유사해 보이지만 중요한 차이가 있습니다. 비용은 전체 훈련 데이터셋에 대한 평균적인 오류를 나타내는 포괄적인 지표로, 모델의 전반적인 성능을 평가하는 데 사용됩니다. 반면, 손실은 개별 데이터 포인트나 미니배치에 대한 즉각적인 오류를 측정합니다. 이는 학습 과정에서 모델의 매개변수를 조정하는 데 직접적으로 활용됩니다.

이 두 개념의 차이를 이해하는 것은 모델 훈련과 평가에 있어 매우 중요합니다:

  • 손실 함수는 각 훈련 반복에서 모델의 가중치를 업데이트하는 데 사용되며, 즉각적인 피드백을 제공합니다.

  • 비용 함수는 더 긴 시간 범위에서 모델의 성능 추이를 모니터링하고, 과적합이나 부족적합 여부를 판단하는 데 도움을 줍니다.

  • 효과적인 모델 개발을 위해서는 두 지표를 모두 고려하여 균형 잡힌 접근이 필요합니다.

Backpropagation

역전파(backpropagation)는 인공신경망의 학습 과정에서 핵심적인 역할을 하는 알고리즘입니다. 이 방법은 네트워크의 출력과 목표값 사이의 오차를 최소화하기 위해 가중치를 조정하는 과정에서 사용됩니다. 역전파는 출력층에서 시작하여 입력층 방향으로 오차를 '역으로' 전파하면서 각 뉴런의 가중치를 업데이트합니다. 이 과정에서 연쇄 법칙을 이용한 미분 계산이 효율적으로 이루어집니다.

  • 순전파(forward propagation)는 신경망에서 입력 데이터가 각 층을 거쳐 최종 출력으로 전달되는 과정입니다. 이 과정에서 각 뉴런은 입력값을 받아 활성화 함수를 통해 출력을 생성하며, 이는 다음 층의 입력으로 사용됩니다. 마지막 층에서는 네트워크의 최종 예측값이 생성되고, 이를 실제 목표값과 비교하여 손실함수를 계산합니다.

  • 역전파(backpropagation)는 순전파의 반대 방향으로 진행되며, 계산된 손실함수를 기반으로 네트워크의 가중치를 조정하는 과정입니다. 이 알고리즘은 손실함수의 그래디언트/기울기를 계산하여 각 뉴런의 가중치에 대한 손실함수의 편미분을 구합니다. 이렇게 구한 그래디언트 정보를 이용해 가중치를 갱신하며, 이 과정을 출력층에서 시작하여 입력층까지 반복적으로 수행합니다.

수학적으로 보면, 역전파는 손실 함수를 네트워크의 각 가중치에 대해 편미분하는 과정입니다. 이를 통해 각 가중치가 전체 오차에 미치는 영향을 정확히 계산할 수 있으며, 이는 경사 하강법을 통한 최적화의 기초가 됩니다.

패러다임 전환: 백프로파게이션

역전파 알고리즘의 개념은 1960년대부터 존재했지만, 1986년 Rumelhart, Hinton, Williams의 논문을 통해 다층 퍼셉트론의 학습에 효과적으로 적용될 수 있음이 입증되었습니다. 이후 역전파는 딥러닝의 발전과 함께 현대 인공지능 기술의 근간이 되었습니다.

수학적 이해

Expression 1:∇(curr∘prev)=c′(p(xp))⋅p′(xp)\text{Expression 1:}\quad \nabla{(\text{curr} \circ \text{prev})} = c'(p(x_{p})) \cdot p'(x_{p})Expression 1:∇(curr∘prev)=c′(p(xp​))⋅p′(xp​)

  • xxx는 입력입니다.

  • yyy는 목표 출력입니다.

  • CCC는 손실함수입니다.

  • LLL은 층의 총 갯수입니다.

  • Wl=(wjk)W^{l} = (w_{jk})Wl=(wjk​)는 l−1l - 1l−1과 lll 사이의 가중치들입니다.

  • flf^{l}fl은 lll에서의 활성화 함수입니다.

  • ajla^{l}_{j}ajl​는 lll 층의 jjj번째 노드의 활성화입니다.

Experssion 2:g(x):=fL(wLfL−1(WL−1...f1(w1x)...))\text{Experssion 2:}\quad g(x) := f^{L}(w^{L}f^{L - 1}(W^{L-1 }... f^{1}(w^{1}x)...))Experssion 2:g(x):=fL(wLfL−1(WL−1...f1(w1x)...))

  • xxx는 입력입니다.

  • yyy는 출력입니다.

  • CCC는 손실/비용 함수입니다.

  • LLL은 층의 갯수입니다.

  • flf^lfl은 층 lll의 활성화 함수입니다.

  • ajla^l_jajl​는 lll의 jjj-번째 노드의 활성입니다.

  • WlW^lWl는 l−1l - 1l−1와 lll 사이의 가중치입니다—wjklw^l_{jk}wjkl​는 lll의 kkk-번째 노드와 l−1l-1l−1의 jjj-번째 노드 사이의 가중치입니다.

연쇄법칙

h′=(f∘g)′=(f′∘g)⋅g′h' = (f \circ g)' = (f' \circ g) \cdot g' h′=(f∘g)′=(f′∘g)⋅g′

에니메이션을 통한 이해

Network Design

인공 신경망의 다양한 유형과 모델을 이해하기 위해서는 각각의 고유한 특성과 메커니즘을 면밀히 살펴봐야 합니다. 이러한 특성들은 특정 목적을 달성하기 위해 신중하게 선택되며, 모델의 성능과 효율성에 중요한 영향을 미칩니다. 다음은 인공 신경망 설계와 선택에 있어 주요하게 고려해야 할 요소들입니다:

  • 모델 선택(model choice): 모델 선택은 주어진 문제와 데이터의 특성에 크게 좌우됩니다. 이 과정에서 고려해야 할 주요 매개변수로는 데이터의 형태와 규모, 네트워크의 구조적 복잡성, 각 층 간의 연결 방식, 그리고 활성화 함수의 종류 등이 있습니다. 이러한 요소들은 모델의 학습 능력과 일반화 성능에 직접적인 영향을 미치므로 신중하게 결정해야 합니다.

  • 학습 알고리즘과 하이퍼파라미터 최적화(hyper parameter optimization): 효과적인 학습 알고리즘의 선택과 이에 따른 하이퍼파라미터의 최적화는 모델의 성능을 결정짓는 핵심 요소입니다. 이는 단순히 알고리즘을 선택하는 것을 넘어, 각 알고리즘의 특성을 깊이 이해하고 문제에 맞게 조정하는 과정을 포함합니다.

    • 하이퍼파라미터 튜닝은 종종 계산 비용이 높고 시간이 많이 소요되는 작업입니다. 그러나 이는 모델의 성능을 크게 향상시킬 수 있는 중요한 과정으로, 그리드 서치, 랜덤 서치, 베이지안 최적화 등 다양한 기법을 활용하여 효율적으로 수행될 수 있습니다.

  • 모델의 견고성(Robustness): 앞서 언급된 요소들이 적절히 조화를 이루어 설계된 모델은 견고하다(robust)고 표현합니다. 견고성은 모델이 다양한 입력 데이터와 환경 변화에 대해 안정적인 성능을 유지할 수 있는 능력을 의미합니다. 이는 모델의 일반화 능력, 노이즈에 대한 내성, 그리고 예측 불가능한 상황에서의 적응력 등을 포함하는 종합적인 특성입니다.

Deep Neural Network

심층 신경망(deep neural network)은 다수의 은닉층을 포함하는 복잡한 구조를 가진 인공다층신경망을 지칭합니다. 이는 기존의 인공신경망과 근본적인 구조에서 크게 다르지 않지만, 더 많은 은닉층을 통해 더욱 복잡한 패턴과 특징을 학습할 수 있는 능력을 갖추고 있습니다.

심층 신경망과 인공 다층 신경망의 차이

심층 신경망은 특히 은닉층의 수, 모델의 복잡성, 그리고 높은 성능에 중점을 두고 있어 별도로 구분되어 불립니다. 이러한 구조적 특성으로 인해 심층 신경망은 복잡한 문제를 해결하는 데 더욱 효과적이며, 특히 대규모 데이터셋에서 우수한 성능을 보입니다.

심층 신경망의 종류
  • Convolution Neural Network, CNN

  • Recurrent Neural Network, RNN

  • Long Short-term Memory Network, LSTM

  • Gated Recurrent Units, GRU

  • Autoencoders

  • Transformer Network

  • Graph Neural Network, GNN

  • Self-Organizing Maps, SOM

  • Generative Adversarial Network, GAN

Theoretical Properties

인공 신경망 모델의 성능과 효과는 단순히 모델 자체의 구조나 학습 알고리즘에만 국한되지 않습니다. 모델의 범위를 벗어난 여러 요소들도 큰 영향을 미칩니다. 이러한 요소들에는 다음과 같은 것들이 포함됩니다:

  • 가용력(capacity)이란 한 신경망이 가용할 수 있는 정보의 양을 뜻합니다. 이는 정보의 수 보다는 질에 관한 것인데; 그 정보가 전자적 요소로 변환 가능한 것인지, 특정 가능한 것인 지에 관한 속성입니다.

  • 그 모델은 하나의 해답으로 수축하지 않을 수 있습니다. 이는 안장점으로 설명될 수 있으며; 그 모델의 비용의 정의, 최적화 방법에 영향을 받습니다.

  • 가용력(capacity)은 신경망이 학습하고 저장할 수 있는 정보의 총량을 의미합니다. 이는 단순히 정보의 양적인 측면뿐만 아니라 질적인 측면도 포함합니다. 즉, 신경망이 얼마나 복잡한 패턴과 관계를 표현할 수 있는지, 그리고 입력 데이터를 얼마나 효과적으로 계산 가능한 형태로 변환할 수 있는지를 나타내는 속성입니다.

  • 신경망 모델은 항상 단일한 최적의 해답으로 수렴하지 않을 수 있습니다. 이는 손실 함수의 복잡한 지형도에서 발생하는 안장점(saddle point)으로 설명될 수 있으며, 이러한 현상은 모델의 비용 함수 정의와 사용된 최적화 방법에 크게 영향을 받습니다. 따라서 모델의 학습 과정과 최종 성능을 이해하기 위해서는 이러한 이론적 특성을 고려해야 합니다.

PreviousEarly-stage of AI: Perceptron and ADALINENextChallenges in Training Deep Neural Network and the Latest Solutions

Last updated 12 hours ago