2010/09/09 23:46
크리에이티브 커먼즈 라이선스
Creative Commons License
아....

시간이 없다고 하기보다는 이상하게 관리 하기 힘들어서... ㅜㅜ

요샌 뭘 제대로 하질 못하네 ㅜㅜ

에휴...;;
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/07/14 17:16
크리에이티브 커먼즈 라이선스
Creative Commons License
이걸 다행이라 할지, 불행이라 할 지 모르겠지만 ㅋ

원래 모토쿼티는 알만한 분들은 다 알겠지만, 드로이드라는 제품을 국내에 출시하면서 이름만 바꿔서 나온 것이다. 나온지 꽤.... 된 제품으로서 사양 자체는 갤럭시 A 랑 비교하면 적당하다 싶을 정도.

시간 관계상 뭔가 사진을 마구마구 포함시켜서 적긴 애매하지만....
대표적인 장, 단점 2개를 들자면... 어디까지나 개인적인 생각이지만.

장점

1. 공짜 안드로이드폰...(단연 최고 -_-b)
2. 쿼티 자판

단점

1. 무게...
2. 악세서리 부족
3. 기본 주소록 병맛...

정도?

사실 돈이 없어서(!!!) 이놈을 고른 것도 있지만, 나온지 오래된 제품에 워낙 평이 좋았기 때문에 궂이 크게 고민할 필요가 없었다는 것도 한몫했다. 한마디로 나온지 꽤 된 제품이기에 여러모로 최적화가 좀 되어 있는 상태이며, 국내에 그 제품 그대로 나온 덕분에 큰 어려움 없이 사용할 수 있었던 것 같다.

