저번에 인공지능과 머신러닝, 딥러닝이 무슨 차이인지 설명하는걸 까먹어서 이번 차에 쓰려고 한다.


한 줄로 관계를 요약하면 다음과 같다.


"딥러닝은 머신러닝의 일종이고, 머신러닝은 딥러닝의 일종이다."


우선 인공지능은 뜻이 가장 포괄적으로, 지능적인 요소가 포함된 기술을 모두 일컫는 단어다.


스마트 머시기 하는데 들어가는 모든 기술은 인공지능이라고 하는 추세에서 알 수 있다.


여러 인공지능 분야에서 머신러닝은 "데이터를 이용한 모델링 기법" 이다.


딥러닝은 "여러 비선형 변환기법의 조합"으로 기계를 학습시키는 알고리즘이다.



머신러닝이 만능인것마냥 대중들에게 소개되고 있지만 이 분야에도 몇 가지 문제점이 존재한다.


1. 학습할 데이터와 입력 데이터의 질 : 학습 데이터가 입력 데이터의 특성을 잘 반영하지 않는 데이터면 일반화가 구려진다.


2. 학습 데이터를 너무 잘 맞춘다 : 주로 과적합이라고 말하는데, 학습데이터의 잡음도 정답이라 학습하기 때문에 일반화가 구려진다.



머신러닝은 오래전에 소개되었지만 속도 문제로 잊혀진 기술이었다.


하지만 최근엔 과적합에 대항하는 기법이 개발되었고, 복잡한 행렬연산을 빠르게 처리해줄 하드웨어(주로 GPU)의 발전으로 부상하게 된다.


과적합에 대항하는 기법은 다음 두 가지다.


1. 검증 : 학습 데이터를 학습용과 검증용으로 분류한다.(주로 4대1) 학습 이후 검증이 잘 안되면 다시 분류해서 수행한다.


2. 정칙화 : 모델을 최대한 간단하게 만들고자 하는게 기본 전략으로 다음 기회에 자세히 알아보자.



신경망(neural network)은 머신러닝의 모델로 많이 사용된다.


뇌의 신경세포들이 연결된 네트워크를 본 뜬 모델로, 정보를 노드들의 관계(가중치)로 저장하는 것이다.


박스 노드들은 입력층, 최우단의 짙은 노드들은 출력층이다. 사이사이 층들은 은닉층이라고 한다.


단층 신경망은 은닉층이 없는 경우를 말하고, 반대는 다층 신경망이다. 이 중에 얕은(=shallow vanilla) 신경망은 은닉층이 하나인 경우고,


심층 신경망은 은닉층들이 2개 이상인 경우다.



각 노드엔 여러 신호에 가중치가 곱해져 들어오고, 바이어스가 추가로 관여하여 활성함수를 이룬다. 함수의 결과가 출력된다.


따라서 신경망에서 정보는 가중치와 바이어스로 바뀌어 저장되는 것이다.


활성함수가 선형함수라면 결국엔 행렬곱들로 계산식을 나타낼 수 있는데,


잘 생각해보면 계산식을 잘 정리하면 다층 신경망이 단층 신경망이 된다는 점을 알 수 있다. 은닉층을 추가한 효과가 없다.



신경망 모델로 지도학습을 시키는 방법은 간단하다.


가충치를 초기화하고 학습 데이터의 출력값과 정답의 오차를 계산해본다. 오차가 크다면 피드백으로 가중치를 잘 조절해주면 된다.


오늘은 단층 신경망만 학습시켜보기로 한다.



대표적인 학습 방법인 델타 규칙(delta rule = adaline rule = widrow-hoff)에 대해 알아보자.


델타 규칙은 오차를 최소화 하고자 오차 그래프를 미분해 점진적으로 극점을 찾아가는 점진 하강법에서 비롯되었다.



최종적으로는 , 라는 수식으로 결과가 나오는데, 먼저 각 기호에 대해 정의하고, 증명하고 설명하도록 하겠다.


1. 
 는 상수로 학습률이라고 한다.(0과 1사이 값)


2.  는 활성화 함수다.


3.  는 j번 째 출력값이다.


4.  j번째 출력노드로 들어온 가중치가 곱해진 값들의 합으로  이다.


5.  j번째 출력값이다. 따라서 이다.


6.  는 i번째 입력값이다.



증명 

1) 오차의 합은  으로 쓸 수 있고, 이를 각 가중치로 편미분 한다고 치면 

2) 다음과 같이  표현할 수 있다.

3) 이번엔 체인 룰을 통해 가중치 편미분을 출력값 편미분으로 바꿔보자. 

4) 남은 편미분을 처리하기 위해 다시 체인 룰로 다음과 같이 표현되는데,  

5) 5번 정의에 의해 이다. 

6) 다시 한번 4번 정의에 의해 가 된다.

7) 모든 k중에 현재 i번째 가중치에 대해서만 편미분 중이므로 최종적으로 가 된다.



점진적 하강법은 미분직선을 따라 곡선의 극점을 향하는 방법으로 생각하면 되는데,


이를 위해 작은 상수인 학습률을 도입하면  가 얻어진다.


수식의 의미는 다음과 같다.


어떤 입력 노드가 출력 노드의 오차에 기여했다면 두 노드의 연결 가중치를 입력 노드의 출력 + 출력 노드의 오차를 고려해서 조절해야 한다는 것이다.


+ Recent posts