티스토리 뷰

728x90
반응형

딥러닝(deep learning)딥 뉴럴 네트워크(deep neural network)를 기반으로 하는 학습 알고리즘이다.


딥 뉴럴 네트워크 중 심층 순방향 신경망(deep feedforward network)는 데이터가 입력층(input layer), 은닉 층(hidden layer), 출력 층(output layer)을 거쳐가면서 원하는 결과를 얻어낼 수 있는 신경망 구조이다. 이러한 층의 개수를 신경망의 깊이(depth)라고 하고 층에 있는 노드의 개수를 너비(width)라고 한다.


딥러닝은 각 층의 노드를 연결하는 가중치를 학습하는 과정이며 대개 기울기 하강법(gradient descent)을 사용하여 비용함수(cost function)을 최소화하는 방향으로 가중치를 조절한다. 이때 조절하는 정도를 learning rate라고 한다. learning rate가 작을수록 가중치 값을 점진적으로 변화시켜 학습의 결과를 개선한다. 기울기 하강법에는 입력에서부터 출력까지 순차적으로 데이터를 가공시킨 후 도출된 비용함수를 고려하는 forward propagation과 개선된 비용함수에 맞추기 위해 역으로 진행하며 기울기를 조절하는 backpropagation이 있다.


딥러닝의 은닉층은 입력층에서 입력받은 feature들을 출력층에서 사용할 수 있도록 적절하게 표현을 변환하는 역할을 한다. 흔히 표현을 학습한다고 한다. 은닉층에서는 이전 층의 출력과 가중치를 고려한 입력을 받고 그 입력에 대한 활성 함수(activation function)의 출력을 다음 층으로 전달한다. 활성 함수로 포현 학습에 용이하도록 대개 비선형 함수를 사용한다. Sigmoid, Leaky Relu, tanh, Maxout, Relu, ELU 등의 비선형 함수를 주로 사용하며, 과거에 뉴런의 역치를 모방한 Sigmoid 함수를 많이 사용한 반면 최근에는 기울기 소멸 문제로 인해 Relu함수를 많이 사용한다. 다만, 활성함수가 비선형인 경우 기울기 하강법을 통해 최적해를 구하지 못할 수도 있다.


Universal Approximation Theorem에 의해 1층의 은닉층을 가진 네트워크로 대부분의 함수(Borel measurable function)를 표현할 수 있지만, 원하는 함수를 얻기 위해서는 사용해야 하는 노드의 개수가 매우 클 수도 있다. 하지만 더 적은 노드를 가지는 층들(간단한 함수)의 중첩을 통해 복잡한 함수를 묘사할 수 있다. 신경망의 깊이가 깊어질수록 성능이 증가하는 것도 이러한 이유 때문이다.

 

 

728x90
반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함