정지홍 2023. 1. 27. 23:48

활성화 함수

 

계단함수 (입력 값이 0초과시 출력은 1, 이외는 0으로)

 


시그모이드 함수(0과 1사이를 매끄럽게 변화)


하이퍼볼릭 탄젠트 함수(위의 시그모이드보다 0을 중심으로 대칭이며 좀 더 균형이 잡혀있다.)


ReLu함수(0이하는 0으로 출력, 이외는 입력값 그대로 출력)


항등함수(입력값을 그대로 내보낸다. 회귀문제에서 자주 사용)


소프트맥스 함수

-분류 문제에서 사용하는 함수

-출력의 합이 1이 된다.

import numpy as np
def softmax(a):
    exp_a=np.exp(a)
    sum_exp_a=np.sum(exp_a)
    y=exp_a/sum_exp_a
    return y

순전파:순방향으로 정보를 전달

역전파:역방향으로 출력에서 입력으로 정보를 전단

미분:어느 한 함수의 지점에서의 순간 변화하는 비율을 의미

합성함수:여러 함수의 합성으로 나타내는 함수

편미분:여러개의 변수를 가진 함수를 미분할때 변수 하나만 미분하고 나머지는 상수로 취급하는것

 


손실함수: 출력과 정답 사이의 오차를 정의하는 함수

 

오차제곱합

-출력값과 정답의 차이를 제곱한 값을 모두 더한다.

def sse(y,t):
  return 1.0/2.0*np.sum(np.square(y-t))
 
교차 엔트로피 오차
-2개의 분포들간의 편차를 나타낸다.
-모든 값의 log(출력값)*정답을 구하여 더한후 -1을 곱한다.
-출력값과 정답값의 차이가 클수록 학습 속도가 빨라진다. 
def crossEntropy(y,t):
  return -np.sum(t*np.log(y+1e-7))

경사하강법

-가중치와 편향을 갱신하여 결과가 최솟값에 다가가도록 하는것

-여기서 경사는 오차를 미분한 것이다.

-손실 함수로 구한 값을 기점으로 신경망을 올라가서 가중치,편향을 수정하는 것

(순전파에서 구한 출력값 y를 손실함수에 넣어서 오차를 얻는다. 그리고 경사하강법을 계속 돌려서 파라미터 갱신)

 

 

확률적 경사하강법:기울어진 방향으로 계속 매개변수를 갱신한다. 국소적인 해에 잘 빠지지 않고 표현이 단순하다.

모멘텀:확률적 경사 하강법에 관성을 더한 알고리즘이다.

아다그라드:각각 변수들에게 맞게 학습률을 조정해나간다.

RMS Prop:갱신량이 저하된 파라미터도 다시 학습하게 한다

Adam:다양한 최적화 알고리즘의 좋은 점들을 합친 알고리즘, 종종 다른 알고리즘보다 높은 성능 발휘


출력층에서 경사 결정

-연속적인 값으로 하고싶으면 활성화 함수에 항등함수, 손실함수에 오차 제곱합을 사용

-분류문제에서는 활성화 함수를 소프트맥스함수, 손실함수는 교차 엔트로피 오차를 사용

 

에포크

-1에포크는 훈련 데이터를 1회 다 써서 학습함을 의미

 

배치

-훈련 데이터 샘플을 여러개 합친 그룹을 배치라고 한다.