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



지난글들을 보며 홍콩이 왜 중국과 충돌할 수 밖에 없었는지 이해할 수 있게 되었죠? 그렇다면 다시 한 번 홍콩에서 일어난 2번의 시위(2014, 2019)에 대한 인터뷰를 들어 볼게요.






홍콩이 지키고 싶은 것이 '민주주의'일까요? '한족의 정체성'일까요? '과거의 향수'일까요? 


홍콩여행을 하면서 느꼈던 것은 '복잡함'이었어요. 복잡하다는 뜻이 긍정적으로 들리는 단어는 아니지만 홍콩의 역사도 그렇고, 홍콩의 거리를 거닐면서도 그렇고, 굉장히 다양한 인종들이 섞여 사는것도 그렇고 모든 것이 복잡해보이는 곳이었어요.

최근의 시위까지 홍콩은 더욱더 복잡한 상황에 직면하게 되었는데요. 홍콩의 미래는 과연 어떻게 될까요?
여행을 마치면서 던지는 질문 또한 복잡했답니다.

하지만 하나 확실한건 모두가 홍콩의 평화를 원한다는 점이에요. 그렇기때문에 저 또한 홍콩시민들이 원하는대로 모든 것이 순조롭게 흘러갔으면 좋겠다는 생각을 끝으로 이번 여행은 마무리하도록 할게요!



(마지막으로 홍콩시위에 대한 추가적인 내용들에 대해서 잘 만들어 놓은 영상이 있어 올려놓도록 할게요ㅎㅎ)




다음 홍콩여행을 갈 때에는 완차이와 구룡반도의 침사추이 지역을 가려고 해요ㅎㅎ  

아! 맞다! 그리고 제가 공부하고 있는 딥러닝분야에서 이름이 널리 알려져있는 '홍콩과기대'도 꼭 방문해 보려고 합니다 ㅎㅎ


지금까지 홍콩편을 봐주셔서 감사합니다~!!ㅎㅎ


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


이번 여행지는 상하이에요! 이 글을 쓰고 있는 시점에서 최근 중국의 코로나 질병 때문에 상해에서도 굉장한 혼란을 겪고 있다고 해요ㅜㅜ (전 작년 3월에 여행을 갔다왔어요;;ㅎ) 


하지만 100년전 우리민족에게는 더 큰 시련이 있었는데 바로 일제강점기라는 질병에 걸렸던거 기억하시나요? 이번 상하이 여행에서는 해외에서 이루어진 대한민국의 독립운동의 숨결을 느껴보려고해요. 특히 이번 여행을 하면서 '민족'에 대한 개념에 대해서 많이 생각하게 되었는데요. 


상해에 역사적인 장소를 방문하면서 '독립운동가들은 왜 그렇게 한민족을 지키려 했는지'에 대한 물음을 빈번하게 하게되었던것 같아요.


그럼 제가 이러한 질문을 통해 어떻게 여행을 했는지 지켜봐주세요~!









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


이번에는 홍콩하면 빼놓을 수 없는 인물 쑨원에 대해서 알아보려고해요!

쑨원은 홍콩 뿐만아니라 지금의 대만과도 매우 밀접한 인물이에요. 장제스와는 달리 지금의 중국(중화인민공화국)의 사람들에게도 굉장히 높게 평가받는 인물이에요.


이번글에서 쑨원에 대한 인물을 이해해가면서 좀 더 극동아시아 역사에 대해 좀 더 깊이 이해해보도록 할게요!

(이번글은 위키백과에 있는 내용들을 대부분 발췌했으니 위키백과를 참고하시는걸 추천합니다~)



<1. 쑨원의 유년기>


쑨원은 1866년 광둥성 광저우에서 빈민한 농부의 아들로 태어납니다. 아홉살이 되던 해 동네 서당에 들어가 전통적인 교육을 받던 도중 1879년 장남 쑨메이가 거주하던 하와이로 건너가 영국 성공회 미션스쿨인 이올라니 학교에서 서구식 교육을 받게 되지만 하와이 원주민 출신 아이들과 싸우고 중국 전통 문장을 낭독하는등의 생활로 적응을 잘 하지 못했습니다


<사진1>



하지만 열심히 학업한 끝에 1882년 이올라니 학교를 차석으로 졸업해 하와이 왕국의 칼리카우아 왕으로부터 기념품을 삼는등 뛰어난 성적을 보였습니다. 또한 쑨원은 이때부터 기독교에 관심을 가지게 됩니다.

하지만 쑨메이는 쑨원이 기독교를 배우고 싶다는 말에 다음 해 그를 고향(광저우)으로 돌려보내게 됩니다 (아마 청나라에서는 유교가 미리 자리잡고 있었기 때문이 아닌가 생각됩니다).


하지만, 쑨원은 서양식 생활에 익숙해져서 우상숭배를 타파한다는 취지로 마을의 수호신인 목상을 부숴버리는 등 마찰을 일으켰고 반년이 채 가기전에 쑨원은 결국 홍콩으로 도피(쫓겨남)하고 맙니다




<2. 쑨원의 의사생활>


당시(1884) 홍콩은 영국령이었기 때문에, 홍콩에서 영국 성공회 계열의 퀸즈 칼리지(대학)에서 의술을 공부하고 선교사 찰스 헤이거에게서 세례를 받고 형 쑨메이의 소개로 루무전과 결혼하게 됩니다.


(이곳이 예전에 Queen's college가 있던 곳이라고 해요ㅎㅎ Queen's college는 현재 코즈위에베이로 이전했다고 합니다)


(쑨원은 1887~1892년 의대를 다녔는데요. 당시 의술을 가르치던 학교가 지금의 홍콩대학교 의대의 전신이었다고 합니다. 그래서인지 홍콩대학교를 방문했을 때, 쑨원 동상이 있었고 많은 시민들이 쑨원동상 옆에서 사진을 찍고 있었어요)



이후 1884년 청불전쟁(<- 나중에 베트남에 방문하게 되면 따로 다룰께요 ㅎㅎ)이 발발하고 여기서 청나라가 패배에 가까운 졸전을 벌이자 전통 체제에 불만을 품게 되어 민족주의적(당시 청나라는 만주족(여진족)이었고 광둥성 지방사람들은 본인들이 한족의 뿌리라고 생각하는 경향이 있었답니다. 그 이유는 제 블로그 글을 읽어보시면 알 수 있어요! ㅎㅎ) 발상을 하게 됩니다. 하지만 당시까지만 해도 그의 혁명사상은 구체적인 무언가가 있다기보다는 단순히 체제 변혁을 꿈꾸는 것이었습니다. 




<3. 청일전쟁의 실패로 삼민주의 기틀이 마련되다; 아시아 최초의 민주주의의 뿌리>


청불전쟁, 아편전쟁의 패배를 보면서 힘없는 청나라에 대한 반발심이 커진 쑨원은 청일전쟁(1894)에서 일본에게 마져 패하자 정상적인 방법의 개혁을 포기하고 공화제를 통한 새로운 나라를 세울 것을 결심하게 됩니다.


1895 11월 쑨원은 호놀롤루로 건너가 현지 화교(중국에서 태어나서 다른 나라에 정착하여 나라에 활동하는 사람)와 연합해 "달로를 몰아내고 중국을 회복하여 합중정부를 창립하는" 중국 역사상 최초의 근대적 정치단체인 흥중회를 결성하게 됩니다


      

(흥중회 핵심멤버중 한 명인 융쿠완(Yeung Ku-wan)을 기리는 장소라고 하네요~)


이후 홍콩으로 돌아간 쑨원은 3월부터 반년간 광저우에서의 무장봉기를 준비하나 실행 직전 당국에게 들키면서 실패로 돌아가고 만다. 이후 일본을 거쳐 각지를 돌아다니면서 흥중회 분회를 설립했고 1896년 런던을 체류하였다가 청 영사관에서 구금되는 사건이 발생하게 되는데 이때 대영박물관의 도서관을 드나들며 약 9개월간 독서에 열중하면서 지내게됩니다


이 기간동안 쑨원은 경제학자들인 카를 마르크스와 헨리 조지 등의 저술을 탐독했고 사회 과학의 여러 분야를 연구했는데, 이때부터 그의 혁명이념인 '삼민주의(민권·민족·민생)'의 윤곽이 형성되었습니다.




<4. 변법자강 운동>


광서제(당시 중국 황제)는 당시 서태후의 손아귀에 휘둘리고 있었고, 이러한 상황을 타개하고 개혁 정치를 추구하기 위해 강유위의 갖가지 정책을 지지하게 됩니다강유위의 변법자강책에는 과거 제도 개혁, 조세 개혁, 탐관오리 혁파, 각종 경제 개혁 등이 담겨 있었고, 무술변법을 통해 이중 일부를 실행에 옮기기도 하는데요. 이리하여 서양의 기술만이 아닌 정치제도를 도입해야 한다는 '2단계'의 근대화 운동이 추진되었는데, 이를 변법운동이라 합니다


서양 정치를 따라 국회를 만들었고 헌법을 제정하고, 시대의 흐름에 맞지 않는 유학을 중시하는 과거제를 개혁하고 서양 학교를 설립하기도 했으며, 일본의 메이지 유신을 따라 입헌군주제도 도입하려고 했었습니다. 그러나 그의 변법은 광서제의 미약한 권위에 의존했고, 결국 서태후 등 반개혁파에게 패배해 외국으로 망명을 가는 결과로 끝이 납니다.




