[민구/2nd meetup] Extended ML 키워드 조사
머신러닝 이론 회귀와 분류의 공통점과 차이점 회귀와 분류는 지도학습(Supervised)의 종류인데 분류(Classification)이란 주어진 데이터를 정해진 카테고리에 따라 분류하는 방법이다. 예시로는 스팸분류가 있는데 이메일은 스팸메일이거나 정상적인 ...
□ 회귀 (Regression)
□ L1손실, L2 손실의 차이
□ L1 정규화
□ L2 정규화
□ L1 정규화, L2 정규화의 차이
□ 경사하강법
□ 학습률
단어셋에 없는 단어들의 집합
인공신경망은 생물학의 신경망에서 영감을 얻은 학습 알고리즘, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜 문제해결 능력을 가지는 비선형 모델
NN의 구조 (어떻게 구성되는가?)
뉴럴 네트워크 모델의 입력층부터 출력층까지 순서대로 변수들을 계산하고 저장하는 것 간단하게 하기 위해서, 입력은 d 차원의 실수 공간 x∈Rd 으로 부터 선택되고, 편향(bias) 항목은 생략하겠습니다. 중간 변수는 다음과 같이 정의됩니다.
z=W(1)x
W(1)∈Rh×d 은 은닉층(hidden layer)의 가중치 파라미터입니다. 중간 변수 z∈Rh 를 활성화 함수(activation functino) ϕ 에 입력해서 벡터 길이가 h 인 은닉층(hidden layer) 변수를 얻습니다.
h=ϕ(z).
은닉 변수 h 도 중간 변수입니다. 출력층의 가중치 W(2)∈Rq×h 만을 사용한다고 가정하면, 벡터 길이가 q 인 출력층의 변수를 다음과 같이 계산할 수 있습니다.
o=W(2)h.
손실 함수(loss function)를 l 이라고 하고, 샘플 레이블을 y 라고 가정하면, 하나의 데이터 샘플에 대한 손실(loss) 값을 다음과 같이 계산할 수 있습니다.
L=l(o,y).
ℓ2 놈 정규화(norm regularization)의 정의에 따라서, 하이퍼파라미터(hyper-parameter) λ 가 주어졌을 때, 정규화 (regularization) 항목은 다음과 같습니다.
s=λ2(∥W(1)∥2F+∥W(2)∥2F).
여기서 행렬의 Frobenius norm은 행렬을 벡터로 바꾼 후 계산하는 L2 놈(norm)과 같습니다. 마지막으로, 한개의 데이터 샘플에 대한 모델의 정규화된 손실(regularized loss) 값을 계산합니다.
J=L+s.
J 를 주어진 데이터 샘플에 대한 목표 함수(objective function)라고 하며, 앞으로 이를 ‘목표 함수(objective function)’라고 하겠습니다.
중간 변수와 파라미터에 대한 그래디언트(gradient)를 반대 방향으로 계산하고 저장합니다.
일반적으로는 역전파(back propagation)은 뉴럴 네트워크의 각 층과 관련된
목적 함수(objective function)의 중간 변수들과 파라미터들의 그래디언트(gradient)를
출력층에서 입력층 순으로 계산하고 저장합니다.
이는 미적분의 ’체인룰(chain rule)’을 따르기 때문입니다.
임의의 모양을 갖는 입력과 출력 텐서(tensor) X,Y,Z 들을 이용해서 함수 Y=f(X) 와
Z=g(Y)=g∘f(X) 를 정의했다고 가정하고, 체인룰(chain rule)을 사용하면,
X 에 대한 Z 의 미분은 다음과 같이 정의됩니다.
∂Z∂X=prod(∂Z∂Y,∂Y∂X).
여기서 prod 연산은 전치(transposotion)나 입력 위치 변경과 같이 필요한 연산을 수항한 후 곱을 수행하는 것을 의미합니다. 벡터의 경우에는 이것은 직관적입니다. 단순히 행렬-행렬 곱셈이고, 고차원의 텐서의 경우에는 새로 대응하는 원소들 간에 연산을 수행합니다. prod 연산자는 이 모든 복잡한 개념을 감춰주는 역할을 합니다.
하나의 은닉층(hidden layer)를 갖는 간단한 네트워크의 파라매터는 W(1) 와 W(2) 이고, 역전파(back propagation)는 미분값 ∂J/∂W(1) 와 ∂J/∂W(2) 를 계산하는 것입니다. 이를 위해서 우리는 체인룰(chain rule)을 적용해서 각 중간 변수와 파라미터에 대한 그래디언트(gradient)를 계산합니다. 연산 그래프의 결과로부터 시작해서 파라미터들에 대한 그래디언트(gradient)를 계산해야하기 때문에, 순전파(forward propagation)와는 반대 방향으로 연산을 수행합니다. 첫번째 단계는 손실(loss) 항목 L 과 정규화(regularization) 항목 s 에 대해서 목적 함수(objective function) J=L+s 의 그래디언트(gradient)를 계산하는 것입니다.
∂J∂L=1 and ∂J∂s=1
그 다음, 출력층 o 의 변수들에 대한 목적 함수(objective function)의 그래디언트(gradient)를 체인룰(chain rule)을 적용해서 구합니다.
∂J∂o=prod(∂J∂L,∂L∂o)=∂L∂o∈Rq
이제 두 파라메터에 대해서 정규화(regularization) 항목의 그래디언트(gradient)를 계산합니다.
∂s∂W(1)=λW(1) and ∂s∂W(2)=λW(2)
이제 우리는 출력층와 가장 가까운 모델 파라미터들에 대해서 목적 함수(objective function)의 그래디언트(gradient) ∂J/∂W(2)∈Rq×h 를 계산할 수 있습니다. 체인룰(chain rule)을 적용하면 다음과 같이 계산됩니다.
∂J∂W(2)=prod(∂J∂o,∂o∂W(2))+prod(∂J∂s,∂s∂W(2))=∂J∂oh⊤+λW(2)
W(1) 에 대한 그래디언트(gradient)를 계산하기 위해서, 출력층으로부터 은닉층까지 역전파(back propagation)를 계속 해야합니다. 은닉층(hidden layer) 변수에 대한 그래디언트(gradient) ∂J/∂h∈Rh 는 다음과 같습니다.
∂J∂h=prod(∂J∂o,∂o∂h)=W(2)⊤∂J∂o.
활성화 함수(activation function) ϕ 는 각 요소별로 적용되기 때문에, 중간 변수 z 에 대한 그래디언트(gradient) ∂J/∂z∈Rh 를 계산하기 위해서는 요소별 곱하기(element-wise multiplication) 연산자를 사용해야합니다. 우리는 이 연산을 ⊙ 로 표현하겠습니다.
∂J∂z=prod(∂J∂h,∂h∂z)=∂J∂h⊙ϕ′(z).
마지막으로, 입력층과 가장 가까운 모델 파라미터에 대한 그래디언트(gradient) ∂J/∂W(1)∈Rh×d 를 체인룰(chain rule)을 적용해서 다음과 같이 계산합니다.
∂J∂W(1)=prod(∂J∂z,∂z∂W(1))+prod(∂J∂s,∂s∂W(1))=∂J∂zx⊤+λW(1).
-https://light-tree.tistory.com/125 (L1, L2 norm, Regularization, loss 참고) -https://ko.d2l.ai/chapter_deep-learning-basics/backprop.html
머신러닝 이론 회귀와 분류의 공통점과 차이점 회귀와 분류는 지도학습(Supervised)의 종류인데 분류(Classification)이란 주어진 데이터를 정해진 카테고리에 따라 분류하는 방법이다. 예시로는 스팸분류가 있는데 이메일은 스팸메일이거나 정상적인 ...
이번 회차 Keyword 머신러닝 이론 회귀와 분류의 공통점과 차이점 □ 분류(Classification) 미리 정의된, 가능성 있는 여러 class label중 하나를 예측하는 것! ◇ 이진 분류(binary clas...
What is ML?
Keywords of week 1 What is ML? ML vs Rule-based AI, ML, Deep Learning Type of ML (Classification, Clustering, Regression, Sequence Prediction) Kin...
What is ML? 기계 학습(Machine Learining)이란 무엇인가?
What is ML? 머신러닝은 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야이다. 즉, 기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야라고 할 수 있다.
What is ML? 기계학습으로 인간이 하나부터 열까지 직접 코드를 지정해 주는 것이 아닌 학습할 무언가를 기계에 주고 이걸 가지고 스스로 학습하는 기계이다.
골빈해커 3분 딥러닝(텐서플로편) https://github.com/golbin/TensorFlow-Tutorials
What is ML?