1. Computational graphs
Computational graphs란 계산 과정을 그래프로 나타낸 것이다.
그래프는 노드(node)와 에지(edge)로 나타낸다.

Computational graphs에서 화살표를 따라 왼쪽에서 오른쪽으로 진행하게 되는데 이것을 순전파(forward propagation)라고 한다. 이름에서 알 수 있든 역전파는 오른쪽에서 왼쪽으로 계산하는 것이다.
계산 그래프를 사용하면 2가지 장점이 있다. 첫 번째는 국소적 계산이 가능하다. 각 노드에서의 계산은 국소적 계산인데 국소적 계산을 하게 되면 전체에서 어떤 일이 벌어지든 상관없이 자신과 관계된 정보만으로 결과를 출력할 수 있다. 두 번째는 역전파를 통해 효율적으로 미분을 할 수 있다.
2. Back Propagation

$f = qz, q = x + y$ 로 표현된다면 알고자 하는 것은 $f$가 $x$ 또는 $y$로 직접적으로 표현되지 않는다. 이 때 사용할 수 있는 것이 chain rule이다. chain rule은 합성함수의 도함수를 쉽게 나타낼 수 있는 방법이며 다음과 같이 나타낼 수 있다.

chain rule을 사용해 $f$ 의 gradient를 구하면 합과 곱만을 이용한 간단한 연산을 통해 표현할 수 있다.

역전파는 입력에 대한 손실함수의 경사도를 구하기 위해 역전파를 사용한다. 즉, input의 가중치(weight)을 바꿀 수 있다. 실제 딥러닝에서 역전파를 활용해 가중치(weight)은 vector, matrix형태로 들어오지만 chain rule을 통해 계산한다.

Neural Networks(인공신경망)은 인간의 신경망이 작동하는 원리를 따라 만든 모형이다. 기본적으로 computational graph의 형태를 가지고 Node(cell)이 같은 계층에 여러 개 존재하며 이를 layer라고 부른다.

입출력을 처리하는 input/output layer를 제외한 중앙의 layer는 hidden layer라고 부르며 딥러닝에서는 hidden layer를 깊게 쌓인 신경망을 만든다. 아래는 2-layer Neural Net과 3-layer Neural Net의 예시이다.
그런데 layer가 각각 3개, 4개인데 왜 2,3 layer Neural Net이라고 할까? 그것은 weight을 갖고 있는것만 layer라고 하기 때문이다. input layer의 경우 weight을 갖고 있지 않기 때문에 제외된다.
'Study > cs231n' 카테고리의 다른 글
[cs231n] 7. Training Neural Networks 2 (0) | 2024.04.17 |
---|---|
[cs231n] 6. Training Neural Networks (0) | 2024.04.17 |
[cs231n] 5. Convolutional Neural Networks (0) | 2024.04.17 |
[cs231n] Loss Functions and Optimization 요약 (0) | 2024.04.04 |
1. Computational graphs
Computational graphs란 계산 과정을 그래프로 나타낸 것이다.
그래프는 노드(node)와 에지(edge)로 나타낸다.

Computational graphs에서 화살표를 따라 왼쪽에서 오른쪽으로 진행하게 되는데 이것을 순전파(forward propagation)라고 한다. 이름에서 알 수 있든 역전파는 오른쪽에서 왼쪽으로 계산하는 것이다.
계산 그래프를 사용하면 2가지 장점이 있다. 첫 번째는 국소적 계산이 가능하다. 각 노드에서의 계산은 국소적 계산인데 국소적 계산을 하게 되면 전체에서 어떤 일이 벌어지든 상관없이 자신과 관계된 정보만으로 결과를 출력할 수 있다. 두 번째는 역전파를 통해 효율적으로 미분을 할 수 있다.
2. Back Propagation

$f = qz, q = x + y$ 로 표현된다면 알고자 하는 것은 $f$가 $x$ 또는 $y$로 직접적으로 표현되지 않는다. 이 때 사용할 수 있는 것이 chain rule이다. chain rule은 합성함수의 도함수를 쉽게 나타낼 수 있는 방법이며 다음과 같이 나타낼 수 있다.

chain rule을 사용해 $f$ 의 gradient를 구하면 합과 곱만을 이용한 간단한 연산을 통해 표현할 수 있다.

역전파는 입력에 대한 손실함수의 경사도를 구하기 위해 역전파를 사용한다. 즉, input의 가중치(weight)을 바꿀 수 있다. 실제 딥러닝에서 역전파를 활용해 가중치(weight)은 vector, matrix형태로 들어오지만 chain rule을 통해 계산한다.

Neural Networks(인공신경망)은 인간의 신경망이 작동하는 원리를 따라 만든 모형이다. 기본적으로 computational graph의 형태를 가지고 Node(cell)이 같은 계층에 여러 개 존재하며 이를 layer라고 부른다.

입출력을 처리하는 input/output layer를 제외한 중앙의 layer는 hidden layer라고 부르며 딥러닝에서는 hidden layer를 깊게 쌓인 신경망을 만든다. 아래는 2-layer Neural Net과 3-layer Neural Net의 예시이다.
그런데 layer가 각각 3개, 4개인데 왜 2,3 layer Neural Net이라고 할까? 그것은 weight을 갖고 있는것만 layer라고 하기 때문이다. input layer의 경우 weight을 갖고 있지 않기 때문에 제외된다.
'Study > cs231n' 카테고리의 다른 글
[cs231n] 7. Training Neural Networks 2 (0) | 2024.04.17 |
---|---|
[cs231n] 6. Training Neural Networks (0) | 2024.04.17 |
[cs231n] 5. Convolutional Neural Networks (0) | 2024.04.17 |
[cs231n] Loss Functions and Optimization 요약 (0) | 2024.04.04 |