비선형성 (Nonlinearity)

2023. 6. 14. 20:20·[AI] - Machine Learning

P.S. 안녕하세요. 해당 딥러닝 카테고리는 이직을 위해 기술면접을 보던 도중 딥러닝의 기본 요소들에 대해 구체적으로 말할 수 있을 정도가 아니라고 생각이 들어서 다시한번 복습하기 위해 만들었습니다. 딥러닝에 대한 배경지식이 있다는 가정하에 정리를 할 예정입니다.
 

비선형성을 딥러닝 사용하는 직관적인 이유

비선형 변환을 통한 좌표계 공간의 변형

  • 딥러닝 모델에 비선형성을 부여하는 것은 매우 당연한 일이다.
  • 어떻게 보면 비선형 함수를 누적해서 부여하는 행위 자체가 딥러닝이기도 하다.
  • 선형 변환(Linear Transfomation)의 개념을 안다면, 단순 직교 좌표계 변환만으로는 복잡한 고차원적인 문제를 해결할 수 없다는걸 알 수 있다.
  • 그래서, 비선형 변환을 통해 직교 좌표계 공간을 곡선의 형태로 변환하여 보다 복잡한 문제를 해결하기 위함이다.

 

흔하디 흔한 XOR 예제

 

  • 위 그림은 비선형성을 활용하여 베타적 논리합(Exclusive OR) 문제를 해결한 아주 흔한 예시다.
  • 하지만, 이 그림만으로는 비선형성을 완벽하게 이해했다고 설명하기도 부족하다고 생각한다.

 

선형 변환이란?

 

시계 방향으로 45도 회전하는 선형 변환 (함수)

 

선형 변환으로 인한 직교 좌표계 공간의 변화

 

  • 앞서 알아두어야 할 것은 선형 함수(변환)은 결국에는 직교 좌표계 공간에 대한 선형적인 변환에 불과하다.
    • 좀더 직관적으로 설명하지면, 원점을 기준으로 좌표계 공간의 기저 벡터(축)의 각도만 변한다.

 

비선형성을 딥러닝에서 부여하는 방법

  • 답은 아주 단순하다. 활성화함수(Activation function)을 누적하여 적용하면 된다.
  • 활성화 함수는 비선형 함수라고도 불리며, 직선이 아닌 곡선 형태의 함수라고 많이 설명한다.
  • 하지만, 비선형 함수가 왜 곡선으로 그려지는지 이해하기 위해서는 수식적으로 접근하는 수 밖에 없다.

 

  • 먼저 선형 함수 $T$가 존재할 때, 선형대수학에서 $T$가 선형 함수이기 조건은 다음과 같다.
    • $T(u+v) = T(u) + T(v)$ (가산성, Additivity)
    • $T(\alpha u) = \alpha T(u)$ (동차성, Homogeneity)

 

  • 여기서 주의해야 할점은 비선형 함수를 곡선, 선형 함수는 직선의 형태로 설명하는 글들이 많다.
  • 하지만, 가산성과 동차성을 위배하면 선형 함수에 속하지 않는다는 걸 주의해야 한다.
  • 예를 들어, $y = 3x + 1$ 함수는 원점을 지나지 않기 때문에 가산성과 동차성을 위배하여 선형 함수에 속하지 않는다.
    • $3 \times (1 + 2) + 1 \neq (3 \times 1 + 1) + (3 \times 2 + 1)$
    • $3 \times (2 \times 3) + 1 \neq 2 \times (3 \times 3 + 1)$
  • 즉, 편향이 존재하지 않아 원점을 지난다는 전재하에서 곡선의 형태는 비선형 함수에 속하지만, 원점을 지나지 않는 경우에는 선형 함수에 속하지 않는 다는 것을 주의해야 한다.

 

비선형성을 적용하지 않으면 어떻게 될까?

 

 

  • 비선형을 적용하지 않으면 결국에는 선형 함수의 형태에서 벗어날 수 없다.
  • 결국에는 선형 함수를 중첩하여 적용하더라도 차수가 높아지는 것이 아니기 때문이다.
  • 딥러닝 신경망 모델에 비선형 함수가 적용되어 있지 않다는 가정하에,
    • CNN이나 RNN 레이어를 거쳐도 결국에는 선형적인 행렬 연산에 불과하기 때문에 고차원의 공간으로 사상(mapping)할 수 없게 된다.
    • 고로, 우리가 원하는 고차원의 feature를 추출할 수 없게 되는 것이다.

 

결론적으로 비선형성은 무엇인가?

  • 통계학에서는 독립 변수(independent variable) 혹은 의존 변수(dependent variable) 사이의 not a straight-line or direct relationship 이라고 정의된다.
  • 계, 변환 등이 비선형(非線形)이라는 것은 그 구성요소의 합이나 곱 등 선형 결합으로 설명할 수 없다는 것을 뜻한다.

'[AI] - Machine Learning' 카테고리의 다른 글

군집화 평가 지표 (실루엣 계수, 응집도)  (0) 2021.12.21
군집화 알고리즘 (K-Means Clustering)  (0) 2021.12.09
군집화 알고리즘 (Clustering Algorithm)  (0) 2021.12.06
선형 분류 (Linear Classification)  (0) 2021.12.03
회귀 알고리즘 (Ridge, Lasso, ElasticNet)  (0) 2021.11.30
'[AI] - Machine Learning' 카테고리의 다른 글
  • 군집화 평가 지표 (실루엣 계수, 응집도)
  • 군집화 알고리즘 (K-Means Clustering)
  • 군집화 알고리즘 (Clustering Algorithm)
  • 선형 분류 (Linear Classification)
Bebsae
Bebsae
  • Bebsae
    뱁새zip
    Bebsae
  • 전체
    오늘
    어제
    • 분류 전체보기 (108)
      • [DevOps] - Kubernetes (5)
      • [DevOps] - AWS (1)
      • [AI] - Machine Learning (19)
      • [AI] - Neural Network (7)
      • [CS] - Network (2)
      • [CS] - Data Structure (3)
      • [CS] - Design Pattern (6)
      • [Language] - Python (15)
      • [Library] - Numpy (7)
        • Quick Start (5)
        • API (2)
      • [Framework] - Django (3)
      • [Framework] - QGIS (6)
      • [Framework] - PyQT (4)
      • [Mathematics] - Linear Alge.. (14)
      • [Mathematics] - Statistical (2)
      • [ETC] - Python (3)
      • [ETC] - C++ (1)
      • [ETC] - Linux (1)
      • 논문 (5)
      • 회고록 (3)
      • 생산성 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    Machine
    numpy
    Python
    교차검증
    파이썬
    분해
    linearalgebra
    선형대수
    algebra
    Convolution
    신경망
    디자인패턴
    MachineLearning
    Learning
    RNN
    QGIS
    DEEPLEARNING
    decomposition
    머신러닝
    Linear
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Bebsae
비선형성 (Nonlinearity)
상단으로

티스토리툴바