[딥러닝] 인공신경망은 만능이다!!

김대웅·2024년 3월 24일

Deep Learning

목록 보기
4/16
post-thumbnail

목표

사실 제목은 어그로고 정확히 말하자면, 인공신경망은 입력되는 데이터의 집합들을 하나하나 모두 통과하는 연속함수를 어떤 것이든 만들 수 있다! 그 이유를 보는 것!!

이 강의는 혁펜하임님의 AI DEEP DIVE 강의를 기반으로 작성함.

Universal Approximation Theorem

MLP는 입력값에 행렬 곱하고 벡터 더하고 Activation... (=f(xˉW1+bˉ1)+bˉ2=f(\bar xW_1 + \bar b_1) + \bar b_2...)의 반복을 하는 '함수'이다!
그렇다면 머 cos 취하거나 제곱으로 하는거나 하는 것을이 있는데, 굳이 더하고 곱하고 하는 형태로 함수를 표현한 이유가 무엇일까..?
그 이유는 히든 레이어 단 한 층만 있어도 위의 방식을 사용해 어떤 연속 함수든 나타낼 수 있기 때문이다!
\rightarrow 즉, loss를 딱 0으로 만들 수 있다..! (물론 히든 레이어의 노드는 비선형함수여야 한다.)

이를 키와 몸무게라는 예시로 설명해보겠다!!
위와 같은 표가 있을 때, 다음과 같이 인공신경망을 짜면
입력 데이터를 모두 지나가는 함수를 만들 수 있다!
실제 함수를 확인하면 다음과 같다.
위 그림의 파란선이 모든 데이터를 지나가는 연속함수이다!! (좀 짜치기는 하지만...)

아무튼 위의 방법대로 한다면 출력으로 x2x^2이든 cos xcos~x이든 머든지 짧은 막대를 연속시켜서 만들 수 있을 것이다!!
이 말은 즉, loss를 0으로 만들 수 있다는 말과 동시에 인공신경망에 한계는 없다는 것을 증명한다.
이 증명이 바로 Universal Approximation Theorem이다!

[*]그렇다면 왜 DNN(깊은 신경망)을 쓸까?
\rightarrow 대체로 hidden layer를 늘리면 Node의 수가 줄어들기 때문에!

  • 주의 1) 인공신경망이 이렇게 훈련된다는 것이 아니라 이렇게 표현하면 머든지 표현 가능하다는 것을 말해주고자 하는 증명이다! (실제 이렇게 훈련되면 다른 데이터 집합에 대해 loss가 엄청남...)
  • 주의 2) FC layer는 사실 굉장히 비효율적이다.
    예를 들어 Softmax의 경우 ex1ex1+ex2+ex3\frac{e^{x_1}}{e^{x_1}+e^{x_2}+e^{x_3}}로 나오는데, 이것이 학습 파라미터를 조정하여 나올 수 있는 함수일까..? 물론 나오기는 하겠지만 굉장히 비효율적일 것이다.
    다른 예를 들자면 a,b,c,da, b, c, d를 입력 받아 ac+bdac + bd(내적)를 출력하는 함수 또한 MLP로 표현하는 것이 굉장히 비효율적이다. (입력값끼리 곱하고 더해야 나오는 값인데, 이를 파라미터로 표현한다...? 흠...)
    [*] 여기서 추가로 설명하자면, 내적은 '닮은 정도'를 의미한다. 이는 나중에 굉장한 정보로 이용됨.

위의 주의사항이 있음에도 증명이 말해주고자 하는 것은 미분만 가능하면 우리들만의 layer를 만들 수 있다는 것!

[*]만약 입력 노드가 두 개이면?
\rightarrow 노드 한 개는 이차원 함수로 나왔는데, 두 개이면 삼차원 함수로 나오면서 막대가 기둥으로 바뀌어서 똑같이 적용된다!

다음 주소는 Universal Approximation Theorem에 대한 자세하고 명쾌한 설명이 나와있으니 참고!
reference: http://neuralnetworksanddeeplearning.com/chap4.html


요약

인공신경망은 입력과 출력의 관계에 대해 어떤 연속함수든 표현할 수 있다!!

profile
글쓰기에 미쳐보자

0개의 댓글