[머신러닝] : 인공지능, 인공신경망

김대현·2024년 7월 17일

인공신경망 (Artificial Neural Network, ANN) 이해하기

1. 인공신경망의 기초

  • 인공신경망(ANN): 실제 신경망을 모사한 것으로, 인공지능의 한 종류이다. 실제 신경망을 "뉴럴 네트워크"라고 부르며, 앞에 "아티피셜"을 붙여서 "인공신경망"이라고 한다. 실제 신경망은 다음과 같이 구성되어 있으며 인공신경망은 아래의 구성요소들을 수학적으로 묘사하는 것이다.

  • 뉴런(Neuron): 뇌세포를 이루는 신경 전달 단위로, 덴드라이트, 소마, 액손으로 구성된다.

  • 덴드라이트(Dendrite): 외부에서 들어오는 정보를 전기적 신호를 통해 입력신호를 다른 뉴런으로부터 신호를 받는 기능을 수행한다.

  • 소마(Soma): 덴드라이트에서 받은 정보를 처리하는 역할을 한다.

  • 액손(Axon): 처리된 정보를 다른 뉴런으로 전달하는 역할을 한다.


2. 인공신경망의 구성 요소

  • 입력부(Input Layer): 실제신경망의 덴드라이트(Dendrite)와 같으며
    외부에서 들어오는 정보를 수학적으로 벡터 X (예: x1, x2, x3 등)로 표현되는 데이터를 전달받는 역할을 한다.

  • 가중치(Weights): 실제신경망의 소마(Soma)와 같으며 입력부(Input Layer) 또는 덴드라이트(Dendrite)에서 얻은 입력 정보를 연산하거나 합산하는 기능을 수행한다. 즉 입력정보에 가중 weight(w1, w2, w3 ) 라고 하는 것을 곱하여 합산하는 것으로, 정보의 중요도를 나타낸다.

  • 바이어스(Bias): 가중합에 더해지는 값의 결과로, 신경망의 유연성을 높여준다.

  • 출력부(Output Layer): 실제신경망의 액손(Axon)과 같으며 최종적으로 계산된 결과 값이 출력되는 부분을 의미하며 인공신경망에서는 activation function f 애 입력하여 계산된 결과 값을 y1, y2 로 전달하는 것을 의미한다.


3. 인공신경망 예제

입력부에서 수면 시간, 운동 시간, 식사량 등의 데이터가 들어오고, 출력부에서 체중과 혈압을 예측하는 예제를 생각해보자.

데이터 입력: 수면 시간, 운동 시간, 식사량 (x1, x2, x3)

예제 데이터

  • 똘이: 수면 시간 6시간, 운동 시간 3시간, 식사량 2500kcal -> 체중 70kg, 혈압 110
  • 순이: 수면 시간 8시간, 운동 시간 1시간, 식사량 2000kcal-> 체중 60kg, 혈압 100
  • 토니: 수면 시간 10시간, 운동 시간 0시간, 식사량 4000kcal-> 체중 100kg, 혈압 140
    '
    이 데이터를 기반으로 체중과 혈압을 예측할 수 있는 인공지능 앱을 만들어 볼수도 있다.

4. 인공신경망의 학습 과정

(1) 데이터 입력층:
수면 시간, 운동 시간, 식사량 입력 벡터: (x1, x2, x3)

(2) 가중치 입력 데이터 초기화:
임의의 값으로 설정된 가중치 벡터: (w1, w2, w3)와 바이어스 (b)
가중치(W)와 바이어스(b)를 임의의 값으로 초기화한다. 이 값들은 학습을 통해 조정된다.

(3) 가중합 계산:
가중치와 입력 벡터의 곱을 합산하고 바이어스를 더한다. 이 과정을 벡터와 행렬로 표현할 수 있다.

계산 예시: z = w1*x1 + w2*x2 + w3*x3 + b

(4) 활성화 함수 적용:

가중합 Z에 활성화 함수 f를 적용하여 출력 값 Y를 계산한다.

예: y = f(z)

(5) 출력 값과 실제 값 비교:
예측된 출력 값 Y와 실제 값 Y'를 비교하여 오차(손실)를 계산한다.

(6) 가중치 수정:

이후 오차가 존재한다면 오차를 최소화하도록 가중치 W와 바이어스 B 를 수정한다.

(7) 반복 학습
오차가 최소화될 때까지 학습을 진행한다.
이 과정은 반복적으로 수행되며, 학습이 완료되면 예측 정확도가 높아진다.

인공신경망의 학습 과정 요약
결과적으로 입력 벡터 X와 가중치 W, 바이어스 b를 사용한 가중합 계산과 활성화 함수 적용 반복하여 학습시키는 과정을 요약하면 다음과 같다.

1.가중합 계산 : z = w1*x1 + w2*x2 + w3*x3 + b
2.활성화 함수 적용: y = f(z)
3.오차 손실 게산: 예측된 출력 값 Y와 실제 값 Y'를 비교하여 오차(손실)를 계산한다.
4. 가중치 수정
5. 반복 학습

profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글