인공 신경망 (Artificial Neural Network, ANN) 이란?
- 생물학적 신경망을 모방한 수학적 모델로 신경망(Neural Network) 이라고도 하며, 입력층, 은닉층, 출력층으로 구성되어 있으며, 각 층은 뉴런(neuron)이라고 불리는 단위로 구성.
- 머신 러닝의 일부로 인간의 두뇌 처리 기능을 형상화한 기술이며, 뇌의 뉴런과 비슷하게 인공 뉴런을 배치하고 네트워크로 연결하여 모델링.
*네트워크로 연결 : 각 뉴런이 이전 뉴런의 출력 값을 입력으로 받아 처리하고,
그 결과를 다음 뉴런에게 전달하는 구조가 마치 네트워크(Network)처럼 연결돼 있다는 의미.
- 다수의 상호 연결된 노드(Node, 인공 뉴런)로 구성된 층으로 이루어진 논리 구조.
인공신경망과 생물학적 뉴런 비교
딥러닝에서 인공신경망은 인간 뇌의 뉴런을 모방하여 만들어졌지만,
이를 이해하기 위해 복잡한 생물학적 지식은 필요 없고
아래와 같은 기본적인 구조 대응만 이해하면 충분하다.
| 생물학적 구성요소 | 인공신경망에서의 대응 개념 | 설명 |
|---|---|---|
| 수상돌기 (Dendrite) | 입력 노드 (Input Node) | 외부 자극(입력값)을 받아들이는 역할 |
| 세포체 (Cell Body) | 선형결합 + 바이어스 계산 노드 | 입력값과 가중치를 곱하고 더한 뒤 하나의 신호로 종합 |
| 축삭돌기 (Axon) | 활성 함수 (Activation Function) | 비선형 함수를 통해 출력값을 결정 |
| 축삭말단 / 축삭가지 | 출력 노드 (Output Node) | 다음 뉴런 또는 다음 층으로 출력값을 전달 |
입력값을 받아 연산하고, 출력값을 생성하는 기본 계산 단위
- 입력값:
x₁, x₂, ..., xₙ- 가중치:
w₁, w₂, ..., wₙ
각 입력값의 중요도를 조절하는 계수- 편향:
b
입력값과 가중치의 합에 더해지는 상수 항- 활성화 함수:
f()
수식:
z = w₁·x₁ + w₂·x₂ + ... + wₙ·xₙ + b
y = f(z)
+) 추가 설명
1. 편향이 없으면, 모든 뉴런은 원점을 지나야만 함.
즉, 모든 입력이 0일 때 출력도 항상 0이 되는 구조.
하지만 이건 너무 제약이 큼.
편향은 뉴런의 출력값을 일정하게 "올리거나 내리는" 역할한다..
덕분에 모델이 더 다양한 패턴을 표현하고 학습할 수 있다.
2. 선형결합(linear combination): 입력값에 가중치를 곱하고 모두 더해 하나의 스칼라값(z)을 생성
3. 활성화 함수: 선형결합의 결과에 비선형성을 부여하여, 복잡한 패턴을 학습할 수 있도록 함
4.z는 뉴런 내부에서 연산된 중간 출력값(선형결합의 결과값)으로,
활성화 함수를 거쳐 최종 출력y가 생성됨
5. 비선형성이란 무엇일까?
우선, 선형성이란 입력이 2배면 출력도 2배가 되는 것과 같은 단순한 관계이다. → 이런 건 직선(linear)
그러나 세상의 문제는 선형적이지 않다.
“조금 바꿨더니 갑자기 확 달라짐”, “특정 구간에서만 반응이 있음”, “입력이 복잡하게 얽힌 조건에서만 출력이 나옴”
그래서 딥러닝은 비선형 함수(활성화 함수)를 사용한다.
입력값과 가중치의 선형결합 결과z를ReLU, Sigmoid, Tanh같은 비선형 함수에 통과시켜
뉴런이 더 복잡한 패턴을 학습할 수 있게한다.
정리하자면..
입력값을 받고 중요도(가중치)를 매기며,
상황에 따라 편향(bias) 값이 더해지게 된다.
이렇게 정해진 입력값, 가중치, 편향을 취합하여
z라는 선형결합의 결과값을 도출하고,
이z를 비선형 함수에 통과시켜
최종 결과값y를 만들어낸다.
신경망 학습이란?
신경망 모델은 입력값을 바탕으로 출력값을 계산하고,
그 결과가 정답(목표값)과 얼마나 차이나는지 확인한 뒤,
그 차이를 줄이도록 가중치(w)를 조정하면서 학습합니다.
신경망 학습 과정 (한눈에 보기)