😏인공신경망

인공신경망

인공 신경망artificail neural network은 인간의 생물학적 신경망과 유사한 구조를 갖는 인공 시스템.

동작원리

수상돌기에서 신호를 받아들이고, 이 신호가 축삭 돌기를 지나 말단까지 전달됩니다. 그런데 신호가 특정 임계값을 넘으면 말단까지 잘 전달되고, 임곗값을 넘지 않으면 말단까지 전달되지 않습니다. 신호가 말단까지 잘 전달되어야 다음 뉴런의 수상돌기가 그 신호를 이어 받습니다.

퍼셉트론

퍼셉트론perceptron은 뉴런의 원리를 본떠 만든 인공 구조입니다.

x는 입력값을 의미하며, w 는 가중치(Weight), y는 출력값입니다. 그림 안의 원은 인공 뉴런에 해당됩니다. 실제 신경 세포 뉴런에서의 신호를 전달하는 축삭돌기의 역할을 퍼셉트론에서는 가중치가 대신합니다. 각각의 인공 뉴런에서 보내진 입력값 는 각각의 가중치 와 함께 종착지인 인공 뉴런에 전달되고 있습니다.

퍼셉트론이 출력값을 구하는 절차

  1. 입력값과 가중치를 곱합니다.

  2. 곱한 값들의 총합을 구합니다.

  3. 총합이 0을 넘으면 1, 넘지 않으면 0을 출력합니다.

입력값이 같더라도 가중치를 조정하면 출력값이 바뀌겠죠. 원하는 출력값을 내보내도록 가중치를 조정해가는 작업을 훈련traning혹은 학습이라고합니다. 즉, 모델을 훈련시켜 최적인 가중치를 구할 수 있습니다.

퍼셉트론은 입력값과 가중치의 선형 결합으로 이러어진 구조입니다. 그래서 처셉트론 하나로는 비선형문제를 풀지 못합니다. 그래서 퍼셉트론을 여러 층으로 쌓아 다층 퍼셉트론multi-layer perceptron을 만들면 해결됩니다.

신경망

신경망은 입력층, 은닉층(중간층), 출력층으로 구성됩니다.

신호는 입력층에서 출발해 은닉층을 거쳐 출력층에 도달합니다. (은닉층은 존재하지 않거나 1일수 있음)

활성화 함수

활성화 함수는 입력값을 어떤 값으로 변환해 출력할지 결정하는 함수입니다. 입력값과 가중치를 곱한 값들은 활성화 함수를 거쳐 출력값이 됩니다.

시그모어 함수

S자 곡선을 그리는 숙학 함수

ReLU 함수

입력값이 0보다 크면 입력값을 그대로 출력하고, 입력값이 0이하이면 0을 출력합니다.

경사하강법

신경망 훈련의 목표는 최적 파라미터를 찾는 것입니다. 여기서 파라미터는 가중치와 편향을 일컫습니다. 최적 파라미터는 손실함수가 최솟값일 떄의 파라미터를 말합니다. 매 훈련 단계마다 손실삾이 줄어드는 방향으로 파라미터를 갱신하며 최적 파라미터를 찾습니다.

손실함수란 모델 성능이 얼마나 나쁜지를 측정하는 함수입니다.

경사 하강법이란 말 그대로 경사를 따라 내려가는 방법을 일컫습니다.
일반적인 절차

  1. 현재 위치에서 기울기(경사)를 구합니다.

  2. 기울기 아래 방향으로 일정 거리를 이동합니다.

  3. 손실 함수가 최소가 될 때까지, 즉 현재 위치의 기울기가 0이 될 때까지 1~2단계를 반복합니다.

여기서 기울기 방향을 얼마만큼 이동할지 결정하는 값을 학습률이라고합니다.
학습률에 따라 훈련속도가 달라집니다.
전체 학습 데이터에서 개별 데이터를 무작위로 뽑아 경사하강법을 수행하는 알고리즘을 확률적 경사하강법, 데이터를 미니배치 단위로 추출해 경사 하강법을 수행하는 것을 미니배치 경사하강법입니다.

==> 순전파와 역전파