텐서플로우를 이용한 간단한 다항식 피팅(regression): 텐서플로우 기초 요소 이해
사실상 전통적인 분자동역학 분야에서는 딥러닝을 필요로 하지 않는다. 머신러닝이라 부르든, 그냥 regression이라고 부르든, 아무튼 '주어진 목적함수에 대해 목표치와 예측치 사이의 오차를 최소로 줄여나가는 fitting process에 대해서만 알고 있다면, 누구나 퍼텐셜을 피팅 할 수 있다. 텐서플로우가 주목을 받은 이유는 다양한 deep layer 구조를 쉽게 구현할 수 있도록 코드가 잘 짜여져 있기 때문인데, 그러한 연유로 만약 당신이 potential fitting을 한다면 굳이 텐서플로우를 이용할 필요는 없다. 허나, 나는 이번에 EAM potential을 피팅하는 프로젝트를 진행하면서 텐서플로우를 작업 툴로 선정했다. 그 이유는 여러가지가 있는데, 어쨌든 학문에 몸담으로 사람으로서 세간의 방법론적인 유행에 발은 맞춰놔야 하지 않나, 하는 생각도 들고, 또 앞으로 퍼텐셜의 형태가 종래의 형태와 같이 수식의 형태를 띄지 않고 인공신경망 구조로 학습되어 일종의 예측 프로그램 형태로 발전되지 않을까, 하는 생각도 들었기 때문이다. 이번 포스트는 텐서플로우 공식 홈에 있는 regression 예제 코드를 면밀히 살펴보면서, 텐서플로우의 특징, 사용방법들을 한꺼번에 알아볼 생각이다. 그러면서 나도 텐서플로우와 조금은 친해져 봐야지. 예제 코드는 다음에서 확인할 수 있다[ 예제코드 ]. 먼저 코드의 맨 윗 단을 보면 다음과 같이 세 개의 모듈이 import 되어 있다. import numpy as np import tensorflow as tf import matplotlib.pyplot as plt 'numpy'는 굳이 쓰지 않아도 되는 모듈이지만, 행렬을 많이 사용하는 코드에서 이 모듈을 쓰지 않으면 코딩이 굉장히 귀찮아진다. 여러가지 연산이라든지 행렬 선언, precision 설정 등등에서 numpy를 통한 선언이 훨씬 편하고 유용하므로 numpy를 사용하는 습관을 기르는 것이 좋다. 'matplotlib.