딥러닝(Deep Learning) ?

케라스 창시자에게 배우는 딥러닝, 프로그래머를 위한 선형 대수, 밑 바닥부터 시작하는 딥러닝

얼마 전 부터 위 세 개 책으로 딥러닝 공부를 시작했고 공부한 것들을 나름 정리해 보려한다.

처음에 궁금하던 것이 인공지능과 머신러닝, 딥러닝의 관계? or 차이였다.

책에 따르면 그 관계에 대한 설명은 아래 그림으로 간략하게 나타낼 수 있다.

 

 

 

 

 

 

 

그림에 따르면 인공지능 > 머신 러닝 > 딥러닝 이렇게 포함의 포함 관계다. 간단하네 ? 생각보다는.

각각을 하나씩 살펴보자.

 

인공 지능 (Artificial Intellisence)은 컴퓨터가 사람처럼 생각 할 수 있는지에 대한, 말 그대로 인공 지능이다.

최근 개념인 줄 알았지만 사실 1950년대에도 AI 가 있었다고 하는데 (정확히는 사람들이 있다고 믿었던?) Symbolic AI 다.

이것을 보아하니 체스 같이 경우의 수가 그나마 적은 것들을 전부 미리 프로그래밍 해서 AI 인 것 처럼 행동한 것이었다.

그러니 더 복잡하고 경계가 모호한 이미지 분류, 음성 인식, 언어 번역 같은 것은 당연히 할 수 없었다.

여기서 Symbolic AI를 대체한 방법이 머신 러닝이다.

 

머신 러닝 (Machine Learning)도 말 그대로 기계가 스스로 학습할 수 있지 않을까에 생각에서 출발하였다.

머신 러닝은 흥미롭게도 기존의 프로그래밍 방식에서 탈피하여 새로운 방법으로 답을 얻었다.

기존에는 규칙과 데이터를 입력하고 그것을 활용해 프로그래밍을 첨가하면 해답이 나오는 구조였는데

머신 러닝은 데이터와 데이터로부터 기대되는 해답을 입력하여 규칙을 얻고

그 규칙을 새로운 데이터에 적용하여 해답을 얻는 구조다.

즉, 많은 데이터로 훈련하면 할 수록 더 정확한 규칙을 찾아내고 새로운 데이터에 대한 정확한 해답을 얻을 수 있는 것이다.

그런데 바꿔 말하면 데이터에 대한 해답을 알고 있어야 하므로 인간이 겪어보고 해답을 얻지 못한 것에는

머신러닝 기법으로는 컴퓨터 역시 학습이 불가하므로 해답을 얻기 힘들 거라는 생각이 들었다.

 

딥 러닝 (Deep Learning) 은 머신 러닝의 특정한 한 분야로 연속된 층에서 점진적으로 의미 있는 규칙을 찾는다.

그러니까 딥 러닝도 머신 러닝의 한 기법 중 하나고 다른 기법들은 1~2개의 층으로 얕은 학습한다는 차이가 있다.

반면에 딥러닝에서는 여러 층을 쌓아 올려 구성한 신경망이라는 모델을 사용하여 학습한다.

그 그림은 아래와 같다.

목적은 명확하다. 이 구조의 최종 목적은 이 과정을 통해 신경망의 모든 층에 적절한 가중치 값을 찾는 것이다.

적절한 가중치는 어떤 데이터가 들어와도 해답의 정확도를 높일 수 있다. 이 과정을 기계 학습이라 부르는 것이다.

구조의 흐름을 살펴보면, 처음에 어떤 데이터가 들어오고 신경망을 거치면 예측 값이 나온다.

이것을 실제 해답과 비교하여 손실함수가 예측과 실제 값의 차이를 점수로 계산한다.

그리고 이 손실 점수를 피드백 신호로 사용하여 손실 점수가 감소되는 방향으로 옵티마이저가 가중치를 수정해 나간다.

참고로 이런 수정 과정을 딥러닝 핵심 알고리즘인 역전파 알고리즘이라 한다.

초기에는 신경망 가중치가 랜덤 값으로 할당 되므로 손실점수가 높은데 이러한 과정(훈련)을 반복하면서

가중치가 점점 올바른 방향으로 조정되고 손실 점수가 감소하면 해답에 가까운 정확도를 찾는 것이다.

댓글 남기기