728x90

Deep Learning 17

[Deep Learning] 가중치의 초깃값

가중치의 초깃값 신경망 학습에서 특히 중요한 것이 가중치의 초깃값임. 가중치의 초깃값을 무엇으로 설정하느냐가 신경망 학습의 성패가 가르는 일이 실제로도 자주 있음. 초깃값을 0으로 하면? 오버피팅을 억제해 범용 성능을 높이는 테크닉 : 가중치 감소 기법 가중치 감소는 가중치 매개변수의 값이 작아지도록 학습하는 방법. 가중치 값을 작게 하여 오버피팅이 일어나지 않게 함. 가중치의 초깃값을 최대한 작게 만들면 가중치를 작게 만들 수 있음. 그러나 초깃값을 0으로 하면 학습이 올바르게 이뤄지지 않음. 초깃값이 0이 되면 오차 역전파법에서 모든 가중치의 값이 똑같이 갱신됨. 은닉층의 활성화값 분포 은닉층의 활성화값(활성화 함수의 출력 데이터)의 분포를 관찰하면 중요한 정보를 얻을 수 있음. # 은닉층 활성화 값..

Deep Learning 2022.11.13

[Deep Learning]Optimizer 매개변수 갱신

매개변수 갱신 신경망 학습의 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것 이것은 매개변수의 최적값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화라 함. 확률적 경사 하강법(SGD) class SGD: def __init__(self, lr = 0.01): self.lr = lr def update(self, params, grads): for key in params.keys(): params[key] -= self.lr * grads[key] optimizer는 '최적화를 행하는 자'라는 뜻 매개변수 갱신은 optimizer가 책임지고 수행하니 optimizer에 매개변수와 기울기 정보만 넘겨주면 됨. SGD의 단점 함수의 그래프와 등고선 [SGD에 의한 최적화 갱신 경로: 최솟값..

Deep Learning 2022.11.13

[Deep Learning]오차역전파의 계산법

출력층의 오차 업데이트 각 노드 내부에서는 입력 값을 이용해 가중합을 만드는 단계와 이 가중합을 활성화 함수를 적용해 출력하는 단계로 구분함. 오차 역전파는 Y 값에서 거꾸로 거슬러 올라가며 가중치 W₂와 가중치 W₁이 더는 업데이트 되지 않을 때까지 반복하여 계산 먼저 W₂의 값 중 하나인 ω₃₁을 업데이트 하려면 다음 공식으로 계산해야함. 여기서 t는 한 단계 앞, t + 1은 현재 단계의 계산을 의미함. ω₃₁t는 한 단계 앞에서 이미 계산된 값을 의미하므로 여기서는 구할 필요가 없습니다. 따라서 우리가 실제로 구해야 하는 값은 입니다. 이는 오차 Y를 구하고 이를 ω₃₁에 대하여 편미분 하라는 뜻입니다. 오차 공식 오차 Yout 안에는 두 개(yo1, yo2)의 출력 값이 있습니다. 즉, 오차 Y..

Deep Learning 2022.11.11

[Deep Learning]최소제곱법

- 일차함수, 기울기와 y 절편 y = ax + b x가 일차인 형태 x가 일차로 남으려면 a(기울기)는 0이 아니어야 함. - 이차함수 y = ax² 맨 아래 위치한 최솟값을 찾는 과정이 중요 - 미분 순간 변화율과 기울기 y = x²에서 x축에 있는 한 점 a에 대응하는 y의 값은 a² 이때 a가 오른쪽이나 왼쪽으로 조금씩 이동할 때 y도 조금씩 변화함. a가 아주 아주 미세하게 0에 가까울 만큼 움직일 때 y값 역시 매우 미세하게 변화함. 너무 미세해서 방향만 드러내는 정도의 순간적인 변화만 있을 때 이 순간의 변화를 '순간 변화율'이라고 함. 이 방향을 따라 직선을 길게 그려주면 그래프오 ㅏ맞닿는 접선이 그려지고, 이 선이 이 점에서의 기울기가 됨. - 미분을 한다 = '순간 변화율'을 구한다 -..

Deep Learning 2022.11.10

[Deep Learning] 오차역전파법 구현(Back Propagation)

신경망 학습의 전체 그림 신경망 학습의 순서 전제 신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 '학습'이라 합니다. 신경망 학습은 다음과 같이 4단계로 수행합니다. 1단계: 미니배치 훈련 데이터 중 일부를 무작위로 가져옵니다. 이렇게 선별한 데이터를 미니배치라 하며, 그 미니배치의 손실 함수 값을 줄이는 것이 목표입니다. 2단계: 기울기 산출 미니배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구합니다. 기울기는 소실 함수의 값을 가장 작게 하는 방향을 제시합니다. 3단계: 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금 갱신합니다. 4단계: 반복 1~3단계를 반복합니다. 오차 역전파법이 등장하는 단계는 두번째인 ..

Deep Learning 2022.11.07

[Deep Learning]활성화 함수 구현(activation function)

계산 그래프 계산 과정을 그래프로 나타낸 것 1. 계산 그래프를 구성한다. 2. 그래프에서 계산을 왼쪽에서 오른쪽으로 진행한다. - 계산을 왼쪽에서 오른쪽으로 진행하는 단계: 순전파 - 오른쪽에서 왼쪽의 전파: 역전파 국소적 계산 - 국소적: 자신과 직접 관계된 작은 범위 - 국소적 계산은 결국 전체에서 어떤 일이 벌어지든 상관없이 자신과 관계된 정보만으로 결과를 출력할 수 있음. 연쇄법칙 여러함수로 구성된 합성 함수의 미분에 대한 성질 - 연쇄법칙은 합성 함수의 미분에 대한 성질이며, 합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있음. - 덧셈 노드의 역전파( z = x + y ) 역전파 때는 상류에서 정해진 미분에 1을 곱하여 하류로 흘림. 즉, 덧셈 노드의 역전파는 ..

Deep Learning 2022.11.07

[Deep Learning]tensorflow로 Dnn 모델 쌓기

- Import & 환경설정 import tensorflow as tf from tensorflow.keras import utils import gc # 연산방식 설정 # GPU 또는 CPU multi training 가능하게 설정 from tensorflow.compat.v1 import ConfigProto # Configproto의 session을 default session으로 설정 from tensorflow.compat.vq impofg InteractiveSession config = ConfigProto() # gpu memory 0.1씩 할당 config.gpu_option.per_process_gpu_memory_fraction = 0.1 session = InteractiveSess..

728x90