본문 바로가기
개발 Tools/파이썬_Deep learning & ML

딥러닝을 위한 기초 개념 Perceptron ( 활성함수, DNN )

by 전컴반 2022. 5. 4.
반응형
Perceptron

 

가장 기본이 되는 단위라고 생각할 수 있다. 어떤 모델에 대해 내가 원하는 결과를 나타내는 h라고 본다.

 

심플하게 어떤 입력과 h에 대한 가중치를 곱한 값을 sign함수에 넣었을 때, 양수면 +1로 판단하고 음수면 -1로 판단한다. 일종의 예측값이라고 보면 된다. 이렇게 예측값과 실제 값이 있을 텐데 이 값을 비교해서 틀렸다면 가중치 w를 변경해가며 내가 원하는 결과가 나올 때까지 h를 변경해 간다. 가중치란 어떤 입력이 더 중요한지 아닌지에 대한 조절 값이다. 

 

sign function

 

다음과 같은 식이 있는데 조금 더 예쁘게 하기 위해 b를 w0라고 하고 1을 x1이라고 하면 예쁜 식이 나온다.

 

이렇게 시그마를 행렬로 바꾸면 똑같은 결과를 나타내니 더 이쁘게 정리하기 해서 최종적으로 위와 같은 식이 나왔다.

 

 

sinn 함수가 아니라 여러 함수를 사용한다. 이를 활성 함수라고 한다. 즉 활성 함수를 기준으로 결괏값에 따라 이  활성 함수에는 다음과 같은 종류가 있다.

활성 함수는 왜 필요할까?? 비선형성을 주기 위해서이다.

 

 

조금 더 간소화해서 퍼셉트론을 표기하면 아래와 같다. 그리고 하나의 퍼셉트론을 여러 개로 만든다면 오른쪽과 같다. 조금 간단히 생각하면 반복문을 돌린다고 생각하면 더 이해가 쉬웠다. 반복문을 돌릴 때 먼저 하나의 프로토타입에 대해 구현하고 숫자만 변경하는 것과 똑같다고 느꼈다.

아래서 가중치 0에 대해 항상 더해줘야 하는 것을 잊지 말자, 그림에선 생략됐다.

 

 

 

조금 더 많은 퍼셉트론을 붙였다. 그리고 출력에 대해서도 퍼셉트론을 대입해봤다. 하나의 예를 들어보면,

Z2는 가중치 0과 입력에 대한 가중치 곱의 합으로 이루어진다. 

 

 

 

정규화하면 다음과 같다. 이걸 DNN (Deep Neural Network)이라고 부른다.

 

 

이렇게 입력에 대한 결과가 나오면, 우린 이제 이게 맞는지 아닌지 판단해야 한다. 이 세상엔 100%도 0%도 없기 때문이다. 하지만 정답 혹은 실존 값은 있다. 이렇게 모델에서 틀린 걸 Ein이라고 부른다 (test data에서도 통용한다).

 

 

그리고 실제 모든 값과 예측값에 대한 에러를 Eout이라고 부른다 (train data에서도 통용한다).

 

 

우린 이 에러를 줄이는 게 목표다. 에러를 줄이려면 위에서 말한 것처럼 설정한 W를 변경하면서 최적의 W를 구해야 한다. 입력은 변하지 않으니 말이다.

 

 

간단히 정리하면, 에러를 측정하는 방법은 cross entropy, Mean squared error 등과 같은 방식이 있는데 이 에러를 최적화하는 방법 중 하나가 gradient decent를 이용하는 것이다. 이때 W를 조절하는 것이다.

 

반응형

댓글