안녕하세요! 시간여행자에요~


이번에는 마카오의 기원이 될 수 있는 이야기들을 다루어보도록 할께요!


과학기술의 발전은 유럽의 대항로개척의 시대를 열었어요.


<사진1>



1553년 포르투갈인들이 마카오에 하게 되었는데, 이때 당시에는 명나라 관할에 있었던 곳이었어요. 이전 대만여행글에서 대만이 원주민에 나라였다고 했던거 기억하시나요? 당시 대만이라는 지역은 명나라나 청나라에게 그렇게 중요한 곳이 아니었기 때문에 관리가 허술했던 모양이에요.


포르투갈인들은 1557년에 명나라 관리자들에게 뇌물을 주고 마카오 거주권을 획득하게 되었고, 광둥의 중국 관리로부터 도시건설허가를 얻었다고해요. 


포르투갈이 그곳에 터를 잡고 살려고 했다면 그곳의 지명을 알아야겠죠? 물론 당시 그 지역의 중국명칭이 있었겠지만, 포르투갈 사람들은 지나가는 현지인들에게 이곳이 어디냐고 물어본 후 그들이 아마가오(A-ma-gao))사원을 가리켰다고해요ㅎㅎ



그래서 '아마가오'->'마카오(마가오)'라는 명칭으로 부르게 되었다고 합니다. 아마사원은 마카오에서 가장 오래된 건축물이고뱃사람을 지켜 주는 수호신 아마(틴하오)를 모신고 있어요



향을 피우기 위해서는 구매(제일큰거 20$)를 해야 하는데 항상 3개씩 묶음으로 판매한다고 합니다. (향을 피우는데 꽤 시간이 걸린다고해요;)




당시 제가 방문했을 때 어느 방송매체에서 왔었나봐요. 역시 그 지역의 공식적인 방문을 하는 경우에는 그 지역의 역사가 메인포인트가 되는구나라는걸 느끼는 순간이었어요~



아마사원을 마주하고 왼쪽편을 보게되면 독특하게생긴 건물을 볼 수 있어요. "Capitani dos portos"라는 문구가 있는데, 이 문구는 항무부라는 뜻도 있지만 포르투갈의 식민지 행정구를 의미한다고해요. 당시 포르투갈인들이 아마사원을 특별하게 생각했기 때문에 바로 옆에 정부기관 건물을 세웠던것 같아요. 


   


마카오는 1841년 영국이 홍콩에 식민지를 개설하기까지 중국과 서양의 유일한 교류지가 되었다고 합니다. 마카오를 거쳐 중국으로 전해진 문물은 그리스도교 외에 서양에서 발달한 천문학유클리드 기하학근대적인 지도투영법대포주조기술 등이 있었다고 하네요.


영국이 본격적으로 동아시아에 세력을 펼치는 시기에 포르투갈 또한 자신들의 세력을 유지하기 위해 1887년 청나라와 조약을 맺어 마카오 식민지 건설을 합법화했다고 합니다. 1951년 포르투갈의 헌법개정에 따라 마카오를 식민지 구역이 아닌 자신들의 정식 영토로 인정해 버립니다.


하지만, 1966년 중국의 문화대혁명 사건으로 인해 마카오의 포르투갈 관료들과 현지 중국인 간에 분쟁이 일어난 사건을 시작으로 지속적은 마찰을 맺은 끝에, 1973년 마카오를 '자치령'의 개념으로 관리했다고 합니다.


결국에는 1979년 중국과의 수교를 통해 1986년 베이징에서 마카오 반환협정을 체결하고, 1999.12.20 중국은 마카오에 대한 주권을 회복하게 됩니다.




이번 마카오 여행을 하면서 느낀것이 마카오라는 지역은 사실 19세기 포르투갈의 모습을 아직도 간직하고 있는듯한 느낌이었어요. 에그타르트가 유명한것만 봐서도 포르투갈의 흔적이 진하게 남아있는 것 같더라구요 ㅎㅎ (에그타르는 18세기 포르투갈 수녀원에서 탄생한 음식이라고하네요!ㅎㅎ)


