전체 글(77)
-
딥러닝 - 회귀에서의 역전파 구현
아주 간단하게 파이썬으로 역전파로 인해 신경망의 학습하는 구조를 이해하고 간단히 신경망을 구축해보자. 조건은 다음과 같이 줬다. 1. sin(x)함수를 정답 데이터로 가지고 x값을 입력, y값을 출력으로 하겠습니다. 2. 은닉층은 3개, 입력과 출력은 각 1개 씩 뉴런을 생산하겠습니다. 3. 은닉층의 활성화 함수는 시그모이드 함수를 사용하겠습니다. 4. 출력층의 활성화 함수는 항등함수를 사용하겠습니다. 5. 손실 함수는 오차제곱합을 사용하겠습니다. 6. 배치 사이즈는 1로 설정합니다. 결과를 설명하자면 1, 2, 3, 4 순으로 경사하강법을 1차례 학습한 경우, 2차례, 3차례 최종 4차례 줬을 때 정확도의 차이를 표현한 것이다. 단순 돌려 보기만하는 것과 이전 글에서 왜 값이 정확해 지는지 알고 적용하..
2021.06.14 -
딥러닝 - 경사하강법 기울기 연산
경사하강법을 이용한 편향 및 가중치를 수정하는 경우 내부 연산과정을 한번 정리해 볼까 합니다. 경사하강법으로 가중치와 편향을 수정하는 경우 w = 가중치, E = 오차, b = 편향이라고 두었을 때, 기울기를 구하기 위해서 "편미분"을 이용해 다음과 같은 식으로 나타낼 수 있습니다. 위 식을 설명하면, 가중치와, 편향을 수정하기 위해서 가중치에 이전 학습률을 편미분을 통해서 구하여 적용하는 수식을 나타낸 겁니다. η = 학습률을 의미하고, 학습의 속도를 결정하는 상수입니다. 값이 너무 작으면 학습시간이 오래걸리거나, 국소 최적해에 빠지는 문제가 발생합니다. 반대로 학습률이 너무 커져도 속도가 빨라져 오차가 좁혀지지 않는 문제가 발생하기도 합니다. 전역최적해에 도달하기 위해서 학습률을 적절하게 조절하여 학..
2021.06.14 -
딥러닝 - 경사하강법
딥러닝에서 오차를 차례차례 이전 층으로 전파시켜 가중치와 편향을 조금씩 수정하면서 최적화하기 위해서 “경사하강법”이라는 알고리즘을 이용합니다. 이 글에서는 경사하강법의 개념과 경사하강법을 위한 미분에 대해서 알아보겠습니다. 경사하강법이란, 어떤 파라미터 x_k 의 변화량에 대한 함수 y(x_(1, ), x_2, x_3, …..x_k, …)의 변화율 즉 기울기 ∂y/(∂x_k )를 구해 이 기울기에 따라 파라미터를 조정하고 y를 최적화하는 알고리즘을 경사하강법 이라고 합니다. 경사 하강법은 경사법의 한 종류로서 결과가 y의 최솟값을 향해 내려가도록 파라미터 x_k를 변화시킵니다. 여기서 우리가 이전 글에서 배운 역전파를 생각하면 다음과 같은 생각을 할 수 있을겁니다. 역전파에서 손실함수로 구한 오차값을 기..
2021.06.14 -
딥러닝 - 손실함수
손실함수가 무엇일까? 손실함수는 영어로 Loss function입니다. 손실함수는 출력값과 오차를 정의하는 함수로서 오차함수나 비용함수라고도 부릅니다. 여기서 말하는 오차는 정답과 출력값의 차이를 의미합니다. 오차값이 클수록 신경망이 바람직한 상태에서 멀어져 있는 것입니다. 학습은 이 오차를 최소화시키도록 진행됩니다. 손실함수에는 다양한 종류가 있는데 딥러닝에서는 일반적으로 “오차제곱합” 또는 “교차 엔트로피 오차”가 많이 사용됩니다. 출력층의 모든 뉴런에서 출력값과 정답의 차이를 제곱하고 이 값들을 모두 합한 것을 “오차제곱합”이라고 부릅니다. 오차제곱합 함수에서 E를 오차 제곱의 합, y_k 를 출력층의 각 출력값, t_k를 정답이라고 할 때 다음과 같은 공식으로 나타낼 수 있습니다. 오차제곱합을 이..
2021.06.14 -
딥러닝 - 훈련데이터, 테스트 데이터
v신경망을 학습하기 위해서는 많은 데이터가 필요합니다. 이때 사용되는 데이터는 훈련데이터와 테스트 데이터로 나누는 경우가 많습니다. 훈련 데이터는 신경망 학습에 이용하고, 테스트 데이터는 학습 결과 검증에 활용됩니다. 훈련 데이터와 테스트 데이터는 여러 개의 입력값과 정답의 짝으로 구성됩니다. 입력과 정답의 짝을 샘플이라고 합니다. 훈련 데이터로 학습된 신경망이 테스트 데이터에서도 좋은 결과를 출력하면 신경망이 새로운 데이터에도 잘 대응할 수 있습니다. 테스트 데이터에서 좋은 결과가 나오지 않으면 신경망과 학습에 무엇인가 문제가 있는 것 입니다. 회귀 문제에서 정답은 다음과 같이 여러 개의 값을 가지는 벡터로 나타낼 수 있습니다. 분류 문제에서 정답은 다음 예처럼 하나만 1이고 나머지는 0인 벡터로 표현..
2021.06.14 -
딥러닝 - 역전파(back propagation)
역전파는 신경망을 학습시킬 때 이용하는 알고리즘으로서 출력값과 정답의 오차를 네트워크에서 역전파시켜 네트워크의 가중치와 편향을 최적화시는 일을 말합니다. 예를들면, 시험을 보고 오답을풀며 복습을 해서 시험을 더 잘 보게 되는 과정이라고 생각하면 편합니다. 역전파(backpropagation)과정은 다음과 같은 순서로 진행됩니다. 1. 순전파로 얻은 출력값과 정답과의 오차를 하나씩 층을 거슬러 올라가며 역방향으로 전파시킵니다. 이때 전파시킨 오차에 근거하여 각 층의 가중치와 편향(bias)의 수정량을 구합니다. 2. 이후 모든 층의 가중치(weight)와 편향(bias)을 수정해 나갑니다. 3. 위 과정을 반복하면 네트워크에서는 점차 오차를 최소화시키도록 최적화 되어가는 학습이 진행됩니다. 4. 위에서 일..
2021.06.14