반응형

어릴 적 TV를 통해 만화영화 '보물섬'을 간간이 보았지만,

전체적인 내용은 사실 잘 몰랐다.

최근에 라디오에서, 목소리 연기를 더해서 '보물섬'을 읽어주는 것을 우연히 듣고

읽어보고 싶은 마음이 들기 시작했다.

도서관에서 책을 빌리려 검색해 보니,

소설 자체가 청소년들을 대상으로 쓰여졌기에

주로 어린이 코너에 소장되어 있었다.

문제는, 어린이코너에 있는 책들은 원문을 직역하지 않고

내용을 조금씩 압축하고 각색하는 경우가 많다는 것이다.

되도록 원문에 가깝게 읽고 싶은 마음에,

찾다찾다 결국 영문 문고판을 빌리게 되었다.

그러면서, 로버트 루이스 스티븐슨이 얼마나 대단한 작가인지도 알게 되었다.

 

영어로 읽다 보니 사전을 많이 검색하게 되었지만,

그런대로 전체 내용을 이해하는데는 큰 어려움이 없었다.

내용도 워낙 재밌어서, 한글 번역본이면

단숨에 읽을 수 있었을텐데...하는 아쉬움도 남는다.

 

내용은, 해안가에 있는 어느 여관집 아들이,

그 집에 묶게 된 어느 선원 때문에 보물섬 지도를 얻게 되고

그로 인해 모험에 휘말리지만,

결국은 보물을 찾아 집으로 돌아온다는 이야기이다.

길지 않은 내용이지만, 전개가 빠르고 긴박감이 있다.

모험심, 지혜롭고 슬기로운 문제 해결의 중요성,

욕심을 부리더라도 어느 선에서 절제할 수 있어야 한다는 등의

가르침을 주는 소설이다.

 

인생은, 어딘가에 있을 나만의 보물을 찾아 떠나는 탐험이라고

말할 수도 있을 것이다.

나이가 들면서, 적당한 지도와 나침반,

항해기술 및 상황대처방법 등등을 터득해가면서,

누군가는 보물을 찾기도 하고, 누군가는 보물을 놓치기도 한다.

난 나의 보물중 일부는 이미 찾은 것 같다.

하지만, 아직 탐험은 계속된다.

 

아무튼, 재밌는 책이다.

반응형
반응형
반응형

'MuseScore와 놀기' 카테고리의 다른 글

Studio One 4 Prime  (0) 2020.02.28
어느 조용한 오후(Some Quiet Afternoon)  (0) 2020.01.11
[링크]음악가와 음악들  (0) 2019.11.19
[링크]음악용어풀이2  (0) 2019.11.19
음악용어 풀이  (0) 2019.11.15
반응형

SF영화들 중에는, 의외로 생각할 거리를 던져주는 영화가 많다.

내가 재밌게 본 영화들 중에서 이 책에 소개되지 않은 영화들로는,

아바타, 인터스텔라, 아일랜드, 배트맨, 마션, 슈퍼맨, 기타등등...

그리고 이 책에는, 다음과 같은 영화가 소개된다.

프랑켄슈타인, 매트릭스, 터미네이터, 토탈리콜, 6번째 날, 마이너리티 리포트,

할로우 맨, 인디펜던스 데이, 에일리언, 스타워즈, 반지의 제왕, 블레이드 러너

 

이러한 SF영화들을 통해서,

여러가지 철학적 주제들을 설명해 준다.

만약 영화를 통하지 않으면, 일단 졸립고 지루하며

접근조차 할 엄두가 나지 않는 주제들인데,

영화를 통해 접근하니 생각하는 것 자체가 재밌어진다.

내가 나를 바라보는 내부로부터의 시각과,

타인 혹은 세상이 나를 바라보는 외부로부터의 시각은 차이가 나게 마련인데,

이러한 시각 차이가 크게 나는 상황을 부조리라고 하는 것 같다.

철학은, 이 부조리 속에서 인간을 위로하는 한가지 방법이라는 것 같다.

