인공신경망

1. 피드 포워드 신경망(FFNN)

다층 퍼셉트론이 입력 계층에서 출력 계층으로만 진화하는 신경망을 피드포워드 신경망이라고 합니다.

2. 완전 연결 계층(FC, dense 계층)

각 뉴런이 이전 레이어의 모든 뉴런에 연결된 레이어. 모든 입력 뉴런과 출력 뉴런 간의 연결을 허용합니다.

미리 접착된 레이어의 롤

1. 선형 변환: 입력 데이터에 대해 선형 변환이 수행됩니다. 이를 위해 가중치 행렬에 입력 벡터를 곱하고 편향 벡터를 더한다. 가중치와 편향은 모델 훈련 중에 최적화되며 이 과정에서 모델은 입력과 출력 사이의 패턴을 학습합니다.

2. 비선형성 도입: 선형 변환만으로 복잡한 패턴을 학습하는 데는 한계가 있습니다. 이 시점에서 비선형성은 나중에 보여지는 활성화 함수를 사용하여 도입됩니다.

3. 활성화 기능


은닉층과 출력층에 있는 뉴런의 출력값을 결정하는 함수를 활성화 함수라고 합니다.

3-1 활성화 함수 속성 – 비선형 함수

선형 함수란 무엇입니까?

선형성: f(x + y) = f(x) + f(y)를 만족합니다. 즉, 두 입력값의 합을 함수에 대입한 결과는 각 입력값에 함수를 적용한 후 함수를 더한 결과와 같아야 한다.

동질성: f(ax) = af(x)를 만족합니다. 여기서 a는 스칼라입니다. 즉, 입력값에 스칼라를 곱한 결과를 함수에 대입한 결과는 함수를 적용한 후 스칼라를 곱한 결과와 같아야 한다.

위의 두 조건 중 하나라도 충족되지 않으면 함수는 비선형입니다.

왜 비선형 함수일까요?

활성화 함수가 선형 함수이고 레이어를 쌓는다고 가정해 봅시다.

?(?) = wx라고 가정하고 두 개의 히든 레이어를 추가하면 ?(?) = ?(?(?(?)))는 k = w^3이라고 가정하면 w*w*w*x가 됩니다. 그러면 ?(?) = kx는 같은 식으로 표현하면 된다. 여기서 w^3과 w의 값 차이가 있다고 생각할 수 있지만 같은 형태로 표현한다는 것은 복잡한 패턴 학습에 도움이 되지 않는다는 뜻입니다.

3-2 비선형함수의 예

(1) 단계 함수


거의 사용하지 않습니다.

(2) Sigmoid 함수와 Gradient Vanishing


입력에 대해 순전파 연산을 수행하고 예측값과 실제값의 오차를 손실함수로 계산하고 이 손실을 미분하여 기울기를 구한다. 이러한 역전파 과정에서 인공신경망은 경사하강법을 사용한다.

즉, 입력 데이터를 입력 레이어에서 출력 레이어로 순차적으로 처리하는 과정을 통해 가중치와 편향을 이용하여 입력 데이터를 선형 변환하고 비선형성을 활성화 함수로 도입하여 예측값을 얻는다. . 이 예측 값과 실제 값의 차이는 손실 함수에 의해 계산됩니다. 이 차이를 최소화하는 것이 인공 신경망의 목표입니다. 사용되는 주요 손실 함수에는 평균 제곱 오차(MSE)와 교차 엔트로피가 포함됩니다. 이제 출력 레이어에서 입력 레이어로 가중치와 편향을 업데이트하는 프로세스인 역전파는 이 손실 함수의 그래디언트를 계산하여 수행됩니다. 이 역전파 과정에서 사용되는 최적화 알고리즘은 경사하강법입니다. 손실 함수의 기울기를 구하고 기울기를 사용하여 가중치 편차를 점진적으로 업데이트합니다.