<5. 삼민주의 발표>


청나라 말, 열강세력들의 이권침탈과 더불어 국내 상황은 더욱 혼란스러워졌는데, 이는 의화단 운동을 유발 시키는 원인이 됩니다. 하지만 당시 위안스카이는 열강들의 부탁으로 의화단 운동을 진압하고 외국인을 보호한다. 이 일로 열강의 신임을 얻고 북양대신이 되어 자기 세력을 확대, 신식군대를 증강하여 독립된 정권을 형성하게됩니다. 


흥중회를 설립하고 무장봉기를 계획했지만 실패한 쑨원은 그 후 몇 년간 쑨원은 영국에서 체류하면서 삼민주의의 기틀을 마련하고 일본, 하와이, 베트남, 시암, 미국 등지에서 화교와 유학생들을 대상으로 혁명 사상을 전파하고, 1905년에는 필리핀, 독일, 프랑스 등의 유학생들을 규합하여 혁명단체를 조직하게 되었습니다


1905 8월에는 일본 도쿄에서 흥중회, 화흥회 등의 단체를 기반으로 중국혁명동맹회(중국 동맹회)라는 새로운 단체를 창건하고 총리에 추대되었다. 동맹회는 '만주족 축출, 중화 회복, 민국 창립, 토지 조유의 균등'을 강령으로 채택했고, 쑨원은 동맹회의 기관지 《민보》 발간사를 통해 삼민주의를 발표했습니다.


이후 중국동맹회는 총재 쑨원의 지휘를 받으며 수십여차례 봉기를 시도했으나 봉기는 빈번이 실패로 끝나고 쑨원에게는 가혹한 질책과 비판이 뒤따랐는데요. 쑨원은 중국동맹회의 활동을 다른 동지에게 맡기고 출국하여 1911년 무렵까지 전 세계를 돌아다니며 중국혁명의 당위성을 알리는 한편, 혁명자금과 군자금을 마련하여 동맹회의 활동을 뒤에서 도왔습니다.


쑨원은 유학생 중심으로 중국혁명동맹회를 결성하여 청을 타도하고, 민주주의 기반의 공화정을 수립하려는 기틀을 마련합니다. 



<6. 쑨원 그리고 중화민국(대만)>


당시 청나라에서는 청일전쟁 이후 민간이 스스로 주식을 발행하여 마련한 자금으로 철도를 건설하겠다는 '철도 부설운동'이 활발히 진행되고 있었다. 그런데 1911, 청조에서는 아무런 설명이나 사전 협의도 없이 철도건설을 국유화시켜 버렸고, 이에 따라 청 정부의 민영철도 국유화 조치에 따른 민중의 봉기가 일어납니다


위안스카이는 이를 계기로 군대를 장악하고 내각 총리대신이 되어 청나라의 실권을 손아귀에 넣는다. 또한 쑨원은 민중의 봉기를 기회로 삼아 민중의 환영 속에 중화민국을 수립하여 임시 대총통으로 취임합니다.


쑨원은 '혁명을 성공시키려면 서구 열강의 간섭을 사전에 막아야 한다'고 판단하여 외교적인 노력을 지속하게 되었어요. 당시 중국과 밀접한 관계를 맺고 있는 나라는 여러 국가가 있었는데 공화정을 세우기 위해서 가장 필요한 나라가 영국이라고 판단했습니다. 영국의 경우는 중국의 공화정 정치에 대해 재야가 동정적이었으나 정부는 미정된 상태였어요


쑨원은 영국 외무성과 회담하고 영국정부에 대하여 청조에 대한 일체의 차관을 중지할 것과 일본에게 청조의 지원을 중지하도록 해주고, 영국 각 속지에서 '쑨원 추방령'을 취소하도록 요구하여 영국정부로부터 확약 받는 대신에 혁명정부는 청나라와 체결한 모든 조약을 인정한다고 하였습니다.



<7. 쑨원과 위안스카이의 만남; 신해혁명>


쑨원은 민중의 지지를 받고 있었지만 실질적인 힘이 없었어요. 반대로 당시 위안스카이는 군대를 장악하여 청나라의 실권을 장악한 상태였지만 민중의 지지가 필요한 상황이었죠. 최강의 군대를 거느린 위안스카이와 최대 민중의 지지를 받던 쑨원은 서로 만나게되었고, 위안스카이는 청군과 혁명군(쑨원)의 약함을 알았고 쑨원은 위안스카이의 강함을 알았습니다. 그래서 쑨원은 위안스카이에게 청의 황제를 퇴위시키고 공화국 정부 형태를 받아들인다면 나의 대총통 자리를 이양해 주겠다고이야기 하게되죠.


위안스카이와 쑨원은 서로 합심하여 마지막 황제 푸이를 몰아내는 신해혁명을 일으킵니다. 이로써 청나라는 몰락하게 되었죠. 하지만, 위안스카이는 권력욕 때문에 다시 의회를 해산시키고 쑨원에 대한 체포령을 내립니다. 이 결과, 쑨원은 일본으로 피신하고 위안스카이는 황제로 즉위하게 됩니다.


하지만 전국적으로 체포령에 대한 반대운동이 확대되고 강대국의 압박이 시작었고, 1916 3월 위안스카이는 황제 제도의 취소를 선언하고, 그 해 6월 생을 마감하게 됩니다이 후, 군벌들의 난립으로 혼란에 빠진 중국을 구하고자 쑨원이 다시 귀국했지만, 1925 3월 병으로 생을 마감하게 되고, 쑨원의 바통을 장제스가 이어받게 됩니다


(대만의 고궁박문관을 보면 쑨원의 동상을 볼 수 있는데요. 아마 쑨원을 장제스 이전의 자신들의 초대대통령으로 생각하지 않았나 생각이 들어요 (마치 우리나라 김구 선생님 처럼요))





지금까지 쑨원에 대해서 알아보았어요~


홍콩은 쑨원의 발자취가 많이 남겨져 있어서 쑨원의 역사트레일러라는 투어가 따로 있을정도에요. 나중에 여행가실때 한 번즘 참고하셔도 좋을듯 합니다!

http://www.discoverhongkong.com/us/see-do/tours-walks/self-guided-walks/dr-sun-yat-sen-historical-trail.jsp





사실 위의 글보다는 아래 영상을 통해 쑨원과 청나라의 관계를 파악하시는게 더 도움이 될 것 같아 소개해드립니다 ㅎㅎ















[글 래퍼런스]

https://ko.wikipedia.org/wiki/%EC%91%A8%EC%9B%90

https://namu.wiki/w/%EC%91%A8%EC%9B%90


[사진 래퍼런스]

https://ko.wikipedia.org/wiki/%EA%B4%91%EB%91%A5%EC%84%B1

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


지난 글에서 영국이 아편전쟁을 통해 홍콩섬, 구룡반도, 신계를 할양받았다고 했죠? 하지만 영국은 홍콩섬을 위주로 발전시켰는데요 이번글에서는 홍콩섬에 대해서 알아보면서 영국인들이 홍콩섬을 어떻게 지배했는지 알아보도록 할게요~!



<1.홍콩섬>


영국이 1차 아편전쟁으로 인한 난진조약 통해 처음으로 청나라에게 할양받은 지역이에요. 그래서 영국은 이곳부터 자신들의 문화를 정착시키게 만들었어요. 아래 사진은 1915년 지도인데, 난징조약이후에 홍콩섬을 할양받고 도시화를 시키기 시작했는데 홍콩섬 북부를 중심으로 '퀸즈타운'을 구축했다고 해요. 영국여왕을 기리기 위해 퀸즈타운이라고 지었는데요. 1843년에는 영국여왕의 이름인 빅토리아 여왕의 이름을 본따 빅토리아 시티로 변경했다고 합니다.


당시 거의 모든 정부 기관의 본부가 놓여져 있기 때문에영국의 식민지 시대에는 홍콩의 수도로 알려지기도 했습니다.


     


<사진1>                                                         <사진2>



1857, 영국 정부는 빅토리아 시티의 범위를 확대해, 4개의 지구인 4완(상완(셩완), 서완(시완), 중완(센트럴), 하완(완짜이),으로 분활하게 되었는데요. 1903, 빅토리아 시티의 경계를 명시하기 위해 경계석이 설치되었고 현재도 6개의 경계석이 남아 있다고 합니다


       


<사진3>                                                          <사진4>                             



여기서부터는 서완, 성완, 중완(센트럴), 하완(완짜이)에 대해서 알아보도록 할거에요. 각 지역의 명소를 알아보면서 영국과 어떤 관계가 있는지 살펴볼께요~










1) 서완(홍콩대학교)


서완에 홍콩대학이 있는 것은 아니지만 홍공대학역 (HKU station)이 서환에 가깝기 때문에 서환 카테고리에 넣어봤어요. 




1910년 열강들이 중국 각지에 대학을 세우는 것을 보고 당시 홍콩 총독이었던 프레드 릭 루가드는 홍콩에도 대학을 세우자고 제안해 1910~1912년 이라는 기간을 거쳐 홍콩대학교를 설립합니다. 이곳에서 졸업한 가장 유명한 사람은 쑨원이에요. (쑨원에 대한 설명은 다음글에서 다루도록 할게요~!)


한족들 자체가 인문학을 중시했기 때문에 홍콩대 역시 초기부터 인문학 중심으로 학교를 발전시켰다고해요. 영국인들은 아직까지도 중국사 연구를 할때에는 사료 수집 및 해석을 홍콩대에서 집중적으로 했다고 합니다. 또한 중국대륙이 공산화된 후 중국사 관련 양질의 사료들은 죄다 홍콩대에 와있다고 하네요.