자신에 대해 잘 이해하고, 세상에 대해서도 잘 이해하면,

이러한 부조리를 줄이고 시각차이를 좁힐 수 있을 것도 같다.

하지만 문제는, 철학도 정답을 주지는 못한다는 것이다.

다만, 생각을 하는 여러가지 방법을 배우고,

서로 상반되는 논리들을 익혀 나가는 과정 자체에서

재미와 의미를 찾을 수 있을 것 같다.

그리고, 그러는 가운데 덤으로

생각이 자라고 이해심이 넓어지고,

여러가지 긍정적인 열매를 맺게 되면 금상첨와다.

 

책에 소개된 영화는 웬만하면 다 보고 싶어지기도 한다.

책을 읽으면서, 프랑켄슈타인과 할로우맨을 보았다.

재밌는 영화들이지만, 책을 읽지 않고 보면 그냥 보았을 영화들이다.

책을 읽고 영화를 보았기에, 같은 영화도 달리 보이는 것 같다.

책에 소개된 다른 영화들 중 아직 보지 않은 영화들이 꽤 있다.

책을 읽었으니, 일기 전보다 더 재밌게 볼 수 있을 것 같다.

물론 그 안에서 진주같은 깨달음을 얻을 수 있다면,

더더욱 좋을 것 같다.

반응형
반응형

원래 유전(진화) 알고리즘을 써서 AI를 만들어보고자 하였지만,

세대를 거듭한다고 해서 테스트 점수가 우상향하지 않는 것 같아서,

일단 지도학습을 통해 다시 시도해 보고 있다.

 

https://truemaxdh.github.io/2048-AI/

 

https://truemaxdh.github.io/2048-AI/

Training Evolution Algorithm Guided Training Verify Verify Results TestModel

truemaxdh.github.io

위 사이트 메뉴 중에서,

[Evolution Algorithm]은 일단 보류중이고,

[Guided Training]이 현재 활성화된 상태이다.

[Verify Results]는 나중에 구현할 계획이며,

[Test Model]은 [Guided Training]의 결과로 생성된 모델을 불러와서 테스트해 볼 수 있다.

 

지도학습 방법을 구현하면서,

먼저 시도했던 유전(진화) 알고리즘이 잘 안되던 이유도 몇가지 알게 되었고,

시행착오를 통해 배우게 된 것들도 있다.

  • 입력값, 출력값, 가중치의 초기값 설정 문제
    • 포화(saturation) 발생 방지를 위해, 적절한 범위의 값을 사용해야 함.
    • 타리크 라시드의 [신경망 첫걸음]이라는 책에 의하면, 가중치의 초기값은 다음 범위가 적절
      • 노드로 오는 연결노드의 갯수에 루트를 씌운 값의 역수
    • ReLU의 경우에는, x<0인 경우 f(x)=0이고, 이를 미분하면 기울기가 0이므로, 역전파에 의한 가중치 업데이트가 이루어지지 않아서 문제가 될 수 있다.
      • 이 문제의 해결을 위해 몇가지 방법이 있겠지만, 그중 한가지는 가중치의 초기값을 모두 양의 실수로 초기화하는 방법이 있다.
    • 입력값의 전처리도 중요하다. 이번 경우에는 입력값의 범위를 0.01 ~ 0.99로 조절하였다.
      • 입력 배열(4*4=16)의 수치를 0은0, 0보다 크면 2의 로그값으로 바꾸고,
      • 최대값을 구한 다음,
      • 각 요소를 최대값으로 나누어 주되, 0은 0.01로, 1은 0.99로 변환
    • 출력 노드는 Left, Up, Right, Down의 4개이며, 실제 움직인 방향의 출력값은 1로, 나머지 방향은 0으로 학습시킨다.

위의 원칙들을 적용해서 테스트중이다.

이렇게 해서 지도학습이 잘 진행된다면,

유전(진화) 알고리즘에도 위의 내용들을 적용해서 다시 시도해 보려 한다.

