텐서(기계 학습)

Tensor (machine learning)

기계 학습에서 텐서라는 단어는 비공식적으로 데이터를 구성하고 나타내는 두 가지 다른 개념을 나타냅니다.데이터는 비공식적으로 "데이터 텐서"라고 불리는 다차원 배열(M-way 배열)로 구성될 수 있지만, 엄밀한 수학적 의미에서 텐서는 도메인 벡터 공간 집합을 범위 벡터 공간에 대한 다중선 매핑입니다.M-way 배열("데이터 텐서")에 저장된 이미지, 영화, 볼륨, 소리 및 단어와 개념 간의 관계와 같은 관찰은 인공 신경망 또는 텐서 [1][2][3][4][5]방법으로 분석할 수 있습니다.

텐서 방법은 데이터 텐서를 더 작은 [1][6]텐서로 분해할 수 있습니다.데이터 텐서에 대한 연산은 행렬 곱셈과 크로네커 [7]곱으로 표현할 수 있습니다.역전파 알고리듬의 중요한 측면인 그레이디언트 계산은 PyTorch TensorFlow를 [8][9]사용하여 수행할 수 있습니다.

계산은 CUDA사용하는 그래픽 처리 장치(GPU)와 Google의 Tensor Processing Unit 또는 Nvidia의 Tensor Core와 같은 전용 하드웨어에서 수행되는 경우가 많습니다.이러한 개발은 신경망 아키텍처를 크게 가속화하고 훈련할 수 있는 모델의 크기와 복잡성을 증가시켰습니다.

역사

텐서는 기본적으로 다중선 맵입니다.수학에서, 이것은 대수적 객체들의 집합들 사이의 다선 관계를 표현할 수 있습니다.물리학에서, 공간의 각 점에서 텐서로 간주되는 텐서 필드는 응력이나 탄성같은 역학을 표현하는 데 유용합니다.기계 학습에서 텐서의 정확한 사용은 사용되는 통계적 접근 방식에 따라 달라집니다.

2001년, 신호 처리 통계 분야는 텐서 방법을 사용하고 있었습니다.Pierre Common은 통신, 무선 감시, 화학 측정 및 센서 처리 분야에서 텐서 방법의 조기 채택을 조사합니다.선형 텐서 순위 방법(Parafac/CANDECOMP 등)은 데이터의 선형 모델을 계산하기 위해 블라인드 소스 분리 문제에 사용된 고차 통계로 구성된 M-way 배열("데이터 텐서")을 분석했습니다.그는 텐서 순위와 효율적인 텐서 순위 [10]분해를 결정하는 데 있어 몇 가지 초기 제한 사항에 주목했습니다.

2000년대 초, 다중선 텐서[1][11] 방법은 Vasilescu의 논문이나 Terzopoulos와 협력하여 컴퓨터 비전, 컴퓨터 그래픽 및 기계 학습으로 넘어갔습니다. 예를 들어 Human Motion Signatures,[12][13] TensorFaces[14][15] TensorTexures[16] 및 Multiline Projection.[17][18]고차 텐서의 대수인 다중선 대수는 관찰의 앙상블의 다중 요인 구조를 분석하고 각 인과 [15]요인과 관련된[14] 2차 이상의 고차 통계를 기반으로 인과 요인을 분리하는 어려운 문제를 해결하는 데 적합하고 투명한 프레임워크입니다.텐서(다선) 요인 분석은 다선 하위 공간 [19]학습으로 서로 다른 인과 요인의 영향을 분리하고 줄입니다.이미지 또는 비디오를 2방향 또는 3방향 어레이, 즉 "데이터 매트릭스/텐서"로 처리할 때 텐서 방법은 Wang 및 Ahuja에서 [20]입증한 것처럼 공간적 또는 시간적 중복성을 줄입니다.

