뉴럴 네트워크, 매니폴드, 토폴로지 - 구글 브레인 Chris Olah
이 글은 colah.github.io 의 블로그의 글을 저작자 Chris Olah의 허락을 받고 번역한 글입니다.
원문 출처 : http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/
1편이 있습니다. 안 읽으신 분은 1편부터 감상하세요 ;)
https://brunch.co.kr/@chris-song/19
안녕하세요- 송호연입니다 :)
시작하자마자, 위상수학(토폴로지, Topology)가 나옵니다.
선형대수학이랑 위상수학 이야기가 한가득 나와서 당황하실 수가 있어요-
(위상수학은 저도 잘 몰라서 공부를 좀 했어요- ㅠㅠ)
우선 본문을 읽으시기 전에 여러분의 소중한 멘탈을 지켜드리기 위해서,
본문과 관련된 수학 용어의 정의에 대해 공부하실 수 있도록 레퍼런스를 드립니다. :)
위상수학(位相數學, 영어: topology)은 연결성이나 연속성 등, 작은 변환에 의존하지 않는 기하학적 성질들을 다루는 수학의 한 분야이다.
- 출처 : 위키피디아 링크
http://jjycjnmath.tistory.com/150
위상수학(위상기하학)에 대한 재미있는 소개 영상도 있으니 한번 감상해보세요.
위상수학에서 위상 동형 사상(位相同型寫像, 영어: homeomorphism)은 위상적 성질(topological property)을 보존하는 동형 사상이다. 두 공간 사이에 위상 동형 사상이 존재할 경우, 이 둘은 서로 위상 동형(位相同型, 영어: homeomorphic)이라고 한다. 위상수학적 관점에서 이 둘은 같은 공간이라고 말할 수도 있다. 간단하게 설명하자면, 기하학적 물체를 찢거나 붙이지 않고 구부리거나 늘이는 것으로 다른 형태로 변형하는 것을 말한다.
- 출처 : 위키피디아 링크
수학에서, 전단사 함수(全單射函數, 영어: bijection, bijective function)는 두 집합 사이를 중복 없이 모두 일대일로 대응시키는 함수이다. 일대일 대응이라고도 한다.
- 출처 : 위키피디아 링크
위상수학과 해석학에서, 연속 함수(連續函數, 문화어: 련속함수, 영어: continuous function)는 정의역의 점의 "작은 변화"에 대하여, 치역의 값 역시 작게 변화하는 함수이다.
- 위키피디아 연속함수 정의 링크
선형대수학에서 비특이행렬(non-singular matrix)은 역행렬(inverse matrix)을 갖는 행렬을 가리킨다.
- 출처 : 위키피디아 링크
행렬식(Determinant)가 0이 아닌 행렬.
고등학교 수학시간에 행렬의 역행렬을 구하기 위해 공부했던 공식입니다. ad-bc
그럼 이제 본문 시작합니다~
각각의 레이어가 공간을 늘리고 찌그러뜨립니다. 하지만 잘라내거나 깨뜨리거나 접지는 못합니다. 직관적으로 우리는 토폴로지적인 속성을 보존하는 것을 볼 수 있습니다. 예를 들어, 한 세트는 만약에 뒤에 있었다면 앞방향으로 연결됩니다.
토폴로지에 영향을 주지 않는 이러한 변환은 위상동형(호메오모피즘, homeomorphisms)이라 불립니다.
형식적으로, 이들은 전단사(일대일 대응, bijection) 함수이며, 연속(continuous) 함수입니다.
정리(Theorem): 만약 W 행렬이 non-singular하다면, N 입력과 N 출력을 가진 레이어는 위상동형(homeomorphism)입니다. (하지만, 도메인과 범위에 대해 조심해야 합니다.)
W 행렬의 행렬식(Determinant)이 0이 아니라고 가정해봅시다. 그렇다면, 이는 선형역행렬을 가진 일대일 대응 선형 함수입니다. 그래서, W를 곱하면 위상 동형(homeomorphims)입니다.
그래서, 만약 W가 0이 아닌 행렬식(Determinant)를 가지면, 우리의 레이어는 위상 동형(homeomorphism)입니다.
우리가 만약 임의로 많은 이러한 레이어들을 함께 구성해보면, 이 결론은 유지됩니다.
A는 빨간 색, B는 파란색입니다.
두 클래스의 데이터를 가지고 있는 두 차원의 데이터 셋 A,B⊂ℝ^2 을 생각해봅시다.
A={x|d(x,0)<1/3}
B={x|2/3<d(x,0)<1}
주장(Claim): 뉴럴 네트워크가 깊이와는 상관 없이 3개 이상의 히든 유닛을 가지는 레이어를 가지지 않고서는 이 데이터를 분류할 수 없다.
앞서서 말했듯이, 시그모이드 유닛이나 소프트맥스 레이어를 활용한 분류는 하이퍼플레인(hyperplane) 혹은 이 경우엔 선으로 A와 B를 분류하는 표현을 찾는 것과 동일합니다.
2개의 히든 유닛만으로 네트워크는 위상기하학적으로 데이터를 분리할 수 없습니다. 그리고 결국은 실패로 끝나게 되죠.
다음 이미지에서는, 우리는 네트워크가 트레이닝 되는 동안 분류 선과 함께 은닉(hidden) 표현을 볼 수 있습니다. 우리가 보고 있듯이, 이 네트워크는 방법을 학습하기 위해 분투하고 있습니다.
이 네트워크에 대해서는, 노오력만으로는 충분하지 않았습니다.
결국에는 비생산적인 지역최적해(local minimum)을 만들어냅니다. 그럼에도 불구하고, 이는 사실상 80%의 분류 정확도를 가집니다.
이 예시는 히든 레이어가 하나 밖에 없습니다. 하지만, 실패했습니다.
증명(Proof): 각 레이어가 위상 동형(homeomorphism)이거나 레이어의 가중치 매트릭스(W matrix)의 행렬식(Determinant)가 0이다.
만약 이것이 위상 동형(homeomorphism)이라면 A는 여전히 B에 둘러쌓여있을 것이고 선은 이 둘을 분리할 수 없을 것입니다. 하지만, 이것의 행렬식(Determinant)가 0이라고 가정하면, 데이터셋은 어떠한 좌표축으로 합쳐집니다. 우리가 원래 데이터셋에서 위상 동형(homeomorphic)인 것을 다루고 있었기 때문에, A는 B에 둘러쌓여 있고 이 데이터들이 어떠한 좌표축으로 합쳐진다면 우리는 A와 B가 서로 섞여버려서 분리를 하는 것이 불가능하게 됩니다.
만약에 우리가 세번째 히든 유닛을 추가한다면, 문제는 너무 쉬워집니다. 뉴럴 네트워크는 다음과 같은 표현을 배울 것입니다.
이러한 표현으로 우리는 데이터셋을 하나의 하이퍼플레인(hyperplane)으로 분리할 수 있게 됩니다.
더 좋은 센스를 갖기 위해 좀 더 간단한 1차원의 데이터 셋을 생각해 봅시다.
2개나 그 이상의 히든 유닛을 사용하지 않고서, 우리는 이 데이터를 분류할 수 없게 됩니다. 하지만 우리가 두개의 유닛을 사용한다면, 우리는 데이터를 이렇게 나이스한 커브로 만들어서 데이터를 선으로 분류할 수 있게 뉴럴 네트워크를 학습시킬 수 있습니다.
무엇이 일어난 걸까요? 하나의 히든 유닛은 x>-1/2에서 활성화되도록 학습하고 다른 하나는 x>1/2일때 활성화되도록 학습합니다. 첫번째 유닛이 활성화되고 나머지 하나는 활성화되지 않을 때 우리는 데이터가 A 분류에 속해있다는 것을 알 수 있습니다.
수학 개념이 너무 많이 나와서- 번역하는데 진이 다 빠졌네요..
3편에 나머지 매니폴드까지 다루어보도록 하겠습니다 :)
아 혹시 카카오에서 데이터 엔지니어로 머신러닝을 다루어보고 싶으시다면..
chris.song@kakaocorp.com 메일주세요 :) 상세 내용은 메일로 답드릴게요 ㅎㅎ
아 혹은 일반 개발자님들도, 아래 공고에 지원하시려면.. 이력서와 메일 주셔요 추천해드릴게요- :)
https://careers.kakao.com/jobs/P-10078?page=6