반응형

'머신러닝&인공지능' 카테고리의 다른 글

2048을 Play하는 AI 개발 - 2  (0) 2019.12.01
2048을 Play하는 AI 개발  (0) 2019.11.18
2048과 딥러닝  (0) 2016.08.13
ConvNetJS를 이용한 XOR 분류 테스트  (0) 2016.07.20
언어별 딥러닝 라이브러리  (0) 2016.07.15
반응형

'파인만'에 대해 처음 알게 된 것은, 

이광근 교수님의 '컴퓨터 과학이 여는 세계'를 통해서이다.

그 책 뒷면 서평에, 누군가가 책을 빗대어

'파이만의 물리학 강의' 같다고 말한 것을 통해

어려운 물리학을, 누구나 이해할 수 있는 언어로

쉽게 설명해 주는 물리학자가 있다는 것을 알게 되었다.

그래서 '파인만의 물리학 강의'라는 책을 읽고자 하였지만,

책이 너무 두꺼워서 일단 좀 얇은 책을 고른다고 고른 것이

'발견하는 즐거움'이라는 책이다.

이 책도 물리학에 대한 설명이겠거니 생각했는데, 그렇지는 않고

파인만의 인터뷰, 강연, 보고서, 연설 등을 몇가지 모아놓은 것이다.

전반적으로는 파인만의 세계관, 철학, 경험담 및 에피소드 등이 주된 내용이고

내용 중 일부는 물리학의 현재와 미래에 대해 논하는 부분도 있다.

전혀 몰랐던 위대한 물리학자에 대해 조금 알 수 있었다.

특히 인상적이었던 부분은, 아버지에 관한 이야기이다.

제복 사업을 하셨지만, 주변 자연과 사물에 대해 남의 말에 의지하지 않고

스스로 관찰하고 이해하여 남다른 방법으로 설명해 주면서

자연스럽게 아들이 과학자로서의 태도를 가지게 된 것 같다.

그밖에, 맨해튼 프로젝트에 합류하여 로스앨러모스에서 일하면서 겪었던 에피소드,

원자폭탄을 투하하고 나서 원폭개발에 참여한 과학자로서 느꼈던 감정등도 흥미로웠다.

그리고 그가 과학에 대해 가지고 있는 생각, 과학자로서 갖고 있는

세계관, 종교관, 철학 등도 엿볼 수 있었다.

세상의 불확실성이 불편한 사람들이 철학을 하고 종교를 찾지만,

과학적 방법으로 세상의 본질을 단숨에 밝혀내기는 어렵다.

따라서 누구나 무언가를 믿는 것은 자유이지만,

천동설이 지동설로 대체된 것과 같이 자신의 생각이 틀릴 수도 있다는 것을 염두에 두고

불확실성에 대해 열린 마음을 가지고, 불확실성 자체를 편안하게 느끼며 살아가는 것이

과학자의 자세라고 역설하는 것 같다.

또한, 요즘 화두가 되고 있는 양자컴퓨터에 대한 이야기도 나온다.

그걸 읽으면서, 양자컴퓨터에 대해 조금은 알수 있었던 것 같다.

그리고, 양자컴퓨터의 개념을 처음 제시한 사람이 바로 '파인만'이라고 한다.

 

모든 부분이 재밌고 공감되지는 않았지만, 그래도 재밌는 부분이 많았고

공감도 많이 되었다.

위대한 물리학자의 삶을 이런 식으로 바라보고 알아가면서,

내가 세상을 살아가는 방법을 배우고 돌아보고 반성하게 된다.

반응형
반응형
반응형
반응형

현재 진행중인 내용을 확인해 볼 수 있다.

RunningTest

 

https://truemaxdh.github.io/2048-AI/

 

truemaxdh.github.io

GitHub

 

truemaxdh/2048-AI

AI playing 2048. Contribute to truemaxdh/2048-AI development by creating an account on GitHub.

github.com

 

