이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

Convexity와 딥러닝 (Convex Function과 Convex Set)

  • 2020.04.13 12:37
  • 강의/딥러닝 기초
반응형

딥러닝을 공부하다 보면, Convex 한 함수, 문제의 Convexity 등에 대한 언급을 자주 접하게 된다. 요즘은 국내에도 이를 다룬 쉬운 글이 많지만, 이상하리만치 필자는 이 Convexity를 이해하기가 힘들었다. 몇 시간에 걸친 공부를 마치고 이를 정리해보고자 한다.

Convex의 정의

Convex는 볼록하다는 것을 의미한다. 수학에서 Convex는 대상이 집합이냐 함수냐에 따라 개념이 약간 다른데, 먼저 함수에서의 Convexity를 알아보고, 집합에서의 Convexity를 간단히 알아본 후, 딥러닝과 Convexity의 상관관계에 대해 다루도록 하겠다.

함수의 Convexity

Convex 함수는 볼록 함수라고 하며, 이름 그대로 볼록한 함수를 의미한다. 이때, 우리가 고등학교에서 흔히 배운 것과는 달리 아래로 볼록한 것만 Convex라 하며, 위로 볼록한 함수는 Concave라 한다.

$y=x^2$

우리가 가장 잘 아는 Convex 함수는 위와 같은 이차함수이다. 이름 그대로 아래로 볼록한 모양의 그래프를 갖는다.

그렇다면 이러한 Convex 함수를 수학적으로 판단하는 방법은 무엇일까? 함수 위의 임의의 두 점을 연결하는 선을 그래프에 그었을 때, 그 선이 아래 그림과 같이 함수 그래프의 위쪽만을 지나가면 이 함수는 convex 한 함수이다.

출처: 위키피디아

반면, 함수위의 임의의 두 점을 연결하는 선이 함수의 아래를 지난다면 이것은 non-convex 함수이다.

non-convex 함수의 얘

Convex 함수의 판별

함수 위의 임의의 두 점 $x,y$와 $[0,1]$ 사이의 값 $t$에 대해 다음이 식이 항상 성립하면 이 함수는 Convex 하다고 말할 수 있다.

$f(tx + (1-t)y) \leq tf(x) + (1-t)f(y)$

집합의 Convexity

구글에 Convex를 검색해보면 많은 글들이 집합의 Convexity를 다루고 있다. 이로 인해 내가 딥러닝에서의 Convexity를 이해하는데 조금 혼란이 있었던 것 같다.

Convex 한 집합을 볼록집합Convex Set이라고 부른다. Convex 집합은 집합이 이루는 공간 내의 두 점을 연결한 선분이 그 집합 안에 포함되는지, 포함되지 않는지에 따라 Convexity가 갈린다.

쉬운 이해를 위해 아래 예시들을 보자.

Convex Set(출처: 위키피디아)
non-convex set(출처: 위키피디아)

아래의 경우, 임의의 두 점 x와 y를 잇는 선분이 set의 바깥에 나와있어 Convex 하지 않다고 할 수 있다.

분리 초평면 정리Hyperplane separation theorem

Convex set에서 중요하게 알아두어야 할 것은 분리 초평면 정리이다. 두 개의 겹치지 않는(disjoint) 닫힌 유계 convex 집합 $A,B$을 분리해주는 초평면Hyperplane이 존재한다는 것이다.

출처: 위키피디아

Convexity와 딥러닝

이제 마침내 Convexity와 딥러닝이 갖는 상관관계이다. 딥러닝은 매우 복잡한 다변수 함수의 최적해를 경사 하강법을 통해 찾는 것이라고 지난 글에서 다뤘다.

경사 하강법을 사용할 때, convex 함수와 non-convex 함수에서 탐색한 해는 큰 차이를 갖는다.

출처: 위키피디아

위와 같은 convex 함수의 경우, 우리가 딥러닝에서 경사 하강법을 통해 찾는 최저점이 단 하나 존재한다. 이 점을 전역 최적해Global Minimum이라고 한다.

Convex 함수에 대한 경사 하강법은 하나의 최고의 해로 수렴한다. 그러나 non-convex 함수에서는 그렇지 않다.