아직까지 미국 및 영국에서 중국사 사료는 전적으로 홍콩대 및 홍콩중문대싱가포르 국립대학국립 대만대학 등에 의존한다고 합니다. (홍콩대의 법학부 및 대학원(LLM)은 아시아 최고 수준이라고 해요)


(홍콩대를 방문해서 한 컷 찍었어요. 모두들 줄을 서서 사진을 찍더라구요 ㅎㅎ)


1941년에 제2차 세계대전의 여파로 일본군이 홍콩을 점령하자 1945년까지 홍콩대는 폐쇄되었다고 합니다. 1997년 홍콩이 중국에 반환되면서 중국 본토의 유학생들이 오게 됐는데 40% 정도는 졸업 후에 홍콩에 취직한다고 합니다. 그 이유는 중국대학의 학위는 홍콩에서 대졸로 인정되지 않기 때문인데요애초 홍콩에서는 대륙 출신의 경우 홍콩이나 미국영국 등에서 학교를 나오지 않으면 취업비자조차 안 준다고 한다고 하네요. (중국대륙의 여권으로는 무비자로 갈 수 있는 나라가 거의 없다고도 합니다.)


홍콩대학은 우리나라의 서울대와 성격이 유사하고, 홍콩과기대는 우리나라의 카이스트와 성격이 유사하다고 하네요.  홍콩 내 자체 대학 순위에서 1위를, 2019 QS 세계대학 순위에서 25위에 오르는 기염을 토했다고 합니다.










2) 상완(셩완)


성완은 1842년 영국군이 홍콩에 처음 상륙할 당시 자리잡았던 지역 중 하나이며빅토리아 시티의 일부였어요셩완지역은 원주민들이 모여 있는 최초의 지역구였고 무역항이었기에 건어물,약재,비단,,골동품 등이 당연히 많았겠지요지금현재도 셩완지역은 약재나 골동품(헐리우드 로드),건어물 가게들이 즐비하게 모여 있습니다.

 




2-1) Possesion Point (Possession street)& Hollywood Road Park

1841 1 25일 영국군이 홍콩 땅에 발을 내딛으면서 영국령임을 선언한 곳이에요




본래에는 항구였으나 주변 바다를 점차 매립하면서 육지로 만들어진 후현재는 식민시절 흔적이 아직 남아있는 유적지를 중심으로 세련된 레스토랑과 부티끄샵들이 즐비합니다.



2-2) 웨스턴 마켓 

영국군이 본격적으로 주둔하기 시작하면서(ß웨스턴이라는 이름을 붙인 유래) 1906년에 지어진 식민지 초기 홍콩 섬 전역의 물류 유통 중심지였지만, 나중에 상환 상가로용도가 변경되었는데요. 1996년에는 쇼핑센터로 새 단장을 마쳤다고해요.




       

(웨스턴 마켓을 방문하실때에는 트램을 이용하세요! ㅎㅎ)



2-3) 쑨원 기념관

중화민국 건국의 아버지라고 불리는 쑨원을 기리는 박물관이에요. 과거에 쑨원이 청년시절을 보냈던 집을 기념관으로 사용하고 있어요


3층으로 이루어진 건물로 1층에는 쑨원의 동상이 있고, 2층에는 쑨원이 연관되었던 각종 혁명에 대한 문서 등의 자료가 전시되어 있습니다


(같은 포즈를 취해봤어요 ㅎㅎ)



쑨원에게 홍콩은 자신이 공부를 했던 곳이면서, 중화민국을 공화국으로 선포하도록 만든 18년 동안의 시간 동안 그의 근거지가 되어 준 기반이었어요. (쑨원에 대한 내용은 다음글을 참고해주세요~)



2-4) Pottinger Street (포팅어 거리)

홍콩에서 가장 오래된 돌계단 길이자 홍콩의 1급 문화유산으로 등록된 거리입니다. 일반계단과는 달리 낮은 석판이 깔려있는데 계단으로 하지 않은 이유는 예전에 이곳으로 가마꾼들이 많이 왔다갔다 했기 때문이라고 해요.




포팅거 스트리트라는 명칭은 서 홍콩의 첫 통치자인 헨리 엘드레드 커웬 포팅거 경의 이름에서 따왔어요. 자갈 계단으로 유명한 이곳은 이 지역 가장 오래된 거리 중 하나로 1850년대에 형성되었다고 알려져 있습니다.



2-5) 캣 스트릿

영국군 내 인도인들이 홍콩으로 건너와 경찰관으로 근무한적이 많았는데요. 당시 경찰본부 지역 주위로 골동품과 중고 물품을 파는 시장으로 변했다고 해요. 


광둥어로 훔친 물건을 'rat goods(쥐 물건)'이라 부르는데, 이런 물건을 사는 사람들을 'cat'이라고 불렀다고해요 ㅎㅎ. 이런 배경 때문에 이 거리는 'cat street'이란 별명을 얻게 되었어요.


이곳을 방문하긴 했는데 사진을 찍지는 못했어요 ㅜㅜ 그런데 분위기가 정말 이색적이에요. 이곳에서 옛날 화폐로 쓰인 '은'을 본적이 있는데, 다음에 방문할 때에는 꼭 사야 겠어요 ㅜㅜ ㅎㅎ








3) 중완(센트럴)


영어 지명인 '센트럴' (Central) 80년대 초 홍콩 지하철 공도 선 개통을 앞두고 중완 역의 영어명칭을 '센트럴'로 번역하여 붙인 이후로 정착화된비교적 얼마되지 않은 지명이에요.


1841년 영국군이 처음으로 상완(성완)의 수항구에 발을 내딛었는데, 이들은 홍콩 섬 북부 연안에 시가지를 건설하기로 결정하고오늘날 중완 일대를 주요 군시설과 행정청사 부지로 삼았어요이후 서양인과 중국인이 무역과 거주를 위해 이 일대에 몰려들기 시작하였고 1842년에는 코크레인 가와 그레이엄 가 사이에 '캔턴 바자르' (지금의 홍콩 중앙시장)을 형성하였다고 해요


그러나 머지않아 중국인들은 성완 일대에만 살도록 제한하고중완은 서양인 거주 전용구역이 되었다고 합니다중완에는 서양 양식을 띄고 위생시설을 갖춘 서양식 건물이 속속 들어섰으며이른바 빅토리아 시티의 영역이 거의 대부분을 잠식하고 있었습니다



수십년 전만 해도 중완 부근의 영국 군시설은 계속해서 남아있었지만, 1980년대 군시설 철수를 계기로 수차례에 걸친 재개발 작업이 이뤄졌어요


센트럴에는 관광지가 많이 있는데요. 이러한 장소들 모두 영국과 관련있어요. 이 부분은 제가 영상자료를 첨부하는게 더 좋을 것 같아서 영상을 보시길 추천드릴게요!



3-1) HSBC 은행, 황후상광장


(1:35~3:45)



3-2) 미드레벨, 소호


3-3) 성 요한 성당


홍콩에 주둔하는 영국군의 신앙생활을 위해 1847년 빅토리아 최초의 주교인 조지 스미스가 공사를 시작해 1849년에 완공시켰으며 동아시아에서 가장 오래된 교회로도 유명합니다.



3-4) 반청 혁명 운동 기념공원(백자리공원)

사진을 보면 변발의 긴 머리를 자르는 동상이 있는데, 청나라(만주족)은 변발을 상징하고 있었으므로 제국주의 침략을 당한 무능한 청나라를 타파하자는 의미로 세워졌다고해요.














4) 하완(완짜이)


홍콩에서도 평균소득 수준이 높은 지역이라고 하는데요. 업무가인 중완, 상업지구인 코즈웨이베이에 끼어 있는 지구이기 때문이라고 합니다홍콩의 출입 사무를 담당하는 입경사무대루가 완쯔에 있다. 이 외에 경찰 본부·세무 당국 등, 인접하는 중완과 함께 홍콩의 정치의 중추가 많이 완쯔에 모여 있다고 해요.

 

4-1) 애드미럴티

해군 본부라는 의미를 가진 애드미럴티(Admiralty)라는 영어식 명칭은 한때 이곳에 있던 영국 해군 기지 애드미럴티 독 (Admiralty Dock)에서 유래하였다고 합니다

 

4-2) 홍콩정부청사 (Central government)


홍콩정부청사는 2014 12월에 굉장히 많은 해외 언론에 소개된 바 있는데요. 아래영상을 참고해주세요~



영국이 중국에게 홍콩을 반환할 당시 2047년까지는 일국양제(민주주의, 공산주의 공존)를 약속받은 '홍콩반환협정'이 있었는데요. 영국 하원의원들이 중국 정부가홍콩 반환협정이행 여부를 조사하기 위해 홍콩을 방문하려던 영국 하원의원들의 입국을 거부했다고도 합니다. 이 때문에 홍콩 시위대는 도심 정부청사 주변 봉쇄에 나서 경찰과 물리적 충돌을 빚는 등 홍콩 사태가 다시 격화되었다고 해요.


홍콩 민주화 시위대들은 지난 30일 오후 늦게부터 도심 애드미럴티에 있는 시 정부청사 포위에 나서 이를 저지하려는 경찰과 충돌을 빚었어요.


