본문 바로가기

Deep Learning

딥러닝 01::퍼셉트론에서 손실함수 까지

기계가 알고리즘을 짠다 = 머신러닝

데이터 + 출력 => 과정

지도학습: 데이터 + 라벨 => 판별 가능

비지도학습: 정답이 없다. 라벨이 없다. 유사도 클러스터링(군집화) -> 추천

강화학습: 정답에 대한 지도는 없다. 다만 결과가 0인지 1인지

예측모델

예측 모델은 수식으로 나타낼 수 있다.

선형으로 표현한다면 아래와 같다.

y = w1*x1 + w2*x2 + ... + b

인풋(x1, x2, ...)에 가중치(w1, w2, ...)를 곱하고 편향(b)를 더해 아웃풋을 도출할 수 있고

이 아웃풋이 예측 모델의 예측 값다.

학습

학습을 위해서는 우선 실제(input, output)으로 구성된 데이터셋이 필요하다.

앞서 인풋으로 아웃풋을 도출했듯이, 실제 데이터를 모델에 넣으면 예측 값이 나온다.

실제 아웃풋(y)과 예상 값(y hat)을 비교해 오차를 구할 수 있다.

 

이러한 과정을 반복해 데이터셋에 대한 오차값들을 구할 수 있다.

오차값들은 특정 방식을 통해 처리되고 그 결과를 가지고 예측 모델의 Wn과 b를 조정한다.

이러한 과정이 반복될수록 예측 모델은 정교해며 이를 학습이라고 한다.

퍼셉트론

위와 같은 수식을 노드 간의 연결로 표현한 형태를 퍼셉트론이라고 한다.

인풋과 아웃풋 간에 중간 hidden layer를 둘 수 있다.

layer는 여러 개의 노드로 이루어져 있다.

딥러닝

은닉층을 구성하는 노드를 하나의 저장공간이라고 보면 된다.

끝단의 출력층 역시 노드들로 이루어져 있고 출력층의 하나의 노드는 이전 은닉층의 여러 노드로부터 영향을 받는다.

때문에 은닉층이 많거나 길다면 더욱 세밀하게 가중치를 조절할 수 있다.

은닉층이 더해진 퍼셉트론 모델을 Neural Network라고 명칭한다

= Deep Learning(뉴런과 시냅스의 동작방식에서 응용했다)

노드의 의미

시험 데이터를 예측 모델에 삽입했을 때 실제로 특성 추출(feature extraction)을 통해 각 특성들이 노드에 저장이 되었다.

기존 전통적인 머신러닝은 각 특성에 라벨링을 해주어야 했지만 딥러닝은 이러한 과정이 생략된다.

손실함수

모델의 예측값과 실제 아웃풋의 오차를 최소화 시키는 가중치(Wn)로 조정하는 것을 학습이라고 한다.

이 때 오차를 저떻게 정의할 것인가. 오차는 음수도 존재한다. 그렇기 때문에 단순히 오차들을 더하면 안된다.

제곱을 한 다음 평균을 내는 평균제곱오차를 구해서 이러한 문제를 해결할 수 있다.

이렇게 오차를 구하는 함수를 손실함수(Loss function혹은 Cost function)이라고 한다.

활성함수

위에서 언급한 수식화한 예측 모델은 선형 모델이다. 때문에 가중치를 어떻게 설정하든 은닉층의 의미가 없어진다.

계산해보면

x1*(w1*w5 + w3*26) + x2*(w2*w5+w4*w6)

과 같은 형태가 될 것이고 이는 은닉층의 없는 예측 모델인

y = w1*x1 + w2*x2 + ... + b

으로 대체될 수 있기 때문이다.

이러한 선형식을 비선형 식으로 전환하는 함수를 활성함수라고 한다.

활성함수의 유명한 예로는 시그모이드 함수가 있다.

 

활성함수가 어떻게 비선형 식을 가능하게 하는 것일까?

 

 

'Deep Learning' 카테고리의 다른 글

0206 Vanishing / Exploding Gradient  (0) 2022.04.17
0204 Cross Validation / Confusion Matrix  (0) 2022.04.12
0203 Logistic Regression  (0) 2022.04.12
0202 Regularized Linear Models  (0) 2022.04.12
0201 Regression Model  (0) 2022.04.12