텐서 플로 첫걸음
IT 거인의 빅 피쳐
인공지능 분야의 머신러닝 책을 읽어 나가다 보면 텐서 플로의 이름을 만나게 됩니다. 수많은 새로운 용어들이 난무하는 IT 분야에서 새로운 단어를 만나는 것은 자주 있는 일이라 대단하지 않습니다. 하지만 그 수많은 용어들이 무슨 뜻인지 어떤 의미를 가지는지 이해하고 넘어가야 하는 것이 프로그래머의 숙명인 만큼 텐서 플로우에 대한 책을 지나치고 갈 수는 없었습니다.
텐서 플로는 간단하게 정의하면 구글의 머신러닝 패키지입니다. 데이터를 분석하여 모델을 만들기 위한 도구인 셈입니다. 기술적으로는 딥러닝의 기술을 활용했다고 합니다. 그리고 심지어 이런 기술을 오픈소스로 공개하여 많은 이들이 무료로 사용할 수 있게 했습니다. 코딩의 세상에서 오픈소스는 더 이상 새로울 것이 없는 개념이긴 하지만 이런 대규모 자원이 들어가는 프로젝트를 오픈했다는 점에서 구글이 얼마나 대단한 회사 인지 짐작하게 해 줍니다.
이 책은 텐서플로를 이해하기 위한 기본적인 내용들을 간략하게 설명하고 있습니다. 텐서 플로를 어떻게 설치해야 하는지 그리고 이 패키지는 어떤 언어를 메인으로 삼고 있는지 텐서 플로에 대한 간략한 이해를 할 수 있습니다. 그리고 텐서 플로의 알고리즘을 활용하기 위해서 어떤 수학적 기법이 필요한지도 함께 설명하고 있습니다.
텐서플로를 이해하기 위해서는 많은 지식이 필요합니다. 단순히 파이썬 프로그램 언어에 대한 이해뿐만 아니라 통계학에 대한 이해도 필요합니다. 책 전체에서 다루고 있는 이론들은 다 서술하는 것은 저의 역량 밖의 일이라 이 책을 통해 제가 이해한 바만 간략하게 정리하고 넘어가려 합니다.
선형회귀분석 (linear regression)은 변수들 사이의 관계를 분석하는 데 사용하는 통계학적 방법입니다.
텐서 플로우 첫걸음 p 49
책에서의 정의는 선형 회귀를 간략하게 정의하고 있지만 이 문장만으로 선형 회귀를 이해하기에는 부족함이 많습니다. 선형 회귀를 사용하는 목적은 크게 두 가지로 나뉠 수 있습니다. 첫 번째는 결과 값을 예측하기 위함입니다.
입력 값인 X와 결과 값(종속 값)인 Y 가 있을 경우 결과 값이 없는 X에 대해 그 결과를 예측해내는데 우선 사용될 수 있습니다. 흔히 방정식에서 해를 구하는 과정을 상상할 수 있습니다. 결국 컴퓨터에게 방정식을 풀어내는 방법을 선형 회귀 알고리즘을 통해 구현할 수 있다는 이야기가 됩니다.
두 번째는 결과 값(종속 값) Y 가 존재하고 입력 값이 X 가 존재할 경우 둘의 상관관계를 정의할 수 있다는 것입니다. 이 또한 수학에서 익숙한 분야입니다. 학창 시절 수 없이 풀었던 문제들이 이와 유사한 형식인 경우가 많았습니다. 물론 객관식 시험 문제에서 결과를 통해 식을 유도해내는 경우는 거의 없었지만 방정식을 푸는데 가장 중요한 것은 식을 먼저 세우는 일이었습니다.
이 두 가지 사용법을 알고 나면 선형 회귀 분석을 사용하고 있는 텐서 플로에 대한 이해를 어느 정도 할 수 있습니다. 결국 데이터를 통해 어떠한 해를 유도해내는 작업을 해내는 도구라고 말입니다. 그리고 그런 과정을 통해 우리는 세상을 좀 더 명료하게 볼 수 있는 도구를 손에 넣게 되는 것입니다.
앞으로 어디로 뻗어 나갈지 알 수 없는 인공지능 분야가 많은 우려를 표하시는 분이 많이 계십니다. 하지만 그 우려의 많은 부분은 이런 책을 통해 지식들을 대중화하는 작업을 통해 많이 해소될 수 있을 거라고 생각합니다. 그리고 기술을 좀 더 현실에서 잘 활용할 수 있게 되는 것이 공학자들의 역할이 아닐까 합니다.
텐서 플로에 대한 이해를 높일 수 있었던 텐서 플로우 첫걸음이었습니다.
2019/11/12 - [하루 책 읽기/하루 기술서] - 처음 배우는 머신러닝 - 새로운 지식을 향한 걸음
2019/10/29 - [하루 책읽기/하루 기술서] - 딥러닝 첫걸음 - 인공지능 이해하기
2019/02/18 - [하루 책읽기/하루 기술서] - 열혈C 프로그래밍 - 컴퓨터와 대화하기
'jisung's 책읽기 > 기술서' 카테고리의 다른 글
강화학습 첫걸음 - 새로운 지식의 무거운 첫걸음 (0) | 2019.12.05 |
---|---|
처음 배우는 머신러닝 - 새로운 지식을 향한 걸음 (0) | 2019.11.12 |
딥러닝 첫걸음 - 인공지능 이해하기 (0) | 2019.10.29 |
생각하는 프로그래밍 #2 - 엔지니어의 직업정신 (0) | 2019.05.10 |
생각하는 프로그래밍 - Programming Pearls 2/E (1) | 2019.05.05 |
댓글