다음과 같은 테스트를 진행하였다.

  1. weight 초기화시 양의 실수만 사용
  2. weight 초기화시 실수를 사용하고, Node마다 ReLU 적용
  3. weight 초기화시 실수를 사용하고, Node마다 ReLU 적용. workaround(상하좌우 중 1순위 결과가 막히면 2순위, 2순위도 막히면 3순위, 3순위 막히면 4순위) 적용

2,3번에 대한 현재까지의 테스트 결과가, 다음 저장소에 올라와 있다.

테스트 결과

 

truemaxdh/2048-AI

AI playing 2048. Contribute to truemaxdh/2048-AI development by creating an account on GitHub.

github.com

지금까지의 결과를 보면서, 다음과 같은 문제점이 발견된다.

  1. 입력값이 커지면, 결과값도 커짐
    • 점수가 높아지고 입력값이 커짐에 따라, 이전의 학습결과가 무용지물이 될 수 있음
    • 결과값이 일정 범위 내에서 유지되게끔 하는 게 좋을 것 같음
  2. 진화를 하는 게 의미가 없어 보임
    • 세대를 거듭할 수록 최대점수나 평균 점수가 올라가길 바라지만, 실제 결과는 그렇지가 않음
    • 변이만 사용하는 진화 방법에 문제가 있을 수 있음
    • 변이의 방법(기존값 무시하고 신규 random값을 부여)에 문제가 있을 수 있음

 

 

그래서, 다음과 같은 해결책을 적용해서 다시 테스트해 보려 한다.

  1. 결과값 범위 유지
    • 모든 Node에서, 활성화 함수로 ReLU를 적용한 결과에 다시 log를 적용
    • 모든 Node의 결과값이 0, 1로만 나오도록 활성화 함수 수정
    • 전처리를 통해 입력값이 모두 0~1사이의 값을 갖도록 표준화
  2. 진화 방법 조정
    • 교차와 변이의 결합
    • 변이의 방법 조절(기존값에 적절히 작은 값을 증감)

 

한편, 이쯤에서 다른 사람들이 구현한 인공지능 사이트도 참고해 보는 것이 좋을 것 같다.

https://codemyroad.wordpress.com/2014/05/14/2048-ai-the-intelligent-bot/

 

2048 AI – The Intelligent Bot

Introduction In this article, we develop a simple AI for the game 2048 using the Expectimax algorithm and “weight matrices”, which will be described below, to determine the best possibl…

codemyroad.wordpress.com

 

반응형

'머신러닝&인공지능' 카테고리의 다른 글

2048을 Play하는 AI 개발 - 3  (0) 2019.12.22
2048을 Play하는 AI 개발  (0) 2019.11.18
2048과 딥러닝  (0) 2016.08.13
ConvNetJS를 이용한 XOR 분류 테스트  (0) 2016.07.20
언어별 딥러닝 라이브러리  (0) 2016.07.15
반응형

헨델

왕궁의 불꽃놀이 음악

왕궁의 불꽃놀이 음악

 

왕궁의 불꽃놀이 음악 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1649년 5월 15일 월요일에 템스 강과 리치먼드 공작의 화이트홀에서 열린 불꽃놀이와 조명 광경. 찰스 프레드릭의 감독으로 공연되었다. 《왕궁의 불꽃놀이 음악》(王宮의─音樂, Music for the Royal Fireworks, HWV 351번)은 1749년 조지 프리드릭 핸델이 작곡한 모음곡으로, 1749년 4월 27일 런던의 그린 파크에서 불꽃놀이를 열기 위하여 영국의 조지 2세 국왕이 요청하여 만든 음악이다. 이

ko.wikipedia.org

 

수상음악

수상음악

 