터치를 처음 써보기 때문에 이부분은 사실 뭐라 말하기가 난처하다. 안쓰던 습관이 있다보니 자꾸 손으로 스쳐지나가듯이 건드리는 바람에 이상한거 눌러대고... 전화 했는데 다른거 누르면 꺼질줄 알고 다른거 눌렀다가 안꺼지고 계속 걸고 있어서 겁나 당황해서 전원을 내려버리질 않나... -_-;;;;; (가운데 빨간 버튼하나만 눌렀으면 되는거 였는데... ㅜㅜ

여튼,
아직은 적응에 시간이 좀 필요하지만! 여러모로 좋은 것은 틀림 없는듯. 특히 쿼티자판은... 어후... 이건 뭐 ㅋㅋㅋ 최고 -_-b

정리하자면,
1. 나온지 오래 된 만큼, 여러모로 최적화가 잘 되어 있는듯 해서 큰 불편없이 사용할만 하다.
2. 잊지말자 멀티태스킹... 전화 걸고 있으면... 다른 어플로 넘어가도 계속 건다... ㅜㅜ
3. 확실히 묵직한게 무게감이 꽤 나간다.

시간 나는대로 사진이랑 같이 어떻게 쓰고 있는지 한번 정리해서 올려봐야겠다. 그럼 그냥 지나가던 어떤 고수분께서 어떤걸 깔면 더 좋아질지 말씀해 주겠지...?!
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/07/05 13:20
크리에이티브 커먼즈 라이선스
Creative Commons License

로봇 게이트 생성 기법을 4족 보행 -> 휴머노이드로 이전하면서, 해공간의 특성 분석이 필요해서 몇가지 샘플트리에 대해 적합도 공간 변화가 어떤지 체크해본 그래프이다. 4족 보행 로봇의 경우 네 발로 지탱하는 특성 때문에, 안정성에 대한 지표가 크게 변하지 않지만, 휴머노이드는 넘어짐이라는 특성이 발생하기 때문에 아주 작은 변화에도 결과에 매우 큰 영향을 주는 현상이 나타날 수 있다고 생각했고, 그것을 증명하기 위한 그래프 자료이다.

아래와 같은 각각의 트리에서 ERC 값, 즉 실수값을 P1, P2, ... ,P8 의 변수로 표현하여, 각각 0.001 씩 증가시키면서 해공간의 변화를 나타낸 것이다. x 축은 0.001씩 몇번이나 증가 시켰는지를 의미하며, y 축은 적합도값을 의미한다.

HP:
 (/ (/ X -1.23399)
    (- X -0.34431))
KP:
 (/ (+ (sin 0.41949)
       (* -0.09291 X))
    (/ (cos 0.20874)
       (sin 0.41949)))
AP:
 (- -0.44653 -0.39964)

적합도 함수는 거리를 기반으로 한 형태이며, fitness = 0.8 * 전진거리 - 0.2 * 좌,우 틀어짐 으로 사용한다. 또한, 넘어지거나 유도한 방향으로 움직이지 않을 경우, 적합도를 0 으로 할당한다.


결과를 보면 실수값의 아주 미묘한 변화에도 해 특성이 매우 심하게 변동됨을 확인할 수 있다.
그러나 P5 변수 후반부를 보면, 크게 변동하지 않는 후반부(71~이후)가 발생하는데, 이는 조금은 의외의 결과이다. P4, P5, P6 모두 초기값이 양수이며, 동일한 형태로 증가하고, 최종적으로 증가된 결과가 시뮬레이터에 정밀하게 반영되기 어려울 수 있는데, P4, P6 는 중간에 적합도값이 음수값으로 크게 가라앉는 형태를 확인할 수 있다. 그러나 P5 에서는 71~이후 의 결과가 계속적으로 동일한 결과가 나타났으며, 생각과는 다른 해공간 특성을 가지는 것을 확인할 수 있다.

결론적으로 저러한 예외가 발생함에도 불구하고, 아주 미묘한 실수값에 의해 매우 큰 변동 수치의 적합도를 갖는다는 사실에는 변함이 없다. 즉, GP 자체의 구조적 튜닝도 매우 중요하지만, 이러한 문제의 경우 파라미터 수치의 중요성도 매우 높다는 사실을 확인할 수 있다.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/06/26 19:01
크리에이티브 커먼즈 라이선스
Creative Commons License

아는 만큼 보인다는 말은 공부를 하면 할수록 와닿는 말이다.

로봇의 보행에 대해 아무것도 모르던 시절, 그저 논문을 보면 아 그냥 그런가보다... 여기선 이렇게 저기선 저렇게... 이런식으로 오로지 보행의 "방법"에 대한 것만 보였다. 아무것도 모르던 상태에서 이것을 새롭게 개선시켜나갈 방법도 묘연하고, 이것에 대해 "다룬다" 라는 말이 무색할 정도로, 그저 이것이 어떤 것이다 를 아는 것도 힘들었었다.

하지만 그 당시엔 그것만으로도 충분했다. 그렇게 시간이 흐르고 흘러서 몇년이 지나고 나니, 로봇의 보행에 대한 수 많은 이론들을 접하게 되고, 이해하게 되었으며, 왜? 어째서? 라는 의문과 함께 "방법" 보다는 이것이 적용된 "이유" 라는 것에 초점이 더 맞춰지게 되었다.

방법론적으로 매우 단순한 것임에도 그것이 가지고 있는 타당한 "이유". 즉, 타당한 이유에 대한 적절한 접근 방식을 통해 목표를 향해 다가가는 느낌을 주는 그런 것들이 있다. 예전에는 알 수 없었던, 이제는 이해할 수 있고, 느낄 수 있는 그들이 가지고 있는 철학과 그 단순하면서 오묘함이 주는 아름다움을 보면서 다시 한번 아직은 멀었다는 생각을 하게 된다.

시간이 좀 더 흘러 가까운 미래 혹은 언젠가는 다른 사람들이 나의 철학과 결과에 주목하고, 그것에 공감할 수 있는 무엇인가를 하길 바란다.

저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/06/20 00:31
크리에이티브 커먼즈 라이선스
Creative Commons License
내가 주로 연구하는 것은 최적화(Optimization)이다. 학습에 대해서는 분명 최적화만큼의 지식이 없으며, 이에 대해 여전히 상당한 혼란을 겪고 있음을 사전에 밝힌다.

최적화는 일반적으로 수학에서 많이 쓰이는 용어이며, 가장 대표적인 예로는 실수 최적화가 있다. 어떠한 주어진 함수 f(x) 의 최대 혹은 최소 값을 찾아내는 문제로서, 미분이 가장 대표적으로 사용되는 기법이다. f'(x) = 0 인 지점을 변곡점이라 하고, 이 변곡점들에서 최대, 최소값이 발견될 수 있다. 유전 알고리즘이나 진화 전략(Evolutionary Strategies) 혹은 PSO(Particle Swarm Optimization) 기법들 또한 이런 최적화를 위한 도구이며, 종종 최적화라는 이름으로 언급되곤 한다.

학습(Learning)이라는 이름으로 불리는 기법들이 있다. 일반적으로 최적화 라는 의미와 비교되는 것은 Machine Learning 에 대한 이야기 인데, 상당히 애매한 부분이 있다. 유전 프로그래밍(Genetic Programming)은 분명 최적화 기법이다. 그런데 어떤 의미로서는 Machine Learning 의 한 부류로 분류되기도 한다[각주:1]. 신경회로망(Artificial Neural Network)은 어떤 의미에서는 학습도 최적화도 아니라고 생각할 수 있다. 그것 자체로는 아무것도 할 수 없고, 이를 특정한 트레이닝 모델에 대해 "학습"을 시켜야 이를 하나의 알고리즘으로서 적용할 수 있다.

사실 학습과 최적화에 대한 경계에 대해 가장 큰 의문이 생긴 이유가 "신경회로망" 때문이다. 분명 신경회로망은 어떠한 학습 데이터에 대해 최적의 가중치값을 갖게 하기 위해 "학습" 이라는 과정을 수행한다고 한다. 문제는 여기서 발생하는데, 신경회로망의 대표적인 학습 방법으로는 오류역전파 알고리즘(BP, Back-Propagation)이 있고, 이는 특정한 트레이닝 세트에 대해 발생하는 오차를 앞에 있는 노드에 반영 시켜 해당 오차를 점점 줄여나가는 것이다. 그리고 LMA(Levenberg-Marquardt Algorithm)이 있는데, 이는 가우스-뉴튼 메소드의 확장으로서 Non-linear least square problem 을 해결하는데 사용한다.

바로 여기서 발생한 문제다. 분명 LMA 알고리즘은 Non-linear least square problem 에 대한 최소의 error 값을 찾아내기 위한 알고리즘이다. 또한, 이 알고리즘은 최적화 알고리즘의 성능 테스트에 대표적으로 사용되는 Rosenbrock Problem 을 해결하기 위한 방법으로도 사용된다. 그런데 이를 신경회로망에서는 학습 알고리즘으로 분류하기도 한다[각주:2].

분명 어딘가에선 "학습" 이라는 이름으로 불리고 있지만, 이것들이 엄밀히말하면 "학습"이라고 할 수 있을까? 만약, 위의 논문에서 사용하는 바와 같이 신경회로망의 "학습"을 위한 도구로서 사용된 알고리즘을 "최적화"라는 기법으로 말하지 않고, "학습"이라는 기법으로 소개한다면, 그렇다면 NEAT(Neuro-Evolution of Augmenting Topologies)와 같은 기법[각주:3] 또한 최적화라 분류하지 말고, "학습" 이라는 형태로 분류해야 하는가? (NEAT는 유전 알고리즘을 통해 신경회로망을 구축하고 가중치값을 조절하는 기법이다.)

학습이건 최적화건 본질적으로는 중요하지 않을 수도 있다. 어디까지나 내 생각이지만, 사람이 느끼기에 학습이라 불린다면, 어떠한 것이든 적응할 수 있을 것 같고, 인간이 학습한다는 것을 생각하기 때문에 보다 나은 어떠한 결과물을 만들어낼 것이라는 일종의 기대감 같을 것을 줄 수도 있다. 그런데 최적화라 한다면, 분명 이는 어떠한 특정한 환경에 대해 최적의 결과를 만들어낼 것 같은 기대감을 갖게 한다. 분명 하나의 기법에 대해 다른 용어를 사용해서 나타낸 것이지만, 이것이 적용될 환경에 대해 나타날 결과가 다르게 느껴질 수 있다는 것이다. 나만 그렇게 생각할 수도 있지만 말이다.

어쩌면 학습과 최적화라는 용어는 좀 더 명확하게 표기해야되는 것이 아닐까? 어떤것들은 어떠한 특정 목적에만 딱 부합될 수 있는 최적화의 접근방식인데도 학습이라는 표현을 사용하곤 한다. 물론 최적화 접근 방식인데도 학습이라는 용어를 쓰는데는 그만한 이유가 있겠지만, 이것에 대해 적용된 기법 자체에 초점을 두고 명확하게 표현하는 것이 좋지 않을까?

  1. http://en.wikipedia.org/wiki/Machine_learning 물론 위키의 신뢰성을 봤을 땐, 누군가 편집한 사람의 개인적인 의견일 확률도 높다. [본문으로]
  2. Bogdan M. Wilamowski, "Neural Network Architectures and Learning Algorithms, How Not to Be Frustrated with Neural Networks", IEEE INDUSTRIAL ELECTRONICS MAGAZINE, DECEMBER 2009. [본문으로]
  3. http://www.cs.ucf.edu/~kstanley/neat.html [본문으로]
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/04/29 02:20
크리에이티브 커먼즈 라이선스
Creative Commons License
대량의 슈퍼 초 노가다가 생겼었다는 슬픈....

어쨌든

요새 관심갖는 것들 대표적인 몇가지만

1. 실시간 처리가 가능한 진화연산

- 진화연산을 조금이라도 해본 사람은 알겠지만, 진화연산이라는 작업 자체가 원하는 결과를 얻기위해 엄청난 반복 연산을 요구한다. 덕분에 매 순간순간 환경이 바뀌거나 매우 짧은 순간에 결과를 도출해야 하는 작업에는 사용할 수 가 없다. 그렇기 때문에 진화연산을 연구하는 사람들이 진화연산을 실시간으로 적용할 수 있는 방법이 있지 않을까? 하다가 나온 방법들이 Rapid Convergence 라고 불리는 기법들이다. 
- 여기서의 목표는 말그대로 얼마나 빠르게 사용 가능한 해를 찾아내느냐에 있다. 기존의 기법들에 선택압을 조절하여 무진장 빠르게 해를 찾는 것과는 다르다. 이때의 해는 거의 대부분이 지역적인 최적해이지만, Rapid Convergence 기법들의 목표는 이러한 지역적 최적해중 에서도 그나마 더 나은 것들, 혹은 완전히 전역적 최적값을 찾는것을 목표로 한다.
- 하지만 곰곰히 생각해보면 그것을 평가하는 일 또한 대단히 어렵다. 기존에 존재하는 이러한 반복적인 형태의 알고리즘에서 최적해를 찾아가는 속도를 증가시키는 것과 이것에 대한 차이, 그리고 어떻게 판별하는 것이 올바른 판별법이 될것인가에 대한 것 등등.. 아직은 좀 문제가 많다고 생각할 수 있다.
- 이번에 EvoStar 2010 Conference 에서 로봇에 대해 Rapid Convergence 는 아니지만, 기존에 있던 결과값을 군집으로 재구성하여 사용하는 형태로 실시간 적용하는 알고리즘이 발표되었다고 한다.

2. NEAT(NeuroEvolution of Augmenting Topologies)

- NEAT 는 신경망을 진화적인 기법으로 구축하는 것으로서, 기존의 신경망과 달리 학습데이터가 없어도 된다. 진화적인 기법이기 때문에 적합도 함수를 정의하면 그만이고, 여기서 학습 데이터가 없어도 된다는 것은 기존의 신경망을 진화시키는 기법들이 학습 데이터와의 오차를 통해 Weight 를 조절하는 방법을 취하고 있지만, NEAT 는 적합도 함수를 전혀 다른 형태로 정의해도 신경망을 구축할 수 있다는 것이다.
- 이건 상당히 큰 발전이라 할 수 있는데, 신경망이 갖고 있는 적응적인 특성은 다른 알고리즘과 차별화 되지만 학습 데이터를 구축하기 까다롭다는 문제가 있었다. 그리고 이런것들이 있다 하더라도 구조나 파라미터를 전부 최적화 한다는 것이 상당히 피곤한 일이 었는데, 이걸 진화적인 기법으로 자동으로 튜닝하여 발전한다는 것이다. 하지만 역시 진화적인 기법의 가장 큰 단점이 이 안에도 내포되어 있는데, 지역적 최적점에 도달할 확률도 그만큼 높다는 것이다. 그래서 기존의 신경망을 학습시키는 방법과 적절히 조화를 시키면 상당히 좋은 결과가 나온다. (실험해보니 오우 만세 lol

3. GPGPU(General Purpose on Graphics Processor Units, 틀렸을수도... -_-)

- 이건 뭐 워낙 유명해서 딱히 설명할 필요도 없다.
- 다루는 알고리즘들이 대부분 반복적인 연산을 취하다보니 GPU 를 적용하면 속도가 참말로 아름답게 빨라진다. 몇가지 테스트한 코드가 있긴 한데, 최적화도 덜되고 좀 부끄러워서 공개를 못하고 있다. 언젠가는 뭐 공개할 거 같지만;;; 어쨌든! 효과는 진짜 아름다움.

4. 진화연산을 위한 진화연산

- 최고로 관심있는 분야. 진짜 Best of Best
- 3년전부터 생각하던건데, 그땐 실력이 모자라 이걸 어떻게하면 좋을까 라는 막연한 생각 뿐이었지만 스페인에서 이미 시도한 바가 있다. (3년전에 시도 했으면 거의 동시에 결과가 나왔을텐데... )
- 하지만 그들이 한 것도 단점이 있고, 내가 하려는 바와는 약간 다르기 때문에 도전해볼만 하다라고 생각한다.

5. Central Pattern Generator

- CPG 가 갖는 의미는 상당하다. CPG 모델 자체에 Feedback이 나타나있진 않지만, 단순히 보행에 관련된 보행 신호 발생기로서의 CPG 의 의미는 다른 그 어떤 수학적 모델보다 아름답지 않을까? 기존에 많이 사용되는 제어기법이나 I.K. 를 계산하여 자취를 따라가는 방식들이 갖는 의미와는 또 다른 의미를 갖는다.
- 결국 휴머노이드가 진짜 인간과 같은 보행을 해야한다고 생각하면 인간이 걷는 방식과 동일한 방식으로 걸어야 될 것 같은데, 인간이 CPG 를 이용해서 보행을 하니 CPG야 말로 보행 알고리즘에 대한 가장 기본적인 시작이 되어야하지 않을까 싶다.
- 그러나 역시 해외에서도 시도하고 있지만, 아직까지 올바른 모델을 만들어내기 어려운 부분이 인간이 갖고 있는 보행에 대한 특성을 어떻게 수식적으로 반영하는가 이다. 그중에서도 특히 영상정보를 보행에 반영하는 부분은 거의 이루어지지 않고 있다고 봐도 된다. 물론 영상 정보에서 이동해야할 경로를 얻어내고 이를 수정하는 것은 많이 이루어지고 있지만, 영상 정보 자체가 2차원의 정보이기 때문에 이것만 가지고 보행에 대한 불균일성을 모두 해결하지는 못한다.
- CPG 자체에 대한 관심도 높지만, 개인적으로는 CPG 라는 기법 자체에 어떠한 형태의 기법을 도입해야 인간이 갖는 영상정보의 반영형태가 이루어질지... 이것이 가장 큰 관심사이다.

정말 몇달간 포스팅 자체를 생각하지 못할만큼 뭔가 이상한 정신세계의 트러블이 있었다.
뭐가 그리 바쁜건 아닌데... 딱히 바쁘지 않은것도 아니고...
아니다.. 바쁜가? -_-;;;;

어쨌든.
세상엔 참 신기한게 많다는 이상한 결론.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/03/21 03:15
크리에이티브 커먼즈 라이선스
Creative Commons License
언젠가부터 필기구를 통한 연구노트 작성이 의무화되어가는 것 같다.
사실 연구하는 사람이면 누구나 자기자신이 하는 연구에 대해 여러가지 형태로 정리해두겠지만, 나는 되도록이면 전자화된 문서형태로 정리해두곤 한다. 그날 생각하고 의논된 사항, 그리고 실험 결과들에 대해 노트프로그램을 사용해서 기록하곤 하는데, 일반적인 전자화된 문서 형태는 이러한 연구노트로서 인정받을 수 없다고 한다.

연구노트로서 인정받기 위해서는 아래와 같은 조항을 만족해야만 한다.
 

더보기


연구노트를 작성한다는 취지와 그 내용은 분명히 좋지만, 연구 기록들을 전자화해서 보관하는 것이 일상화되어 있는데, 연구노트로 인정받기 위한 기록물은 반드시 종이와 펜을 이용하여 기록해야 한다고 한다. 전자화된 기록을 일일이 다시 종이와 펜을 이용해 재기록한다는 것은 생각보다 귀찮은 작업이다. 물론 애초에 전자화된 기록이 아닌 종이와 펜으로 모든 실험내용을 기록하면 되긴 한다. 그러나 상식적으로 전산 관련일을 하고 있는 사람들이 실험 기록이나 데이터에 대한 분석을 그것이 있는 자료에 바로 기록하는 것이 효율적일까? 그렇지 않으면 그것을 모두 손으로 기록하고 거기에 대한 분석을 추가적으로 기입하는것이 효율적일까?

물론 전자연구노트도 단점이 없는것은 아니다. 전자연구노트를 사용할 경우 해킹에 의해 모든 데이터를 누군가에게 빼앗길 수 있다는 단점이 있다. 그리고 그림을 그리는 것도 타블렛이나 여타 장비를 사용하거나 마우스 그림에 아주 익숙하지 않는 한 종이와 펜을 사용하는 것이 더 나을 수 있다. 그러나 대량의 데이터를 기록하기에 편리함과 효율성, 보존성을 따지자면 아무래도 종이와 펜 보다는 전자 연구노트가 더 낫지 않을까 싶다.

2008년 6월쯤인가 국내에서 전자화된 연구노트를 개발하여 무료로 보급한다는 기사를 본 적이 있다. 개인적으로 연구 기록을 남기기에 어떤 프로그램이 좋을까 이것저것 재고 있을 때에 이러한 기사를 보게되어 관심을 갖게 되었다.

더보기


 


그런데 아직까지 별 다른 소식은 없다. 국내 벤처기업이 특허청에서 연구노트 프로그램을 무료로 제공한다고 했을 때, 그 회사에 대한 타격 및 기타 다른 통상 문제등이 발생할 수 있다는 주장을 했었는데, 그 때 이것이 조용히 사그라든건 아닌가 싶기도 하다.
(http://www.womannews.net/detail.php?number=652&thread=22r07)

정확한 속사정은 잘 모르겠지만 꽤 아쉽다. 무료가 아니라 개인, 학생, 회사, 학교 등 라이센스 별로 저렴한 가격에 배포가 된다면 사는 것도 고려해볼만한 시스템일텐데, 지금은 너무 비싼 가격에 도저히 꿈도 꿀 수 없으니 말이다.

분명 연구노트를 작성한다는 것은 연구자의 의무이지만, 사실 평상시에 데이터를 전산화시키는 것이 습관화되어가는 요즘엔 빨리 전산화된 새로운 시스템을 공급해주는 것이 좋지 않을까 생각된다. 지금까지 기록해오던 습관을 종이에 기록하는 습관으로 다시 바꾸자니 어쩐지 뭔가 어색하다.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/03/03 18:01
크리에이티브 커먼즈 라이선스
Creative Commons License
GAlib 가 가볍고 잘 만든 Genetic Algorithm Library 인데

개발 중단된지도 오래되었고, 현재 최신버전의 컴파일러에서 컴파일은 되지만 링크가 되지 않는 문제가 있다.

http://www.hyperdrifter.com/software/tutorial/compiling_galib_using_microsoft_visual_cpp.html

위의 링크에서 말하는대로 컴파일하면 링크이상없이 잘 수행되는 것을 확인할 수 있고,

첨부된 파일은 귀찮고 단지 library 파일만 쓰고싶은 사람을 위한 것이다.

저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/02/17 22:55
크리에이티브 커먼즈 라이선스
Creative Commons License
참...

기분이 묘하군요..

별거 아니라는 생각을 하기는 하는데

왠지 그냥 좀... 아버지 생각도 나고, 집에 오는길에 가슴 한켠이 좀 짠 하군요.

아... 나이먹는건가... 어쨌든 잘 치뤄야겠군요.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/02/17 11:40
크리에이티브 커먼즈 라이선스
Creative Commons License
매번 공지사항을 확인하기 때문에 가장 먼저 공지가 올라오면 바로 행동으로 옮기는 편입니다.
그런데 꼭 행동으로 옮긴 뒤에는 공지의 내용이 바뀌어 있군요.

빨리 처리를 해놓고 맘편히 다른걸 할 생각에 그러는데 어째서 매번 이따위인지 참...

재미있는건 그래놓고 왜 공지를 확인 안했냐고 뭐라 하네요 -_-

아 즐거운 병신들 진짜 ㅋㅋ
글이란건 올려놓고 수정하는게 아니라 올리기 전에 검토하고 수정해야된다는거 모르나 ㅋㅋ
조회수가 1이라도 있을 경우엔 그 글은 누군가 봤다는건데 그런 생각 자체를 안하는거냐 병신들아 ㅋㅋ
울학교 행정 하고있는 빠가사리들은 제발 생각좀 하고 살자
그래놓고 학생들이 확인을 안해서 문제가 되었느니 하는 이야기는 제발 더더욱 하지말고 :)

P.S. 요새 세상이 원래 공지라는건 변하는거야 라고 말하고 있는지도 모르겠습니다.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/02/07 20:55
크리에이티브 커먼즈 라이선스
Creative Commons License
로봇을 연구하는 사람의 목적은 사람 마다 다르겠지만, 일반적으로 사람이 하는일을 로봇이 대신하게 해주자 라는 것입니다. 반복적인 조립이나 속칭 3D 작업 등이 대표적인 예가 될 수 있겠습니다.

가끔 상상하는 것인데,
그런데 만약에 말입니다 만약에... 이 모든것이 로봇으로 대체될 수 있다 라고 가정한다면,

과연 그 사회는 우리가 꿈꾸는 인간은 편하게 쉬고 놀고 먹기만 하는 그런 사회일 수 있을까요?

혹은

일반적인 상상과는 정 반대로 대량의 실업자가 양산되어 소수의 몇명만을 위한 그런 사회가 되지는 않을까요?

결국 이러한 로봇들을 구매하는 입장은 회사가 될 것인데, 인간을 모두 대체할 수 있는 로봇을 구매하는 그 회사에 원래 있던 사람들은 과연 어디로 가야하는 것일까요? 그렇게 점점 기계와 로봇에게 인간이 할 수 있는 일들을 빼앗겨 가는데... 어쩌면 이건 서로간의 밥그릇 싸움으로 번질 수도 있지 않을까? 라는 생각이 듭니다.

물론...

그런 걱정 따위 어차피 먼 미래의 일이라고 생각하고 있지만 말입니다... 하지만 그런 날이 다가 왔을 때, 과연 인간들은 어떻게 대처해야할 지 조금은 고민을 해봐야하지 않을까 싶네요.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/02/07 00:54
크리에이티브 커먼즈 라이선스
Creative Commons License
CUDA 를 사용한 병렬 프로그래밍을 하면 제일 더러운 것이 디버깅 입니다.
사실 CUDA 뿐 아니라 모든 병렬 프로그래밍이 제일 변태같은게 디버깅이죠 -_-;;

어쨌든 nVidia 에서 Visual Studio 2008 에 내장되는 형태로 Nexus 라는 디버거를 내놓았습니다.

http://www.nvidia.com/object/cuda_get.html 에 보시면 하단부분에
NVIDIA’s “Nexus” (code name) for Visual Studio now in Beta: Sign up today!
라는 부분에 Sign up 을 하면, 약간의 심사(?)를 거친 후에 이메일로 결과가 옵니다.

저는 한 2주정도 걸린것 같은데요

1. Two (2) computers running Windows Vista or Windows 7 on the same network, one to host Visual Studio, and a target for running your application.

2. One (1) G92 or GT200 based GeForce, Quadro or Tesla GPU in the target machine.


현재는 G92 나 GT200 아키텍쳐를 사용한 nVidia 칩셋을 지원 하는군요.
흑... 저는 G98M 아키텍쳐라 다른 PC 로 해봐야 되네요

아래의 동영상은 Nexus 를 사용해 디버깅을 하는 모습입니다.

Video #1: Parallel Nsight debugging CUDA C in Visual Studio 2008
Debugging CUDA C, Memory and Variable Inspection, Thread Focus


저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/02/02 14:57
크리에이티브 커먼즈 라이선스
Creative Commons License
PID 컨트롤러를 코딩을 하다가 알게 된 사실이다.

원래 수식정리할때는 유심히 보지 않았는데,


이 상태에서

Kp 와 Kp Ts/Ti 항은 서로 동일하다...

결국 다시 정리하면,


이렇게 될 수 있다.


CPG 관련 여러 논문을 검토하면서 PID 제어를 썼다는 말이 없길래 다시 한번 수식을 검토해보니, Discrete PID Velocity 모델을 사용할 경우 PID 제어를 하는 것과 PD 제어를 하는 것이 수식적으로 차이가 없다.

2010년 3월 11일 수정
- 아마도 해당 논문들도 잘못된 자료를 레퍼런스 하는 과정에서 나타난 오류라고 생각된다.
- 결론적으로 Discrete Velocity 모델에서 PID 모델과 PD 모델은 서로 다른 형태를 가지며, 결과도 다르게 도출된다.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/01/23 19:43
크리에이티브 커먼즈 라이선스
Creative Commons License

진짜 넥슨에서 사업을 접을때가 되었나요

오랜만에 들어간 마비노기에 이게 무슨 시몬의 도박인가요 -_-;;;;

물론

사서 지르면 어쩌면 좋은 아이템을 얻을 수 있긴 하지만...

현실에서 하는 도박질하고 다른게 뭔가요 이게 ㅜㅜ

아...

하드유저는 아니지만 올드유저로서 꽤 많이 실망입니다.

이벤트를 하려면 게임 내에서 뭔가 새로운 것을 추가해 줬으면 좋겠다 라는 거지

이런식으로 도박질이나 하게하는 건 아닌거 같아요 ㅠㅜ
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/01/15 14:55
크리에이티브 커먼즈 라이선스
Creative Commons License
http://wibro.show.co.kr/ktwibro/customer/down_list.html

작년 12월 31일자로 업데이트 되었네요

학교에서 와이브로 매달 대여하고 있는데,

윈도우 7 으로 업그레이드 하고나서 잘 안되서 고민했는데

업데이트가 되어 있었군요 ㅋㅋ

모처럼 쓰려고 했는데, 불편한 다운그레이드 작업 안해도되니 만세입니다 :)
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/01/13 14:40
크리에이티브 커먼즈 라이선스
Creative Commons License
해지 관련 문제에 대해서 저같이 부딪히는 분들은 별로 없는 것 같아서 올려봅니다.

저는 원래 아버지 명의로 스카이라이프가 가입되어 있었는데, 명의 변경없이 지속적으로 쓰다가 해지하려고 할때 문제가 발생했습니다.

처음엔 원래는 HD 로 전환을 할까 생각을 했었습니다. 그래서 HD 전환을 문의 했더라죠. 그랬더니 한달에 24,000 원 정도 지불해야 한다고 합니다. 그래서 안한다고하고 해지하는 쪽으로 방향을 선회했죠.

그날 통화할때는 해지하는데 아무런 약정도 없으시기때문에, 바로 해지가 가능하고 서류 두개를 보내주신 후에 다시 연락을 주시면 됩니다라고 하는군요. 돌아가신 아버지 명의로 되어 있었기 때문에,  아버지 사망 진단서와 저의 신분증을 보내주면 된다고 합디다.

그리고 그 다음날 전화가 걸려 와서는 해지하시는데 3년 약정이 되어있기 때문에, 위약금 22만원을 지불해야 해지하실수 있다며, 차라리 19,000 원에 HD 로 전환해드릴테니 그걸 보시는게 어떻겠냐고 회유를 하더군요. 하루만에 갑자기 제가 3년 약정이 되어 있다면서 위약금을 지불하라뇨.

미친게 아니냐며 따지고, 스카이라이프 홈페이지를 가서 내용을 확인해보니 예전엔 안보였었는데, 3년 약정이라는게 되어 있는 겁니다. 참 즐거운 새끼들... - _-
==> 이 부분은 어쩌면 개인적으로 꼼꼼하지 못해서 확인 못했을 수도 있습니다.

바로 다른분들이 방통위에 민원제기하면 전화올거라그래서 위의 내용을 상세히 적어서 방통위에 민원을 제기 했습니다. 그랬더니 전화가 와서는 돌아가신 분과의 약정에 대해서는 무효가 된다면서 해지에 대한 어떠한 약정도 없으시다고 하더군요. 그러면서 사망 진단서와 본인 신분증만 양면으로 복사해서 보내달라고 하네요.

그런데 여기서 또 곰곰히 생각해보니 사망 진단서라는건 돌아가신 병원에나 가서 때야하는 서류인데, 비용이 3만원 가량 든다고 하거든요? 그래서 다시 또 물어 봤습니다. 반드시 사망 진단서만 가능하냐고. 그랬더니 그제서야 제적등본을 때오라고 이야기 합디다.

이런 아름다운새끼들 진짜 -_-... 결국 결론은 이렇습니다.

1. 돌아가신 분 명의로 가입되어 있는 경우, 그 이전까지의 가입 약정은 아무런 효력을 발휘하지 않습니다. 물론 그 이후에 명의 변경을 했거나, 계약서에 서명을 하셨다면 이야기가 달라지겠지만요.

2. 돌아가신 분에 대한 증명은 제적증명서로 충분하므로, 괜히 사망 진단서 때오라는 말에 바로 사망 진단서를 때시지 말길 바랍니다.

3. 자꾸 뭐라고 하면, 그냥 간단하게 방송통신위원회에 고충민원 제기 하십시요. 정확히 2시간만에 모든 처리가 끝났습니다.

혹시 저처럼 부모님 명의로 되어있었는데 돌아가셨거나 한 경우에는 이와같이 처리하시면 될 것 같습니다. 해지에 관련된 여러가지 정보가 있었지만, 조금 특이한 경우라 어떻게 해결할 지 고민했었는데 최후의 결론은 방통위 였지만요 -_-

저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/01/05 02:05
크리에이티브 커먼즈 라이선스
Creative Commons License

어쩌면 대단히 중요한 일

처음 목표는 GA 의 연산과정중 Evaluation 만을 CUDA 로 수정하여 속도를 가속화시키는 것

그러나

이를 실제 코드로 구현하여 수행해 보았더니 생각보다 빠른 속도가 안나온다

그 이유인즉 CPU -> GPU 간 Memory Copy 연산 및 GPU 상의 Memory Allocation 때문인데, 다른 여러 논문에서 GPU 로 GA 를 수행할 때 속도가 증가되었다고 했던 것들을 검토해 보았더니 전부 GPU 상에서 모든 유전 연산을 수행하고 있었다.

분명 단일 연산만을 놓고 보았을 때는 GPU 상에서 Evaluation 을 한번 처리한 것이 가장 빠르지만, 유전 연산을 CPU 상에서 하게되면, 결국 Memory 할당과 복사를 반복하게 되어 속도가 느려지는 것이다. Evaluation 연산을 하기 위해서는 반드시 GPU 상의 메모리에 CPU 의 현재 상태를 복사해야 하니까 결국 이것때문에 반복적인 메모리 복사가 수행될 수 밖에 없는 것.

그렇다면 결론은 GPU 상에서 모든 연산을 처리하는 것인가?

뭐 중요한 요소중에 하나는 내 GPU 가 Geforce G105M 256M 이기 때문에 큰 메모리 할당도 어려울 뿐아니라, Stream Processor 수도 부족해서 제 속도 나오긴 어려울 수 밖에 없다는 건데...

동일한 실험 조건
static const int POPSIZE = 5000;
static const int MAXGENS = 100;
static const int ITERATION = 200;
static const int NVARS = 10;

GPU 상의 실험 결과(Geforce G105M 256MB)
Durations : 14118.000000 ms

CPU 상의 실험 결과(Intel Core2Duo P8600@2.4Ghz, 4 GB ram)
Durations : 10998 ms

다음엔 Geforce GTX270 876MB 에서 테스트 해볼 예정.
과연 어느정도 시점에서 Evaluation 작업만을 수행할 때 GPU 사용 작업이 속도가 대폭 상승할 수 있을 것인가?

저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2010/01/01 00:05
크리에이티브 커먼즈 라이선스
Creative Commons License
제발 새해에는!!!!!!

...

세상이 조금은 덜 시끄러웠으면 합니다.

아하하 -_-

저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun
2009/12/31 04:33
크리에이티브 커먼즈 라이선스
Creative Commons License
  • 삼족오 덕분에 미투데이 다시 사용? ㅡ.ㅡ 그러나 미지수 ㅋ 2009-12-30 22:35:39

이 글은 SHHyun님의 2009년 12월 30일의 미투데이 내용입니다.

Posted by SHHyun
2009/12/15 16:50
크리에이티브 커먼즈 라이선스
Creative Commons License
감회가 새롭다.
마지막이라니 -_-
아직 대학원생활을 해야하니 그때도 분명 시험이라는 것을 볼테지만,
그래도 시간이 조금더 지나면 이젠 시험이라는 자체가 없어지는 세상에 살게 되는구나...

외우는 건 지지리도 못하는 탓에 시험때마다 무진장 고생했었는데
기분이 참 묘하네...

마지막 시험이지만 별 부담없이 잘 봤다고 생각이 드는데,
제발 좋은 결과가 나와서 유종의미를 잘 거둘수 있기를 빈다.
저작자 표시 비영리 동일 조건 변경 허락
Posted by SHHyun