본문 바로가기

코딩/텐서플로우

비전공자의 코딩 독학 - 파이썬&텐서플로우(2) <딥러닝>

반응형

안녕하세요.

오늘의 파이썬 코딩 독학 주제는 딥러닝입니다.

 

 

1. 딥러닝이란?

인공신경망 구조를 이용한 머신러닝 방법입니다.

 

여기서 인공뉴런(artificial neuron)이란 신경망(neural network)라고도 부르는데,

인간의 신경세포를 닮은 알고리즘이라서 이런 이름이 붙었습니다.

 

조금더 간단히 설명드리기 위해 그림을 준비햇습니다.

아래 그림을 보시면

데이터가 입력층(input layer)으로 들어가

은닉층(hidden layer)을 거친 후

출력층(output layer)을 통해 출력되는걸 보실 수 있습니다.

여기서 각 층의 원을 노드(node)라고 부릅니다.

 

설명이 장황하지만 이러한 알고리즘을 아래와 같이 간단한 식으로 나타낼 수 있습니다.

 

y = F (W * X + b)

 

위의 식에서 각 항목은

 

(1) y는 출력값(output)

(2) F는 활성화함수(activation function) : 노드를 거쳐가는 데이터를 가공하는 함수

(3) W는 가중치(weight) : 평균을 구할 때 각 객체에 부여되는 중요도

(4) X는 입력값(input)

(5) b는 편향(bias) : 외부 영향의 정도를 나타내는데 평향값이 클수록 정답값들의 거리가 멉니다.

 

를 뜻합니다.

 

이때 가중치와 편향을 변경해가면서 적절한 값을 찾아나가는 최적화 과정을 학습 혹은 훈련이라고 합니다.

 

 

2. 활성화함수

인공 신경망을 거치는 데이터를 어떤 값으로 최종 출력할지 결정하는 함수를 의미하며

아래와 같이 여러 종류의 함수들이 존재합니다.

 

(1) 시그모이드(sigmoid) 함수

(2) 탄젠트 하이퍼볼릭(tanh) 함수 

(3) ReLU 함수

(4) Leaky ReLU, Parametric ReLU함수

(5) Exponential Linear Unit(ELU) 함수

(6) Maxout 함수

 

위 함수들에 대한 설명은 다른 포스팅에서 다뤄보도록 하겠습니다.

 

 

3. 퍼셉트론(perceptron)

신경망의 기원이 되는 알고리즘으로써

여러개의 신호를 입력받아 하나의 신호로 출력하는 알고리즘을 의미합니다.

퍼셉트론은 ORAND 같은 단순계산만 가능하다는 한계가 있었지만

 

다층 퍼셉트론(multi layer perceptron)이 등장하며 그러한 단점을 극복하게 됩니다.

퍼셉트론에 은닉층을 추가하여

AND, OR을 조합하는 방식으로 XOR을 구현할 수 있게 된 것입니다.

(여기서XOR이란 입력된 2개의 값 중 1개만 참일때 참이 되는 논리연산자를 의미합니다.)

 

위에서도 보여드렸지만 아래 그림과 같은 모델이 다층 퍼셉트론입니다.

하지만 은닉층이 많아질수록 계산이 어려워졌고 이를 극복하기 위해 역전파알고리즘이 등장하게됩니다.

 

 

4. 역전파(backpropagation)알고리즘

입력층에서 출력층으로 계산하여 출력된 결과의 오차를

출력층에서 입력층의 방향으로 거꾸로 계산해나가며

가중치를 업데이트하는 알고리즘이 바로 역전파입니다.

 

 

 

오늘은 딥러닝에 대해 간단히 알아보았습니다.

제가 구구절절 용어나 이론에 대해 설명하는 이유는

다름이 아니라 바로 제가 머신러닝에 대한 지식이 부족해서입니다.

코딩 독학자를 위한 포스팅을 진행하고 있는 만큼

저와 같은 코딩 초보들의 눈높이에 맞추는게 중요하다고 생각합니다.

기회가 되면 텐서플로우를 이용하는 예제도 포스팅하여

이론을 머리에 새길 수 있는 기회를 만들어보도록 하겠습니다.

반응형