수상 음악 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 《수상 음악》(水上 音樂, Water Music)은 게오르크 프리드리히 헨델이 작곡하여 여러 관현악 악장을 모은 곡으로, 흔히 세 모음곡으로 여겨진다. 조지 1세 임금이 템스 강에서 연주회를 요청하여 1717년 6월 17일 초연되었다. 이 연주회는 왕의 유람선 선상에서 임금과 측근들이 듣는 가운데 50명의 악사들이 공연하였다. (여기에 참석한 왕의 측근 가운데는 볼튼 공작부인, 뉴캐슬 공작부인, 고돌핀 백작부인, 킬마르노

ko.wikipedia.org

 

고트프리트 반 슈비텐

고트프리트 반 슈비텐

 

모차르트의 후원자 고트프리트 반 슈비텐

모차르트의 후원자 고트프리트 프라이헤르 반 슈비텐(Gottfried, Freiherr van Swieten) 하이든, 베토벤도 후원 모차르트의 장례식 주선, 미망인 돕기 위한 레퀴엠 연주회 개최 고트프리트 반 슈비텐 남작 고트프리

blog.daum.net

 

반응형

'MuseScore와 놀기' 카테고리의 다른 글

어느 조용한 오후(Some Quiet Afternoon)  (0) 2020.01.11
MuseScore로 음향효과 구현  (0) 2019.12.27
[링크]음악용어풀이2  (0) 2019.11.19
음악용어 풀이  (0) 2019.11.15
[링크]르네상스 무렵의 음악가들  (0) 2019.11.15
반응형

오페라

음악가들 사이에서는, 클라우디오 몬테베르디가 오페라의 창시자로 인정되고 있다고 한다.

그가 작곡하여 1607년에 발표된 <오르페오, 음악극(L'Orfeo, favola in musical)>가

최초의 오페라로 인정된다.

그 이유는, 그가 악보를 필사하는데서 그치지 않고, 인쇄해서 공개한 덕분이다.

오페라

 

오페라 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 오페라(Opera, 문화어: 가극물)는 각본이 있는 음악의 한 장르이다. 오페라는 노래를 중심으로 한 극으로서, 독창, 합창, 관현악을 사용하고, 발레도 참가하는 규모가 큰 음악극이다. 독창의 부분은 보통 아름다운 서정적인 가락인 아리아(영창)와 주로 언어의 악센트로 이야기하듯이 부르는 레치타티보로 구분한다. 아리아의 계통에는 아리에타, 아리오소, 카바티나, 세레나데, 로맨스 등도 포함되어

ko.wikipedia.org

 

오라트리오

오라트리오

 

오라토리오 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 오라토리오(이탈리아어: oratorio), 오라토리엄(라틴어: oratorium)은 성악의 일종으로 줄거리가 있는 곡의 모임이지만 배우의 연기는 없다. 종교적인 내용을 주로 담고 있다. 독일의 수난곡도 이와 비슷한 형식을 가지고 있다. 오페라에 비하여 오라토리오에서는 독창보다도 합창이 중시되며, '테스토' 또는 '이스토리쿠스'라고 하는 이야기하는 사람이 극의 진행을 담당하는 것이 특색이다. 그러나 오라토리오는 때로 교회

ko.wikipedia.org

 

칸타타

칸타타

 

칸타타 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 이 문서는 악곡의 형식에 관한 것입니다. 커피 제품에 대해서는 칸타타 (커피) 문서를 참조하십시오. 칸타타(Cantata)란 성악곡의 하나로, 악기 반주가 동반되는 악곡의 형식이다. 어원적으로는 '노래한다'(이탈리아어: Cantare)에서 유래하며 '악기로 연주한다'는 뜻의 소나타와 대비를 이루는 말로서, 처음에는 다만 성악곡 일반을 의미하였다. 칸타타는 몇 개의 악장으로 된 바로크 시대의 중요한 성악곡이다. 하나의 연속

ko.wikipedia.org

 

모테트

모테트

 

모테트 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 모텟은 여기로 연결됩니다. 대한민국의 음악 그룹에 대해서는 모텟 (음악 그룹) 문서를 참조하십시오. 모테트(Motet)는 중세 르네상스 시대에 유행했던 성악곡의 하나이다. ‘언어’를 뜻하는 프랑스어 ‘mot’에서 유래하며, 처음에는 ‘언어를 가진 성부 (motetus)’만을 가리켰는데, 지금은 악곡 전체를 가리키는 명칭이 되었다. 13세기에 정착되었고, 오늘날에도 연주하지만, 바로크 시대의

ko.wikipedia.org

 

푸가

푸가

 

푸가 - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다. 나무위키는 백과사전이 아니며 검증되지 않았거나, 편향적이거나, 잘못된 서술이 있을 수 있습니다. 나무위키는 위키위키입니다. 여러분이 직접 문서를 고칠 수 있으며, 다른 사람의 의견을 원할 경우 직접 토론을 발제할 수 있습니다.

namu.wiki

 

 

반응형

'MuseScore와 놀기' 카테고리의 다른 글

MuseScore로 음향효과 구현  (0) 2019.12.27
[링크]음악가와 음악들  (0) 2019.11.19
음악용어 풀이  (0) 2019.11.15
[링크]르네상스 무렵의 음악가들  (0) 2019.11.15
웹 신디사이저(MIDI처리기)  (0) 2016.10.24
반응형

다음 책을 읽으면서, 아이디어가 떠올랐다.

- 줄리안 토겔리우스의 '재미나는 생각, AI와 게임'(줄리안 토겔리우스, 에이콘)

  (원제: Playing Smart: On Games, Intelligence, and Artificial Intelligence, Julian Togelius)

 

딥러닝(DeepLearnng)과 진화 알고리즘(Evolutionary Algorithm)을 토대로,

2048을 Play하는 AI를 만들어보고자 한다.

순전히 재미와 호기심으로 시작하는 것이다.

 

책에 의하면, 게임은 AI를 연구, 발전, 테스트하는데 좋은 재료이고,

AI는 게임을 좀더 재밌고 풍성하게 만드는 기반이 될 수 있다.

 

AI 연구에 있어서 2048 게임의 장점은, 다음과 같은 것들이 있다.

  • 격자(grid)의 크기가 4*4이므로, 학습을 위한 입력 요소가 많지 않다.
  • 소스가 공개되어 있다.(https://github.com/gabrielecirulli/2048)
  • 수정과 재배포에 제한이 거의 없는 MIT 라이센스이다.
  • HTML 및 Javascript로 만들어졌다.(웹에서 실행하기에 적절함)

 

진화 알고리즘은, 100개 정도의 딥러닝 샘플 생성후,

각 샘플마다 게임을 끝까지 진행한 후에,

최종 결과(점수)를 기준으로 상위 50개를 선택하고,

선택된 샘플을 임의 변경한 50개를 추가해서 총 100개를 다시 만든 후에,

같은 과정을 반복한다.

 

특별히 짜여진 계획은 없지만,

다음과 같은 단계로 진행하는 게 좋을 것 같다.

  1. 2048 소스 다운로드 및 분석
  2. 2048 소스를 테스트 용도에 맞게 변경
  3. Javascript로 딥러닝 및 진화 알고리즘 구현
  4. 2048 소스와 알고리즘 결합
  5. 결과 보관소를 마련하고, 그곳에 결과가 잘 저장되도록 구현

 

현재 위와 같은 방법으로 구현되어, 테스트를 진행중이다.

GitHub

 

truemaxdh/2048-AI

AI playing 2048. Contribute to truemaxdh/2048-AI development by creating an account on GitHub.

github.com

 

RunningTest

 

https://truemaxdh.github.io/2048-AI/

 

truemaxdh.github.io

 

반응형

'머신러닝&인공지능' 카테고리의 다른 글

2048을 Play하는 AI 개발 - 3  (0) 2019.12.22
2048을 Play하는 AI 개발 - 2  (0) 2019.12.01
2048과 딥러닝  (0) 2016.08.13
ConvNetJS를 이용한 XOR 분류 테스트  (0) 2016.07.20
언어별 딥러닝 라이브러리  (0) 2016.07.15

+ Recent posts