그리고 돌아다니시면 종종 포르투갈어도 많이 보실 수 있으실거에요 ㅎㅎ


아마사원은 많은 관광객들이 들리는 곳은 아니지만 마카오라는 곳의 기원이 되는 곳을 방문하고 싶다면 꼭 강추할께요!!! ㅎㅎㅎ


그럼 다음글에서 뵐께요~!



[글 래퍼런스]


안녕하세요~ 시간여행자입니다!


마카오는 홍콩에서 페리를 타면 1시간이내에 도착하기 때문에 보통 홍콩을 가시는 분들은 마카오까지 들리는 경우가 많아요~


특히 마카오에는 '하우스 오브 댄싱'이나 수 많은 '카지노'들로 유명한 곳이기도 하죠! 물론 육포와 에그타르트 맛도 예술인 곳이에요ㅎㅎ


그런데 그거 아시나요? 마카오는 성당이 굉장히 많아요. 이상하죠? 분명히 중국관하에 있는데 어떻게 성당이 많을 수 가 있었던건지;


그 외에도 마카오 또한 한국과 특별한 인연이 있는 곳이에요. 특히 한국인 크리스천분들이라면 꼭 한 번 방문하길 바래요ㅎㅎ


그럼 재미있는 역사를 갖고 있는 마카오로 시간여행을 떠나보겠습니다!!





Q1. 마카오에는 왜 이렇게 포르투갈의 흔적들이 많을까?

-마카오 지명 어원

-에그타르트

Q2. 마카오에는 왜 이렇게 성당이 많은걸까?

- 마카오에 있는 성당 중에서 매주 토요일 오후4시에 한국어 미사를 여는 곳이 있다?

- 교황자오선이 마카오에?



자 그럼 이번에도 위와 같은 순서대로 과거여행 떠나보도록 할께요!

Q. 차원의저주(Curse of Dimension이 무엇인가요?)

Q. 왜 딥러닝은 자꾸 parameter(가중치)를 줄여주는 노력을 할까요?


안녕하세요~ 지난 시간에는 DNN의 일반화성능을 높이기 위해 Regularization 기법에 대해서 알아보았어요. 또한 L1 regularization 기법이 낮은 가중치를 0으로 만드는 경향이 있어 입력차원을 줄여주는 효과를 얻을 수 있다고 했었던거 기억하세요?


이번장에서는 입력차원을 줄여주는것이 왜 효과적인지, 이것이 딥러닝 성능을 어떻게 높여준다는것인지 알아볼거에요. 


위키백과에서 내린 차원의저주 정의는 아래와 같아요. 쉽게 말하자면 데이터의 차원이 증가하면 이것을 표현하기 위한 데이터양이 기하급수적으로 올라간다는 뜻이에요.


"The common theme of these problems is that when the dimensionality increases, the volume of the space increases so fast that the available data become sparse. This sparsity is problematic for any method that requires statistical significance" 


먼저, 아주 간략하게 설명을 해보도록 해볼게요.

우리에게 4개의 데이터가 있다고 가정해볼게요. 그리고 모든 축의 길이가 2인 2차원공간과 3차원공간에 4개의 데이터를 집어넣을거에요. 왼쪽그림에서는 면적당 데이터가 차지하는 밀도는 1이겠네요. 우측그림에서는 면적당 데이터가 차지하는 밀도가 1/2일거에요. 그렇다면 공간의 차원이 높아질 수록 같은 데이터량이라고 할지라도 (데이터가 공간을) 차지하는 비율이 낮아진다고 할 수 있겠죠?



우리가 30개의 데이터를 갖고 있는다고 했을때보다 1000개의 데이터를 갖고 있을때 overfitting이 일어날 확률이 더 적을거에요 (이에 대한이유는 앞선글의 가위 예시를 통해 이해해주시면 좋을것 같아요). 결국엔 같은 공간차원이라고 해도 데이터가 더 적을수록 overfitting이 일어나게되고, 이것을 일반화해서 설명하면 "데이터가 공간상에서 차지하는 비율이 적을 수록 상대적으로 overfitting이 일어날 확률이 높다"라고 할 수 있어요. 