non-convex 함수는 무한히 넓은 함수 공간에서 여러 곳의 지역 최저점Local minima을 갖는다.
위 함수에서 이로 인하여, 경사 하강법을 시작하는 위치에 따라 서로 다른 최저점을 향해 결과가 수렴하게 된다. 예를 들어, 위 함수에서 1.5에서 경사 하강법을 시행하면 0.3 부근의 지역 최저점으로 수렴할 것이다. 그러나 2.5 부근에서 경사 하강법을 시행했다면, 조금 더 나은 결과를 갖는 5 부근의 지역 최저점으로 수렴할 것이다.

non-convex 함수의 문제는 우리가 어디가 전역 최적해인지를 알 수가 없다는 것이다. 이로 인해 non-convex 한 문제를 딥러닝으로 해결하려고 하면 학습이 잘 되지 않고 좋지 않은 지역 최저점에 갇히는 등의 문제가 발생한다.

이를 보완하기 위해 AdaGrad, RMSprop 등 다양한 Optimizer들이 연구되었다. 이들은 더 나은 지역 최저점을 찾기 위해 보완된 경사 하강법들로, 다음에 비교해보도록 하겠다.

Convex Set과 딥러닝

Convex Set들을 분리할 수 있는 초평면이 존재한다는 분리 초평면 정리를 기억하는가? 이에 따르면 닫힌 유계(경계가 존재하는 유한한) 집합을 구분할 수 있는 초평면이 존재한다. 문제는 이 초평면이 굉장히 찾기 어렵다는 것이다. 퍼셉트론이 사실 선형 분리기라는 것도 기억할 것이다. 퍼셉트론과 SVM을 비롯하여 머신러닝은 Convex 한 집합을 올바르게 분리하는 초평면을 찾는 수학적 모델이다.

이때 심층 신경망, 딥러닝이 갖는 강점이 나타난다. 심층 신경망의 층을 한 계층씩 늘릴 때마다, 신경망이 표현 가능한 데이터의 축이 하나씩 추가되는 효과를 갖는다. 이때, 고차원 공간의 데이터 포인트는 저차원 공간에 비해 선형 분리 가능한 축의 수가 많아져서, 선형 분리가 가능할 확률이 높아진다.

즉, 신경망의 계층이 쌓일수록, 분리하기 어려워 보이는 집합을 분리하는 초평면에 가까이 갈 수 있는 것이다.

Reference

Convex Functions, Convex Sets - ratsgo(이기창)님 블로그
Convex function, Hyperplane separation theorem - Wikipedia
CNN의 발전과 활용, 왜 딥러닝인가? (딥러닝의 강점 참조) - NYU Deep Learning

Special thanks to Keras Korea

반응형

'강의 > 딥러닝 기초' 카테고리의 다른 글

배치와 미니 배치, 확률적 경사하강법 (Batch, Mini-Batch and SGD)  (0) 2020.05.28
데이터 일반화 vs 표준화 (Normalization and Standardization of Data)  (3) 2020.04.28
경사하강법과 손실 함수: 심층 신경망 학습시키기 (Gradient Descent and Loss Function)  (8) 2020.01.23
퍼셉트론(Perceptron): 덧셈과 곱셈으로 뉴런 구현하기  (3) 2020.01.06
왜 지금인가? - 딥러닝의 역사  (0) 2020.01.06

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 배치와 미니 배치, 확률적 경사하강법 (Batch, Mini-Batch and SGD)

    배치와 미니 배치, 확률적 경사하강법 (Batch, Mini-Batch and SGD)

    2020.05.28
  • 데이터 일반화 vs 표준화 (Normalization and Standardization of Data)

    데이터 일반화 vs 표준화 (Normalization and Standardization of Data)

    2020.04.28
  • 경사하강법과 손실 함수: 심층 신경망 학습시키기 (Gradient Descent and Loss Function)

    경사하강법과 손실 함수: 심층 신경망 학습시키기 (Gradient Descent and Loss Function)

    2020.01.23
  • 퍼셉트론(Perceptron): 덧셈과 곱셈으로 뉴런 구현하기

    퍼셉트론(Perceptron): 덧셈과 곱셈으로 뉴런 구현하기

    2020.01.06
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (281) N
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (47) N
      • 회고 & 계획 (19) N
      • 내 이야기 (9)
      • 리뷰 (3)
      • 군대에 간 공돌이 (10)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바