
사실 제목은 어그로고 정확히 말하자면, 인공신경망은 입력되는 데이터의 집합들을 하나하나 모두 통과하는 연속함수를 어떤 것이든 만들 수 있다! 그 이유를 보는 것!!
이 강의는 혁펜하임님의 AI DEEP DIVE 강의를 기반으로 작성함.
MLP는 입력값에 행렬 곱하고 벡터 더하고 Activation... (...)의 반복을 하는 '함수'이다!
그렇다면 머 cos 취하거나 제곱으로 하는거나 하는 것을이 있는데, 굳이 더하고 곱하고 하는 형태로 함수를 표현한 이유가 무엇일까..?
그 이유는 히든 레이어 단 한 층만 있어도 위의 방식을 사용해 어떤 연속 함수든 나타낼 수 있기 때문이다!
즉, loss를 딱 0으로 만들 수 있다..! (물론 히든 레이어의 노드는 비선형함수여야 한다.)
이를 키와 몸무게라는 예시로 설명해보겠다!!
위와 같은 표가 있을 때, 다음과 같이 인공신경망을 짜면
입력 데이터를 모두 지나가는 함수를 만들 수 있다!
실제 함수를 확인하면 다음과 같다.
위 그림의 파란선이 모든 데이터를 지나가는 연속함수이다!! (좀 짜치기는 하지만...)
아무튼 위의 방법대로 한다면 출력으로 이든 이든 머든지 짧은 막대를 연속시켜서 만들 수 있을 것이다!!
이 말은 즉, loss를 0으로 만들 수 있다는 말과 동시에 인공신경망에 한계는 없다는 것을 증명한다.
이 증명이 바로 Universal Approximation Theorem이다!
[*]그렇다면 왜 DNN(깊은 신경망)을 쓸까?
대체로 hidden layer를 늘리면 Node의 수가 줄어들기 때문에!
위의 주의사항이 있음에도 증명이 말해주고자 하는 것은 미분만 가능하면 우리들만의 layer를 만들 수 있다는 것!
[*]만약 입력 노드가 두 개이면?
노드 한 개는 이차원 함수로 나왔는데, 두 개이면 삼차원 함수로 나오면서 막대가 기둥으로 바뀌어서 똑같이 적용된다!
다음 주소는 Universal Approximation Theorem에 대한 자세하고 명쾌한 설명이 나와있으니 참고!
reference: http://neuralnetworksanddeeplearning.com/chap4.html
인공신경망은 입력과 출력의 관계에 대해 어떤 연속함수든 표현할 수 있다!!