경사하강법을 더 설명하기 위해 가중치와 편향에 대해 1차 임의의 초기값(난수)을 설정한다. 손실 함수에 대한 가중치 및 편향의 기울기(기울기)를 찾습니다. 그래디언트는 손실 함수의 그래디언트이며 가중치와 편향의 업데이트 방향에 대해 알려줍니다.

위의 도표와 방정식을 보면 이해하기 쉽습니다. 가중치에서 기울기를 빼는 형태의 표현으로 기울기가 양수이면 뺄셈으로 0으로 수렴하고 음수이면 합의 형태로 0으로 수렴함을 알 수 있다. . 물론 실제 loss function은 위의 그래프보다 더 복잡하다.

이제 기울기와 학습률의 곱을 가중치와 편향에서 빼서 업데이트합니다. (위 과정입니다.) 학습률은 각 업데이트 단계의 단계 크기를 결정하는 하이퍼파라미터입니다. 작은 학습률은 많은 반복이 필요하고 시간이 오래 걸립니다. 학습 속도가 크면 반복 횟수가 거의 필요하지 않지만 오버슈팅되거나 최적 지점에서 벗어날 수 있습니다. 이제 손실 함수 값이 충분히 감소하거나 그래디언트 값이 작아질 때까지 반복합니다. 도달하면 최종 중량 편차를 반환합니다.

시그모이드 함수의 기울기 손실 문제

위는 시그모이드 함수의 그래프입니다. 주황색 부분은 0에 가까운 차이 값을 가지며 녹색 부분은 0.25인 최대값 부분입니다. 즉, 역전파 과정을 반복하면 기울기 값이 0.25 미만이 된다. 따라서 인공신경망의 레이어를 활성화 함수로 시그모이드 함수로 적층하면 역전파(backpropagation) 과정에서 이전 레이어로 전파될 때마다 그래디언트의 값이 점차 감소하여 결국 가중치와 편향이 업데이트되지 않는다. 전면에. 오른쪽 그림이 그것을 보여줍니다.

따라서 이 문제를 해결하기 위해 이진 분류 출력 계층에서는 시그모이드 함수를 주로 사용한다.

(4) 하이퍼볼릭 탄젠트 함수


하이퍼볼릭 탄젠트 함수는 -1과 1 사이의 값을 변환한다. 하이퍼볼릭 탄젠트도 시그모이드 함수와 같은 문제가 있지만 시그모이드 함수와 달리 0을 중심으로 미분했을 때 최대값이 1이 되는데, 이는 시그모이드 함수보다 크다. .

따라서 이 함수는 시그모이드 함수에 비해 기울기 손실 현상이 적지만 기울기 소실 문제에서 자유롭지 못하다.

(5) 렐루 함수(ReLU)


인공 신경망의 히든 레이어에서 가장 많이 사용되는 기능입니다. 공식은 ?(?) = ???(0, ?)만큼 간단합니다.

relu 함수는 음수에 대해 0을 반환하고 양수에 대해 입력 값을 반환합니다. 따라서 양수의 미분은 항상 1이고 음수는 0입니다.

따라서 relu 함수는 계산이 필요하지 않으므로 계산 속도가 매우 빠릅니다.

그러나 문제가 있습니다. 입력 값이 음수이면 차이 값이 0이 되어 이 뉴런이 재생성되기 어렵습니다. 이 문제는 데드 렐루(dead relu)라고 알려져 있습니다.

(6) ReLU 유출


Ricky ReLU는 죽은 Relu를 보상하기 위한 ReLU의 변환 기능입니다. Ricky Relu는 입력 값이 음수이면 0이 아닌 아주 작은 숫자를 반환합니다. 공식은 ?(?) = ???(??, ?)입니다. a는 누설 정도를 결정하는 하이퍼파라미터로 일반적으로 0.01의 값을 갖는다.

(7) 소프트맥스 기능


숨겨진 계층에서는 ReLU 함수를 사용하는 것이 일반적입니다. sigmoid 함수와 마찬가지로 softmax 함수는 출력 레이어에서 주로 사용됩니다. Sigmoid 함수와 달리 softmax 함수는 주로 다중 클래스 분류 문제에 사용됩니다.