Loading...
2023. 9. 21. 03:29

reduced row echelon form을 구하는 Gauss-Jordan elimination 구현하기

1. reduced row echelon form 한번 쯤 다시 읽어보자 elementary row operation과 reduced row echelon form을 설명하고 있다. elementary row operation은 1) 주어진 행렬의 i번째 행과 j번째 행을 뒤바꾸는 것 2) i번째 행에 0이 아닌 scalar를 곱하는 것 3) i번째 행에 scalar를 곱하고 j번째 행에 더해주는 것 이러한 연산을 하더라도 주어진 행렬의 rank는 변하지 않는다. https://deepdata.tistory.com/34 선형대수학 기본 용어 -상급자편 3- 1. gaussian elimination 1) 주어진 행렬의 $i$번째 행과 $j$번째 행을 뒤바꾼다. 2) 주어진 행렬의 $i$번째 행에 0이 아..

피보나치 수열 심화과정2 - 자연수 n이 피보나치 수인지 바로 알 수 있을까? -

1. 주어진 수가 피보나치 수인지 바로 알 수 있을까? 피보나치 수는 $F_{1} = F_{2} = 1$이고 $F_{i} = F_{i-1} + F_{i-2}$을 만족하는 $F_{i}$이다. 반대로 어떤 자연수 n이 주어질때 그 수가 피보나치 수열 $F_{i}$의 하나인지 바로 판단할 수 있을까? 2. 행렬을 이용해 피보나치 수를 만드는 방법 일반적으로는 $F_{1} = F_{2} = 1$부터 차근차근 만들어나가는 것이다. 그러면 언젠가 주어진 자연수 n 근처에 도달할 것이고, n에 정확히 도달하면 n은 피보나치 수이고 n을 넘어가면 n은 피보나치 수가 아니다. 행렬을 이용한 피보나치 수 생성하는 방법이 O(logN)으로 가장 빠르면서 유의미한데, 이정도만 해도 사실 상당히 빠르다 https://deepd..

행렬을 이용한 피보나치 수열 문제의 해법

1. 피보나치 수열의 행렬 표현 피보나치 수열의 점화식은 다음과 같다. $a_{n+1} = a_{n} + a_{n-1}$ $a_{n} = a_{n} + 0$ 따라서 행렬로 나타내면 다음과 같다 $$\begin{pmatrix} a_{n+1} \\ a_{n} \end{pmatrix}=\begin{pmatrix} 1 & 1 \\ 1 & 0 \\ \end{pmatrix}\begin{pmatrix} a_{n} \\ a_{n-1} \end{pmatrix}$$ n = 1부터 반복적으로 곱해보면... $$\begin{pmatrix} a_{2} \\ a_{1} \end{pmatrix}=\begin{pmatrix} 1 & 1 \\ 1 & 0 \\ \end{pmatrix}\begin{pmatrix} a_{1} \\ a_{0..

파이썬으로 두 행렬 곱하기 구현하는 방법

1. 문제 2740번: 행렬 곱셈 (acmicpc.net) 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 2. 풀이 n*m행렬과 m*k 행렬을 곱하면, n*k행렬이 되며, n*k 행렬의 원소 $c_{ij}$는 다음과 같이 정의될 것이다 $$c_{ij} = \sum_{w = 0}^{k-1} a_{iw}b_{wj}$$ 이차원 리스트를 적절히 정의하고, i,j,w의 3중 for문으로 행렬 곱셈을 만들 수 있다 from sys import stdin n,m = map(int,stdin.readli..

ABC 293 복기 E - Geometric Progression - 행렬곱 배우기 -

1. 문제 E - Geometric Progression (atcoder.jp) E - Geometric Progression AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 정수 A,X,M이 주어질 때, $$\sum_{k=0}^{X-1} A^{k}$$를 구하는 아주 간단한 문제 2. 풀이1 이미 재귀로 푸는 방법을 배운적 있다 컴퓨터가 등비수열의 합을 구하는 방법 (tistory.com) 컴퓨터가 등비수열의 합을 구하는 방법 1. 문제 15712번: 등비수열 (acmicpc.net) 15712번: 등비수열 첫째 줄에 a..

2022. 4. 28. 21:28

예시와 그림으로 이해하는 self attention의 원리

1. 예시로 알아보는 self attention hidden state vector를 만들고자 하는 x1의 query를 q1으로 생성 1에서 x1의 query q1와 x1,x2,x3의 key k1,k2,k3 각각의 내적으로 score를 계산 (3.8,-0.2,5,9) softmax를 취하여 어느 벡터에 집중할지 가중치를 계산 (0.2,0.1,0.7) 가중치인 score와 x1,x2,x3의 value v1,v2,v3의 weighted sum을 구한다. 즉 x1의 hidden vector h1=0.2v1+0.1v2+0.7v3으로 구해진다. 이러면 이제 x1,x2,x3를 학습이 가능한 weight matrix인 $W^{Q}, W^{K}, W^{V}$로 변환하여 얻은 query,key,value를 이용하였는데 ..