Yoshua Bengio,[21][22] Geoff Hinton 및 그들의 협력자는 입력으로 M-way 어레이("데이터 텐서")를 사용하는 것을 넘어 심층 신경망과 텐서 인자 분석[14][15] 사이의 관계에 대해 간략하게 논의합니다.신경망을 위한 텐서의 초기 사용 중 하나는 자연어 처리에서 나타났습니다.Word2vec[5]통해 단일 단어를 벡터로 표현할 수 있습니다.따라서 두 단어 사이의 관계를 행렬로 인코딩할 수 있습니다.그러나 주어-목적어-동사와 같은 더 복잡한 관계를 위해서는 더 높은 차원의 네트워크를 구축해야 합니다.2009년, Sutsekver의 연구는 매개 변수 [25]공간을 줄이면서 관계 개념을 모델링하기 위해 베이지안 클러스터링 텐서 인수 분해를 도입했습니다.2014년부터 2015년까지 텐서 방법은 CNN(Convolutional Neural Network)에서 더 일반적입니다.텐서 방법은 신경망 가중치를 "데이터 텐서"로 구성하고, 신경망 [26][27]가중치를 분석하고 수를 줄입니다.Vadim 등은 4D 커널 [28]텐서를 사용하여 문자 분류(이미지에서 문자와 숫자 인식)를 위한 CNN 네트워크를 가속화했습니다.

정의.

