본문 바로가기
Book Review/[케라스 창시자에게 배우는 딥러닝] 리뷰

딥러닝이란 ?

by 3n952 2022. 11. 17.

 

딥러닝에서 사용되는 케라스를 공부하기 위해서 '케라스 창시자에게 배우는 딥러닝'책을 공부하고 이를 리뷰하도록 하겠습니다.

 

우리가 일상에서 생활하다 보면 인공지능, 머신러닝, 딥러닝 이라는 단어를 많이 듣게됩니다.

인공지능을 공부하지 않았다면 이 세가지의 차이는 무엇이고 서로 어떻게 연관되는지 궁금하기 마련입니다.

그렇다면 각각의 개념은 어떻게 나눠질까요?

 

인공지능 / 머신러닝 / 딥러닝 관계

1. 인공지능

인공지능은 1950년대에 초기 컴퓨터 과학 분야의 선구자들이 ''컴퓨터도 사람처럼 생각할 수 있을까?''라는 질문에 답을 하면서

시작되었습니다. 즉, 인공지능은 보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구활동을 일컫어 말합니다

 

초기의 AI는 프로그래머들이 명시적인 규칙을 충분하게 많이 만들어서 데이터베이스에 저장한 지식을 다루는 데 그쳤습니다. 전문가들은 그것이 인공지능이라고 믿은 것이죠. 하지만 학습은 이뤄지지 않고 하드코딩된 규칙만 가지고 있는 꼴이였습니다.  이러한 접근법을 심볼릭AI라고 하며 1980년대까지 인공지능 분야에 지배적인 패러다임이었습니다.

이즈음 전문가 시스템의 호황으로 그 인기가 절정에 다다랐습니다. 

 

 

2.머신러닝

심볼릭 AI가 체스와 같이 잘 정의된 논리적인 문제를 푸는 데 적합했습니다. 하지만 이미지 분류, 음성 인식, 언어 번역 같이 좀 더 복잡하고 불분명한 문제를 해결하기 위한 명확한 규칙을 찾는 것을 전문가가 직접 하드코딩하는 것은 불가능에 가깝습니다.

이러한 문제를 해결하는 것이 머신러닝입니다. 

 

머신러닝: 새로운 프로그래밍 패러다임

 

전통적인 프로그래밍은 규칙(알고리즘)과 데이터를 프로그래머가 코딩하여 정답을 출력하는 형태를 가졌습니다.

즉, 프로그래머가 입력 데이터를 적절한 해답으로 바꾸기 위해 따라야하는 규칙을 만드는 것입니다.

 

하지만 머신러닝은 정답과 데이터를 넣어주면 알고리즘을 출력하는 형태를 가집니다. 

즉, 입력 데이터와 이에 상응하는 해답을 보고 규칙을 컴퓨터가 찾는 것입니다.

 

머신러닝은 명시적으로 프로그래밍 되는 것이 아니라 훈련되어 샘플을 제공하면 이 샘플 데이터에서 통계적 구조를 찾아 

목표하는 작업을 자동화하기 위한 규칙을 찾아냅니다.

 

이때, 세가지가 필요합니다.

1. 입력데이터 포인트: 학습시킬 입력 데이터를 의미합니다. 

ex) 음성인식 작업을 위한 대화가 녹음된 사운드 파일을 입력 데이터 포인트로 사용

 

2.기대 출력: 기댓값을 의미합니다. 가령 동물 사진을 인식하여 분류하는 모델을 만든다고 하면, 기대 출력은 강아지, 고양이와 같은 정답 값들을 의미합니다.

 

3.알고리즘의 성능을 측정하는 방법: 머신러닝을 통해 만들어진 규칙(알고리즘)이 예측한 값과 실제 값의 차이를 결정하는데 필요합니다. 이러한 차이를 줄이면서 작동 방식을 교정하면서 더 나은 알고리즘으로 바뀌게 됩니다. 이런 수정 단계를 학습(learning)이라고 합니다.

 

머신러닝을 간략하게 말하면  1)가능성 있는 가설을 입력과 규칙을 통해 사전에 정의하고 2)피드백의 신호를 받아 입력 데이터에 대한 규칙을 찾아가는 것(학습) 이라고 할 수 있겠네요!

 

 

3.딥러닝

 

딥러닝은 머신러닝의 한 분야로 연속된 층(layer)에서 점진적으로 의미 있는 표현을 배우는 데 강점이 있습니다.

층을 겹겹이 쌓아 올려 신경망(neural network)를 구성하여 층 기반 표현을 학습합니다.

그림1) 뉴럴 네트워크

그렇다면 딥러닝 알고리즘으로 학습된 표현은 어떻게 나타날까요?

그림1에서 볼 수 있듯이 2개의 입력이 각각의 가중치를 통해 순도높게 정제되어 하나의 결과를 나타내는 다단계 정보 추출 과정입니다. 

 

쉽게 예를 들면, 각각의 파란색 선이 가중치를 의미하고 두 입력에 가중치를 곱하여 다음 층으로 내보내고 

또 가중치를 곱해서 최종 출력으로 보내는 것입니다. 이러한 과정을 함으로써 최종 출력에 대해 점점 더 많은 정보를 담게 됩니다.

 

 

 

그렇다면 딥러닝의 학습은 어떻게 이뤄질까요?

 

그림2) 신경망 구조와 가중치

층이 입력 데이터를 처리하는 방식은 일련의 숫자로 이루어진 층의 가중치에 저장되어 함수로 표현됩니다. 

그림2를 예로 들면 a1*w11 + a2*w13의 식으로 표현된 값이 은닉층에 입력값으로 사용되는 것입니다. 

다른 내용은 제쳐두고 이러한 과정을 계속 거치다 보면 출력층에서 최종 예측값이 나오게 됩니다.

이를 정답과 비교하여 예측값이 정답에 얼마나 벗어났는지 측정해야 합니다. (가중치들이 얼마나 엉망인지 알려줘야 한다!)

이때 필요한 것이 손실 함수(loss function)입니다.

 

기본적인 딥러닝 방식에서 손실 함수를 통해 피드백을 주면 손실 함수가 줄어드는 방향으로 가중치 값을 조금씩 수정하여 학습을 진행합니다. 즉, 정답에 가까운 가중치 값을 찾는 과정이라고 생각하면 됩니다.

여기서 중요한 개념이 등장 하는데 역전파(backpropagation)와 옵티마이저 입니다. 

 

이 개념에 대한 자세한 설명은 다음 시간에 하도록 하겠습니다.

 

이번에는 인공지능 / 머신러닝/ 딥러닝이 무엇이고,

딥러닝이 크게 어떻게 학습이 이뤄지는지 알아보았습니다.