본문 바로가기
딥러닝실무응용/딥러닝

[딥러닝] 인공신경망 기초

by udeserveit1 2024. 8. 16.

인공 신경망 기초

뉴런 모델 이해

- 인간의 뇌를 모방

- 신경망 모델은 뉴런 모델 단위로 구축

- 신경 세포가 어떤 역할을 하는지 봐서 확장 시킴

- 특징 : 값을 여러개를 받아 하나의 값을 출력하는 함수 형태의 모델

생물학적 신경세포의 역할과 구성

역할

 

- 인접한 다른 신경세포들로 부터 자극을 받으며, 이에 반응하여 자체적인 신호를 발생하여 다른 신경세포로 전달하는 역할을 수행

 

구성

 

- 외부 신호를 입력받는 수상돌기(dendrite)로부터 신호를 받고 구성된 입력부와 외부로부터 받은 자극이 축적 후 임계값(threshold) 또는 어느 일정수위를 초과하면 전기적 신호생성 후 축삭돌기(axon)를 따라 축삭 말단(axon terminal) 방향으로 전달하는 출력부

 

생물학적 신경세포의 신호 전달 과정

 

메카니즘

 

- 신경세포는 축삭돌기라는 케이블을 가지고 있으며, 이 축삭돌기를 사용하여 외 부로 부터 입력 받은 신호를 다른 신경세포로 전달함

-축삭 말단 끝에 시냅스가 있으며, 다른 신경세포의 수상돌기나 세포체에 연결되 어 있음

- 시냅스(synapse)는 한 신경세포에서 다른 신경세포로 신호를 전달하는 연결지점

-축삭돌기는 시냅스라고 불리는 인터페이스를 통하여 신호를 다음 신경세포에 전 달함

- 즉, 시냅스를 인터페이스로 다른 신경세포로부터 자극을 받아들임

- > 출력 부분에 시냅스는 그 신호를 보낼지 말지를 결정한다 또한 인터페이스(시냅스)를 통해 다음 신경세포에 전달한다.

 

 

1) 신경세포가 시냅스를 인터페이스로 하여 입력부를 통하여 다른 신경세포들로부터 외부자극(전기적 신호)들을 입력 받음

2) 이때, 다른 신경세포로부터 외부 자극을 받으면, 세포 내의 전기적 레벨(전위)이 변동함

(외부자극을 받으면 막 반응하다) 

3) 만약, 자극을 받아 변동한 전기적 레벨이 임계값을 초과하면, 그 신경세포는 자체적인 전기적 신호를 생성하고, 이를 출삭돌기를 따라 축삭 말단 방향으로 전달함 (참다가 임계점 넘으면 전기적 신호를 생성하여 출력)

4) 출력부로 전달되 상기 신호는 시냅스 결합을 가지는 다른 신경세포로 외부 자극 신호로 전달

 

 

뉴런 모델의 구조 

- 각각의 입력 데이터(x1,x2,....xn)에 대한 시냅스 전달 강도를 가중치로 하여, 이들을 입력 데이터와 각각 곱하고

모두 합한 입력 총합(y)을 출력함

- 신경세포의 동작 원리와 유사하게, 가중치(weight)가 큰 입력 값은 뉴런 모델에 크게 영향을 미치고, 가중치가 작은 입력 값은 뉴런 모델에 작은 영향을 미치는 효과를 가지도록 모델링을 수행함

 

x는 벡터 , w는 전달 강도 



x1w1 + x1w2 + ... = 합의 기호

반나누어서 왼쪽은 입력부 , 오른쪽은  y 는 그 모두 더한값 ,



출력부 

뉴런모델은 활성화 함수 ( activation function)엔 f에 입력하여 뉴런 모델 의 최종값 을 출력함

뉴런  모델의 활성화 함수

- 입력값이 작으면 0에 가까운 값을 출력하고, 입력 값이 크면 1에 가까운 값을 출력

 

뉴런 모델에서 대표적으로 사용되는 활성화 함수

 

시그모이드 (sigmoid)

- 활성화 함수에 입력되는 값에 대하여 0과 1사이의 확률로 변환할 때 주로 사용됨

- 주로 얕은 신경망과, 이진분류일 때

렐루(ReLU)

- 입력값이 양수인 경우에만 출력이 활성 상태가 되는 특징

- 연산 속도가 매우 빠르고, 안정적으로 학습할 수 있는 장점

 

 

수학적 뉴런 모델 

 a= w0x0 + w1x1 + w2

( w2는 무엇이냐 y = ax + b 의 b 와 같이 y절편이며  평면을 자르기 위해서 ) 

 w2*1 (1= x2) 이므로

 

 

 

 

 수학적으로 가정

 

 

 

 

프로그램에서는 자동으로 상수를 붙여서 들어온다.

 

x2는 없는 값 ,,항상 더미 입력값이 붙는다

 

 

수학적뉴런 모델

- 뉴런의 출력값 y는 입력 총합 a에 시그모이드 함수를 적용

 

 

 

 

단층 신경망 (Neural Network) 구조

 

 

- Wj,i : i번째 입력에서 j번째 출력에 대한 가중치를 의미

왜냐 출력을 순서대로 구하지 않아도 동시에 구할 수 있기 때문이다 ( 행렬의 곱으로) 

w2,1 은 첫번째 입력값에서 두 번째 출력값으로 

다층 신경망 구조

 

-

- 입력 값들로 구성된 가장 왼쪽 노드들을 입력층(input layer)이라고 부름

- 가운데 있는 첫 번째 뉴런 모델들로 이루어진 층을 은닉층(hidden layer) 또는 중간층이라고 부름

- 출력 값과 연결된 뉴런들로 이루어진 마지막 층을 출력층(output layer)이라고 부름

 

은닉층은 입력과 동시에 출력

 

다층과 심층 신경망은 구분

왜 2-layer인가?  입력층은 층이 아니고 입력값이기 때문에 제외  또 뉴런모델들로 이루어지는 것이 층

 

 

신경망 학습

- 신경망 학습은 출력층에서의 출력 값이 목표 값에 도달하도록 뉴런 모델들 사이에 연결된 가중치 값들을 최적의 값으로 조정해 나가는 과정을 의미

- 학습은 역방향 (<-) 출력층에서 입력층으로 

 

 

 

가중치 랜덤으로 뿌리고 답을 보여준 다음 

오차 계산에서 역으로 가중치를 반복 갱신한다 ( 자동으로 미분 ) -> 정답에 맞게 

그래서 입력-출력 역으로 출력-입력이 한 번 학습