대부분의 전문가들은 2047 7 1 50년에 도달하더라도, 자치권은 더 연장될 것이라고 보는 것이 주류이기는 하지만 현재 상황으로 봐서는 2047년이면 자치권 연장이 되더라도 홍콩은 실질적으로는 일개 지방도시로 격하될 가능성이 높다고 합니다. 이미 상하이, 베이징, 선전 등 중국 대륙의 대도시들이 홍콩의 경제력을 추월한지 오래이고, 궁극적으로 홍콩 내의 표현의 자유가 심히 퇴색되고 있기 때문이라고 해요.



2) 눈데이건 (Noon Day gun)


영국이 점령한 후 홍콩은 동 서양을 이어주는 무역항이 되었기 때문에 해적이 호시탐탐 기회를 노리는 곳이되었어요. 자딘 매시선(영국계 기업) 회사는 해적의 공격에 대비해서 자체적으로 대포를 설치했는데요. 더 나아가 자딘 매시선 회사는 자신들의 사장이 탄 배가 빅토리아 항을 지날 때마다 예포를 쏘기 까지 한다


그런데, 새로 부임한 신임 해군제독이 대포 소리에 놀라는데 그 이유는 포는 군에서만 사용할 수 있는 유일한 무기였기 때문이었다고 합니다. 그래서, 제독이 매일 정오에 시간을 알리는 대포를 쏘는 벌(?)을 내렸다고 해요.


이후, 1800년 대 아편을 실은 배가 들어올 때마다 이를 알리기 위해 축하 예포를 발사하는 것을 기원으로 여전히 지금까지 (홍콩의 일제강점기(1941~1947)를 제외하고) 매일 오후 12시에 축포를 울린다고 합니다 


 



하루에 딱 한 번 정오(12:00)에 발포(포는 세계1차대전 때 사용했더 포라고 한다)하고 20분 정도 포 주변을 개방하기 때문에 시간에 맞춰 갈 필요가 있어요~ (소리가 엄청크니 귀를 막아야해요 ㅎㅎ)







지금까지 홍콩섬에 대해서 알아보았어요. 이번 홍콩섬의 역사를 통해서 여행해보니 왜 지금 중국과 마찰이 일어나는지에 대해서 더 자세히 알아보았던 것 같아요. 


중국 입장에서는 본래 홍콩이 자신들의 땅이라는 관점이 있는거 같고, 홍콩관점에서 자신들은 한족의 뿌리를 이어받고 쑨원과 영국의 민주주의가 자리잡고 있어 중국과는 완전히 다른 민족이라고 인식하는 부분이 있는것 같아요.



아! 그리고 홍콩에 대한 전반적인 영상을 보시고 싶으시다면 아래영상을 추천할테니 참고하세요!





[사진 래퍼런스]

사진1

https://en.wikipedia.org/wiki/Victoria,_Hong_Kong

사진2

https://commons.wikimedia.org/wiki/File:Tcitp_d154_city_of_victoria.jpg

사진3

https://gwulo.com/hong-kong-victoria-city-boundary



[글 래퍼런스]

https://namu.wiki/w/%EC%98%81%EA%B5%AD%EB%A0%B9%20%ED%99%8D%EC%BD%A9

https://ko.wikipedia.org/wiki/%EB%B9%85%ED%86%A0%EB%A6%AC%EC%95%84%EC%8B%9C%ED%8B%B0

https://www.chinaodysseytours.com/hong-kong-independent-travel/maps.html

https://namu.wiki/w/%EA%B5%AC%EB%A3%A1%EB%B0%98%EB%8F%84

https://m.blog.naver.com/PostView.nhn?blogId=hktb1&logNo=220736683298&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

http://jobnjoy.com/portal/job/tip_view.jsp?nidx=235190&depth1=1&depth2=4

https://www.hotcourses.kr/study-in-hongkong/applying-to-university/hk-universities-top-8/

https://www.topuniversities.com/universities/university-hong-kong

http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201412012144475#csidxb3adec82b832a5fab0238f6a45f3fb0

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


이번글을 마지막으로 대만여행의 대장정은 마무리하려고 해요~ 그래서인지 조금은 릴렉스한 주제를 다루어보려고해요!


혹시 첨밀밀ost '월량대표아적심'에 대해서 알고계신가요? 모르시는 분들도 아래 노래를 들으시면 "아! 이노래~"라는 반응이실거에요 ㅎㅎ (10초뒤에 노래가 나올거에요~)



갑자기 대만여행에서 뜬금없이 홍콩영화인 첨밀밀을 소개하냐구요? 지금부터 그 이유에 대해서 설명해보도록 할게요~!

사실 이 노래의 원곡자(진분란)는 따로 있었지만 추후에 등려군이 이 노래를 리메이크하게 합니다. 등려군은 타이완 바이중이라는 곳에서 태어난 대만출신 가수라고해요. 본래 부친은 국민혁명군이었는데 국공내전 이후 타이완으로 이주했다고 합니다.

1979년 위조 여권 사용 이후 중국어권에서 활동하였는데그녀 자신의 오리지널 노래도 흥행했지만, 리샹란이라는 가수의 노래들을 리메이크해서 더 큰 인기를 불러일으켰어요. 그런데 리샹란이라는 인물은 주로 일본인으로 태어나 만주국에서 활동했고 2차대전 종전 후 일본 귀국 활동 등을 한 이유가 문제가 되어 등려군 노래를 금지하게 됩니다.


또한 등려군은 중국의 민주화운동에도 참여했는데요. 천안문 사건 반대집회 등 중국 민주화운동에도 참여하여 '언제 그대 다시 오나(何日君再)'와 같은 항일 노래도 불렀다고 합니다.


등려군이 한국에 알려진 계기는 첨밀밀(1996)이라는 영화의 ost '월량대표아적심'때문입니다. 그런데,  '월량대표아적심'이 금지곡이었단 사실을 알고 계신가요? 


등소평이 등려군의 민주화운동에 화가나서인지 '월량대표아적심' 이 음악을 퇴폐적이다라고 해서 금지를 시켰다고 합니다. 그런데 재밌는 사실은 당시 첨밀밀 ost의 복제 테잎이 2억개가 넘었는데공안들이 음악이 너무좋아 자신들이 압수하고 자신들이 들었다고 해요그래서 낮에는 등소평이 밤에는 덩리쥔이 중국을 지배한다는 소리가 있었다고 합니다.  


그런데 실제로 가사를 해석한걸 보면 너무 멜로디랑 잘 어울려요. 어디가 퇴폐적이라고 한건지;;;;;


월량대표아적심 (月亮代表我的心; 달빛이 내 마음을 대신 표현하네) - 첨밀밀 OST 등려군 (鄧麗君)


(가사)

問我愛有多深,我愛有幾分。

당신은 나에게 내가 당신을 얼마나 사랑하는지, 내가 당신을 얼마나 사랑하는지 물었습니다.

我的情也,我的愛也, 月亮代表我的心。

나의 마음도 진짜입니다. 나의 사랑도 진짜입니다. 달빛이 내 마음을 대신합니다.

問我愛有多深,我愛有幾分。

당신이 나에게 내가 당신을 얼마나 사랑하는지, 얼마나 사랑하는지 물었습니다.

我的情不移,我的愛不變,月亮代表我的心。

나의 마음은 떠나지 않습니다. 나의 사랑은 떠나지 않습니다. 달빛이 내 마음을 대신합니다.

輕輕的一個吻,已經打動我的心。

부드러운 입맞춤으로 이미 내 마음은 열렸습니다.

深深的一段情,叫我思念到如今。

깊고 깊은 마음에, 날 지금까지 그리워하게 만들었습니다.

問我愛有多深,我愛有幾分。

당신은 나에게 내가 당신을 얼마나 사랑하는지, 내가 당신을 얼마나 사랑하는지 물었습니다.

去想一想,去看一看,月亮代表我的心。

저 달빛을 보며 한 번 생각해보세요. 달이 내 마음을 보여줍니다.

輕輕的一個吻,已經打動我的心。

부드러운 입맞춤으로 이미 내 마음은 열렸습니다.

深深的一段情,叫我思念到如今。

깊고 깊은 마음에, 날 지금까지 그리워하게 만들었습니다.

問我愛有多深,我愛有幾分。

당신은 나에게 내가 당신을 얼마나 사랑하는지, 내가 당신을 얼마나 사랑하는지 물었습니다.

去想一想,去看一看,月亮代表我的心。

저 달빛을 보며 한 번 생각해보세요. 달이 내 마음을 보여줍니다.

去想一想,去看一看,月亮代表我的心。

저 달빛을 보며 한 번 생각해보세요. 달이 내 마음을 보여줍니다.




[가사]

https://ko.wikipedia.org/wiki/%EC%9B%94%EB%9F%89%EB%8C%80%ED%91%9C%EC%95%84%EC%A0%81%EC%8B%AC






대만의 마지막날은 tea한잔에 이 노래를 들으면서 편하게 마무리했던것 같아요 ㅎㅎ 



대만여행은 맛있는 음식도 많고 자연경관도 이뻐서 좋았지만 정말 이곳저곳에 중요한 역사적 사실이 담긴 장소를 방문할 수 있어서 너무 좋았습니다 ㅎㅎㅎ


이렇게 과거와 마주하고 그 당시로 빠져보니 정말 많은 질문과 답변을 얻을 수 있었던 여행이었어요~ 


다음번에 대만을 가게되면 이번에 가지못했던 단수이와 가오슝을 꼭 가봐야겠어요!!! ㅎㅎ