.

.

.

.

.

.



이제부터는 위에서 언급한 내용들을 조금 더 자세히 풀어 설명해보도록 할께요.


먼저 어떤 사람에 정보에 관한 데이터를 갖고 있다고 가정해볼께요. 그리고 사람정보(X)에는 나이(=x1), 키(=x2), 몸무게(=x3)가 들어가 있다고 합시다. 그렇다면 사람정보 데이터 X는 아래와 같이 3차원 공간상에서 표현이 가능하겠네요? 그리고 다음과 같이 표현 할 수 있을 겁니다 --> X=(x1,x2,x3)


우리는 앞으로 데이터 X를 이루는 3가지 조건인 x1,x2,x3의 총 갯수를 데이터 건수라고 명명할거에요. 그러니까 여기 3차원 데이터에서 데이터 건수=3이 되겠네요.


<사진1>




이때, 1명의 사람에 대한 데이터를 수집했다고 해볼께요. X데이터는 3개로 나누어지니 각각의 공간은 33%의 비율을 갖고있을 겁니다. 만일 데이터건수가 2라고 한다면 각각의 공간은 50%의 비율을 차지하고 있겠네요.

      

<사진2>                                              <사진3>



만약 어떤 데이터가 27차원으로 이루어져있다고 해봅시다. 만약으로가 어떤 서로다른 특성을 갖는 데이터 I=(I1,I2,I3), J=(J1,J2,J3), K=(K1,K2,K3)를 조합하여 입력데이터를 사용한다고하면 아래와 같이 구성이 가능해 질 겁니다.

<사진4>

이때는 하나의 데이터건수가 갖고 있는 공간비율이 1/27 = 0.037 이 되겠어요.


예를들어, 우리가 6명의 사람에 대한 데이터를 수집한다고 해볼께요. 먼저 데이터가 3차원으로 구성된다고 하면 3가지 데이터조건에 6명을 채우는게 됨으로 실제 3차원 공간에서 6/3=200% 공간을 채울 수 있게되요. 이 말을 바꿔말하자면 6명의 데이터는 3차원 공간을 200% 채울 수 있다는 뜻으로 풀이할 수 있습니다.


그런데, 27차원인 경우에는 어떻게 될까요? 6/27=0.22=22%의 공간밖에 채우질 못하네요. 


이처럼 수집된 데이터 건수는 동일하더라도 입력데이터 차원이 증가하면, 데이터 공간을 채우는 비율이 줄어들기 때문에 분석에 요구되는 데이터 수도 증가하게되요.


만약 1가지 데이터 건수에 최소 30건의 데이터가 있어야 분석이 용이하다고 했을 때, 3차원의 입력데이터는 3*30=90 개의 데이터 (건수)가 필요하고, 27차원 입력은 27*30=810건의 데이터 (건수)가 필요하게 됩니다.


언뜻보면 데이터건수가 많아지면 데이터를 표현하는 정보가 많아져 분석에 더 유리할 것 같이 보이시나요? 

그런데 자세히 보시면 입력 데이터의 차원이 커지게 되면 데이터 건수가 많아지므로 하나의 데이터건수가 갖는 공간비율도 점점 줄어들게 되고, 분석에 필요한 데이터 건수도 기하급수적으로 늘어나게 됩니다. 


