open in new window 메타코드 강의: 딥러닝 입문 + Pytorch 실습 부트캠프로 이동 메타코드?
메타코드는 IT 대기업 현직자 + 서울대/카이스트 AI 박사 등 검증된 강사진들로 구성되어 있으며,
현직자 특강, 커리어 멘토링, 포트폴리오, 공모전, 채용정보 등 실제 취업에 도움이 될 수 있는 양질의 컨텐츠를 제공하고 있습니다.
a T M = [ 1 2 3 ] × [ 1 2 3 4 5 6 ] = [ 1 × 1 + 2 × 3 + 3 × 5 1 × 2 + 2 × 4 + 3 × 6 ] = [ 1 + 6 + 15 2 + 8 + 18 ] = [ 22 28 ] a^T M = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix} \times \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} \\[2em] = \begin{bmatrix} 1 \times 1 + 2 \times 3 + 3 \times 5 & 1 \times 2 + 2 \times 4 + 3 \times 6 \end{bmatrix} \\[2em] = \begin{bmatrix} 1 + 6 + 15 & 2 + 8 + 18 \end{bmatrix} \\[2em] = \begin{bmatrix} 22 & 28 \end{bmatrix} a T M = [ 1 2 3 ] × 1 3 5 2 4 6 = [ 1 × 1 + 2 × 3 + 3 × 5 1 × 2 + 2 × 4 + 3 × 6 ] = [ 1 + 6 + 15 2 + 8 + 18 ] = [ 22 28 ]
M b = [ 1 2 3 4 5 6 ] × [ 1 2 ] = [ 1 × 1 + 2 × 2 3 × 1 + 4 × 2 5 × 1 + 6 × 2 ] = [ 1 + 3 3 + 8 5 + 12 ] = [ 4 11 17 ] Mb = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} \times \begin{bmatrix} 1 \\ 2 \end{bmatrix} \\[2em] = \begin{bmatrix} 1 \times 1 + 2 \times 2 \\ 3 \times 1 + 4 \times 2 \\ 5 \times 1 + 6 \times 2 \end{bmatrix} \\[2em] = \begin{bmatrix} 1 + 3 \\ 3 + 8 \\ 5 + 12 \end{bmatrix} = \begin{bmatrix} 4 \\ 11 \\ 17 \end{bmatrix} M b = 1 3 5 2 4 6 × [ 1 2 ] = 1 × 1 + 2 × 2 3 × 1 + 4 × 2 5 × 1 + 6 × 2 = 1 + 3 3 + 8 5 + 12 = 4 11 17
a ∈ R 3 , a t ∈ R 1 × 3 , b ∈ R 2 and M ∈ R 3 × 2 ∣ a t ∣ = ( 1 , 3 ) , ∣ M ∣ = ( 3 , 2 ) and ∣ a t M ∣ = ( 1 , 2 ) ∣ M ∣ = ( 3 , 2 ) , ∣ b ∣ = ( 2 , ) and ∣ M b ∣ = ( 3 , 1 ) a \in \mathbb{R}^3, a^t \in \mathbb{R}^{1 \times 3}, b \in \mathbb{R}^2 \text{ and } M \in \mathbb{R}^{3 \times 2} \\[2em] \left| a^t \right| = (1, 3), \left| M \right| = (3, 2) \text{ and } \left| a^t M \right| = (1, 2) \\[2em] \left| M \right| = (3, 2), \left| b \right| = (2,) \text{ and } \left| Mb \right| = (3, 1) a ∈ R 3 , a t ∈ R 1 × 3 , b ∈ R 2 and M ∈ R 3 × 2 a t = ( 1 , 3 ) , ∣ M ∣ = ( 3 , 2 ) and a t M = ( 1 , 2 ) ∣ M ∣ = ( 3 , 2 ) , ∣ b ∣ = ( 2 , ) and ∣ M b ∣ = ( 3 , 1 )
a ∈ R 3 a \in \mathbb{R}^3 a ∈ R 3 : a는 3차원 벡터이다.
a t ∈ R 1 × 3 a^t \in \mathbb{R}^{1 \times 3} a t ∈ R 1 × 3 : a를 transpose 하면 차원이 앞에 하나 더 생긴다.
b ∈ R 2 and M ∈ R 3 × 2 b \in \mathbb{R}^2 \text{ and } M \in \mathbb{R}^{3 \times 2} b ∈ R 2 and M ∈ R 3 × 2 : b는 2차원 벡터, M은 차원이 2개이고 차원의 값이 3과 2인 Matrix다.
두 벡터의 차원(길이)이 같아야 한다.
A B = [ 1 2 3 4 5 6 ] × [ 1 2 3 4 5 6 ] = [ 1 ⋅ 1 + 2 ⋅ 3 + 3 ⋅ 5 1 ⋅ 2 + 2 ⋅ 4 + 3 ⋅ 6 4 ⋅ 1 + 5 ⋅ 3 + 6 ⋅ 5 4 ⋅ 2 + 5 ⋅ 4 + 6 ⋅ 6 ] = [ 1 + 6 + 15 2 + 8 + 18 4 + 15 + 30 8 + 20 + 36 ] = [ 22 28 40 64 ] AB = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} \times \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} \\[2em] = \begin{bmatrix} 1 \cdot 1 + 2 \cdot 3 + 3 \cdot 5 & 1 \cdot 2 + 2 \cdot 4 + 3 \cdot 6 \\ 4 \cdot 1 + 5 \cdot 3 + 6 \cdot 5 & 4 \cdot 2 + 5 \cdot 4 + 6 \cdot 6 \end{bmatrix} \\[2em] = \begin{bmatrix} 1 + 6 + 15 & 2 + 8 + 18 \\ 4 + 15 + 30 & 8 + 20 + 36 \end{bmatrix} = \begin{bmatrix} 22 & 28 \\ 40 & 64 \end{bmatrix} A B = [ 1 4 2 5 3 6 ] × 1 3 5 2 4 6 = [ 1 ⋅ 1 + 2 ⋅ 3 + 3 ⋅ 5 4 ⋅ 1 + 5 ⋅ 3 + 6 ⋅ 5 1 ⋅ 2 + 2 ⋅ 4 + 3 ⋅ 6 4 ⋅ 2 + 5 ⋅ 4 + 6 ⋅ 6 ] = [ 1 + 6 + 15 4 + 15 + 30 2 + 8 + 18 8 + 20 + 36 ] = [ 22 40 28 64 ]
A ∈ R 2 × 3 , B ∈ R 3 × 2 and A B ∈ R 2 × 2 ∣ A ∣ = ( 2 , 3 ) , ∣ B ∣ = ( 3 , 2 ) and ∣ A B ∣ = ( 2 , 2 ) A \in \mathbb{R}^{2 \times 3}, B \in \mathbb{R}^{3 \times 2} \text{ and } AB \in \mathbb{R}^{2 \times 2} \\ \left| A \right| = (2, 3), \left| B \right| = (3, 2) \text{ and } \left| AB \right| = (2, 2) A ∈ R 2 × 3 , B ∈ R 3 × 2 and A B ∈ R 2 × 2 ∣ A ∣ = ( 2 , 3 ) , ∣ B ∣ = ( 3 , 2 ) and ∣ A B ∣ = ( 2 , 2 )
A ∈ R 2 × 3 A \in \mathbb{R}^{2 \times 3} A ∈ R 2 × 3 : A는 2개의 차원을 가지고 있으면 각 차원이 2, 3이다.
B ∈ R 3 × 2 and A B ∈ R 2 × 2 B \in \mathbb{R}^{3 \times 2} \text{ and } AB \in \mathbb{R}^{2 \times 2} B ∈ R 3 × 2 and A B ∈ R 2 × 2 : B는 각 차원의 값이 3, 2인 Matrix다. A과 B를 곱하면 각 차원이 값이 2, 2인 Matrix가 된다.
같은 개수의 행렬 쌍들에 대해 병렬로(한꺼번에) 행렬 곱 실행
왼쪽 그림에 있는 연산을 오른쪽 그림처럼 병렬로 N번 처리를 한다.
N번 반복하는 것이 아닌 한번에 N개의 처리가 가능
Input과 Ouput을 weight로 연결하는 Layer이다.
각 원소들을 모두 연결하는 형태이기 때문에 Fully Connected Layer (FC Layer)라고도 부른다.
weight matrix를 transpose한 x에 bias vector 더한 형태로 표현
ax + b를 선형 결합된 꼴 이라고 부르는데, 이와 비슷해서 선형 레이어라고 부른다.
[ W 11 W 21 W 31 W 41 W 12 W 22 W 32 W 42 W 13 W 23 W 33 W 43 ] × [ x 1 x 2 x 3 x 4 ] + [ b 1 b 2 b 3 ] = [ y 1 y 2 y 3 ] \begin{bmatrix} W_{11} & W_{21} & W_{31} & W_{41} \\ W_{12} & W_{22} & W_{32} & W_{42} \\ W_{13} & W_{23} & W_{33} & W_{43} \end{bmatrix} \times \begin{bmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \end{bmatrix} + \begin{bmatrix} b_1 \\ b_2 \\ b_3 \end{bmatrix} = \begin{bmatrix} y_1 \\ y_2 \\ y_3 \end{bmatrix} W 11 W 12 W 13 W 21 W 22 W 23 W 31 W 32 W 33 W 41 W 42 W 43 × x 1 x 2 x 3 x 4 + b 1 b 2 b 3 = y 1 y 2 y 3
신경망에서 입력 신호의 총합을 출력 신호로 변환하는 함수로, 신경망의 비선형성을 부여하고 학습을 가능하게 하는 중요한 역할을 합니다. 대표적으로 sigmoid, tanh, ReLU등이 있습니다.
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} \\[2em] σ ( x ) = 1 + e − x 1
출력 범위가 0에서 1 사이입니다. 이 함수는 초기 신경망에서 많이 사용되었으나, 오늘날에는 그라디언트 소실 문제(학습 과정에서 기울기가 점점 작아져서 학습이 잘 이루어지지 않는 현상) 때문에 깊은 신경망에서는 사용이 감소했습니다.
tanh ( x ) = e x − e − x e x + e − x \tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}} \\[2em] tanh ( x ) = e x + e − x e x − e − x
출력 범위가 -1에서 1 사이입니다. 이는 sigmoid 함수의 중심을 0으로 옮긴 형태로 볼 수 있습니다. 이로 인해 학습 초기 단계에서 데이터의 정규화(normalization) 효과가 있어 신경망이 더 효율적으로 학습할 수 있게 됩니다.
R e L U ( x ) = max ( 0 , x ) ReLU(x) = \max(0, x) \\[2em] R e LU ( x ) = max ( 0 , x )
음수 입력에 대해서는 0을, 양수 입력에 대해서는 그대로의 값을 출력합니다. 간단한 구조와 효율적인 계산으로 인해 현재 가장 널리 사용되는 활성화 함수 중 하나입니다. 그라디언트 소실 문제를 어느 정도 해결할 수 있으나, 0 이하의 입력에 대해서는 기울기가 0이 되는 "죽은 뉴런" 문제가 있을 수 있습니다.
Softmax 함수는 클래스가 여러 개인 분류 문제에서 출력층에 주로 사용되는 활성화 함수입니다. 이 함수는 각 클래스에 속할 확률을 나타내는데 적합하며, 모든 출력 값의 합이 1이 되도록 해서 확률 분포로 변환해 줍니다.
σ ( x i ) = e x i ∑ k e x k \sigma(x_i) = \frac{e^{x_i}}{\sum_{k} e^{x_k}} \\[2em] σ ( x i ) = ∑ k e x k e x i
x i x_i x i 는 입력 벡터 x x x 의 i i i 번째 원소입니다.
e x i e^{x_i} e x i 는 x i x_i x i 의 지수 값을 나타냅니다.
분모의 ∑ k e x k \sum_{k} e^{x_k} ∑ k e x k 는 입력 벡터의 모든 원소에 대해 지수 함수를 적용한 값들의 총합을 계산합니다. 이는 모든 원소 k k k 에 대해 수행됩니다.
확률 해석 가능 : 출력을 확률처럼 해석할 수 있어 다중 클래스 분류 문제에 적합합니다.
지수 함수 사용 : 지수 함수를 사용하여, 큰 값에 더 높은 가중치를 부여하고, 작은 값은 더욱 축소시킵니다. 이는 선택된 클래스와 그렇지 않은 클래스 간의 차이를 뚜렷하게 만듭니다.
수치 안정성 문제 : 큰 수에 대한 지수 함수는 오버플로우를 발생시킬 수 있어, 계산 과정에서 보정이 필요할 수 있습니다.
서포터즈 강의료 지원을 받아 작성하였습니다