반응형

AI 56

[Deep Learning : 딥러닝] 오차 역전파와 XOR 문제

딥러닝의 핵심은 가중치 변경에 있다. 딥러닝의 가중치 변경 방법을 오차 역전파(Back Propagation)라고 한다. 오차에 대한 함수를 만들고, 경사하강법을 통해 오차가 최소인 지점으로 parameter를 보정해주는 것을 반복한다. 그런데 이런 수정 과정이 입력층부터가 아닌 **출력층부터 시작해서 은닉층, 입력층까지** 가므로, 이걸 **오차 역전파**라고 이름붙이게 된다. 오차 역전파는 다음과 같은 과정을 거친다. 임의의 초기 가중치 W로 결과 y를 계산한다. 계산 결과 우리가 원하는 값에 대한 오차를 구한다. 경사 하강법을 통해 오차가 작아지는 방향으로 parameter를 업데이트한다. 일정 범위에 오차가 들어올 때까지 반복 (=오차 함수에 대한 미분값이 0이 될 때까지 = 가중치에서 기울기를 ..

[Deep Learning : 딥러닝] 퍼셉트론과 XOR 문제

퍼셉트론의 구조 입력값을 놓고 활성화 함수에 의해 일정한 수준을 넘으면 참, 그렇지 않으면 거짓을 내보내는 회로의 형태다. 아래와 같은 퍼셉트론을 서로 연결하고 조합하여 입력값에 대해 판단하는 것이 신경망의 기본 구조다. 앞에서 봤던 식 $y = ax + b$는 $y = wx + b$(가중합)으로 변경된다. $w$는 가중치, $b$는 바이어스라고 부른다. 이 가중합을 활성화 함수에 입력하면 1 혹은 0을 판단해서 출력한다. 대표적인 활성화함수가 앞에서 봤던 sigmoid function이다. 여러개의 퍼셉트론을 사용하여 xor연산을 표현할 수 있다. 여러개의 퍼셉트론을 사용한다는 것은 숨겨진 층 = 은닉층을 만드는 것이라고 생각하면된다. 은닉층은 입력되는 좌표평면을 왜곡하는 결과를 내놓는다. 은닉층을 여..

[Deep Learning : 딥러닝] 로지스틱 회귀(Logistic Regression)

로지스틱 회귀를 써야만 하는 때 0/1,예/아니오 등 두개의 답 중 하나만 내놔야하는 경우에 로지스틱회귀(Logistic Regression)을 사용할 수 있다. 로지스틱 회귀에서 사용하는 함수를 활성화함수(activation function)이라고 하는데, 이 활성화 함수에는 시그모이드(Sigmoid), 렐루(ReLu) 등의 함수가 대표적이다. 그 중에서 시그모이드 함수는 $y = {1 \over 1+e^{-(ax+b)}}$이고, 로지스틱 회귀 문제는 이 함수에서의 $a, b$값을 구하는 것이다. 여기서 $a$는 함수의 경사도, $b$는 함수의 좌우 이동 정도를 나타내게 된다. 이번 포스팅의 주인공 시그모이드 함수 위의 sigmoid function은 0보다 큰 지점에서 1에 가까워져야하고, 0보다 작..

[Deep Learning : 딥러닝] 다중 선형 회귀(Multiple linear regression)

다중 선형 회귀 입력값이 많다면 그에 맞게 경사하강법을 사용해야한다. $y = a_1x_1 + a_2x_2 + b$에 대한 평균 제곱 오차를 $a_1, a_2, b$에 대해서 편미분해야한다. ${1 \over n}\sum(y_i-(a_1x_1 + a_2x_2 + b))^2$을 $a_1, a_2, b$로 편미분하면 ${2 \over n}\sum(y_i-(a_1x_1 + a_2x_2 + b))(-x_1) = -{1 \over n}\sum((error)_(x_1))$ ${2 \over n}\sum(y_i-(a_1x_1 + a_2x_2 + b))(-x_2) = -{1 \over n}\sum((error)*(x_2))$ ${2 \over n}\sum(y_i-(a_1x_1 + a_2x_2 + b))(-1) = -{..

[Deep Learning : 딥러닝] 경사하강법, 선형 회귀(Gradient descent, Linear Regression)

경사하강법 경사하강법 : 미분을 통한 기울기를 이용해서 오차가 작아지는 방향으로 가중치를 이동시키는 방법이다. 오차와 우리가 구하는 가중치값(a,b)을 이차함수로 표현한다고 하면 여기서 최소값이 구해지는 기울기가 0인 지점을 찾는 것이 목적이된다. 물론 모든 오차가 이렇게 이차함수 형태로 표현되지 않을테고, 따라서 우리가 보통 경사하강법으로 구하게 되는 극소점은 국소적 극소점이 된다. 뭘까 이 라임은 Learning Rate : 학습률. 변하는 가중치값이 어느정도 속도로 변할지 조정하는 수치이다. 이 값을 적절히 바꾸면서 최적의 학습률을 찾는 것은 중요하다. $${1 \over n}\sum(y_i-y_{iavg})^2 = {1 \over n}\sum(y_i-(ax_i+b))^2$$ 여기서 a와 b로 편미..

딥러닝 입문 - 최소제곱법, 평균제곱오차, 딥러닝의 기본 연산(method of least squares, Mean squared error)

참고도서 : 모두의 딥러닝, 제2판(조태호, 2020) 개발환경 : google colab 데이터를 입력하고 분석하는 과정을 training이라고한다. 텅빈 좌표평면에 data를 하나씩 놓고 이를 분류하는 과정이다. 이 data들을 분류하는 과정을 training하여 분류 경계선을 찾는 것이 machine learning의 목표다. # 파일 선택을 통해 예제 데이터를 내 컴퓨터에서 불러옵니다. from google.colab import files uploaded = files.upload() my_data = 'ThoraricSurgery.csv' # keras function from tensorflow.keras.models import Sequential from tensorflow.keras.l..

반응형