확률 컴퓨팅
Stochastic computing확률적 컴퓨팅은 무작위 비트의 스트림에 의한 연속적인 값을 나타내는 기법의 집합이다. 그런 다음 복잡한 계산은 스트림에서 간단한 비트-와이즈 연산을 통해 계산할 수 있다. 확률적 컴퓨팅은 무작위화된 알고리즘의 연구와는 구별된다.
동기부여와 간단한 예
, [ 0 , [이 (가) 주어진다고 가정하고, 는 p× {\ q을(를) 계산하려고 한다 확률적 컴퓨팅은 산술 대신 확률로 이 연산을 수행한다.
구체적으로는 확률적 숫자(즉 베르누이 프로세스)라고 하는 임의의 독립 비트 스트림이 두 개 있다고 가정해 보자, 여기서 첫 번째 스트림에서 1개의 확률이 이고 두 번째 스트림에서 1개의 확률이 이다 우리는 두 스트림의 논리적 AND를 취할 수 있다.
1 | 0 | 1 | 1 | 0 | 1 | ... | |
1 | 1 | 0 | 1 | 1 | 0 | ... | |
1 | 0 | 0 | 1 | 0 | 0 | ... |
출력 스트림에서 1의 확률은 이다 출력 비트를 충분히 관찰하고 주파수를 측정함으로써 을 임의의 정확도로 추정할 수 있다.
위의 연산은 상당히 복잡한 연산( 과 의 곱셈)을 일련의 매우 연산( b i {\a_{i}\ b_으로 변환한다.
보다 일반적으로 말하면 확률적 컴퓨팅은 숫자를 무작위 비트의 스트림으로서 나타내며 주파수를 계산하여 숫자를 재구성한다. 계산은 스트림에서 수행되며, 및 의 복잡한 연산을 스트림 표현에 대한 간단한 연산으로 변환한다.(재구성의 방법 때문에 이러한 연산을 수행하는 장치를 확률적 평균 연산 프로세서라고 부르기도 한다. 현대적인 관점에서 확률적 컴퓨팅은 확률론적 용어로 계산에 대한 해석으로 볼 수 있으며, 이 해석은 Gibbs sampler로 평가된다. 하이브리드 아날로그/디지털 컴퓨터로도 해석할 수 있다.
역사
Stochastic Computing은 1953년 John von Neumann에 의해 선구적인 논문에서 처음 소개되었다.[1] 그러나, 이 이론은 1960년대의 컴퓨팅이 진보하기 전까지는 완전히 개발될 수 없었으며,[2] 주로 미국과[4] 영국의 일련의 동시적이고 병렬적인 노력을 통해서 개발되었다.[5] 1960년대 후반에는 확률적 계산을 수행하기 위한 특수 목적 하드웨어의 설계에 관심이 쏠렸다. 이[6] 기계들의 숙주는 1969년에서 1974년 사이에 건설되었다. RASCEL은[7] 이 기사에 묘사되어 있다.
1960년대와 1970년대의 극심한 관심에도 불구하고, 확률적 컴퓨팅은 결국 아래에 요약된 이유로 더 전통적인 디지털 논리와 경쟁하는 데 실패했다. 제1회 (그리고 마지막) 확률적 컴퓨팅에[8] 관한 국제 심포지엄은 1978년에 개최되었다; 그 지역에서 활발한 연구가 몇 년 동안 줄어들었다.
확률적 컴퓨팅은 일반적인 컴퓨팅 방법으로 감소했지만, 그것은 여러 응용 분야에서 가능성을 보여주었다. 연구는 전통적으로 기계 학습과 제어에서 특정 직무에 초점을 맞춰왔다.[9] [10] 다소 최근에는 오류 수정 코드를 해독하는 데 확률적 컴퓨팅을 적용하는 확률적 디코딩 쪽으로 관심이 쏠리고 있다.[11] 최근에는 에지 감지, 이미지 임계값 설정 등의 이미지 처리 작업에 확률 회로가 성공적으로 사용되고 있다.[13]
장단점
비록 확률적 컴퓨팅이 역사적인 실패였지만, 그것은 여전히 특정한 문제를 해결하는 데 관련이 있을 수 있다. 언제 관련성이 유지되는지 이해하기 위해서는 확률적 컴퓨팅과 더 전통적인 디지털 컴퓨팅 방법을 비교하는 것이 유용하다.
힘
두 개의 숫자에 n 비트의 정밀도를 곱한다고 가정합시다. 일반적인 긴 곱셈법을 사용하여 회 연산을 수행해야 한다. 확률적 컴퓨팅을 통해 우리는 어떤 비트라도 AND로 조합할 수 있으며 기대값은 항상 정확할 것이다. (단, 표본 수가 적으면 분산이 실제 결과를 매우 부정확하게 만들 것이다.)
더욱이 디지털 승수의 기본 운영은 완전한 애더더인 반면, 확률적인 컴퓨터는 AND 게이트만 필요로 한다. 또한 디지털 승수는 순전히 입력 와이어를 필요로 하는 반면, 확률 승수는 2 입력[citation needed] 와이어를 필요로 한다. (디지털 승수가 출력을 직렬화한다면, 입력 와이어도 2개만 필요할 것이다.)
또한, 확률적 컴퓨팅은 노이즈에 대해 강력하다. 스트림의 몇 비트가 뒤집힌다면, 그러한 오류는 솔루션에 큰 영향을 미치지 않을 것이다.
더욱이 확률적 컴퓨팅 요소는 입력의 도착 시간에 왜곡을 허용할 수 있다. 회로는 입력이 일시적으로 잘못 정렬된 경우에도 제대로 작동한다. 그 결과, 확률적 시스템은 글로벌 시계와 값비싼 시계 유통망을 사용하는 대신 현지에서 생성된 값싼 시계와 작동하도록 설계될 수 있다.[14]
마지막으로, 확률적 컴퓨팅은 비트 스트림을 확장할수록 더 정확해지는 솔루션의 추정치를 제공한다. 특히, 그것은 대략적인 견적을 매우 빠르게 제공한다. 이 속성은 보통 누진 정밀도라고 하는데, 이는 확률적 숫자(비트 스트림)의 정밀도가 연산이 진행됨에 따라 증가함을 시사한다. [15] 그것은 숫자의 가장 중요한 비트가 그것의 가장 적은 비트보다 먼저 도착하는 것과 같다; 가장 중요한 비트가 보통 가장 늦게 도착하는 기존의 산술 회로와는 달리. 일부 반복적 시스템에서는 진행적 정밀도를 통해 얻은 부분적인 솔루션이 기존의 컴퓨팅 방법보다 더 빠른 피드백을 제공함으로써 더 빠른 정합성을 이끌어낼 수 있다.
약점
확률적 컴퓨팅은 본질적으로 무작위적이다. 무작위 비트 스트림을 검사하고 기본값을 재구성하려고 할 때, 유효 정밀도는 표본의 분산에 의해 측정될 수 있다. 위의 예에서 디지털 승수는 숫자를 비트로 계산하므로 정밀도는 - 무작위 비트 스트림을 사용하여 숫자를 추정하고 솔루션 추정치의 표준 편차를 최소 - {\}이 되도록 하려면 는 O( 2 O^{ 샘플이 필요할 것이다. 이것은 업무의 기하급수적인 증가를 나타낸다. 그러나 특정 애플리케이션에서는 확률적 컴퓨팅의 점진적 정밀도를 이용하여 이러한 지수적 손실을 보상할 수 있다.
둘째, 확률적 컴퓨팅은 무작위로 치우친 비트 스트림을 생성하는 방법을 필요로 한다. 실제로 이러한 스트림은 의사 난수 생성기로 생성된다. 불행하게도 (의사-)랜덤 비트를 생성하는 것은 (예를 들어, 완전한 부가물의 비용과 비교했을 때) 상당히 비용이 많이 든다. 따라서 확률적 컴퓨팅의 게이트 수준의 이점은 일반적으로 상실된다.
셋째, 확률적 컴퓨팅 분석은 비트 스트림이 독립적(비교적)이라고 가정한다. 만약 이 가정이 유지되지 않는다면, 확률적 컴퓨팅은 극적으로 실패할 수 있다. For instance, if we try to compute by multiplying a bit stream for by itself, the process fails: since , the stochastic computation would yield , which is not gene가 참p = {\=} 0 또는 1)인 경우는 제외한다. 피드백이 있는 시스템에서는 예절 문제가 더 복잡한 방법으로 나타날 수 있다. 확률형 프로세서 시스템은 서로 다른 요소들 간의 피드백이 교착 상태에 이를 수 있는 걸쇠가 되기 쉽다.[16] 래치를 교정하기 위해 시스템을 장식하는 데 많은 노력을 기울여야 한다.
넷째, 비록 일부 디지털 기능이 매우 단순한 확률적 상대(예: 곱셈과 AND 게이트 사이의 번역)를 가지고 있지만, 많은 기능들은 그렇지 않다. 이러한 기능을 확률적으로 표현하려고 하면 다양한 병리학이 발생할 수 있다. 예를 들어 확률적 디코딩은 함수 ,)→ /( p +( - )( - 의 연산을 요구한다 이 기능을 계산할 수 있는 단일 비트 연산은 없다; 통상적인 해결책에는 상관관계가 있는 출력 비트를 생산하는 것이 포함되는데, 위에서 살펴본 바와 같이, 많은 문제를 일으킬 수 있다.
기타 기능( f( p ,)→( + )/ 은 스트림 소멸 또는 인플레이션을 요구한다. 정밀도와 기억력 사이의 절충은 어려울 수 있다.
확률적 디코딩
확률적 컴퓨팅은 일반적인 계산 방법으로 보면 여러 가지 결함을 가지고 있지만, 그 장점을 부각시키는 응용 프로그램도 있다. 특정 오류 수정 코드를 디코딩하는 경우 한 가지 주목할 만한 경우가 발생한다.
확률적 컴퓨팅과 관계없는 개발에서는, 신념 전파 알고리즘을 이용하여 LDPC 코드를 해독하는 매우 효과적인 방법이 개발되었다. 이 맥락에서 믿음 전파는 두 가지 기본 연산(필수적으로 확률론적 XOR 연산 및 평균 연산)을 사용하여 특정 파라미터를 반복적으로 재추정하는 것을 포함한다.
2003년, 연구원들은 이 두 가지 작업이 확률적 컴퓨팅으로 매우 간단하게 모델링될 수 있다는 것을 깨달았다.[17] 더욱이, 믿음 전파 알고리즘은 반복적이기 때문에, 확률적 컴퓨팅은 더 빠른 수렴으로 이어질 수 있는 부분적인 해결책을 제공한다. 확률형 디코더의 하드웨어 구현은 FPGA에 구축되었다. [18] 이러한 방법의 지지자들은 확률적 디코딩의 성능이 디지털 대안들과 경쟁적이라고 주장한다.
확률적 컴퓨팅을 위한 결정론적 방법
SC 회로로 완전히 정확한 계산을 수행하기 위해 SC의 결정론적 방법이 개발되었다.[19] 이러한 방법의 기본 원리는 모든 비트 스트림이 다른 비트 스트림과 정확히 한 번 상호 작용한다는 것이다. 이러한 방법으로 완전히 정확한 결과를 도출하려면 입력 비트 스트림 길이의 제품에 대해 작업을 실행해야 한다. 결정론적 방법은 단일한 비트스트림,[20][21] 사이비 무작위 비트스트림,[22] 저점자 비트스트림을 기반으로 개발된다.[23]
확률적 컴퓨팅의 변종류
기본적인 확률적 컴퓨팅 패러다임의 많은 변종이 있다. 자세한 정보는 화성과 포펠바움이 참조한 책에서 찾을 수 있다.
번들 처리에는 스트림 대신 고정된 수의 비트를 보내는 것이 포함된다. 이 접근법의 장점 중 하나는 정밀도가 향상된다는 것이다. 이유를 알아보려면 비트를 전송한다고 가정해 보십시오. 정기적인 확률 계산에서, 우리는 추정치의 분산 때문에 O( 1/ (개의 다른 값의 정밀도를 나타낼 수 있다. 번들 프로세싱에서 는1/를 나타낼수 있다 그러나 번들 프로세싱은 규칙적인 확률적 프로세싱의 오류에 대해 동일한 강건성을 유지한다.
Ergodic Processing은 일련의 묶음들을 보내는 것을 포함하는데, 이것은 규칙적인 확률적 처리와 묶음 처리의 이점을 포착한다.
Burst Processing은 더 높은 베이스 증가 스트림에 의해 숫자를 인코딩한다. 예를 들어, 우리는 4.3을 10자리의 소수 자릿수로 인코딩할 것이다.
- 4444444555
이전 스트림의 평균 값은 4.3이므로 이러한 표현은 다양한 이점을 제공한다: 숫자가 증가하는 순서대로 나타나기 때문에 무작위화가 없기 때문에 PRNG 문제는 피하지만 확률적 컴퓨팅의 많은 장점들은 유지된다(솔루션의 부분적 추정 등). 또한, 묶음 및 에르고딕 가공의 선형 정밀도를 유지한다.
참조
- ^ von Neumann, J. (1963). "Probabilistic logics and the synthesis of reliable organisms from unreliable components". The Collected Works of John von Neumann. Macmillan. ISBN 978-0-393-05169-8.
- ^ Petrovic, R.; Siljak, D. (1962). "Multiplication by means of coincidence". ACTES Proc. of 3rd Int. Analog Comp. Meeting.
- ^ Afuso, C. (1964), Quart. Tech. Prog. Rept., Department of Computer Science, University of Illinois, Urbana, Illinois
- ^ Poppelbaum, W.; Afuso, C.; Esch, J. (1967). "Stochastic computing elements and systems". Afips FJCC. 31: 635–644. doi:10.1145/1465611.1465696. ISBN 9781450378963. S2CID 8504153.
- ^ Gaines, B. (1967). "Stochastic Computing". Afips SJCC. 30: 149–156. doi:10.1145/1465482.1465505. ISBN 9781450378956. S2CID 832296.
- ^ Mars, P.; Poppelbaum, W. (1981). Stochastic and deterministic averaging processors. P. Peregrinus. ISBN 978-0-906048-44-3.
- ^ Esch, John W. (1969). RASCEL, a programmable analog computer based on a regular array of stochastic computing element logic (PhD). University of Illinois, Urbana, Illinois. AAI700084.
- ^ Proceedings of the first International Symposium on Stochastic Computing and its Applications. Toulouse, France. 1978. OCLC 499229066.
- ^ Gaines, B. R. (2013) [1969]. "Stochastic Computing Systems". In Tou, Julius (ed.). Advances in Information Systems Science. 2. Springer. ISBN 9781489958433.
- ^ van Daalen, M.; Jeavons, P.; Shawe-Taylor, J. (1993). "A stochastic neural architecture that exploits dynamically reconfigurable FPGAs". FPGAs for Custom Computing Machines, Proceedings IEEE, NAPA. pp. 202–211. doi:10.1109/FPGA.1993.279462. ISBN 0-8186-3890-7.
- ^ Gaudet, Vincent; Rapley, Anthony (February 2003). "Iterative decoding using stochastic computation". Electronics Letters. 39 (3): 299–301. Bibcode:2003ElL....39..299G. doi:10.1049/el:20030217.
- ^ Alaghi, A.; Li, C.; Hayes, J. P. (2013). "Stochastic circuits for real-time image-processing applications". Proceedings of the 50th Annual Design Automation Conference on - DAC '13. p. 1. doi:10.1145/2463209.2488901. ISBN 9781450320719. S2CID 18174415.
- ^ Najafi, M. H.; Salehi, M. E. (2016). "A Fast Fault-Tolerant Architecture for Sauvola Local Image Thresholding Algorithm Using Stochastic Computing". IEEE Transactions on Very Large Scale Integration (VLSI) Systems - TVLSI '16. IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 24. pp. 808–812. doi:10.1109/TVLSI.2015.2415932. S2CID 6591306.
- ^ Najafi, M. H.; Lilja, D. J.; Riedel, M. D.; Bazargan, K. (2016). Polysynchronous stochastic circuits. 2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC). pp. 492–498. doi:10.1109/ASPDAC.2016.7428060. ISBN 978-1-4673-9569-4. S2CID 8973285.
- ^ Alaghi, A.; Hayes, J. P. (2013). "Survey of Stochastic Computing". ACM Transactions on Embedded Computing Systems. 12 (2s): 1. CiteSeerX 10.1.1.296.4448. doi:10.1145/2465787.2465794. S2CID 4689958.
- ^ Winstead, C.; Rapley, A.; Gaudet, V.; Schlegel, C. (September 2005). "Stochastic iterative decoders". IEEE International Symposium on Information Theory. Adelaide Australia: 1116–1120. arXiv:cs/0501090. doi:10.1109/ISIT.2005.1523513. ISBN 0-7803-9151-9. S2CID 16390484.
- ^ Gaudet, Vincent; Rapley, Anthony (February 2003). "Iterative decoding using stochastic computation". Electronics Letters. 39 (3): 299–301. Bibcode:2003ElL....39..299G. doi:10.1049/el:20030217.
- ^ Gross, W.; Gaudet, V.; Milner, A. (2006). "Stochastic implementation of LDPC decoders". Conference Record of the Thirty-Ninth Asilomar Conference on Signals, Systems and Computers.
- ^ Najafi, M. Hassan; Jenson, Devon; Lilja, David J.; Riedel, Marc D. (December 2019). "Performing Stochastic Computation Deterministically". IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 27 (12): 2925–2938. doi:10.1109/tvlsi.2019.2929354. ISSN 1063-8210. S2CID 201888463.
- ^ Jenson, Devon; Riedel, Marc (2016-11-07). "A deterministic approach to stochastic computation". Proceedings of the 35th International Conference on Computer-Aided Design. New York, NY, USA: ACM: 1–8. doi:10.1145/2966986.2966988. ISBN 978-1-4503-4466-1. S2CID 11281124.
- ^ Najafi, M. Hassan; Jamali-Zavareh, Shiva; Lilja, David J.; Riedel, Marc D.; Bazargan, Kia; Harjani, Ramesh (May 2017). "Time-Encoded Values for Highly Efficient Stochastic Circuits". IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 25 (5): 1644–1657. doi:10.1109/tvlsi.2016.2645902. ISSN 1063-8210. S2CID 5672761.
- ^ Najafi, M. Hassan; Lilja, David (2018). "High Quality Down-Sampling for Deterministic Approaches to Stochastic Computing". IEEE Transactions on Emerging Topics in Computing. 9: 7–14. doi:10.1109/tetc.2017.2789243. ISSN 2168-6750.
- ^ Najafi, M. Hassan; Lilja, David J.; Riedel, Marc (2018-11-05). "Deterministic methods for stochastic computing using low-discrepancy sequences". Proceedings of the International Conference on Computer-Aided Design. New York, NY, USA: ACM: 1–8. doi:10.1145/3240765.3240797. ISBN 978-1-4503-5950-4. S2CID 53236540.
추가 읽기
- Gaines, Brian R. (1967). "Techniques of Identification with the Stochastic Computer" (PDF). Proceedings IFAC Symposium on "The Problems of Identification in Automatic Control Systems", Section 6 Special Identification Instruments, Prague June 12–19, 1967. Retrieved 2013-11-11.
- Alaghi, Armin; Hayes, John P. (2013). "Survey of Stochastic Computing" (PDF). ACM Transactions on Embedded Computing Systems. 12 (2s): 1–19. CiteSeerX 10.1.1.296.4448. doi:10.1145/2465787.2465794. S2CID 4689958. Retrieved 2013-11-11.