인공지능을 언급할 때 꼭 나오는 텐서플로우가 뭐지?

2020. 7. 16. 13:35인공지능,프로그래밍

반응형

인공지능을 언급할 때 꼭 나오는 단어가 있다.

바로 텐서플로우인데 영어로는 'TensorFlow'라고 하는 단어이다. 

 

이 단어가 무슨 뜻인지 궁금해서 찾아보았다. 

 

소개말을 보니 '데이터 플로우 그래프를 사용하여 수치연산을 하는 오픈소스 소프트웨어 라이브러리'라고 되어 있는데,

무슨 뜻인지 보니

데이터들이 있으면 단순히 일차원적인 숫치가 아닌 여러가지 숫자들로 되어 있고 

이 숫자들은 그 성격에 따라 종류별로 구분하면

여러종류의 꾸러미 즉 수학용어로 '다차원의 배열'로 나누어 볼 수 있는데

여기에서 다차원 배열을 '텐서(tensor)'라고 부르고

이 텐서의 흐름을 가지고 연산을 할 수 있도록 만들어 둔 일종의 함수들의 모음

즉, 연산 공식들을 모아서 프로그램에 쓰기 편하게 만들어 둔 것이 

텐서플로우라고 이해하면 될 것 같았다. 

 

설명이 더 어려울지 모르겠지만, 

 

다시 설명하면 

흩어진 숫자들을 잘 모아서 

이 숫자들간의 관계를 계산하는 공식들을 모아둔 

프로그램 부품(라이브러리) 정도로 설명할 수 있을 것 같다. 

 

이 정도만 설명하면 텐서플로우라는 것이 별것 아닌 듯이 보일 수 있겠지만

이러한 함수들이 바로 인공지능이라고 하는 일을 할 수 있게 해 주는 함수라는 것을 생각한다면

그 별것 아닌 것이 별것으로 생각이 달라질 수 있을 것이다. 

 

그럼 어떤 처리를 할 수 있기에 그렇게 대단하다고 하는 것일까?

 

하나의 예를 들면, 

일정 폰트로 된 글자가 아닌 손으로 쓴 숫자나 글씨를 학습하고

새로운 손글씨를 제시했을 때 그 글씨를 인식하게 할 수 있다. 

 

마치 아이에게 숫자를 가르치고 

읽어보라고 했을 때 읽는 것과 같은 일을 

컴퓨터에게 가르칠 수 있다는 의미이다. 

그것도 아주 똑같이 써주지 않은 글자까지 읽도록 할 수 있다는 점이

사람의 인식과 닮았다고 볼 수 있다. 

 

그리고 또하나의 예를 들면, 

사람의 얼굴을 학습하게 하고 

같은 사람의 다른 사진을 보여주었을 때 그 사람을 분별해 내는 것도 가능하다. 

 

최근에 이러한 기능을 사용하여 

닮은꼴 연예인이라던지 

닮은꼴 동물을 찾는 등의 앱을 본 적이 있다면, 

텐서플로우의 기능을 사용했다고 보면 되는 것이다. 

 

그리고 현재 많이 사용하고 있는 주가예측이라는 것도 가능한데,

최근 AI 주가 예측 프로그램이 증권사등에 많이 늘어난 것도 이러한

기능이 유용하기 때문이다. 

 

물론 사람을 인식하는 것과 같은 맞고 틀리고의 영역이 아닌

예측의 영역이기 때문에 100%를 기대할 수 없고 

그렇기 때문에 가능성이 높은 쪽으로

생각하는데 도움을 받는 방식으로 사용해야 할 것 같다는 생각이다. 

 

어찌 되었건 텐서플로우는 AI를 이해하고 구현하는데 

필수가 되었으며 이를 사용하여 

인공지능을 구현하고 학습시키고 사용하는 것이 

현재로써는 가장 일반적인 방법이라는 것을 생각할 때

좀 더 깊이 공부가 필요한 분야이다. 

 

다음에는 실제로 어떤 식으로 텐서플로우가 구현되는지

그리고 그러한 구현을 이해하고 사용하는 것이 

알고리즘을 구성하고 구현하는데 어떤 도움을 줄 수 있는지를

생각해 보려고 한다.

반응형