지금까지 대만편을 봐주셔서 감사합니다 ^^~!


안녕하세요~


이번시간에는 가중치 초기값을 설정하는 것과 하이퍼파라미터에 대한 용어설명과 개념에 대해서만 설명하고 넘어가려고해요.



<1. 가중치 초기값 연구>


앞서 보았듯이 가중치값들이 어떻게 설정되어있는지에 따라서 DNN 모델의 성능이 달라져요. 그렇다면 최초의 가중치값들은 어떻게 설정하면 좋을까요? 


가중치 초기값 연구를 진행할때 기준점이 되는 부분은 hidden layer의 activation function 값들이 어떻게 변하는지 보는거에요. 예를들어서 activation function을 sigmoid function으로 썻다고 가정해볼게요. 활성화 함수로 시그모이드 함수를 사용하는 5층 신경망에 무작위로 생성한 입력 데이터를 흘리며 각 층의 활성화값 분포를 히스토 그램으로 그려볼거에요.



1) 가중치를 표준편차가 1인 정규분포로 무작위 초기화할 때의 각 층의 활성화값 분포


실험결과 활성화 값들이 0과 1에 치우쳐 있다는 것을 알 수 있어요 (시그모이드 함수값 범위는 0~1인거 알고계시죠?!). 시그모이드 특성상 값이 이와같이 분포되어 있다면 미분값이 매우 적기때문에 vanishing gradient 문제가 생기게 될거에요. 

<사진1>



2) 가중치를 0.01 표준편차로 초기화할 때의 활성화값 분포


sigmoid function을 거친 값들이 아래와 같이 분포되어 있어요. 조금 극단적으로 말하자면 가중치를 "0.01*정규분포"로 설정한다면 100개의 뉴런을 사용시 모두 같은 값(Wx)을 도출한다는 이야기가돼요. 어떤 입력이 들어오더라도 Wx결과가 모두 같은 값을 도출하게 된다면 그 DNN 모델이 복잡한 비선형 함수를 잘 표현할 수 있을까요? 결국은 100개의 뉴런을 사용하나 1개의 뉴런을 사용하나 큰 차이가 없어질거에요 (<- 이부분에 대한 보충설명은 여기 링크에서 '가중치 초기값' 부분을 살펴보시면 더 잘 이해하실거에요~)

 

<사진2>


이러한 문제들 때문에 He 초기값 설정방법, Xavier 초기값 설정방법이 제안됐어요. 이 두 개념에 대한 자세한 설명은 '밑바닥부터 시작하는 딥러닝'을 참고해주세요~





<2. 하이퍼파리미터>


DNN(Deep Neural Network)에서 사용하고 있는 하이퍼파라미터라는 용어는 상수값을 의미해요. 예를 들어, 가중치같은 경우는 학습을 하면서 지속적으로 바뀌기 때문에 '매개변수(parameter)'라는 용어를 사용하지만, mini-batch를 학습할 때 적용되는 batch의 크기 같은 경우는 학습 중에 변하는 것이 아니고 고정값으로 미리 정해주는 것이기 때문에 상수값이되요.


이렇게 상수값으로 설정할 수 있는건 각 층의 뉴런수, 학습률(learning rate) 등이 있어요. 


그런데 이러한 하이퍼파라미터마저도 최적의 값들을 찾도록 노력하고 있어요. 이러한 노력중 하나가 Bayesian optimization 기법들을 통해 최적의 값들을 찾는거에요.


사실 Bayesian optimization 기법에 대한 설명은 따로 챕터를 만들어야 할 정도로 설명할 부분이 많은 개념이기 때문에 나중에 공부를 하게 된다면 따로 다루도록 할게요.


여기에서는 하이퍼파라미터라는 개념과 하이퍼파리미터를 최적화시키는 방법에는 무엇이 있는정도만 알면좋을듯해요!  




자! 그럼 다음글에서 지금까지 배운 내용을 간단히 review해보면서 Deep Neural Network 챕터의 피날레를 장식해 보도록 하겠습니다!




[사진 래퍼런스]

<사진1,2>

밑바닥부터 시작하는 딥러닝

안녕하세요~


지금까지는 DNN의 일반화성능에 초점을 맞추고 설명했어요. Batch normalization하는 것도 overfitting을 막기 위해서이고, Cross validation, L1,L2 regularization 하는 이유도 모두 overfitting의 문제를 피하기 위해서에요.


그런데 이번에는 조금 다른 관점에서 DNN모델이 학습하는 목적을 살펴볼거에요. 


먼저우리가 DNN 모델이 학습하는 목적이 cost function에서 제일 적은 cost(error)값을 찾는게 중요하다고 말씀드렸어요. 그리고 아래의 사진에서와 같은 함수가 있을 경우 미분값이 0인 곳을 찾으면 최저 cost 값을 찾을 수 있게 됩니다.


<사진1>

그런데 문제는 9장 mini-batch에서 언급했듯이 DNN은 다양한 문제공간을 갖고 있다는 점이에요. 예를 들어, 어떤 문제는 좌측사진과 같이 굉장히 간단한 문제공간을 갖을 수 있고, 어떤 문제는 오른쪽과 같이 복잡한 문제공간으로 이루어져있어요.


                     

<사진2>                                                       <사진3>



간단한 문제공간에서 최적의 cost값을 찾는건 문제가 되지 않겠지만, 복잡한 문제공간에서는 local minimum에 빠지는 경우가 굉장히 많을거에요.


<사진4>


또 다른 문제로는 plateau에 빠지는 경우에요. plateau에 빠지게 되면 학습이 굉장히 더디게 되거나 더 이상 학습이 진행이 안될 가능성도 높겠죠?


<사진5>



그래서 우리는 이러한 local mimum와 plateau에 빠지는 경우에 대한 해결책을 갖고 있어야 하는데, 이러한 문제에 직면할 때마다 상황에 맞게 극복하고자 나온 개념들이 optimizer에요.


Optimizer의 발전역사를 보면아래와 같아요. Optimizer에는 크게 momentum 방식과 adaptive(adagrad) 방식으로 나뉘어져서 발전해왔어요. 그리고 현재 Momentum, RMSProp, Adam이라는 optimizer를 주로 사용하고 있기 때문에 위의 3가지 optimizer를 이해하기 위한 개념들을 설명하도록 할게요.



<사진6>


[Momentum 방식]


<1. Momentum>


모멘텀은 물리개념이에요. 물리개념에서 질량과 속도의 곱으로 나타내는데, DNN 모델에서는 질량이란 개념을 도입하지 않으니 속도와 관련된 개념이라고 생각하시면 될거에요.


일반적으로 SGD (Stochastic Gradient Descent) 방식으로 학습하게되면 아래와 같은 문제가 생긴다고 했죠? 이러한 문제를 해결하고자 나온 방식이 momentum이라는 개념을 도입한거에요. Momentum 방식은 가속도라는 개념을 이용해 아래와 같은 문제를 해결하려고 했어요.




기존 SGD 방식에 momentum이라는 개념을 도입한 것을 momentum optimizer라고 하는데, 아래 수식을 보면 x는 가중치값, v는 가속도를 의미해요. 즉, 이전의 기울기값에 이전 가속도를 추가하여 현재 가중치 값을 업데이트하면서 local minimum, plateau를 피하려고 하는 방법이에요. 쉽게 말하자면 관성의 법칙을 이용한건데 자세한건 아래 '사진8'에서 더 자세히 설명할게요.



<SGD 수식>


<Momentum 수식>


관성이라는 개념이 통용되는 이유는 기울기값이 지속적으로 누적되기 때문이에요. cost function에서 기울기가 지속적으로 음수가 나온다면 가속도는 계속 붙어있는상태겠죠?



<사진7>



Momentum 방식을 이용하면 SGD의 3가지 문제를 해결할 수 있어요.

- SGD 가중치 업데이트보다 더 빠른 속도로 업데이트

- SGD 만으로는 plateau 부분에서 학습속도가 느려졌지만, 가속도를 추가해주면서 plateau 구간에서도 느려지지 않고 일정한 속도로 학습하는것이 가능

- 이전 가속도로 인해 local minimum 구간을 빠져나가는것도 가능 


아래 그림을 자세히보면 롤러스케이트를 타는 사람이 산을 탄다고 생각해볼 수 있어요. 이전 구간이 가파를수록 가속도는 높아지고 local optimum에 해당하는 부분에서는 이전 가속도에 의한 관성의 법칙때문에 멈출 수 없게 되는거에요.

<사진8>

하지만 위에 사진을 보시면 아시겠지만, global optimum에 해당하는 위치에 도달하고서도 지속적으로 이가속도 때문에 위치를 벗어나는 경우가생겨요. 그래서 이전 가중치에 대한 비율을 조금 줄이고자 나온 개념이 Nestreov Momentum입니다.

(Nestreov Momentum에 대한 설명은 여기 링크를 참고해주세요!)






[Adaptive 방식]


<1. AdaGrad>


앞서 normalization 파트에서 언급했듯이 w1, w2의 범위가 다르면 왜 지그재그 현상이 일어난다고 설명드렸습니다. 



Ada(ptive) Grad(ient) 방식인 Adagrad는 각각의 가중치 (ex: w1, w2)가 업데이트되는 정도에 따라서  위와 같은 지그재그 현상을 피하게 됩니다. 아래 수식을 두 파트로 나누어 살펴보면서 좀 더 자세히 이해해보도록 할게요.


