Deep Learning

여러 번에 걸쳐 딥 러닝에 대해서 학습 해보도록 하자. 물론 기초부터.

신경망이란 뭐하는 것인가?

신경망은 일종의 문제를 풀어내는 방법론이라고 볼 수 있다. 가장 쉽게 예를 들면 사람의 필기체 숫자를 인식하는 문제와 같이 어떤 현상을 관찰해서 그것이 어떤 패턴인지 인식 혹은 구분하는 일을 해결해내는데 주로 사용한다.

이것이 기존에 있던 방법들과 다른 특징을 갖는 것은, 내가 해결하려고 하는 문제와 유사한 문제들을 통해서 신경망을 학습시키면 그렇게 학습된 신경망은 다른 유사한 문제에 있어서도 높은 인식률을 갖게 된다는 장점을 가지고 있기 때문이기도 하고, 매번 문제를 풀면서 스스로의 인식 방법을 개선하기 때문에 더 많은 문제를 풀면 풀 수록 인식도가 더 좋아진다는 장점도 가지고 있다.

전자를 supervised learning 즉 답을 알려주고 학습을 시키는 것이고 후자를 non-supervised learning이라고 해서 답을 알려주지 않은 상태에서 스스로 학습하는 것을 의미한다.

결국, 사람에게 어떤 사실의 기초가 되는 내용을 알려주면 이 사람은 유사한 응용 문제에 대응할 수 있듯이 신경망 또한 그런 성질을 가지고 있다고 볼 수 있다.

이것이 장점이 되는 이유는, 기계는 그 자체가 다루는 데이터들은 매우 구체적이고 정확한 반면, 외부에서 들어오는 데이터들을 인식할 때는 그 정확함 때문에 어떠한 데이터인지 인식하는데 어려움이 있다.

즉, 컴퓨터가 어떤 패턴을 인식하려면 그것을 추상화하고, 그 추상화된 데이터를 근간으로 하여 외부로부터 들어오는 데이터를 비교하여 그것이 어떤 것인이 인식하도록 해야하는데, 그렇게 인식해야 하는 패턴의 가지수가 많고 다양하다고 하면 사람이 기계를 통해서 그것들을 학습시키는 것에는 한계가 존재할 수 밖에 없다.

반면에 신경망의 경우는 그 망을 적당히 설계하여 주고 유사한 몇 가지 문제들을 통해서 학습을 시켜주면, 그 이후로는 스스로 적응하여 인식을 할 수 있다는 장점이 있기에 각광을 받게 된 것이다.

신경망의 기본단위: 뉴런

신경망은 흔히 뉴런이라고 하는 기본단위가 얽혀있는 망을 그렇게 부른다.

특징을 정리하면 다음과 같다.

즉 여러 개의 입력을 받아서 하나의 출력을 내보내는 기초적인 단위이고, 이 신경망이 해결해야 하는 문제에 따라 연결강도와 바이어스를 최적화하는 과정을 ‘학습 (learning)’이라고 한다.

여기서 활성화함수와 바이어스가 어떠하냐에 따라서 이 신경망은 linear할 수도 있고 non-linear할 수 있는데, 일반적인 경우 신경망은 non-linear하다. 즉, non-linear한 활성함수와 0이 아닌 바이어스 값을 사용한다는 뜻이다.