F\{ 실수 \{R 복소수({\mathbb {와 같은 필드라고 . A F × 1 × C}\ I_ I_ 배열입니다.

C{C}와, I2 ({},C})는 양의 이며 CC}는 [5]텐서의 치수, 방법 또는 모드입니다.

기계 학습에서 텐서를 사용하는 한 가지 기본적인 방법은 다양한 데이터 유형을 직접 내장하는 것입니다.예를 들어, × 이산 f {\ f 일반적으로 표현되는 그레이스케일 이미지는 모드 2 텐서에 다음과 같이 내장될 수 있습니다.

RGB용 채널이 3개인 컬러 영상은 추가 차원에 3개의 요소가 있는 모드 3 텐서에 포함될 수 있습니다.

자연어 처리에서 단어는 Word2vec 알고리즘을 통해 v v 표현될 수 있습니다. v v 모드 1 텐서가 됩니다.

주어-목적어-동사 의미를 포함하려면 세 단어 간의 관계를 포함해야 합니다.단어 자체가 벡터이기 때문에, 주어-목적어-동사 의미론은 모드-3 텐서를 사용하여 표현될 수 있습니다.

실제로 신경망 설계자는 주로 임베딩 사양, 텐서 계층 연결 및 네트워크에서 수행되는 작업에 관심이 있습니다.현대의 기계 학습 프레임워크는 최적화, 텐서 인수 분해 및 역전파를 자동으로 관리합니다.

단위값으로

텐서를 노드 값으로 하는 신경망

텐서는 스칼라, 벡터 및 행렬 값의 개념을 다중 차원으로 확장하는 신경망의 단위 값으로 사용될 수 있습니다.

단일 레이어 m({ 출력 값은 입력 단위와 활성화 ff를 통해 필터링된 연결 가중치의 합입니다.

어디에

텐서로 표현되는 2D 영상으로서 각 단위를 갖는 컨볼루션 신경망

각 출력 요소가 스칼라라면, 우리는 인공 신경망의 고전적인 정의를 가지고 있습니다.각 장치 구성 요소를 텐서로 대체함으로써 네트워크는 이미지 또는 비디오와 같은 고차원 데이터를 표현할 수 있습니다.

단위 값을 대체하기 위해 텐서를 사용하는 것은 각 단위가 여러 레이어를 통해 처리되는 이미지일 수 있는 컨볼루션 신경망에서 일반적입니다.이러한 네트워크 구조는 데이터 텐서를 내장함으로써 복잡한 데이터 유형의 학습을 가능하게 합니다.

완전히 연결되지 않은 레이어

완전 연결된 신경망의 2층과 텐서 크로네커 제품으로서의 표현

텐서는 또한 개별 단위 값 대신 전체 레이어에 텐서가 적용되는 완전히 연결된 신경망의 레이어를 계산하는 데 사용될 수 있습니다.

단일 레이어 m({ 출력 값은 입력 단위와 활성화 ff를 통해 필터링된 연결 가중치의 합입니다.

출력 값의 x x yy}는 모드 1 텐서로 표현할 수 있는 반면 숨겨진 가중치는 모드 2 텐서로 표현할 수 있습니다.이 예에서 단위 값은 스칼라이고 텐서는 네트워크 계층의 차원을 차지합니다.

이 표기법에서 출력 값은 입력 및 가중치 텐서의 텐서 곱으로 계산할 수 있습니다.

이는 합계 곱을 텐서 곱(행렬 곱과 유사)으로 계산합니다.

이러한 텐서 공식화를 통해 단위와 가중치를 텐서에 매핑하여 완전히 연결된 네트워크의 전체 계층을 효율적으로 계산할 수 있습니다.

컨볼루션 레이어에서

신경망의 다른 재구성을 통해 텐서는 신경망의 컨볼루션 레이어를 표현할 수 있습니다.컨볼루션 레이어는 이미지 또는 볼륨과 같은 공간 구조인 여러 입력을 가집니다.입력은 다음 계층으로 전달되기 전에 필터링으로 변환됩니다.일반적으로 이미지 인식에서 특징 감지 또는 분리를 수행합니다.

컨볼루션은 종종 커널f{ f를 사용한 신호g{g}의 곱으로 계산됩니다. 2차원에서 이산적이고 유한한 형태는 다음과 같습니다.

서 w w 커널의 너비입니다.

이 정의는 커널,[29] 데이터 및 커널의 역변환을 표현하는 텐서 측면에서 매트릭스 벡터 곱으로 표현될 수 있습니다.

서 A {\ 역변환, 데이터 및 커널입니다.필터링 커널에 시그모이드 또는 ReLU와 같은 비선형 활성화 함수도 포함될 때 파생은 더 복잡합니다.

컨볼루션 레이어의 숨겨진 가중치는 필터에 대한 매개 변수입니다.이는 데이터의 해상도(크기)를 줄이는 풀링 레이어로 줄일 수 있으며 텐서 연산으로도 표현할 수 있습니다.


텐서 인수분해

기계 학습에서 텐서의 중요한 기여는 텐서를 분해하여 데이터를 구성 요소로 분해하거나 학습된 매개 변수를 줄이는 능력입니다.데이터 텐서 모델링 기술은 선형 텐서 분해(CANDECOMP/Parafac 분해)와 다중 선형 텐서 분해(Tucker)에서 비롯됩니다.

터커 분해

텐서의 터커 분해

를 들어, 터커 분해는 3방향 × × K\ {\{J\ K 취하고 텐서를 세 개의 A 와 더 작은 로 분해합니다행렬과 새 텐서의 모양은 전체 요소 수가 감소하는 것입니다.새로운 텐서는 모양이 있습니다.

그러면 원래의 텐서는 다음 네 개의 텐서의 텐서 곱으로 표현될 수 있습니다.

그림에 표시된 예에서 텐서의 치수는

: I=8, J=6, K=3,({A : I=8, P= B({: J=6, Q=4, : K=3, R=2, : P=2) : P=5, P=2.

터커 인수 분해의 총 요소 수는

X 요소 수는 144개로, 데이터가 144개에서 110개로 감소하여 매개 변수 또는 데이터 크기가 23% 감소했습니다.훨씬 큰 초기 텐서의 경우 텐서의 순위(중복)에 따라 이득이 더 클 수 있습니다.

라반세르 등의 연구는 [5]여기에 주어진 모드 3 예제를 넘어 터커 분해를 N차원으로 확장하는 것에 대한 더 자세한 내용을 텐서에 소개합니다.

텐서 트레인

텐서를 분해하는 다른 기술은 초기 텐서를 더 작은 크기의 텐서의 시퀀스(트레인)로 다시 씁니다.텐서-트레인(TT)은 표준 인자라고 불리는 순위가 감소된 텐서의 시퀀스입니다.원래 텐서는 시퀀스의 합 곱으로 표현될 수 있습니다.

2011년 Ivan Oseledts에 의해 개발된 저자는 Tucker 분해가 "작은 차원, 특히 3차원의 경우에 적합하다"고 관찰합니다. 경우에는 [30]적합하지 않습니다."따라서 텐서 트레인은 더 큰 텐서를 더 높은 차원으로 인수 분해하는 데 사용될 수 있습니다.

텐서 그래프

텐서의 통합 데이터 아키텍처와 자동 차별화는 텐서 그래프의 형태로 기계 학습의 더 높은 수준의 설계를 가능하게 했습니다.이는 텐서-그래프 컨볼루션 네트워크(TGCN)와 같은 새로운 아키텍처로 이어져 데이터에서 매우 비선형적인 연관성을 식별하고, 여러 관계를 결합하고, 견고하고 [31]성능을 유지하면서 우아하게 확장할 수 있습니다.

이러한 개발은 입력 데이터가 소셜 그래프이고 데이터가 [32][33][34][35]동적으로 변경되는 텍스트 마이닝 및 클러스터링, 시간 변동 데이터 및 신경망과 같은 기계 학습의 모든 영역에 영향을 미치고 있습니다.

하드웨어

텐서는 더 복잡한 데이터 세트를 위해 신경망을 훈련시키는 통일된 방법을 제공합니다.그러나 기존 CPU 하드웨어에서 계산하려면 교육 비용이 많이 듭니다.

2014년, 엔비디아는 병렬 CUDA [36]언어로 작성된 최적화된 원시 요소 집합을 위한 라이브러리인 CUDA 심층 신경망을 개발했습니다.CUDA와 cuDNN은 하드웨어에서 통합된 대규모 병렬 처리를 구현하는 전용 GPU에서 실행됩니다.이러한 GPU는 아직 텐서 전용 칩이 아니라 기계 학습에서 병렬 계산에 적합한 기존 하드웨어였습니다.

2015-2017년 동안 Google은 텐서 처리 장치(TPU)를 발명했습니다.[37] TPU는 텐서 제품에 필요한 매트릭스 곱셈을 전문으로 하는 전용 고정 기능 하드웨어 장치입니다.구체적으로, 그들은 256x256 행렬 합 곱셈을 단 하나의 글로벌 명령 [38]주기로 수행할 수 있는 65,536개의 곱셈 단위 어레이를 구현합니다.

2017년 말, 엔비디아는 볼타 GPU 아키텍처를 갖춘 자체 텐서 코어를 출시했습니다.각 텐서 코어는 4x4 행렬 합 곱을 수행할 수 있는 마이크로 유닛입니다.각 공유 메모리([39]SM) 블록에는 8개의 텐서 코어가 있습니다.첫 번째 GV100 GPU 카드에는 108개의 SM이 있어 672개의 텐서 코어가 생성됩니다.이 장치는 이전 Tesla [40]GPU보다 기계 학습 속도를 12배 높였습니다.각 새로운 세대의 카드에서 코어 및 SM 장치의 수가 계속 증가함에 따라 텐서 코어의 수가 확장됩니다.

텐서 코어의 통합 아키텍처와 결합된 GPU 하드웨어의 개발은 훨씬 더 큰 신경망의 훈련을 가능하게 했습니다.2022년에 가장 큰 신경망은 5,400억 개의 학습된 매개변수([41]네트워크 가중치)를 가진 구글의 PalM이었습니다. ( GPT-3 언어 모델은 인간과 같은 텍스트를 생성하는 1750억 개 이상의 학습된 매개변수를 가지고 있습니다. 크기가 전부가 아닙니다. 스탠포드의 훨씬 작은 2023년 알파카 모델은 [42]더 낫다고 주장합니다.Meta/Facebook의 2023년 모델 LLaMA에서 학습한 결과, 더 작은 70억 매개 변수 변형).널리 인기 있는 챗봇 채팅 GPT는 GPT-3.5(및 지도 및 강화 학습을 사용한 업데이트 GPT-4 이후) 위에 구축됩니다.

레퍼런스

  1. ^ a b c Vasilescu, MAO; Terzopoulos, D. "Multilinear (tensor) image synthesis, analysis, and recognition [exploratory dsp]" (PDF). IEEE Signal Processing Magazine. 24 (6): 118–123.
  2. ^ Vasilescu, MAO (2009), A Multilinear (Tensor) Algebraic Framework for Computer Graphics, Computer Vision, and Machine Learning (PDF), University of Toronto
  3. ^ Kolda, Tamara G.; Bader, Brett W. (2009-08-06). "Tensor Decompositions and Applications". SIAM Review. 51 (3): 455–500. Bibcode:2009SIAMR..51..455K. doi:10.1137/07070111X. ISSN 0036-1445. S2CID 16074195.
  4. ^ Sidiropoulos, Nicholas D.; De Lathauwer, Lieven; Fu, Xiao; Huang, Kejun; Papalexakis, Evangelos E.; Faloutsos, Christos (2017-07-01). "Tensor Decomposition for Signal Processing and Machine Learning". IEEE Transactions on Signal Processing. 65 (13): 3551–3582. arXiv:1607.01668. Bibcode:2017ITSP...65.3551S. doi:10.1109/TSP.2017.2690524. ISSN 1053-587X. S2CID 16321768.
  5. ^ a b c d Rabanser, Stephan (2017). "Introduction to Tensor Decompositions and their Applications in Machine Learning". arXiv:1711.10781 [stat.ML].
  6. ^ Sidiropoulous, N (2016). "Tensor Decomposition for Signal Processing and Machine Learning". IEEE Transactions on Signal Processing. 65 (13).
  7. ^ Grout, I (2018). "Hardware Considerations for Tensor Implementation and Analysis Using the Field Programmable Gate Array". Electronics. 7 (320): 320. doi:10.3390/electronics7110320.
  8. ^ Paszke, A (2019). "PyTorch: An Imperative Style, High-Performance Deep Learning Library". Proceedings of the 33rd International Conference on Neural Information Processing Systems: 8026–037. arXiv:1912.01703.
  9. ^ Adabi, M (2016). "TensorFlow: A System for Large-Scale Machine Learning" (PDF). Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation. arXiv:1605.08695.
  10. ^ Comon, Pierre (2001), "Tensor Decompositions: State of the Art and Applications", Mathematics in Signal Processing, Oxford University Press
  11. ^ Vasilescu, M.A.O.; Shashua, Amnon (2007), "Tensor Methods for Machine Learning, Computer Vision, and Computer Graphics Tutorial", International Conference on Machine Learning
  12. ^ Vasilescu, M.A.O. (2002), "Human Motion Signatures: Analysis, Synthesis, Recognition", Proceedings of International Conference on Pattern Recognition (ICPR 2002), vol. 3, pp. 456–460
  13. ^ Vasilescu, M.A.O. (2001), "An Algorithm for Extracting Human Motion Signatures", Computer Vision and Pattern Recognition CVPR 2001 Technical Sketches
  14. ^ a b c Vasilescu, M.A.O.; Terzopoulos, D. (2002). Multilinear Analysis of Image Ensembles: TensorFaces (PDF). Lecture Notes in Computer Science 2350; (Presented at Proc. 7th European Conference on Computer Vision (ECCV'02), Copenhagen, Denmark). Springer, Berlin, Heidelberg. doi:10.1007/3-540-47969-4_30. ISBN 978-3-540-43745-1.
  15. ^ a b c Vasilescu, M.A.O.; Terzopoulos, D. (2005), Multilinear Independent Component Analysis (PDF), LProceedings of the 2005 IEEE Computer Vision and Pattern Recognition Conference (CVPR 2005), San Diego, CA
  16. ^ Vasilescu, M.A.O.; Terzopoulos, D. (2004), "TensorTextures: Multilinear Image-Based Rendering" (PDF), ACM Transactions on Graphics, vol. 23, no. 3, pp. 336–342, doi:10.1145/1015706.1015725
  17. ^ Vasilescu, M.A.O. (2011). Multilinear Projection for Face Recognition via Canonical Decomposition. In Proc. Face and Gesture Conference (FG'11). pp. 476–483.
  18. ^ Vasilescu, M.A.O.; Terzopoulos, D. (2007), ""Multilinear Projection for Appearance-Based Recognition in the Tensor Framework"", Proc. Eleventh IEEE International Conf. on Computer Vision (ICCV'07), pp. 1–8
  19. ^ Vasilescu, M.A.O.; Terzopoulos, D. (2003), "Multilinear Subspace Learning of Image Ensembles", 2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2003. Proceedings.
  20. ^ Wang, H; Narendra, Ahuja (2005), "Rank-R approximation of tensors using image-as-matrix representation", IEEE Computer Society Conference on Computer Vision and Pattern Recognition, IEEE
  21. ^ Desjardins, Guillaume; Courvile, Aaron; Bengio, Yoshua (2012). "Disentangling Factors of Variation via Generative Entangling". arXiv:1210.5474 [stat.ML].
  22. ^ Bengio, Yoshua; Courville, Aaron (2013). "Disentangling Factors of Variation via Generative Entangling". Handbook on Neural Information Processing: 1–28. ISBN 9783642366574.
  23. ^ Tang, Yichuan; Salakhutdinov, Ruslan; Hinton, Geoffrey (2013). "Tensor Analyzers" (PDF). 30 Th International Conference on Machine Learning.
  24. ^ Memisevic, Roland; Hinton, Geoffrey (2010). "Learning to Represent Spatial Transformations with Factored Higher-Order Boltzmann Machines" (PDF). Neural Computation. 22 (6): 1473–1492. doi:10.1162/neco.2010.01-09-953. PMID 20141471. S2CID 1413690.
  25. ^ Sutskever, I (2009). "Modeling Relational Data using Bayesian Clustered Tensor Factorization". Advances in Neural Information Processing Systems. 22.
  26. ^ Novikov, A; Dmitry, P; Osokin, A; Vetrov, D (2015), "Tensorizing Neural Networks", Neural Information Processing Systems, arXiv:1509.06569
  27. ^ Kossaifi, Jean (2019). "T-Net: Parameterizing Fully Convolutional Nets with a Single High-Order Tensor". arXiv:1904.02698 [cs.CV].
  28. ^ Lebedev, Vadim (2014), Speeding-up Convolutional Neural Networks Using Fine-tuned CP-Decomposition, arXiv:1412.6553
  29. ^ Bedden, David (2017). "Deep Tensor Convolution on Multicores". arXiv:1611.06565 [cs.CV].
  30. ^ Oseledets, Ivan (2011). "Tensor-Train Decomposition". SIAM Journal on Scientific Computing. 33 (5): 2295–2317. Bibcode:2011SJSC...33.2295O. doi:10.1137/090752286. S2CID 207059098.
  31. ^ Ioannidis, Vassilis (2020). "Tensor Graph Convolutional Networks for Multi-Relational and Robust Learning". IEEE Transactions on Signal Processing. 68: 6535–6546. arXiv:2003.07729. Bibcode:2020ITSP...68.6535I. doi:10.1109/TSP.2020.3028495. S2CID 212736801.
  32. ^ Boutalbi, Rafika (2022). "Tensor-based Graph Modularity for Text Data Clustering". Proceedings of the 45th International ACM SIGIR Conference on Research and Development in Information Retrieval.
  33. ^ Malik, Osman (2019). "Tensor Graph Neural Networks for Learning on Time Varying Graphs". 2019 Conference on Neural Information Processing (NeurIPS).
  34. ^ Manessi, Franco; Rozza, Alessandro; Manzo, Mario (2020). "Dynamic graph convolutional networks". Pattern Recognition. 97: 107000. arXiv:1704.06199. Bibcode:2020PatRe..9707000M. doi:10.1016/j.patcog.2019.107000. S2CID 16745566.
  35. ^ Malik, Osman. "Dynamic Graph Convolutional Networks Using the Tensor M-Product".
  36. ^ Serrano, Jerome (2014). "Nvidia Introduces cuDNN, a CUDA-based library for Deep Neural Networks".
  37. ^ Jouppi, Norman; Young; Patil; Patterson (2018). "Motivation for and evaluation of the first tensor processing unit". IEEE Micro. 38 (3): 10–19. doi:10.1109/MM.2018.032271057. S2CID 21657842.
  38. ^ Hemsoth, Nicole (2017). "First In-Depth Look at Google's TPU Architecture". The Next Platform.
  39. ^ "NVIDIA Tesla V100 GPU Architecture" (PDF). 2017.
  40. ^ Armasu, Lucian (2017). "On Tensors, Tensorflow, And Nvidia's Latest 'Tensor Cores'".
  41. ^ "Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance". ai.googleblog.com. Retrieved 2023-03-29. Pathways Language Model (PaLM), a 540-billion parameter, dense decoder-only Transformer model trained with the Pathways system
  42. ^ "Alpaca: A Strong, Replicable Instruction-Following Model". crfm.stanford.edu. Retrieved 2023-03-29.