- 첫 번째 수식, G라고 되어있는 수식을 보면 당연히 가중치의 기울기가 클 수록 G값도 커질거에요. 즉, 업데이트가 많이 되어야 될거 같다고 생각이 들면 값이 커지는거죠. G(t-1)라는 수식은 't-1번째 G'라는 뜻인데, 이부분을 통해서 이전까지 가중치 업데이트의 정도를 보는거에요. G(t-1)이 높다는건 이전의 cost function의 기울기가 크다는 뜻이고 이것은 가중치의 업데이트가 크게 일어났다는 뜻이되요.

- 두 번째 수식, 가중치가 업데이트 될때 G가 분모에 위치하고 있기 때문에 G값이 커질수록 가중치 업데이트가작아져요 (왜냐하면 그만큼 step size(learning rate/루트(G(t)+입실론))이 줄어들것이기 때문이죠). 분모의 입실론은 batch normalization에 설명드린것 처럼 분모를 0으로 나누는 것을 방지하기 위함이에요. 

  

<사진9>


위에서 한 말을 바꿔말하면 업데이트가 크게 될 것 같은 가중치에 대해서는 페널티를 주어 업데이트를 적게 하려고 하고 있어요 (앞서 배운 regularization을 적용하려던 철학과 비슷해보이기는 하네요). 다시 아래그림을 보면 cost function의 기울기가 클때나 작을때나 똑같이 학습을 시키는 것이 아니고, cost function이 크다고 생각하면 업데이트를 조금 줄이고, cost function의 기울기가 작다고 생각한다면 좀더 빠르게 업데이트를 할 수 있도록 도와주는 모양새가됩니다.



짧게 정리해서 말씀드리면, '지금까지 업데이트의 폭이 큰 가중치들의 step size를 작게한다'라고 할 수 있겠어요. 


하지만 AdaGrad에도 문제점이 있어요. 바로 수식에서 보여지는 제곱에 대한 식인데, 제곱이라는 성질이 값을 굉장히 크게 만들거나 작게 만들 수 있어요. 만약 학습이 계속 진행되다가 제곱값이 엄청 커져버리면 나중에는 step size가 굉장히 줄어들게 될거에요. 그래서 이를 보완하고자 RMSProp optimizer가 나타나게 됩니다.


<2.RMSProp>


AdaGrad의 수식과 가장큰 차이는 감마(r)의 여부라고 볼 수 있겠죠? 첫 번째 수식에서 왼쪽 부분인 G(t-1)라는것이 이전 cost function의 기울기(=가중치 업데이트 정도)를 의미하고, 오른쪽 부분은 최근(현재) cost function의 기울기(=가중치 업데이트 정도)를 의미합니다. 


AdaGrad에서 이전까지 가중치 업데이트 정도가 매우커서 G의 값이 커질때, step size(or learning rate)가 매우 작아져 학습이 불가능해지는(=가중치 업데이트가 안되는) 상황이 발생된다고 했죠? 그래서 RMSProp에서는 감마를 통해 G에 대한 비중을 조절해주고 있어요. 기울기제곱에 대한 지수평균을 구하는 것이라고 할 수 있어요 (지수평균이라는 개념은 보통 최근에 일어난 사례에 더 가중치를 준다는 개념이에요) (물론 최근 기울기가 엄청 크게 안온다고는 하지만 보통 누적된 기울기 값인 G(t-1)보다 크게 나오진 않겠죠? 왜냐하면 기울기 제곱의 값은 항상 양수니까요!) 


   

<사진10>





[Momentum 방식 + RMSProp(Adaptive) 방식]


<1. Adam(Adaptive Momentum)>


Moment와 RMSProp 수식을 다시한번 복기해볼게요. Momentum 수식은 기울기의 누적값을 이용하는 것이고, RMSProp는 이전 기울기값의 제곱의 지수평균을 구하는 것이라고 했어요.


                                  


<Momentum 수식>                                        <RMSProp 수식>      



아래 수식을 보시면 감이 오시나요? m이라고 되어있는 부분은 moment의 v가 지수평균화 된것이라고 보고, v라고 되어있는 부분은 RMSProp의 G라고 볼 수 있어요.  


             

           <Adam 수식 part1>


그렇다면 오른쪽의 수식은 무엇을 의미할까요? m0이라는건 관성이 없는거에요. 그렇게 때문에 m1은 최근 기울기 값인 g1과 동일해야해요. 그런데 우리는 베타값을 보통 상수로 정하기 때문에 m1과 g1이 같지가 않아요. 하지만 m의 수식을 위의 수식의 오른쪽 부분처럼 수정하면 문제없이 m1=g1으로 만들어 줄 수 있어요.



또한 베타를 0.9라고 설정하면 최근 기울기를 10% 반영하겠다는 의미에요. m1에 대한 수식이 수정이되도 여전히 g2가 전체 비율의 10%만 차지하는것처럼 보이네요. 



아래우측 수식의 맨마지막이 최종적인 Adam 수식이에요. 먼저 vt를 분모로 mt를 분자로 이용한 이유는 vt는 무조건 양수가 나오고, mt는 음수가 나올 수 있기 때문인거 같아요 (분모에 해당하는 루트값에 음수가 들어가면 안되니까요~). 어떻게 보면 RMSProp 수식의 기울기 부분에 momentum을 적용했다고 볼 수 있겠네요!

                       

<Adam 수식>                                            <RMSProp 수식>





[정리]


지금까지 optimizer를 알아보았어요. DNN의 목적이 어쨌든 cost function의 최저값을 찾는 것이에요. 하지만 cost function이 simple하게 생긴것이 아니고 굉장 complex하게 생긴경우가 많기 때문에 앞서 언급한 plateau, local minimum 등과같이 예상치 못한 난관에 부딪힐 수 있어요.


그래서 이러한 문제들을 해결하기 위해 상황에 맞게 대처하는 최적화(optimization)과정이 반드시 필요하게 된답니다~!




     



다음글에서는 가중치 초기값과 하이퍼파라미터에 대한 설명을 간단히 하도록할게요~


 


[글 래퍼런스]

https://nittaku.tistory.com/271

http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient-Descent-Algorithm-Overview.html

https://light-tree.tistory.com/141?category=755497


[사진 래퍼런스]

사진1

http://physics2.mju.ac.kr/juhapruwp/?p=1610

사진2,3

https://arxiv.org/pdf/1712.09913.pdf

사진4

https://hwiyong.tistory.com/9

사진5,7,8

https://sacko.tistory.com/38

사진6

https://gomguard.tistory.com/187

사진9

http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient-Descent-Algorithm-Overview.html

Q. 실제로 데이터들을 학습시킬 때, 일반화성능을 어떤 방식으로 평가하나요?

Q. 그런데, 갖고있는 데이터가 적다면, 일반화 성능을 어떤 방식으로 평가해야하나요?



안녕하세요~


이번글에서는 실제 DNN(Deep Neural Network)이 방대한양의 데이터를 어떻게 학습시키고 일반화를 평가하게 되는지 알아보도록 할거에요. 이번장은 복잡한 수식이 없기 때문에 쉽게 읽어내려가시면 될 것 같아요~


우리가 이미지를 학습시켜 이미내의 객체가 무엇인지 분류하는 DNN모델을 만든다고 했을 때, 방대한 양의 이미지 데이터들을 학습시키게 됩니다. 그런데 앞서 언급했듯이 아래 이미지들만 학습시키게 되면 결국 아래 이미지들에 대해서만 학습이 잘 될 가능성이 있기 때문에 일반화 성능을 놓칠 가능성이 커지게 되는 것이죠.


<사진1>


그렇다면 DNN모델이 위와 같은 이미지 데이터를 학습하는 중간중간에 일반화성능을 테스트 하려고 한다면 어떻게 하는게 좋을까요?


정답은 '모든 데이터를 학습데이터(training data)를 쓰지 않는다'가 되겠습니다. 좀 더 쉽게 설명하자면, 위에 있는 이미지 데이터들을 일부분은 학습데이터로 일부분은 validation(모델의 유효성 검사) 데이터 (DNN학습 중 일반화 성능을 중간중간 점검하기 위한)로 구성하는 것입니다. 또한 test data set이 있는데, validation dataset 경우는 모델의 overfitting을 막기 위해 모델 중간중간 점검을 하기 위해 사용되고, DNN이 validation 결과가 좋다고 판단했을 때, 실제로 test를 하여 performance를 알아보는 목적으로 사용되는 것이 test dataset입니다.



      


<사진2>                                                               <사진3>



요약하자면 아래와 같습니다.


Training dataset+validation dataset -> DNN 모델 학습 -> validation 결과가 좋게 나왔다면 -> DNN 모델 학습 종료 -> 상품 출시 전, 다른 test dataset으로 최종 성능평가



그런데 실제로 현업에서 DNN 모델을 적용하려고 할 때, 모아둔 데이터 양이 굉장히 적은 경우가 많습니다. 예를들어, 1000개의 데이터를 갖고 있다면 600(60%)개는 training dataset, 200(20%)개는 validation set, 마지막 200(20%)개는 test set으로 사용해도 괜찮을거에요. 그런데, 갖고 있는 데이터가 100개 밖에 없다고 한다면 어떻게 될까요? 100개를 모두 training dataset으로 써도 모자랄판에 그중에 40개를 validation set과 test set으로 할당해주게되면 학습이 제대로 될까요?


