Mozart라는 언어로 짜본 Prime Function. 일반적으로 Prime function을 짜라고 한다면 제일 먼저 떠올릴 수 있는게 recursive call을 적용한게 될텐데, 이렇게 될 경우에는 결과가 stack에 쌓이면서 push와 pop을 하기 때문에 complexity가 높아진다. 하지만 위와 같이 결과도 같이 recursive call에 넘겨주게 되면, 앞에서 언급했던 것과 다르게 마지막 종료 조건에 의해서 결과가 나타나기 때문에 일반적인 recursive call에 비해서 효율적으로 처리할 수 있게 된다. 강좌에선 후자와 같은 방식을 tail recursion이라고 정의한다.
집에서 운용하고 있는 NAS 중에 DS713+ 라는게 있다. Synology 사에서 나온 중급형 NAS인데, 2bay에 Intel Atom D2700 프로세서를 장착하고 있다. 다른 NAS를 보면 CPU 성능이 낮기도 해서 사람이 많이 접속한다던가 하면 랙이 생기는 경우가 많은데, 이건 그럭저럭 괜찮은 성능을 보여준다. 한가지 안 좋은 점은 기본적으로 장착되는 램이 1GB 라는 것이다. 1GB... 그래서 그런지 프로그램 여러개를 동시에 실행시키면 병목현상이 나타나기도 했다. 이건 좀 아니다싶어서 램을 좀 업그레이드를 해야겠다는 생각이 들었고, 이것저것 찾아봤다. 그런데 외국에 나와있는 내용이나, 우리나라 포럼에 있는 내용이나 맞지 않는 부분이 있기도 하고... 어디는 보면 저전력용 램을 쓰면 인식이 안..
흔히 뭔가 정보를 표현할때 예를 드는 것중에 하나가 위와 같은 동전이다. 여기선 보통 head를 1, tail을 0으로 표현해서 정보를 나타내게 된다. 만약 이렇게 얻은 정보를 누군가에게 전달한다고 가정을 해보자. 이때 전달과정에서 뭔가의 오류가 발생한다면, 어떻게 될까? 분명 전달하고자 하는 사람은 head를 전달하고자 했음에도 최종적으로는 tail이 전달된 케이스가 그런 경우일텐데, 이렇게 한가지 정보가 잘못 전달된 케이스를 single bit error라고 한다. 당연히 이런 경우를 방지하기 위해서 이런 오류를 탐지하고 수정하는 절차가 필요할 것이다. 여러가지 방법이 있겠지만, 이론상으로 다루는 내용 중 하나가 바로 Hamming Distance라는 것이다. Hamming Distance란 원래의 ..
오늘은 딱 Nike Running+를 등록한 지 1년이 되는 날이다. 사실 생각도 안했는데, 막 뛰고 오니까 뱃지로 나왔다. (혹시 뭔지 궁금한 사람은 자기가 처음 등록한 날을 기억해뒀다가 1년뒤에 뛰어보기 바란다. 어쩌면 그것보다는 그냥 매일 뛰다가 어쩌다 아는게 더 쉬울지도 모르겠다...) 간당간당하게 500km를 못 뛰었는데, 작년에 딱 40km만 뛰고 올해 뛴거니까 대략 8개월동안 450km 정도를 뛴 셈이다. 군대있을 때 행군도 그만큼 한거 같은데, 딱 보면 언제 요기까지 뛰었지 하는 느낌부터 든다. 아무래도 직업자체가 매일 컴퓨터를 붙잡고 있는 직군이다 보니까 의자만 앉아있으면 몸이 금방 뻐근해지는 느낌이 많이 느껴졌고, 그래서 그냥 시간날 때마다 뛰었던게 어느덧 요기까지 왔다. 아무튼 그냥 ..
CowBoom이라는 사이트가 있다. 아마 전자제품에 관해서 관심있는 사람이라면 잘 아는 사이트일텐데, 여기는 일반 새 제품 뿐만 아니라, 외관상 손상이나 단순 반품 물품을 어느정도의 감가상각을 적용해서 판매하는 곳이다. 쉽게 말해서 중고품을 파는 곳이 되겠다. 사실 이 사이트는 도박성이 짙은 사이트 인듯 하다. 운이 좋으면 아주 좋은 상품을 저렴한 가격에 구할 수도 있고, 운이 안 좋으면 정말 외관상 큰 문제가 있는 물품을 비싸게 받아서 어떻게 반품하나 고민할 수 있다. 여기는 외국 사이트이고, 한국에서의 결제를 막고 있기 때문에 보통 배송대행지에 위탁을 해서 구매를 하곤 한다. 나는 여기 딱 두개를 구입하느데 이용해봤고, 생각보다 괜찮다는 느낌이 든다. 물론 이또한 운이 좋아서일수도 있겠지만..내가 구..
이전 포스트에서 일종의 binary tree형식으로 bit을 나열해서 Variable Length Encoding을 구한다고 언급했었는데, Tree를 만드는데도 일종의 규칙같은게 있다. Huffman`s Algorithm이라는 것인데, 한번 잠깐 소개해보고자 한다. 우선 Logic은 다음과 같다. 일단 앞의 예제를 그대로 가지고 오는 것을 생각해보자. 위에서 맨처음 스텝에 언급한 것처럼 가장 작은 확률을 가진 symbol 2개를 바탕으로 하나의 subtree를 만든다. 그러면 이렇게 된다.( 우선 C와 D의 순서는 상관없다. 같은 확률을 가지고 있기 때문에 표현하기 좋게 순서대로 나열한 것일뿐 D가 먼저와도 상관없다.) 그러면 이 subtree내의 확률들을 합쳐서 그 다음 노드에 정의를 하고 그 값을 현..
이전 포스트에서 정보의 표현량이 고정된 방식인 Fixed Length Encoding에 대해서 언급했다. 아마 그 이전 포스트에서도 언급한 바가 있겠지만, Fixed Length Encoding 기법은 변환하기 쉽고, 모든 경우의 수가 같을 때 사용되는 방법이라고 했었고, 이와 반대 급부로 비효율적으로 정보 표현이 낭비되는 케이스도 존재한다고 했었다. 그걸 어느정도 해결하는 방법이 이제 소개할 Variable Length Encoding이다. 이름에서도 표현되는 것처럼 정보의 표현량이 고정되어 있지 않은 방식이며, 경우의 수가 각각 다를 때 이 표현 방식을 쓰게 되면 bit을 효율적으로 처리하면서 정보를 표현할 수 있다. 예를 들어서 다음과 같은 케이스가 있다고 가정해보자. 이와 같이 A, B, C, D..
계속 encoding에 대한 이야기를 하고 있고, 이전 포스트에서는 정보의 표현량이 정해져 있는 기법인 Fixed Length Encoding에 대해서 간단하게 언급해봤다.거기서 마지막에 다뤘던 내용중에 하나가 일종의 이진법의 형식으로 정보가 표현되는 꼴이라는 이야기도 했었다. 그러면 이런걸 처음 접해보는 사람에게는 궁금한게 생길 수 있다. 이 세상의 수에는 소수도 있고, 음수도 있는데 이런 정보는 과연 이런 0과 1로 어떻게 표현하냐는데 대한 것이다. 일단 이번 포스트에서는 음수 표현법에 대해서 다뤄보고자 한다. 우선 음수를 표현하기 위해서는 이진법 표현 규격중에 signed magnitude representation 이라는 방법을 사용한다. Signed 라는 단어에 들어있는 뜻은 "부호가 있는" 이..
지난번 포스트에서 Encoding에 대해서 소개를 했었다. 소개한 내용중에 아주 간단히 나온 내용이 Fixed Length Encoding 이라는 것인데 이걸 조금더 다뤄보고자 한다.그때도 언급했던 것처럼 정보를 표현하는데 있어서 표현량의 크기가 정해진 케이스가 Fixed length encoding인데, 보통 정보가 고르게 분산된 경우, 즉 모든 케이스가 동일하게 나오는 경우에는 주로 쓰는 기법이다.(Equally Likely) 지난번에 만약 이 length가 entropy보다 작은 경우에 정보의 손실이 발생할 수도 있다고 했었는데, 기본적으로는 Entropy 값이 넘는 걸로 length를 정하게 된다. 이와 같이 ABCD를 표현하는데 있어서도 A,B, C, D가는 나오는 확률이 동일하기 때문에 fix..
Encoding이란 말 그대로 정보를 특정 패턴과 mapping을 하는 과정이다. 이전 포스트에서도 이야기했다시피 정보는 거기에 포함된 불확실성을 줄이는데 의미가 있는 것이고, 이렇게 encoding과정을 거치게 되면 그런 목적을 어느정도 달성할 수 있다. 말이 조금 어려운 것일수도 있는데, 실제로 우리가 어떤 정보에 대한 규칙을 정의하고, 여기에 해당하는 정보가 들어왔을 때 그대로 해석하는 것으로 이해하면 좋을거 같다. 예를 들어서 사전에 A는 00, B는 01, C는 10, D는 11이라는 2bit information의 규칙이 정의되어 있다고 가정을 하자. 만약 ABBA라는 정보를 얻고 싶으면 어떤 입력이 들어와야 할까? 당연히 00 01 01 00 이라는 8bit information으로 전달하면..
이전 포스트에서 다뤘던 것처럼 Information을 전달하는데 있어서는 그만큼 적절한 정보량으로도 전달하는게 중요하다. 이게 잘못되면 원하는 정보를 정확히 전달할 수 없을 수도 있고, 혹은 너무 비효율적으로 전달할 수도 있는 것이다. 이런 걸 수치적으로 평가하는 척도를 Entropy라고 한다. 보통 Entropy라는 말자체는 이런 컴퓨터 용어보다는 화학쪽에서 엔트로피의 법칙이라고 하면서 많이 들어봤던거 같은데.. 아무튼 사전적인 정의는 다음과 같다. 간단히 요약하자면 주어진 정보의 평균량 정도가 되겠다. 지난번에 제시한 예시처럼 카드뽑기를 하는 경우에는 물론 카드 하나만 뽑는 케이스도 있겠지만, 혹은 여러개를 뽑는 조건도 있을 것이고, 그 하나하나를 뽑는 조건이 다 다를 수도 있다. 이 모든 것을 전에..
정보를 얻는다의 의미는 무엇일까?해석이야 다양하게 할 수 있겠지만 일반적으로는 각각의 가능성을 가진 사실 중에서 사용자에게 유용한 것을 뽑는 것이 정보를 얻는 것이다. 이 말은 즉, 아주 확정적인 사실(P=1)로부터 정보를 얻을 수도 있고, 혹은 사실이 아닌 것(P=0)으로부터 불확실한 정보를 얻어올 수 있다. 물론 이 경우는 정보라고 하기는 그럴 수도 있겠지만... 사전적으로 정보는 다음과 같이 정의되어 있다. 결과적으로는 어느정도의 불확실성을 해소하기 위해서 주고 받는 데이터를 의미한다. 예를 들어서 트럼프가 있다고 가정을 했는데 여기서 하나 뽑은 카드에 대한 Data로, " 그 카드는 하트모양을 띈다" 라는 것을 받았으면 어떨까? 그 카드는 하트 1일수도 있고, 하트 K일수도 있다. 이렇게 총 나열..
- Total
- Today
- Yesterday
- bias
- reward
- Expression Blend 4
- End-To-End
- PowerPoint
- Distribution
- 파이썬
- Gan
- Kinect
- 한빛미디어
- Variance
- TensorFlow Lite
- 딥러닝
- Python
- Windows Phone 7
- arduino
- DepthStream
- ColorStream
- windows 8
- Kinect for windows
- processing
- Policy Gradient
- Off-policy
- SketchFlow
- Pipeline
- RL
- Kinect SDK
- dynamic programming
- 강화학습
- Offline RL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |