2. 6.4 Architecture Design
신경망의 구조도 설계
1. 신경망의 층 개수
2. 층들의 상호 연결 방식
3. 각 층의 계산 단위 개수
Architecture는 unit개수나 unit들의 연결 방
식 등을 포괄하는, 신경망의 전반적인 구조
대부분의 신경망 아키텍처는 다수의 층을,
각 층이 그 이전 층의 결과를 입력으로 받
는 함수로서 작용하는 형태의 사슬 구조로
조직화된다.
이러한 사슬 기반 아키텍처에서 신경망의
구조에 관한 주된 고려사항은 신경망의 깊
이와 각 층의 너비를 선택하는 것이다.
대부분은 층(layer)이라고 부르는 단위들의
묶음으로 조직화 된다.
4. 6.4 Architecture Design
신경망의 구조도 설계
1. 신경망의 층 개수
2. 층들의 상호 연결 방식
3. 각 층의 계산 단위 개수
보편근사정리(Universal Approximation Theorem, UAT)
배우고자 하는 함수가 어떤 것이든 큰 MLP(Multi Layer
Perceptron)로 그 함수를 표현할 수 있음을 뜻한다.
5. 현재 가장 많이 사용되는 딥러닝 모델
CNN
DBN
6.4 Architecture Design
6. 6.4 Architecture Design
신경망의 구조도 설계
1. 신경망의 층 개수
2. 층들의 상호 연결 방식
3. 각 층의 계산 단위 개수
보편근사정리(Universal Approximation Theorem, UAT)
배우고자 하는 함수가 어떤 것이든 큰 MLP(Multi Layer
Perceptron)로 그 함수를 표현할 수 있음을 뜻한다.
7. 6.4 Architecture Design
보편근사정리(Universal Approximation Theorem, UAT)
배우고자 하는 함수가 어떤 것이든 큰 MLP(Multi Layer
Perceptron)로 그 함수를 표현할 수 있음을 뜻한다.
y = 3sin(x)cos(x)(6x^2+3x^3+x)tan(x) 여러 개의 layer로 구현
하나의 layer로 구현
8. 6.4 Architecture Design
보편근사정리(Universal Approximation Theorem, UAT)
배우고자 하는 함수가 어떤 것이든 큰 MLP(Multi Layer
Perceptron)로 그 함수를 표현할 수 있음을 뜻한다.
y = 3sin(x)cos(x)(6x^2+3x^3+x)tan(x)
보편근사정리에 따르면, 주어진 함수
를 우리가 원하는 정확도로 근사하기
에 충분한 크기의 신경망이 존재한다.
그러나 그러한 신경망이 얼마나 큰지
를 정리가 말해 주지는 않는다.
최악의 경우 필요한 hidden layer 개수
는 지수적(거듭제곱 규모)일 수 있다.
9. 깊이의 효과. 신경망은 깊을수록 더 잘 일반화 된다.
[Goodfellow et al. 2014d]
Test set 정확도는 깊이의 증가에 따라 일관되게 증가한다.
6.4 Architecture Design
10. convolution 신경망의 깊이를 증가하지 않고
매개변수만 늘리는 것은
test set 정확도 향상에 효과적이지 못하다.
특히, 깊은 모형은 함수가 다수의 더 단순한 함수들을
조합한 형태이어야 한다는 믿음을 나타낸다.
6.4 Architecture Design
17. Back propagation
인공신경망의 원리
킬로미터를 마일로 변환해주는 기계 가정
마일 = 킬로미터 x c
실제사례 킬로미터 마일
1 0 0
2 100 62.137
C를 찾기 위해선??
오차 = 실제 값 – 계산 값
= 62.137 – 50
= 12.137
18. Back propagation
인공신경망의 원리
킬로미터를 마일로 변환해주는 기계 가정
마일 = 킬로미터 x c
실제사례 킬로미터 마일
1 0 0
2 100 62.137
C를 찾기 위해선??
오차 = 2.137
오차 = -7.863
직전 시도를 거울삼아 파라미터
를 조금씩 조정해 나간다
22. Back propagation
인공신경망의 원리
분류자 학습시키기
Training data
Y = Ax
분할선이 직선이므로 임의의 방정식 가정
Y = 0.25 x 3.0 = 0.75
Training data 대입
오차 = 목표 값 – 실체 출력 값
E = 1.1 – 0.75 = 0.35
23. Back propagation
인공신경망의 원리
분류자 학습시키기
Y = Ax
T = (A +ΔA)x
E = 1.1 – 0.75 = 0.35
ΔA = E/ x = 0.35/ 3.0 = 0.1167
현재 0.25라는 값을 가지는 A를
0.1167만큼 업데이트 해야한다
24. Back propagation
인공신경망의 원리
분류자 학습시키기
이번에는 목표 t 를 2.9로 설정
마지막으로 학습한 Training data에 맞
춰진 업데이트 결과만 얻는다
업데이트의 정도를 조금씩 조정해야 한다
ΔA = E/ x = 2.5333/ 1.0 = 2.5333
즉 x = 1.0 일 때 이 함수는 목표 값
인 .2.9를 출력
새로운 A는
A + ΔA = 0.3667 + 2.5333 = 2.9로
업데이트
25. Back propagation
인공신경망의 원리
분류자 학습시키기
이번에는 목표 t 를 2.9로 설정
마지막으로 학습한 Training data에 맞
춰진 업데이트 결과만 얻는다
업데이트의 정도를 조금씩 조정해야 한다
ΔA = E/ x = 2.5333/ 1.0 = 2.5333
즉 x = 1.0 일 때 이 함수는 목표 값
인 .2.9를 출력
새로운 A는
A + ΔA = 0.3667 + 2.5333 = 2.9로
업데이트
L 을 Learning rate
이라고 부른다
26. Back propagation
인공신경망의 원리
분류자 학습시키기
X = 1.0이고 A=0.3083이므로
Y = 0.3083 x 1.0 = 0.3083
목표 값은 2.9이므로 오차는 2.9 – 0.3083 = 2.5914
두번째 학습 데이터 적용
ΔA = L(E/x) = 0.5 x (2.5914/1.0) = 1.2958
따라서 업데이트 된 A는 0.3083 + 1.2958 = 1.6042
비교적 간단한 기법인 학습률만 적용했을 뿐인
데 분할선에 매우 빠르게 도달!
27. Back propagation
인공신경망의 원리
2개의 layer와 2개의 뉴런만 존재하는 신경망의 예
2개의 입력 값 각각 1.0 , 0.5
W(1.1) = 0.9
W(1.2) = 0.2
W(2.1) = 0.3
W(2.2) = 0.8 로 가정
X = (1.0 x 0.9) + (0.5 x 0.3) = 0.9 + 0.15 = 1.05
X = (1.0 x 0.2) + (0.5 x 0.8) = 0.2 + 0.4 = 0.6
1.05
0.6
30. Back propagation
인공신경망의 원리
W11 = 2.0, W12 = 1.0
출력Layer의 오차E가 0.8
0.8 을 2/3, 1/3 으로 비례해서 이전 Layer
가중치에 전달한다.
각 각 0.32 , 0.48
인공신경망에서 학습이란 연결 노드의 가중치를 업데이트 하는 과정을 의미한다.
32. Back propagation
인공신경망의 원리
가중치의 계산
무차별 대입은 비용이 너무 크다
3개의 노드를 가지는 3개의 Layer로 이루
어진 신경망에는 총 18개의 가중치 존재
가중치 범위 -1~1 사이의 값이 1000개로
제한된다고 가정한다고 해도
총 18000가지 경우의 수를 테스트 해야한
다
500개 노드면 5억 가지 조합
하나의 조합 연산하는데 1초가 걸린다고
해도 16년이 걸림
34. Back propagation
인공신경망의 원리
Vanishing gradient descent problem
Sigmoid나, tanh 등의 activation function들은 매우 비선형적인 방식
으로 그들의 input을 매우 작은 output range로 짓이겨 넣는다(squash)
해결은 ReLU