Neural Network (인공 신경망)
-생물학적 신경망에서 영감을 받아 개발된 기계 학습 모델이다.
-입력 데이터를 처리하여 유용한 패턴이나 정보를 학습하고 예측하는 데 사용된다.
-신경망은 인공 뉴런으로 구성된 계층(Layer)들로 이루어져 있으며, 각 뉴런은 입력을 받아 가중치를 적용한 후 활성화 함수(Activation Function)를 통해 출력을 생성한다.
3 basic layers

입력층(input layer), 은닉층(hidden layer), 출력층(output layer)
-
신경망의 구조
-입력층 수 = 출력층 수 = 1개
-은닉층의 수 → 사용자가 결정
-은닉층의 수가 적은 경우 → 얕은 신경망 (shallow NN)
-은닉층의 수가 여러 개인 경우 → 다층 신경망 (Deep NN) → 딥러닝
-
각 층(or 노드)의 주요 역할
- 입력층
-독립변수의 값(features 정보)을 입력 받아 다음 층으로 전달
-입력 노드의 수 = 독립변수의 수
- 은닉층
입력받은 데이터에서 종속변수의 값을 예측하는데 중요한 특성을 추출
- 출력층
-종속변수의 예측치를 출력
-출력 노드의 수 → 문제의 종류에 따라 상이
-
bias node(편향 노드)
입력층과 은닉층에 존재
선형 회귀 모형의 intercept와 비슷한 역할
bias node에서 출력되는 값 → 1의 값 출력

-
출력노드의 수
- 회귀문제
출력노드 1개
출력노드가 출력하는 값 = 종속변수의 예측치

- 분류문제
출력노드의 수 = 종속변수가 취할 수 있는 값의 수

비용 함수
-신경망의 예측이 실제 데이터와 얼마나 잘 일치하는지를 측정하는 데 사용
-모델의 예측이 실제 값에 가까워지도록 모델의 파라미터(가중치와 편향)를 조정
-위 과정을 통해 신경망이 주어진 데이터에 대해 최적의 예측을 수행하도록 예측
NN 작동 원리
- 정답이 있는 데이터 준비
- 정답이 있는 데이터를 학습 데이터와 평가 데이터로 분리
- 신경망(딥러닝 모델)을 이용해 데이터에 존재하는 독립변수와 종속변수의 관계 파악 ← 학습
- 비용 함수를 최소화하는 파라미터의 (최적)값을 탐색
- 모델 성능 평가
- 평가 결과가 좋을 경우, 해당 모형을 풀고자 하는 문제에 대한 데이터에 적용하여 종속변수 값을 예측
- (편향노드를 제외한) 각 노드는 이전 층으로 전달 받은 값들을 입력 받고 그 값을 출력, 다음 층의 노드로 전달
- 입력노드는 입력된 (독립변수 or feature)값을 그대로 출력
- 은닉노드는 입력 받은 값을 변환하여 출력, 이때 특정 함수 사용 → 활성화 함수
- 출력 노드는 문제의 종류에 따라 활성화 함수를 사용 or 사용하지 않음
- 회귀 문제 : 활성화 함수 x
분류 문제 : (대부분)소프트맥스 함수 사용
인공 신경망 학습 프로세스
- 초기화 (Initialization)
학습 과정을 시작하기 위한 준비 단계, (보통)무작위 값으로 초기화
- 순전파 (Forward Propagation)
-입력 데이터가 신경망의 입력층으로 주어짐, 각 층의 뉴런을 통과하면서 활성화 함수에 의해 처리
-신경망의 출력층까지 과정 수행
-활성화 함수 노드의 출력 값 결정, 신경망에 비선형성을 도입하여 복잡한 문제 해결 수행
- 오차 계산 (Error Calculation)
-신경망의 출력과 실제 타깃 값 사이의 차이를 계산
-신경망의 예측이 얼마나 정확한지를 수치적으로 표현
- 오류 역전파 (Error Backpropagation)
-계산된 오차는 출력층에서부터 입력층 방향으로 역전파 되어 각 가중치가 오차에 얼마나 기여하는지 계산 → 가중치 조정
- 가중치 업데이트 (Weight Update)
-경사 하강법을 사용하여 각 가중치를 업데이트
-오차를 최소화하는 방향으로 가중치를 조정하여 신경망의 성능 개선
- 과적합 (Overfitting) 및 정규화 (Regularization)
-학습 과정 중 과적합 발생 가능
-이의 방지를 위해 정규화 기법(L1, L2 규제, 드롭아웃 등)을 사용, 모델의 복잡도를 제어하고 과적합을 줄임
- 반복 학습 (Iterative Learning)
위의 과정 계속 반복, 최적화 진행