또한, 데이터가 적은 경우에는 아래와 같이 데이터셋을 구성해야하는데, 이런 경우에는 train, validation dataset이 너무 적다보니, validation하는 dataset에 overfitting이 일어날 가능성이 있게됩니다.


<사진4>


이러한 문제를 해결하고자 적은 양의 데이터를 갖고 있을 때 학습시키는 방법에 대해 논의가 되어왔답니다.




<1. (K-fold) Cross validation>



우리가 갖고 있는 데이터가 충분하지 않다면 아래와 같이 Dataset을 k개의 subset으로 나누고, 첫 번째 학습할 때는 첫 번째 subset으로 validation을 평가하고, k 번째 학습할 때는 k 번째 subset으로 validation을 평가하는 방법입니다.


<사진5>


이렇게 각기 다른 K번의 validation이 끝나면, 각 validation 과정에서 얻은 accuracy들의 평균을 내어 최종적으로 모델의 accuracy(performance)를 평가하게 됩니다.



이외에도 많은 통계적 방식을 활용하여 데이터셋을 구성하고 validation하는 방법들이 나오고 있는데요. 더 많은 방법들을 보고싶으시다면 아래사이트를 참고해주세요~ 잘 설명해 놓으셨더라구요!


https://m.blog.naver.com/PostView.nhn?blogId=ckdgus1433&logNo=221599517834&categoryNo=11&proxyReferer=https%3A%2F%2Fwww.google.com%2F






이번장에서는 실제로 데이터셋을 어떻게 구성하여 일반화성능을 평가하는지 알아보았어요. 다음장에서는 optimizer라는 개념을 배워보도록 할게요! 





[사진 래퍼런스]

사진1

http://hpkim0512.blogspot.com/2017/12/sdf.html

사진2,3

https://rfriend.tistory.com/188

사진4

https://m.blog.naver.com/PostView.nhn?blogId=ckdgus1433&logNo=221599517834&categoryNo=11&proxyReferer=https%3A%2F%2Fwww.google.com%2F

사진5

https://nonmeyet.tistory.com/entry/KFold-Cross-Validation%EA%B5%90%EC%B0%A8%EA%B2%80%EC%A6%9D-%EC%A0%95%EC%9D%98-%EB%B0%8F-%EC%84%A4%EB%AA%85

안녕하세요~


이번글에서도 역시 overfitting을 피하는 방법에 대해서 설명해보려고해요. 

Overfitting을 피하는 방향성에 대해서 잠깐 요약해드리면 아래와 같아요.


DNN(Deep Neural Network)가 학습할 때 training dataset에 너무 치중된다는 뜻은 DNN 가중치값들이 training dataset에 최적화되어 있다고 할 수 있어요. 이 말을 바꿔말하면 DNN이 가중치값들의 분포 (가중치분포)가 training dataset에 지나치게 치우쳐있다라고 말할 수 있겠어요.


하지만 이렇게 되면 validation dataset을 classification할 경우에 잘 못 하는 경우가 생겨요. (예를들어, training dataset이 단색의 강아지라고 했을 때, DNN이 너무 지나치게 학습하면 달마시안(얼룩달룩한 강아지) 같은 종류는 강아지가 아니라고 분류할지도 몰라요)


이러한 이유때문에 training dataset을 잘 분류하되 validation dataset도 잘 분류하는 목적으로 학습을 시켜야해요. 그렇게 하려면 training dataset으로 학습할 때, training dataset에 치우쳐 질 수 있는 가중치값들의 분포를 완화시켜주면서도 training dataset을 여전히 잘 분류해주는 가중치분포를 찾을 필요가 있어요.


자 그렇다면 이러한 '철학'을 갖고 있으면서 DNN의 overfitting을 피하는 방법을 제시해줄 Batch Normalization에 대해서 알아보도록 할게요~!





<1. Internal covariate shift>


Batch normalization을 사용하는 이유는 DNN의 internal covariate shift 성향을 피하기 위해서라고 해요. 그래서 지금 부터 internal covariate shift라는 용어를 하나하나 풀이하면서 설명해보도록 할게요.



1) Covariate(공변량)


Covariate은 변수개념이에요. 우리가 들었던 변수의 종류는 크게 두 가지 '독립변수', '종속변수'가 있었죠? 


보통 우리는 독립변수들이 종속변수에 얼마나 영향을 주는지 알고 싶어합니다. 하지만, 대게는 잡음이 섞여 독립변수와 종속변수간의 관계를 명확하게 밝히지 못하는 경우가 많아요. 이렇게 종속변수에 대하여 독립변수와 기타 잡음인자들이 공유하는 변량을 공변량(covariate)이라고 해요.


쉽게 말하자면 독립변수와 종속변수의 관계를 명확하게 밝히려할때 방해가 될 수 있는 요인을 공변량이라고 생각하면 되요.




2) Covariate shift


Covariate shiftmachine learning에서 아래 그림과 같이 training datatest datadata distribution이 다른 현상을 의미해요. Covariate shift의 정의는 covariates distriubtion의 변화를 의미하는데요. (뒤에서 설명하겠지만 DNN이라는 것을 입력 데이터 (독립변수; training data)에 대해 분류(종속변수; test data)를 잘할 수 있는지를 보는건데, 중간에 방해를 하는 요소들(covariates)의 분포가 어떤 현상에 의해서 변하기 때문에 이렇게 이름을 붙인건 아닌가 싶어요) 


<사진1>


DNN은 training data를 잘 학습시켜, test(validation) data을 잘 분류해주기를 원해요. 그러기 위해서는 DNN 모델이 가지고 있는 가중치 분포가 training data와 test data관점에서 모두 동일해야합니다. 그런데, overfitting이 되면 당연히 가중치들을 다른 분포들을 갖겠죠?




3) Internal covariate shift


우리가 training dataset을 학습시킨다고 가정해볼게요. 그럼 가중치가 학습을 하다보면 아래 사진과 같이 이전 레이어의 값에 따라서 다음 레이어의 가중치값이 영향을 받을 거에요. 


아무런 규제없이 이런식으로 가중치들이 제멋대로 학습하다보면 매개변수 값의 범위가 넓어지게 될수가 있어요. 그리고 매개변수의 값들의 변동이 심해지게는 현상을 Internal Covariate Shift 라고 합니다


예를 들어하나의 hidden layer1은 x1 (입력data)를 받아 W1x1연산 후, activation function 결과를 거쳐 다음 hidden layer2의  (x2=y1=W1x1이 됩니다, hidden layer2의 입력값에 영향력을 미치는 것은 W1x1 인데이를 보면, W1의 변화에 따라 hidden layer2의 시작점이 매우 달라질 수 가 있다는 것을 의미해요.


<사진2>


만약DNN 모델이 위의 '사진2'처럼 형성이 되었는데, W1이 너무 많이 수정되어 아래 '사진3'처럼 DNN모델이 변하게 된다면이는 classification 하는데 있어서 매우 불안정할 수 밖에 없다는 것을 직관적으로 이해할 수 있을 거에요

<사진3>


다시아래 사진을 보도록 할게요. 위와 같은 internal covariate shift 이유로 overfitting이 일어났을때 어떻게 하면 좋을까요? 쉽게 말해, 아래의 training dataset과 test dataset의 가중치 분포를 동일하게 만들어주려면 어떻게 해야할까요? 답은 굉장히 쉬워요. 그냥 분포의 위치와 크기를 변경해주면 되는거에요!








<2. Batch Normalization>


아래사진에서 training dataset과 test dataset에 대한 가중치 분포를 동일하게 만드는 방법이 단순히 가중치분포의 크기와 위치를 변환시키는것이라 말씀드렸죠?


지금부터 크기와 위치를 바꾸는 방법을 자세하게 말씀드릴거에요. 그리고 이러한 방식을 batch normalization이라 합니다~



우리가 앞선 normalization 파트에서 데이터에 대해 평균 및 표준편차를 이용해 데이터로 인해 생기는 overfitting을 방지하고자 했죠? 이번에는 데이터가 아닌 가중치(Wx)에 대해 평균 및 표준편차를 이용해 가중치로 인해 발생하는 overfitting을 막고자 할거에요.


먼저 입력값에 대한 normalize를 진행할거에요. 여기서 입력값은 activation 직전의 Wx 값이라고 생각하시면 되요. 실제 입력데이터 x는 고정된 값이기 때문에 가중치 W값들에 대해서만 normalize를 한다고 보시면 되요. 이렇게하면 normalize된 가중치값들의 평균이 0 그리고 분산범위가 1이 되겠죠? normalization파트에서 언급한 normalization하는 이유와 일맥상통한거에요. normalization 파트에서는 입력데이터에 대한 범위를 규제한것이라면, batch normalization은 가중치 W에 대한 범위를 규제하여 overfitting을 방지하려고 한거에요. (아! 참고로 normalize식에서 분모부분에 입실론은 분모를 0으로 나누는걸 방지하기 위함이에요~)


<사진4>


Normalize된 가중치 값 조차도 불완전하다고 느껴서 normalize된 가중치값을 scale(확대; 감마), 이동(shift; 베타)하게 되요. Normalization만 했을 때 activation에 적용되는 normalized weights의 정규분포는 아래와 같이 형성될거에요. 이렇게 값의 범위를 제한해 버리면 사실 activation function을 linear(직선)형태의 함수를 쓰는것과 큰 차이가 없어 non-linearity를 없애줄거에요.


<사진5>


그렇기 때문에 감마, 베타 값 역시 학습을 하여 최적의 scale과 shift값을 찾게 됩니다.


<사진6>


그렇다면 결과적으로 어떤현상이 일어날까요? batch normalization 기법을 적용하지 않으면 '사진6'에서

처럼 기존 가중치 distribution(노란색)이 가중치 업데이트가 된 후 굉장히 다른 가중치 분포(녹색)를 갖을 수 있어요. 반면에, batch normalization 기법을 적용하면 가중치에 대한 업데이트가 진행된다 하더라도 가중치의 분포가 크게 달라지지 않을거에요. 이런방식으로 internal covariate shift 문제를 피할 수 있게 됩니다. 

      

<사진7>                                                <사진8>


아래 사진은 batch normalization에 대한 backpropagation chain rule과정이니 참고하세요~


<사진9>





<3. 결과>


결과적으로 우리는 아래와 같은 DNN(Deep Neural Network) 모델을 보편적으로 사용하게 됩니다. (Affine 부분은 Wx 연산을 의미해요!)


<사진10>




지금까지 가중치에 대한 normalization을 적용한 기법인 batch normalization에 대해서 소개해 드렸어요. 다음글에서는 DNN 모델의 학습방향성을 다룬 optimizer에 대해서 알아보도록 할게요!








이번글은 아래영상을 참고했으니 공부하실때 같이 보시면 좋을것 같아요~


 


[사진 래퍼런스]

<사진1>

http://sanghyukchun.github.io/88/

<사진2,3,6,7,8>

https://www.youtube.com/watch?v=TDx8iZHwFtM

<사진4,10>

밑바닥부터 시작하는 딥러닝

<사진5>

https://mc.ai/intuit-and-implement-batch-normalization/

Q. 굉장히 많은 데이터를 학습시키려고 한다면 어떻게 학습시켜야 하나요? 데이터 하나하나 단계적으로 학습시켜야 하나요? 



안녕하세요~


이번시간에도 DNN(Deep Neural Network) 모델을 좀 더 효율적으로 학습하는 방법에 대해서 알아보도록 할거에요. DNN을 학습시키려면 방대한 양의 데이터를 학습시켜야 할텐데요. 이때 어떤방식으로 학습시키면 좋은지에 대해서 언급해보려고해요!





<1.Stochastic Gradient Descent (SGD) VS Batch>


1) Stochastic 