딥러닝 관점에서 해석을 다시 해볼께요.  우리가 어떤 Deep Neural Network모델을 학습시키고 분류하는 성능을 테스트 해본다고 가정해봅시다. 먼저 1차원 입력데이터 30개를 Deep Neural Network로 학습을 시킨 후, 학습데이터가 아닌 데이터로 검증을 했다고 해봤을 때 문제없이 동작을 합니다. 그런데, 27차원으로 표현되는 입력데이터 30개를 학습시킨 후 테스트를 해보면, 학습된 30개의 데이터에 대해서는 무리없이 잘 분류하는데 다른 학습데이터로 검증을 한다고 하면 잘 분류를 하지 못하는 현상이 벌어지곤 합니다. 다시말하자면, 입력 데이터의 차원이 증가했는데 데이터 수가 부족하니 학습데이터만 잘 구분하도록 모델이 학습데이터에 편중 되었네요. 이 역시 Overfitting입니다.

아래 사진을 보면 입력데이터가 일정한 차원 수를 넘어가게되면 분류성능이 급격하게 떨어지는 것을 볼 수 있어요.

<사진5>


이전장에서 L1 regularization이 낮은 가중치를 0으로 만드는 경향이 있다고 했죠? 사실 낮은 가중치는 딥러닝 모델에서 큰 부분을 차지하지 않아요. 예를들어, 가중치가 0.00000000000001이라고 한다면 아무리큰 입력값이 곱해져도 그 결과가 0에 수렴할거니까요. 만일 가중치가 0이 된다면 결국 입력차원이 줄어들게 되고, 분석에 필요한 데이터량이 줄어들 수도 있겠네요.


또는 복잡한 딥러닝 모델을 좀 더 simple하게 만드는 효과도 불러일으킬 수 있겠네요.



<사진6>


이렇게 딥러닝에서 데이터의 차원이나 딥러닝 모델의 파라미터를  줄여주려는 노력은 계속되고 있어요. 일반화성능을 위해서도 줄여주려고 하는 것도 있지만, 딥러닝 모델의 속도를 향상시키거나, 제한적인 데이터량을 극복하려고 하는 등의 여러 이점이 있기 때문에 이와같은 노력이 지속되고 있어요.




이제 이번장에 기술했던 글을 요약해볼께요~

1. 주어진 데이터 샘플에 대한 세밀하고 밀도 있는 데이터 (=고차원 데이터)는 많은 정보를 담고 있지만, 딥러닝 모델 관점에서 고차원 입력데이터는 부작용을 일으킬 가능성이 더 높아요. 
2. 즉, 고차원 입력데이터일수록 훨씬 더 많은 데이터량이 필요하게 되는데, 이것을 차원의 저주라고해요.
3. 하지만 현실적으로 방대한량의 데이터를 모으는데 힘든 부분이 많아요.
4. 또한 입력차원의 데이터가 고차원이어도 실제분석에서는 저차원으로 구성된 데이터가 더 분류성능을 높일 수 있어요. 왜냐하면 가끔씩 우리가 품질좋은 세밀하고 밀도 있는 데이터를 구성했다고 하지만, 그건 언제나 우리관점에서에요. 그러니까, 없어도 되는 변수들을 데이터에 추가했을 가능성도 있어요 (오히려 분류에 방해되는 변수를 넣을 가능성도...).
5. 이러한 이유들 때문에 어떻게든 입력데이터의 차원을 줄여주는 노력들을 하고 있어요.
-Feature extraction: PCA
-Feature selection: Correlation Analysis, VIF(Variance Inflation Factor), Random Forest
(위에 있는 개념들은 사실 선형대수나 Machine Learning에서 주로 다루는 개념이에요. 그래서 이 부분은 나정에 관련 챕터를 개설하게 되면 그때 설명하도록하고 지금은 이러한 기법들이 사용되고 있구나 정도만 알고있으면 될 것 같아요)


이번장에서는 Curse of Dimension에 대해서 알아보았어요. 다음장에서는 지금까지 배운내용을 전체적으로 요약정리하면서 디테일한 수식들을 사용해보도록 할게요!


[사진 레퍼런스]

사진5

https://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/

사진6

https://www.youtube.com/watch?v=6g0t3Phly2M


[글 래퍼런스]

https://kkokkilkon.tistory.com/127

http://thesciencelife.com/archives/1001


+ Recent posts