본문 바로가기
공부/<파이썬으로 만드는 인공지능>

Ch4 신경망 기초

by 푸딩코딩 2023. 10. 8.
728x90
반응형

퍼셉트론, 다층 퍼셉트론

 

4.1 인공 신경망의 태동

뉴런은 세포체, 수상돌기, 축삭으로 구성되어 뇌에서 서로 연결(시냅스)되어 서로 정보를 전달한다. 이렇게 연결된 망을 신경망이라 한다. 뉴런 당 1000개의 뉴런과 연결되어, 병렬로 정보를 처리한다. 이러한 뇌 구조를 착안한 아이디어가 인공 신경망이다. 

 

4.2 퍼셉트론의 원리 

 

퍼셉트론: 입력층과 출력층(결과)으로 구성된다. 선형분류를 한다.

d차원의 특징 벡터를 가지면, 입력층에는 d+1개의 노드가 있다. 

입력층과 출력층은 가중치 w를 갖는 edge로 연결되고, i번째 엣지는 x_i 특징과 가중치 w_i를 곱해 출력 노드로 전달한다. 0번째 노드의(좌측 최상단) 입력 x_0(바이어스 노드/편향)은 항상 1이다. 출력 노드는 d+1의 곱셈 결과를 모두 더한 s를 계산하고, 활성 함수(step function)에 적용한 결과를 out으로 출력한다. 

퍼셉트론은 활성함수로 계단함수를 사용한다. 

계단 함수: 값이 0보다 크면 1, 0 이하이면 -1로 출력(이진분류)

1, s>0

-1, s<=0 

 

 

파이썬에서는

o=t(wx^t)로 간결하게 표현해 행렬곱 연산을 통해 스칼라로 output을 출력한다. 

 

s=sum(x*w) #요소별로 곱한 후 요소를 합산

 

4.3 사람의 학습과 신경망의 학습

실제 기계 학습에서는 데이터만 주어지기에, 가중치는 직접 알아내야하며, 이 과정을 퍼셉트론의 학습이라고 한다. 가중치는 차원이 d일 때, d+1개이다. 

따라서 다음과 같은 매커니즘이다. 

초기 가중치 w를 설정한다. 

while(true):

J(w) 손실 함수를 계산하여 ,w를 평가한다.

w가 낮으면 루프를 탈출하고, 그렇지 않으면 손실 함수 값이 낮아지는 방향으로 w=w+Δw를 업데이트해 다시 반복

루프를 탈출했다면, w를 매개변수 값으로 저장한다. 

 

4.4 퍼셉트론 학습 알고리즘

 

퍼셉트론 학습을 위해서 손실 함수 J를 설계해야 한다. 그리고 손실 함수의 값을 낮추는 방향으로 학습한다.

만약 w가 훈련 집합의 모든 샘플을 맞힌다면(정확률 100%) J(w)=0이다.

틀린 샘플이 많을수록 J(w)의 값은 커진다.

손실 함수의 크기를 낮춰야 한다. 

 

경사하강법을 통해 가장 낮은 점, 최적해(w)에 도달시킨다. 최적해의 기울기는 0으로 경사가 작아지도록 하는 것이 경사하강법이다. 미분값에 학습률 p를 곱해 조금씩 최적해에 접근시킨다. 이때 p는 하이퍼 매개변수로 주로 작은 값을 설정한다. 

 

실제로 정확도가 100%이 나오는 것은 매우 어려운 일이기 때문에, 반복 횟수를 설정한다. epoch는 훈련 집힙 한 번을 처리하는 일로, 설정한 epoch 값만큼 훈련을 완료하면 루프를 탈출하여 학습을 마친다. 

 

4.5 현대 기계 학습으로 확장

스토케스틱 경사 하강법(SGD): 랜덤 샘플링을 적용하는 패턴 모드와 미니배치 모드 방식

 

4.6 퍼셉트론 프로그래밍

 

4.7 다층 퍼셉트론

선형 분리를 하는 퍼셉트론 모델의 한계를 은닉층으로 개선한다. 

은닉층은 입력층과 출력층 사이에 있어, 특징 공간을 부분공간으로 나누어 선형 분리가 불가능했던 것을 선형 분리가 가능하게 한다. 

다층 퍼셉트론에서는 층의 개수를 가중치 뭉치의 개수로 계산한다.

앞서다룬 퍼셉트론은 입력층-출력층으로 가중치 뭉치가 1개이므로 단층 퍼셉트론이다. 

 

은닉층이 많으면 모델복잡도가 증가하며, 성능이 높아질 수 있음, 훈련 시간이 증가됨, 과적합(overfitting)의 가능성이 높아져 일반화가 어려워질 수 있다.

 

활성 함수

ReLU: 딥러닝, 그래디언트 소멸 문제의 해결

softmax: 출력층에서 주로 사용, 딥러닝

sigmoid: 다층 퍼셉트론

 

4.8 오류 역전파 알고리즘

인공 신경망의 학습 알고리즘 중 하나로, 역으로 가중치를 업데이트해 오차를 최소화하는 것을 목표로 한다. 은닉층이 많을수록 모델의 가중치를 하나하나 업데이트 어렵기에 고안된 방법이다. 

특징 벡터를 입력층에 입력하고 전방 계산을 한 다음, 전방 계산으로 얻은 예측값을 기댓값과 비교해 오차를 갱신한다. (MSE, cross-entropy를 통해 오차 계산)

오차에 따라 가중치를 갱신하는데, U2를 먼저 갱신한 후에 U1을 갱신한다. 오류를 역방향으로 전파한다. 역전파 과정에서는 경사 하강법 또는 다른 최적화 알고리즘을 사용하여 모델 파라미터를 조절한다. 

 

역전파를 통해 가중치를 업데이트하면, 다시 순전파로 각 층에서 가중치와 활성화 함수를 이용하여 출력을 계산하고, 또 역전파로 가중치를 업데이트... 이 과정을 반복

 

 

4.9 다층 퍼셉트론 프로그래밍

 

4.10 하이퍼 매개변수 최적화

기계 학습 모델의 하이퍼파라미터 값을 최적화하여 모델의 성능을 향상시키는 과정이다. 

하이퍼파라미터 최적화는 모델의 성능 향상을 위해 중요한 단계이며, 적절한 하이퍼파라미터 설정을 찾는 것이 모델의 일반화 성능을 개선한다. 

728x90
반응형