딥러닝
-
ML 기초 (1) | 패스트캠퍼스 챌린지 19일차딥러닝 2022. 2. 11. 23:12
드디어 수학 파트가 끝났다! 강의 커리큘럼상에는 tensorflow/keras, 그리고 PyTorch의 사용법 및 딥러닝의 역사...같은 내용들이 들어있었는데, 프레임워크 사용법은 이미 알고 있고, 딥러닝의 역사는 익히 들어 온 내용이라, 바로 딥러닝 알고리즘 파트로 넘어가기로 했다. 그렇게 우선 기계학습에 대해 다루었다. 인공지능이라 함은 지능을 가진 기계를 설계하는 것을 뜻한다. 이 떄, 이 방법으로 데이터 중심의 방법을 사용하든, 사람이 직접 규칙을 하나하나 짜 넣어 주든 상관없이 모두 넓의 의미로 인공지능이다. 강의에서는 다루지 않았지만 이러한 인공지능은 크게 두 축으로 나뉜다. 첫번째는 기호적인 축symbolic axis으로, 인간이 알고 있는 규칙을 명시적으로 넣어 주어 연산을 시키자는 주의다..
-
딥러닝에서의 Extended Jacobian의 활용 (2) | 패스트캠퍼스 챌린지 18일차딥러닝 2022. 2. 10. 22:10
해당 내용은 일반적 수학 원리가 아닌 강의자가 개인적으로 일반화한 내용임. 지난 강의에서 Extended Jacobian을 실질적으로 손실함수와 소프트맥스에 적용해 보았다면, 이번 시간에는 이를 한 층 내려와 affine function에 적용한다. Activation function을 건너 뛴 이유는 unary element-wise operation이기 때문에 따로 extended Jacobian을 필요로 하지 않기 때문이다. 따라서, 이 강의 내용 까지의 내용을 조합하면 affine function에서 손실함수까지의 내용을 모두 역전파 하는 수식을 얻게 된다. 이는 곧 Tensorflow나 PyTorch 등의 도움 없이 numpy 정도만 있으면 Multilayer Perceptron 정도를 효율적으..
-
딥러닝에서의 Extended Jacobian의 활용 (1) | 패스트캠퍼스 챌린지 17일차딥러닝 2022. 2. 9. 21:58
해당 내용은 일반적 수학 원리가 아닌 강의자가 개인적으로 일반화한 내용임. 이번 강의에서는 extended Jacobian을 실질적으로 딥러닝에서 적용해 본다. 지난 강의와 마찬가지로 이 강의 내용은 일반적인 수학 내용은 아니며, 이러한 과정을 거치지 않고 전미분을 통해 텐서 입력에 대한 미분계수를 구할 수 있다. 다만 이 강의 방법을 통해 두 가지 이점을 취할 수 있는데, 첫 번째는 수학적으로 이해하기가 더 직관적이며 쉽다는 것이고, 두 번쨰는 실제로 구현할 떄 for 루프를 덜 써도 된다는 것이다. For loop가 줄어든다는 점은 그 만큼 복잡도가 낮아진다는 뜻이 되기 때문에 효율적 연산에 도움이 된다. Extended Jacobian을 구하는 과정은 크게 두 단계로 이루어졌다. 첫 번째는 텐서에서..
-
Extended Jacobians | 패스트캠퍼스 챌린지 16일차딥러닝 2022. 2. 8. 18:50
노트에도 적혀있듯, 해당 내용은 일반적 수학 원리가 아닌 강의자가 개인적으로 일반화한 내용임. 지금까지 Jacobian matrix를 통해 함수나 입력값(혹은 둘 다)가 벡터일 때의 편미분 방법을 할 수 있었다. 여기서는 이를 확장하여 입력값이 행렬 및 그 이상의 텐서일 때 편미분을 생각해 본다. 사실 어제 전미분에서 다루었듯 전미분 과정을 통하면 모든 텐서 입력에 대하여 미분을 진행할 수 있다. 하지만 이 내용처럼 Jacobian Matrix를 확장하여 보다 더 간단하게 ∂J/∂W와 같은 행렬에 대한 손실값의 미분을 구할 수 있게 된다. (∂ 기호를 입력하는게 힘들었는데 방법을 찾았다. 맥OS계통에서 알파벳 입력 모드일 때 option(alt)을 누르고 문자를 누르면 alternative charact..
-
전미분 total derivative | 패스트캠퍼스 챌린지 15일차딥러닝 2022. 2. 7. 21:53
하나의 (벡터)함수에 대해서, 이 함수를 쪼개어 변수가 여러개의 경우를 가진다고 생각할 수 있다. 가령, 간단한 예시로 y=x^2 - sin(x)라는 함수를 보자. 이 경우, 각 항을 하나의 함수로 보아 u_1 = x^2, u_2 = sin(x)로 나눈 다음, u_1, u_2에 대한 함수 y = u1 - u2가 있다라고 생각할 수 있다. 이 경우 입력 x는 u_1이나 u_2 둘 중 하나를 거쳐 y가 된다. 즉, 이 함수에서 입력값이 취할 수 있는 경로는 여러개이며, 이런 경우를 강의에서는 multipath로 표현한다. Multipath인 경우, 그 미분을 각 path에 대한 미분의 합으로 생각할 수 있다. 가령, 위의 예시의 경우 dy/du_1 = 1, dy/du_2 = -1이며[여기서 편미분 기호 대신..
-
Linear and Logistic Regression with Minibatching | 패스트캠퍼스 챌린지 14일차딥러닝 2022. 2. 6. 20:36
2022.02.03 - [딥러닝] - 선형회귀 | 로지스틱 회귀 | 패스트캠퍼스 챌린지 11일차 선형회귀 | 로지스틱 회귀 | 패스트캠퍼스 챌린지 11일차 Linear Regression(선형회귀)은 데이터를 가장 잘 예측하는 최적의 직선을 긋는 과정이라 생각할 수 있다. 이 때 affine function f(\vec{x}; \vec{w}, b)를 입력 데이터가 거치게 되고, 이 결과는 별도의 activa.. izelstudy.tistory.com 위 글에서 선형회귀와 로지스틱회귀의 오차역전파를 구했지만, 이 때는 loss function을 통과한 값이 하나인 경우에 대해서만 다루었다. 이번 강의에서는 미니배치를 적용하여 loss function이 여러개가 있고, 이를 평균을 내는 loss functi..
-
Element-wise Operations | 패스트캠퍼스 챌린지 13일차딥러닝 2022. 2. 5. 21:11
기존 벡터 함수에서 벡터 입력 전체가 하나 혹은 그 이상의 함수를 거치는 경우를 살펴보았다. 이번에는 그 중 특별한 케이스라 할 수 있는, i번째 함수가 i번째 입력값 만을 사용하는 경우를 살펴본다. 이 때, 중요한 건 이러한 element-wise operation도 결국 벡터 함수에 대한 것이고, 이는 즉 모든 함수가 같은 입력을 받는다는 것이다. 다만, 같은 입력 벡터에서 일부분만 취사선택해서 사용할 뿐이다. 이러한 특수 케이스는 dense layer의 활성화 함수나 미니베치가 이루어 졌을 떄의 모델 등의 경우에 해당하기 때문에 중요한 역할을 한다. 사실 특수 케이스라도 예외가 되는 케이스는 아니라서, 따로 정리할 필요 없이 기존의 Jacobian을 구하면 된다. 다만, 이러한 벡터 함수의 경우 그..
-
벡터 함수 | 패스트캠퍼스 챌린지 12일차딥러닝 2022. 2. 4. 23:44
이전에는 변수가 여러개인 다변수함수에서, 입력 변수를 벡터라고 보고 이에 대해 편미분을 계산하는 과정 까지를 진행했다. 이 개념을 확장시키면, 동일한 변수인데 결과값은 여러개가 나오는 함수의 벡터를 생각해 볼 수 있을 것이다. 가령, 노트 필기 첫 번쨰 장의 원 위의 점의 위치의 경우 동일한 입력 t를 받아 x(t)와 y(t)라는 두 개의 결과값을 내보내게 된다. 이러한 함수들의 표기를 조금만 달리 하면 f_1(x), f_2(y) 정도로 생각해 볼 수 있고, 결과적으로 이러한 함수의 벡터 \vec{f}를 생각해 볼 수 있다. 중요한 점은 '입력이 주어졌을 떄 하나의 결과값을 내보낸다'라는 함수의 특징은 변함이 없다는 것이다. 함수는 개념상 결과값이 하나로 정해져야 한다. 즉, 벡터 함수는 함수들의 벡터이..