딥 러닝(deep learning)은 다층구조 형태의 신경망을 기반으로 하는 머신 러닝(machine learning)의 한 분야로, 다량의 데이터로부터 높은 수준의 추상화 모델을 구축하고자 하는 기법입니다.
즉, 컴퓨터가 많은 양의 데이터를 이용해 마치 사람처럼 스스로 학습할 수 있게 하기 위해 인공 신경망(ANN: artificial neural network)을 기반으로 구축한 기계 학습 기술로, 인간의 뇌가 작동하는 것과 비슷한 원리라고 할 수 있습니다.
퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘입니다. 퍼셉트론은 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사한데, 신경 세포 뉴런의 그림을 먼저 보도록 하겠습니다. 뉴런은 가지돌기에서 신호를 받아들이고, 이 신호가 일정치 이상의 크기를 가지면 축삭돌기를 통해서 신호를 전달합니다.
이렇게 뉴런에서 출력값을 변경시키는 함수를 활성화 함수라고 합니다.
퍼셉트론은 단층 퍼셉트론, 다층 퍼셉트론으로 나뉘는데 단층 퍼셉트론은 한 개의 입력층과 한개의 출력층, 총 두 단계로 이루어져있는 구조를 뜻합니다. 이 때 각 단계를 보통 층(layer)이라고 부릅니다.
이처럼 단층 퍼셉트론은 AND 게이트, NAND 게이트, OR 게이트를 구현할 수 있으나 지금부터 설명할 XOR 게이트는 구현할 수 없습니다.
XOR 게이트는 기존의 AND, NAND, OR 게이트를 조합하면 만들 수 있습니다. 퍼셉트론 관점에서 말하면 층을 더 쌓으면 만들 수 있습니다. 이처럼 층을 추가한 퍼셉트론을 다층 퍼셉트론이라고 말합니다.
다층 퍼셉트론은 입력층과 출력층 사이에 은닉층(hidden layer)이 존재하는 것을 뜻합니다.
또한 은닉층이 2개 이상인 신경망을 심층 신경망(DNN)이라고 합니다.
지금까지는 OR, AND, XOR 게이트 등. 퍼셉트론이 제대로 된 정답을 출력할 때까지 저자가 직접 가중치를 바꿔보면서 적절한 가중치를 수동으로 찾았습니다. 하지만 이제는 기계가 가중치를 스스로 찾아내도록 자동화시켜야하는데, 이것이 머신 러닝에서 말하는 훈련(training) 또는 학습(learning) 단계에 해당됩니다. 앞서 선형 회귀와 로지스틱 회귀에서 보았듯이 손실 함수(Loss function)와 옵티마이저(Optimizer)를 사용합니다. 그리고 만약 학습을 시키는 인공 신경망이 심층 신경망일 경우에는 이를 심층 신경망을 학습시킨다고 하여, 딥 러닝(Deep Learning)이라고 합니다.