본문 바로가기
Computer Science/AI

신경망 개요 및 구현

by yongmin.Lee 2020. 7. 18.

분류(classification)와 예측(prediction)

분류 : 데이터들을 특정 기준으로 나눌 수 있는 선형구분자를 설정하여 분류. 오차를 이용하여 구분자의 기울기를 조정하는 것을 학습이라고 한다.

- Error = target  actual

Learning rate(L) : 학습률은 업데이트의 정도를 저장

update parameter : new A = A + dA = A + L(E/x).

예측 : 새로운 data가 들어오면 구분자에 의해 어떤 output으로 분류될지 판단 => 예측과 분류는 다른 것이 아님

XOR 문제의 경우 선형분류자는 하나가 아니다 -> 여러개의 선형 분류자를 이용 -> 인공신경망은 여러개의 분류자가 함께 동작

 

인공신경망

인공뉴런은 X1부터 Xn까지 입력 값에 각각 W1부터 Wn까지의 가중치를 곱하고 그 모든 합이 임계치(threshold)가 초과되면 출력값이 발생

activation functoin(활성화 함수) : 여러 입력신호를 받아 특정 threshold를 넘어서는 경우에 출력 신호를 생성하는 함수 -> sigomoid 함수(=logistic 함수)가 대표적이다. => y = 1 / (1+ e^-x)

인공신경망 : 상호연결된 생물학적 뉴런을 인공적으로 모델화 한 것으로, 다수의 인공뉴런을 가지고 있는 layer를 여러 층으로 쌓은 후 이전 layer와 이후 layer의 모든 인공뉴런들이 연결되어 있다. 이때 각각의 연결에 weight(가중치)가 존재하는데 학습과정을 통해 weigjt값들을 조정함으로써 input에 대해 올바른 output이 나올 수 있도록 한다.

신경망에서 신호를 전달하는 연산은 행렬곱을 통해 표현

forward propagation : output = sigmoid(X1*W1 + X2*W2 + ... + Xn*Wn)

 

인공신경망에서의 학습

- 입력 값을 이용하여 인공 뉴런의 출력 값을 계산

- 인공 뉴런이 계산한 출력 값과 사용자가 기대하는 출력 값을 비교. => Error = target  actual

back propagation : error 정보가 뒤쪽으로 계속 전파

중간 계층에 존재하는 노드들의 오차는 출력계층 노드들의 오차를 가중치에 크기에 비례해 나눠서 back propagation

back propagation은 행렬곱으로 표현 : Error(hidden) = W.T(hidden-output) * Error(output)

가중치 업데이트 : 함수의 최저점을 구하는 Gradient Descent 기법을 학습 목표 값과 실제 값 간의 차이를 구하는 Error function에 적용 -> error function = (target-actual)^2인 이차함수 이므로 error function의 최저점은 error function의 기울기(dE/dw)가 가장 작은 지점 -> dE/dw =
-> new W = old W  (LearningRate * (dE/dw))




'Computer Science > AI' 카테고리의 다른 글

Game Playing  (0) 2020.07.19
Heuristic Search  (0) 2020.07.19
Convolutional Neural Network  (0) 2020.07.18
인공지능, 머신러닝, 딥러닝 개요  (0) 2020.07.18