오늘내일 옮기는건 아니고, 곧 http://melotopia.net 으로 옮겨갈 생각입니다. melotopia.net 은 제 개인 사설 서버로, 이 공지가 떴다고 해서 오늘내일 개설되는 것은 아닙니다.


블로그 이전을 완료했습니다. 앞으로는

http://melotopia.net/b


여기로 접속하세요!


이 글을 마지막으로 이후에 이 블로그에는 (아마) 새로운 글이 올라오지 않을테니 이용에 참고하시면 되겠습니다. 기존에 작성된 글들은 하나씩 백업해야 할 것 같은데, 댓글은 어떻게 할 수 없을 거 같네요.


옮겨간다고 해도 이 티스토리 블로그 자체를 폐쇄하거나 자료를 삭제하거나 하지는 않을테니 자료 참고하시던 분들은 계속 보셔도 무방합니다. 다만, 질문이나 상담 등은 페이스북, 이메일, 또는 melotopia.net에 개설된 블로그에 부탁드립니다. 여기에 하시면 제가 못 볼 가능성이 매우 높습니다.


기존에 작성된 글들은 하나씩 보면서 일기는 백업하고, 단상이나 사설 같은것들은 좀 보완하고 그렇게 올려야겠네요. 묶어서 책으로 낼까 생각도 하고 있습니다.


melotopia.net 접속이 잘 안되고 있다면 저희 집에 정전이 발생한 것입니다. 걱정마시고 기다리세요.

by snowall 2017. 2. 9. 12:31

티스토리 백업이 막힌 현재, TTXML로 티스토리 백업을 하는 프로그램을 만들었다.


이 프로그램은 GPL에 의거하여 자유롭게 사용할 수 있다.


이 프로그램을 사용하여 나타날 수 있는 모든 결과는 사용한 사람의 책임이다. 


파이썬 3.6기준으로 만들었는데, 아마 2.7에서도 작동하긴 할 것이다.


질문은 새로운 블로그인 http://melotopia.net/b 로 하기 바란다.


워드프레스로 옮기는 경우 TTXML importer에서 오류가 나는데, 인코딩 때문에 발생하는 문제이다. Notepad++등의 프로그램에서 EUC-KR로 읽어온 다음, UTF-8로 변환하여 저장을 하면 된다. 아니면 이 프로그램을 직접 고쳐서 인코딩 문제를 해결해도 된다.


----

이하, 누군가 이 프로그램을 쓰겠다고 해서 추가 설명한 내용.

----

일단 제 프로그램은 공개된 글만 자동으로 다운로드 받을 수 있습니다. 비공개글이면 일단 비공개 설정을 공개로 풀어주는 과정이 필요합니다.

그리고 글의 주소 체계가 숫자로 써져야 합니다. 예를 들어, snowall.tistory.com/53 처럼 끝부분에 숫자가 있어야 합니다. 글자가 있는 경우에는 안됩니다. 숫자로 표시되도록 고쳐주든가 해야겠죠.

그 다음, 제 프로그램은 다운로드 받은 내용을 TTXML이라는 형식으로 저장을 시켜줍니다. TTXML은 티스토리에서 백업을 지원하던 시절에 백업을 받으면 주는 파일 형식입니다. 또한, TTXML말고 HTML파일로도 같이 저장이 됩니다.

TTXML을 이용하는 이유는 워드프레스에서 TTXML을 읽어서 워드프레스에 자동으로 올려주는 플러그인이 있기 때문이었고요.

아무튼, 위의 내용을 알고 있는 상태에서 제 프로그램을 실행시키면 되는데요, 프로그램을 실행시키기 전에 고쳐야 할 부분이 있습니다.

33번째 줄의 domainname="\"melotopia.net/b\

"" 에 본인이 사용할 워드프레스 블로그의 주소를 적어야 합니다. 워드프레스를 사용하지 않을 거라면 사용할 블로그의 주소를 적어주시면 될 것 같습니다.

36번째 줄의 while idname<4000: 에서 4000이라는 숫자를 고쳐야 하는데, 이 숫자는 본인이 작성한 글의 전체 갯수보다 큰 숫자이기만 하면 됩니다. 저는 글이 3500개 정도 있어서 4000을 썼습니다.

파이썬 코드의 실행방법은 일단 python.org에서 파이썬을 다운로드 받아서 설치한 후 파이썬 코드를 더블클릭하면 됩니다.

이 때, BeautifulSoup이라는파이썬 패키지를 설치해야 할 겁니다. 아마 커맨드라인에서 pip install beautifulsoup 을 실행시키면 될 겁니다.


by snowall 2017. 2. 9. 12:31

パワーパフガールズのOP『Cream Puff Shuffle』の英語部分の訳を教えてください。

Cream Puff Shuffle

作詞:李醒獅、Mamie D.Lee/作曲:光宗信吉/編曲:光宗信吉/
歌:P.P.S(Power Puff Souls)

This cream is so rich!
Can be the best one.
Do you see things as they are?
No,I don't. I see them as I am!
No answer is also an answer.

Go for it! Go for the Gold! Go for it!
Go for it! Go for the Gold! Go for it!
(We play for keeps.)

そうは言っても 独りだけでは(We can see what you say.)
とてもきつい日が交ざってしまう
思いきり棄てていく(You gotta change your attitude.)
わたしを捕らえるもの

リスクのない明日 そんなつまらなすぎるよね 怖くなんかない
えらんだのは 偶然かな? 真っ直ぐに どこまでも 延びている
風だけが駆けぬける道 向かい風 時折追い風
風を食べ、露を飲む?

Good for you! Ready to deal! Good for you!

誰にも 躓きはあるもの(You gotta pay for it.)
許してあげたら? 忘れなくても
うしろに残していく(There can be more than you may know.)
ガレのランプみたいに

終わりのないパラドクス いつも おもしろがるように 風をきって行こう
とどきそうな望みなんかいらない 葉露にも波間にも 月は光をなげるから

You know, I found out we are all alone.
Growing up is realizing it.
Still to be alive is grand!

For someday we will become commanders of our fates.
Up and try, never say die, to keep our dignity.
We never stop, we never out!

リスクのない明日 そんなつまらなすぎるよね 怖くなんかない
えらんだのは 自分の意志 真っ直ぐに どこまでも 延びている
風だけが駆けぬける道 向かい風 時折追い風
風を食べ、露を飲む?

Go for it! Go for the Gold! Go for it! Go for the Gold!

by snowall 2017. 1. 17. 14:45

반, 짝


사방천지가 깜깜한데
저 앞에 반짝이는 빛이 있어 가보았더니
별도 아니고 터널의 끝도 아니었다.
무엇이었을까.


사방천지가 밝은데

눈앞을 가로지르는 선이 있어 가보았더니

담벼락도 아니고 바다의 끝도 아니었다.

무엇이었을까.


그 끝에 있던 것은

아마도 나의 반

아마도 나의 짝


사방천지가 깜깜한데
저 앞에 반짝이는 빛이 있어 가보았더니
별도 아니고 터널의 끝도 아니었다.


---

2017. 1. 14. 남기환.

by snowall 2016. 12. 30. 13:47

SPGD알고리즘은 함수 최적화를 할 때 사용하는 알고리즘이다. 기존의 Steepest descent method라든가 Conjugate Gradient method같은 경우, 특정 방향에 대해서 최적해를 찾고 그 위치에서 그 다음으로 진행할 방향을 선택해서 더이상 움직이지 않을 때 까지 반복하는 알고리즘이다. 두 방법의 차이는 그 다음 방향을 결정하는데 좀 더 개선된 방법이냐 아니냐의 차이가 있을 뿐이다.


SPGD알고리즘은 통계적으로 접근하는데, 덕분에 빠른 최적화가 가능하다. 수학적, 통계학적인 이야기는 다 빼고 알고리즘만 설명하도록 한다. 자세한 것은 구글에 검색하면 다 나올 것이다.


어떤 함수 V(x)가 주어져 있다. V(x)는 하나의 실수값을 갖고, x는 N차원에서의 벡터이다. g는 0이 아닌 어떤 실수인 상수인데, 이따가 설명하도록 하겠다.


1. x에 대해서 어떤 임의의 벡터 a를 선택한다.

2. P=V(x+a), Q=V(x-a)를 계산한다.

3. P-Q=R을 얻을 수 있을 것이다.

4. x를 x+g*R*a로 교체하고 1번으로 돌아가서 반복한다.

5. 더이상 움직이지 않을 때 까지(==V(x)와 V(x+g*R*a)가 별로 차이가 없을 때 까지) 반복한다.


이 알고리즘이 작동하는 이유는 R=P-Q이기 때문이다. g>0인 경우에 만약 P가 더 크다면 R>0이므로 벡터가 x+a방향으로 움직이게 된다. 만약 Q가 더 크다면 R<0이므로 벡터가 x-a방향으로 움직이게 된다. 여기서 g>0이면 V가 커지는 방향으로 최적화가 이루어지고, g<0이면 V가 작아지는 방향으로 최적화가 이루어진다.


a자체는 임의로 고르지만 대체로 난수 함수가 0~1사이에서 하나를 고르게 되어 있으므로 a의 최대 크기는 제한적일 것이다. 만약 V가 엄청 큰 공간에서 최적화 해야 하는 경우라면, 이것은 너무 느릴 수 있을 것이다. 따라서 g가 충분히 큰 숫자가 되어야 한번에 멀리 갈 것이다. 내가 봤던 논문에서는 최대화 하는 경우 g를 한 스텝 지나갈 때 마다 g/V로 교체하고, 최소화 하는 경우 g를 한 스텝 지나갈 때 마다 g*V로 교체하는 것을 보았다.


실제로 계산에 적용해보면 g/V나 g*V를 그냥 두면 스텝 수가 너무 많아지는 경우 g값이 무한대로 발산하거나, 무한소로 수렴한다. 무한대가 되는 경우 컴퓨터 계산 범위를 넘어가므로 오류가 발생하고, 무한소가 되는 경우 0이 되어 버리므로 아예 움직이지 않게 된다. 따라서 이런 경우를 방지하기 위해 알고리즘을 구현하는 과정에서 적절한 수준에서 크기를 재조절 해주어야 한다.


이렇게 했어도 결국 최적화 지점 근처에서 한번에 너무 멀리 가버리면 망하는데, 그래서 a에 R을 곱해주는 것이다. R의 부호는 최적화 방향을 결정하고, R의 크기는 한 스텝의 크기를 조절한다. R은 최적화 지점에 가까워질 수록 그 크기가 작아지므로 최적화 지점 근처에서 천천히 움직이게 해 준다. 또한, 실수로 너무 멀리갔을 경우 다시 무작위로 크게 움직이도록 하므로 최적화 속도를 빠르게 할 수 있다.


이 알고리즘의 수렴성은 통계적으로 보장된다. 즉, 무한히 오래 돌리면 반드시 최적점에 수렴한다. 하지만 이것은 반대로 문제가 되는 부분이기도 한데, R의 크기가 계속해서 작아지므로 수렴 속도가 점점 느려진다. 그래서 최적점 근처에서 "운이 좋아서" 최적점에 매우 가까운 점으로 뛰어들지 않는다면 계속해서 최적점 근처에서 헤메고 다닐 수 있다.



by snowall 2016. 12. 23. 23:29