본문 바로가기

코딩/텐서플로우

비전공자의 코딩 독학 - 파이썬&텐서플로우(1)

반응형

안녕하세요.

오늘의 파이썬 코딩 독학 주제는 텐서플로우입니다.

 

 

1. 텐서플로우(tensor flow)란?

구글에서 공개한 오픈소스 머신러닝 라이브러리로써

C++, JAVA, R등 다양한 언어를 지원하지만

파이썬에 가장 최적화되어있어 파이썬에 관련된 자료가 가장 많습니다.

따라서 파이썬을 통한 텐서플로우 학습을 추천드립니다.

 

텐서플로우는 기본적으로 텐서보드라는 시각화도구를 지원하여

머신러닝 과정을 추적하기 용이합니다.

 

또한 CPU뿐만 아니라 GPU를 통한 연산도 지원하기때문에(NVIDIA의 그래픽카드만 지원)

훨씬 빠른 작업이 가능합니다.

 

여기서 텐서(tensor)

데이터를 표현하는 방식입니다.

고등학교 수학과정에서 1차원은 점이고 2차원은 선, 3차원은 입체라고 배우셨듯이

데이터에도 차원이 있습니다.

그 중에서도 고차원의 데이터를 텐서라고 부릅니다.

 

한가지 개념을 더 설명드리자면

점과 선으로 구성되는 그래프에서

각각의 점을 노드(node)라고 부릅니다.

아래 그림을 보시면 이해하기 더 편하실텐데

텐서는 노드에서 노드로, 엣지(edge)를 따라 흘러갑니다.

 

 

 

2. 머신러닝이란?

간단하게 말하면 컴퓨터에 코드로 입력하지 않은 연산을 가능하게 하는 기술입니다.

 

아래 그림을 예로 들면

화살표는 데이터의 이동방향이고,

네모 박스는 우리가 알지 못하는 미지의 알고리즘입니다.

화살표를 따라 데이터가 이동하며 네모 박스의 알고리즘을 통해서 데이터가 가공되는데

우리는 그 알고리즘을 모르는것이죠.

 

이때 컴퓨터에 다량의 데이터를 입력하여 가공되는 데이터의 패턴을 분석하여

컴퓨터가 네모박스의 알고리즘을 찾아내는 과정을 머신러닝이라고 합니다.

 

 

이러한 머신러닝의 방법에는 세가지가 있습니다.

 

(1) 지도학습

데이터를 구분할 수 있는 지표인 '라벨'을 컴퓨터에 입력하여

라벨을 토대로 데이터를 판단하도록 하는 것을

지도학습(supervised learning)이라고 합니다.

위 그림은 컴퓨터가 사각형을 구분할 수 있도록 하기 위해

사각형에 대한 라벨을 컴퓨터에 입력하는 예시입니다.

저 라벨들을 토대로 컴퓨터는 사각형을 학습하게 되는데

삼각형 데이터가 입력되면 1,3번 라벨은 만족하지만

2번 라벨을 만족하지 않게되므로 컴퓨터가 사각형이 아니라고 결론내리게됩니다.

 

(2) 비지도 학습

아무런 설명도 라벨도 없이 그냥 수없이 많은 데이터를 입력시켜

컴퓨터가 스스로 그 데이터를 정의하도록 하는 것을

비지도학습(unsupervised learnin)이라고 합니다.

 

예를 들면 무수히 많은 사각형 데이터가 컴퓨터에 입력되고

그 데이터를 토대로 컴퓨터가

사각형은 모서리가 있고, 꼭지점이 4개 있고, 점과 선으로 이루어져 있다는

결론을 내리게 됩니다.

 

결국 지도학습은 결과값을 먼저 알려주는 것이고

비지도학습은 결과값을 나중에 도출하도록 하는 것입니다.

 

(3) 강화 학습

컴퓨터가 어떠한 행동을 선택하고, 그 행동에 대한 피드백을 이용해

학습하는 것을 강화학습(reinforcement learnin)이라고 합니다.

 

 

3. 딥러닝이란?

머신러닝의 여러 모델 중 사람의 뇌를 닮은 인공신경망 구조를 통한 머신러닝을 딥러닝이라고 부릅니다.

즉 딥러닝은 머신러닝에 포함되어있는 하위개념입니다.

 

 

4. 텐서플로우 설치 방법

텐서플로우 역시 라이브러리이기 때문에 설치방법은 다른 라이브러리와 같으며

아래와 같은 명령어를 이용하시면 됩니다.

conda install tensorflow	#아나콘다로 설치시
pip install tensorflow		#pip로 설치시

 

 

오늘은 텐서플로우에 대해 아주 간단히 알아보았는데

다음번에는 조금 더 자세히 알아보도록 하겠습니다.

반응형