Posts 딥 러닝 - 0. 딥 러닝이란?
Post
Cancel

딥 러닝 - 0. 딥 러닝이란?

인공지능의 시대!

인공지능 기술은 계속해서 발전해 나가고 있다. 이미지 인식 및 분류, 음성 인식, 번역 등에서 인공지능 기술이 적용되어 성능을 크게 향상시키고 있다. 2010년대 이후의 인공지능 기술은 머신러닝, 그 중에서도 딥 러닝에 기반하고 있다.

딥 러닝?

그렇다면 딥 러닝은 무엇일까? 딥 러닝의 가장 중요한 특징은 입력받은 데이터를 통해 스스로 최적의 결과를 찾아낸다는 것이다. 이는 인공 신경망에 데이터를 입력하여 원하는 결과를 얻어내는 방식으로 진행된다.

인공 신경망

그렇다면 인공 신경망은 또 무엇일까? 인공 신경망은 사람의 뇌를 인공적으로 구현하고자 하는 시도에서 출발하였다.

신경망이란 간단히 인간 뉴런의 집합체라고 볼 수 있겠다. 돌기(Dendrites)를 통해 신호를 전달받아 축삭(Axon)으로 신호를 다음 뉴런에 전달한다.

중요한 것은, 뉴런끼리는 서로 연결되어 있다는 것이다.

Neuron From https://en.wikipedia.org/wiki/Neuron

인공 신경망의 조금 더 자세한 구조는 바로 다음에 다루고자 한다. 지금은 우선 인공 신경망이 사람의 뇌를 모사하고자 하는 시도에서 출발했다는 점이 핵심이다.

이 포스트는 첫번째, 아니 정확히는 0번째니까 아주 간단하게 써 볼 생각이다. 우선 인공 신경망의 입력은 무엇이고, 또 출력은 무엇일까?

Neural Networks

인공 신경망의 몇가지 예시를 그림으로 그려 보았다.

첫번째는 주어진 이미지를 보고 피사체가 무엇인지 알려주는 인공 신경망이다.
두번째는 주어진 음성을 텍스트 자막으로 바꿔주는 인공 신경망이다.
마지막 세번째는 주어진 텍스트를 음성으로 바꿔주는, 보이스웨어같은 인공 신경망이다.
그 외에도 한국어 텍스트를 입력으로, 영어 텍스트를 출력으로 하는 번역기도 인공 신경망을 통해서 구현할 수 있을 것이다.

입력이 있고, 출력이 있다. 즉 이것은 일종의 함수 관계를 이룬다!

조금 더 생각해보자. 한 사람이 말하는 내용을 듣고 그것을 누군가가 듣고 받아 적는다면 그것은 어떤 함수 관계를 가진다. 받아 적는 사람에게는 음성이 입력이 된다. 그러고 나서 그 사람의 뇌에서 어떤 과정을 거쳐서 음성을 받아 적으면, 그 받아 적은 텍스트가 출력이 되는 것이다. 이 어떤 과정 자체가 하나의 함수인 것이다.

\[text = f(voice)\]

문제는 이 어떤 과정이 무엇인지, 사람은 소리를 듣고 어떻게 문자로 변환하는지 우리가 정확히 알지 못한다는 데 있다. 그러나 우리는 인공 신경망을 통해서 이 과정을 비슷하게 구현하는 함수를 찾아낼 수 있다.

\[text = f'(voice)\]

그런데 어떻게 이 인공 신경망 함수 f’(voice)를 사람이 하는 과정인 f(voice)와 비슷하게 만들 수 있을까? 아래 그림을 보자.

Functions

우선, 주어진 입력에 따라 다른 결과가 나올 것이다. 서로 다른 음성이라면, 서로 다른 텍스트가 될 것이다.

그리고 우리는 사람이 특정 음성을 듣고 텍스트를 적은 결과물, 즉 입력-출력 쌍의 데이터를 가지고 있다. 그러나 이것은 전체 함수의 결과값 중 극히 일부일 수 밖에 없다. 모든 음성이 텍스트로 어떻게 변환되는지 알고 있다면 그걸 그대로 구현하면 되는데, 그건 불가능하다. 우리는 단지 일부 샘플만 가지고 있을 뿐이다.

그러나 이런 샘플을 이용해서, 우리는 적어도 우리가 알고 있는 샘플에 한해서는 f’(voice)가 f(voice)와 같거나 유사한 결과를 낼 수 있도록 함수를 만들 수 있을 것이다. 이렇게 f’(voice)를 f(voice)와 유사하게 만드는 과정이 바로 학습이다.

위 그림을 통해서 왜 딥 러닝에서는 데이터가 중요하다고 하는지, 데이터가 많이 필요하다고 하는지도 알 수 있을 것이다.

만약에 샘플이 위 그림처럼 골고루 분포하는 것이 아니라 한 군데에만 몰려 있다면 나머지 부분에 대해서는 제대로 모사할 수 없을 것이다. 또한, 데이터의 숫자가 많으면 많을수록 더욱 원래 함수를 잘 모사할 수 있을 것이다.

결론

  • 인공 신경망은 원래 함수를 정확히 모르는 상태에서, 입력-출력의 샘플을 통해 원래 함수와 비슷한 함수를 만들어낸다.
  • 높은 정확도를 위해서는, 좋은 데이터가 필요하다.

다음 포스트부터는, 이런 인공 신경망의 구조와 학습 방법에 대해서 좀 더 자세히 알아보고자 한다.

참고 자료

Carnegie Mellon University, Lecture 11-785

This post is licensed under CC BY 4.0 by the author.

논문 정리 - Yann LeCun, Deep learning, 2015

딥 러닝 - 1. 퍼셉트론

Loading comments from Disqus ...