이전에 가중치를 업데이트 시켰던 방식을 상기해볼게요. 하나의 입력 데이터가 들어오게 되면 가중치를 업데이트 시켰죠? 이렇게 입력데이터를 하나씩만 처리하면서 가중치를 업데이트 하는 방식을 Stochastic Gradient Descent라고 해요.

               

                   <사진1>




2) Batch (Gradient Descent; BGD)


위와는 다르게 데이터를 많이 갖고 있으면 전체 데이터에 대한 학습을 한번에 하는 방식을 Batch 방식이라고 해요. 아래의 수식을 보면 알 수 있겠지만 오차함수를 미분하여 가중치를 업데이트 할때, 개별 데이터로 하는 것이 아니라 N개의 모든 데이터에 대한 오차함수의 평균을 기준으로 업데이트가 수행되는 것을 알 수 있습니다. 


              


                     <사진2>





<2. Comparison SGD VS Batch>


그렇다면 우리가 이미지를 학습한다고 했을 때, SGD와 Batch의 학습방식에는 어떤 차이가 있을까요? 먼저 SGD에 대해서 살펴보겠습니다. (개별 이미지 데이터, 전체 이미지 데이터라는 용어를 자주 사용할텐데, 여기서 전체 이미지 데이터 image={A, B, C, ..., Z} 는 개별 이미지 데이터 A~Z를 모두 포함한 집합개념으로 보시면 됩니다)



1) Batch (Gradient Descent; BGD)


Batch는 전체 이미지 데이터를 기준으로 가중치를 업데이트하게 됩니다. 우리가 관심있어하는 부분은 개별적인 데이터들에 대한 분류가 아니라 전체 이미지를 모두 분류할 수 있는지가 중요합니다. 다시말해, 전체 이미지를 잘 분류해줄 수 있는 DNN 모델이 필요한 것이죠. 그래서 가중치 업데이트 또한 전체 이미지에 대한 cost값을 기준으로 업데이트하게 됩니다. 이렇게 되면 우리가 원하는 전체 이미지를 분류하는 문제공간이 만들어 지겠죠? 하지만, 이러한 방식에도 문제점이 있습니다.


<사진3. Batch problem space>


첫 번째 문제는 학습시간이 매우 느려진다는 점입니다. 예를들어, SGD 같은 경우는 하나의 데이터를 학습할 때마다 가중치가 업데이트되죠? 이렇게 가중치를 빠르게 업데이트하다보면 학습이 빠르게 끝나는 경우도 있을거에요 (아닌경우도 많아요ㅜ 왜냐하면 개별이미지에 대한 업데이트만 하기 때문에 global opimal value를 찾을 가능성이 낮아지기 때문이에요. 자세한 설명은 SGD를 참고해주세요!). 그런데, Batch 방식 같은 경우에는 모든 데이터에 대한 cost 값을 계산하고 평균을 낸 후에야 한 번 가중치가 업데이트 됩니다. 그렇다보니 모든 이미지데이터들을 순회해야 가중치가 한 번 업데이트 되는 꼴인거죠. (그런데 생각해봐야 할 부분은 이미지같은 경우에는 GPU로 병렬처리해 줄 수 있는 경우가 있기 때문에 이러한 장점이 어떻게 DNN을 학습 할 때 어떤 효과를 일으키는지 더 지켜봐야할 것 같아요~)


               


두 번째는 local minima에 빠지게 되면 빠져나오기 어려워집니다. 그 이유는 SGD에서 설명드릴게요.


<사진4>





2) SGD


SGD는 개별 이미지 데이터를 기준으로 가중치를 업데이트하게 됩니다. 그렇기 때문에 문제공간이 이미지A, 이미지B 이렇게 매번 바뀌게 되는데요. 즉, 파라미터들이 하나의 이미지데이터들을 잘 구분해내려고 파라미터들을 업데이트하게 되는 꼴이됩니다. 그래서 전체이미지에 대한 분류문제가 굉장히 많은 개별이미지에 대한 problem space 집합으로 볼 수 있게 됩니다.


이렇게 복잡한 problem space에서 역시 전체이미지를 잘 분류하기 위한 가중치값(global optimal value)을 찾는다는 것은 굉장히 복잡한 문제로 귀결될 수 있습니다. 또한, 하나씩 데이터를 학습 시키기 때문에 이미지같은 경우에는 GPU를 충분히 활용못 할 수도 있게되죠.


<사진4. SGD problem space>


앞서Batch 방식을 사용하면 local minima에 빠져나오기 어렵다고 말씀드렸죠? 그 이유에 대해서 설명드릴게요. 먼저 왼쪽사진이 Batch가 학습하는 방식입니다. Batch는 모든데이터에 대한 가중치 평균을 계산합니다. 즉, 한 번 cost값을 도출하여 이를 가중치 업데이트에 반영하게되면 두 번째 모든데이터에 대한 cost값은 더 낮을 가능성이 큽니다.


그런데, SGD같은 경우에는 A라는 이미지를 학습했을 때에는 cost가5가 나와서 가중치업데이트를 조금만 할 수 있는 반면에, B라는 이미를 학습했을 때에는 cost가 25가 나올 수 있습니다. 왜냐하면 A라는 이미지를 통해 가중치가 업데이트 되었다고 해도, 이미지B에서는 그 가중치가 적절치 못해 더 큰 cost로 나올 가능성이 충분히 있기 때문이에요 (or 이미지B가 이미지A랑 많이 다른 형태일 수 도 있지요). 그래서 오른쪽 사진과 같이 over shooting이 일어나 local minimum에 빠질 위험이 줄어들게 됩니다. (그런데 오히려 Global optimum value를 찾을 가능성도 현저히 낮아보이네요;;; 


            





<3. Mini-Batch>


위의 두 학습방법에서 제기된 단점을 극복하고자 나온 개념이 Batch와 SGD를 절충한 Mini-Batch라는 학습방식입니다. 모든 데이터에 대해서 가중치 평균을 구하는 것이 아니라 전체 데이터에서 일부데이터를 묶음방식으로하여 데이터 학습을 진행시키게 됩니다.


                 



      

<사진6>


      

마지막은 영상을 보시고 실제 loss가 어떻게 진행되는지 보시면 될 것 같아요. 개인적으로 batch size가 작을때마다 loss가 크게 나오는 이유는 아마 앞서 언급한 "전체이미지에 대한 문제정의(problem space)가 아닌 개별이미지 problem space의 집합인 복잡한 problem space일 가능성이 높기 때문"인거 같아요.


그래서 Batch size를 어떻게 설정해주어야 좋은건지에 대한 연구도 진행되고 있답니다~







지금까지 '많은 학습데이터가 있을때 어떻게 학습시키는것이 좋을지'에 대해서 알아보았어요. 다음장에서는 이전글에서 배웠던 Normalization과 이번글에서 언급했던 Batch라는 개념을 이용하여 Batch Normalization 개념을 이해해보도록 할게요~   


[사진레퍼런스]

사진1,2,

딥러닝 첫걸음

사진3,5

https://arxiv.org/pdf/1712.09913.pdf

사진4

https://hwiyong.tistory.com/9

사진6

https://www.kakaobrain.com/blog/113





+ Recent posts