OFFICE風太郎

日本のエンジニア、風太郎です。問題解決が飯のタネです。仕事や生活で問題解決を活用したり、問題解決の基礎となる統計とかデータ分析の話をしていきます

データサイエンスとその環境について(無料環境)

突然のデータサイエンス?いいえ違います。

 突然データサイエンスの話を始めました。実は突然じゃないんですよね、元々風太郎はそっちの方が専門です。
 ただ、このデータ分析に「問題解決スキル」と「プロセス構築スキル」がないと役に立たないんですよ。いくら、深層学習しようが、機械学習の技をかけようが、仕事としての成果につなげるためには、問題解決の問題点の解消に向けて行わないとダメです。また、プロセスをしっかりしないとやり直しや、無駄な作業が大量に発生します。

どういう環境で行うか?

 今まで会社ではGPU環境で行なっていました。自宅学習用はMACです。ちょっとだけAzureも使っていました。まわりにはGPU環境(コンシューマ用の1080や2080)を自宅に持っている人もいます。電気代が一割上がったとか、夏場は換気扇付近に放熱器取り付けると言っています。
 これらの環境は「高価」ですよ。ざっくりと最低20万円、30〜40万は必要でしょうか?それを出すのはきついです。また、置き場所も大変です。場所も必要ですし、熱・音・光もあります。専用部屋が欲しいぐらいです。そう言った知り合いは「一戸建て」「独身」のどちらかでした。
 そこでクラウドでしょうか?一時間百円程度で借りられます。10万円分で1000時間です。これを安いと見るか高いと見るか悩むところです。ものすごく重い処理をしていたら大赤字です。 ちょっと見積もってみました。  パソコン工房https://www.pc-koubou.jp/ )で、RTX2070、16RAM、i5(6コア)、500GSSD(PCI)+1THDDで約23万です。 初心者がちょっとやってみようという金額ではありませんね。 やっぱりクラウドでやってみましょう。 ここではAzureとGoogleColabotryを取り上げてみます。 GoogleColabotoryは有名なんですがなんか情報少ないです。

Google Colaboratoryは”無料”のGPU開発環境

 なんといっても無料です。(情報とか取られているので無償じゃないかも?ですが)しかもGPUが無料です。 12時間連続までという制限はありますが、それでも約1200円相当です。

導入されているライブラリは次の通りです(CPU)  Package Version


absl-py 0.6.1
alabaster 0.7.12
albumentations 0.1.8
altair 2.3.0
astor 0.7.1
astropy 3.0.5
atari-py 0.1.7
atomicwrites 1.2.1
attrs 18.2.0
audioread 2.1.6
autograd 1.2
Babel 2.6.0
backports.tempfile 1.0
backports.weakref 1.0.post1
beautifulsoup4 4.6.3
bleach 3.0.2
bokeh 1.0.2
boto 2.49.0
boto3 1.9.67
botocore 1.12.67
bs4 0.0.1
bz2file 0.98
cachetools 3.0.0
certifi 2018.11.29
cffi 1.11.5
chainer 5.0.0
chardet 3.0.4
Click 7.0
cloudpickle 0.6.1
cmake 3.12.0
colorlover 0.2.1
community 1.0.0b1
contextlib2 0.5.5
coverage 3.7.1
coveralls 0.5
crcmod 1.7
cufflinks 0.14.6
cvxopt 1.2.2
cvxpy 1.0.11
cycler 0.10.0
cymem 2.0.2
Cython 0.29.2
cytoolz 0.9.0.1
daft 0.0.4
dask 0.20.2
datascience 0.10.6
decorator 4.3.0
defusedxml 0.5.0
dill 0.2.8.2
distributed 1.25.1
Django 2.1.4
dlib 19.16.0
dm-sonnet 1.23
docopt 0.6.2
docutils 0.14
dopamine-rl 1.0.5
easydict 1.9
ecos 2.0.7.post1
editdistance 0.5.2
en-core-web-sm 2.0.0
entrypoints 0.2.3
et-xmlfile 1.0.1
fa2 0.2
fancyimpute 0.4.2
fastcache 1.0.2
fastdtw 0.3.2
fastrlock 0.4
fbprophet 0.3.post2
featuretools 0.4.1
filelock 3.0.10
fix-yahoo-finance 0.0.22
Flask 1.0.2
folium 0.2.1
future 0.16.0
gast 0.2.0
GDAL 2.2.2
gdown 3.6.0
gensim 3.6.0
geographiclib 1.49
geopy 1.17.0
gevent 1.3.7
gin-config 0.1.2
glob2 0.6
google 2.0.1
google-api-core 1.7.0
google-api-python-client 1.6.7
google-auth 1.4.2
google-auth-httplib2 0.0.3
google-auth-oauthlib 0.2.0
google-cloud-bigquery 1.1.0
google-cloud-core 0.28.1
google-cloud-language 1.0.2
google-cloud-storage 1.8.0
google-cloud-translate 1.3.2
google-colab 0.0.1a1
google-resumable-media 0.3.1
googleapis-common-protos 1.5.5
googledrivedownloader 0.3
graph-nets 1.0.2
graphviz 0.10.1
greenlet 0.4.15
grpcio 1.15.0
gspread 3.0.1
gspread-dataframe 3.0.2
gunicorn 19.9.0
gym 0.10.9
h5py 2.8.0
HeapDict 1.0.0
html5lib 1.0.1
httpimport 0.5.16
httplib2 0.11.3
humanize 0.5.1
hyperopt 0.1.1
ideep4py 2.0.0.post3
idna 2.6
image 1.5.27
imageio 2.4.1
imagesize 1.1.0
imbalanced-learn 0.4.3
imblearn 0.0
imgaug 0.2.6
imutils 0.5.2
inflect 2.1.0
intel-openmp 2019.0
intervaltree 2.1.0
ipykernel 4.6.1
ipython 5.5.0
ipython-genutils 0.2.0
ipython-sql 0.3.9
ipywidgets 7.4.2
itsdangerous 1.1.0
jdcal 1.4
jieba 0.39
Jinja2 2.10
jmespath 0.9.3
joblib 0.13.0
jpeg4py 0.1.4
jsonschema 2.6.0
jupyter 1.0.0
jupyter-client 5.2.4
jupyter-console 6.0.0
jupyter-core 4.4.0
kaggle 1.5.1.1
kapre 0.1.3.1
Keras 2.2.4
Keras-Applications 1.0.6
Keras-Preprocessing 1.0.5
keras-vis 0.4.1
knnimpute 0.1.0
librosa 0.6.2
lightgbm 2.2.2
llvmlite 0.26.0
lmdb 0.94
lucid 0.3.6
lxml 4.2.5
magenta 0.3.19
Markdown 3.0.1
MarkupSafe 1.1.0
matplotlib 2.1.2
matplotlib-venn 0.11.5
mesh-tensorflow 0.0.5
mido 1.2.6
mir-eval 0.5
missingno 0.4.1
mistune 0.8.4
mkl 2019.0
mlxtend 0.14.0
more-itertools 4.3.0
moviepy 0.2.3.5
mpi4py 3.0.0
mpmath 1.1.0
msgpack 0.5.6
msgpack-numpy 0.4.3.2
multiprocess 0.70.6.1
multitasking 0.0.7
murmurhash 1.0.1
music21 5.5.0
natsort 5.5.0
nbconvert 5.4.0
nbformat 4.4.0
networkx 2.2
nibabel 2.3.1
nltk 3.2.5
nose 1.3.7
notebook 5.2.2
np-utils 0.5.7.0
numba 0.40.1
numexpr 2.6.8
numpy 1.14.6
oauth2client 4.1.3
oauthlib 2.1.0
okgrade 0.4.3
olefile 0.46
opencv-contrib-python 3.4.3.18
opencv-python 3.4.4.19
openpyxl 2.5.9
osqp 0.5.0
packaging 18.0
pandas 0.22.0
pandas-datareader 0.7.0
pandas-gbq 0.4.1
pandas-profiling 1.4.1
pandocfilters 1.4.2
pathlib 1.0.1
patsy 0.5.1
pexpect 4.6.0
pickleshare 0.7.5
Pillow 4.0.0
pip 18.1
plac 0.9.6
plotly 1.12.12
pluggy 0.8.0
portpicker 1.2.0
prefetch-generator 1.0.1
preshed 2.0.1
pretty-midi 0.2.8
prettytable 0.7.2
progressbar2 3.38.0
promise 2.2.1
prompt-toolkit 1.0.15
protobuf 3.6.1
psutil 5.4.8
psycopg2 2.7.6.1
ptyprocess 0.6.0
py 1.7.0
pyasn1 0.4.4
pyasn1-modules 0.2.2
pycocotools 2.0.0
pycparser 2.19
pydot 1.3.0
pydot-ng 2.0.0
pydotplus 2.0.2
pyemd 0.5.1
pyglet 1.3.2
Pygments 2.1.3
pygobject 3.26.1
pymc3 3.5
pymongo 3.7.2
pymystem3 0.2.0
PyOpenGL 3.1.0
pyparsing 2.3.0
pysndfile 1.3.2
PySocks 1.6.8
pystache 0.5.4
pystan 2.18.0.0
pytest 3.10.1
python-apt 1.6.3
python-chess 0.23.11
python-dateutil 2.5.3
python-louvain 0.11
python-rtmidi 1.1.2
python-slugify 1.2.6
python-utils 2.3.0
pytz 2018.7
PyWavelets 1.0.1
PyYAML 3.13
pyzmq 17.0.0
qtconsole 4.4.3
regex 2018.1.10
requests 2.18.4
requests-oauthlib 1.0.0
resampy 0.2.1
rsa 4.0
s3fs 0.2.0
s3transfer 0.1.13
scikit-image 0.13.1
scikit-learn 0.20.1
scipy 1.1.0
screen-resolution-extra 0.0.0
scs 2.0.2
seaborn 0.7.1
setuptools 40.6.3
simplegeneric 0.8.1
six 1.11.0
sklearn 0.0
smart-open 1.7.1
snowballstemmer 1.2.1
sortedcontainers 2.1.0
spacy 2.0.18
Sphinx 1.8.2
sphinxcontrib-websupport 1.1.0
SQLAlchemy 1.2.15
sqlparse 0.2.4
stable-baselines 2.2.1
statsmodels 0.8.0
sympy 1.1.1
tables 3.4.4
tabulate 0.8.2
tblib 1.3.2
tensor2tensor 1.11.0
tensorboard 1.12.1
tensorboardcolab 0.0.22
tensorflow 1.12.0
tensorflow-hub 0.2.0
tensorflow-metadata 0.9.0
tensorflow-probability 0.5.0
termcolor 1.1.0
terminado 0.8.1
testpath 0.4.2
textblob 0.15.2
textgenrnn 1.4.1
tfds-nightly 0.0.2.dev201812180014 tflearn 0.3.2
Theano 1.0.3
thinc 6.12.1
toolz 0.9.0
tornado 4.5.3
tqdm 4.28.1
traitlets 4.3.2
tweepy 3.6.0
ujson 1.35
umap-learn 0.3.7
Unidecode 1.0.23
uritemplate 3.0.0
urllib3 1.22
vega-datasets 0.7.0
wcwidth 0.1.7
webencodings 0.5.1
Werkzeug 0.14.1
wheel 0.32.3
widgetsnbextension 3.4.2
wordcloud 1.5.0
wrapt 1.10.11
xarray 0.11.0
xgboost 0.7.post4
xkit 0.0.0
xlrd 1.1.0
xlwt 1.3.0
yellowbrick 0.9
zict 0.1.3
zmq 0.0.0

Googleなので、当然tensorflow,Kerasはあります。そして当然、Chainer,Pythorchはありません。 ただ、pipでその都度導入することはできます 自分の勉強用としては最適ではないでしょうか?また、12時間以上かかるときは途中経過を保存しておいても良いと思います。  環境はCPU(None)GPU、TPUを選ぶことができます。TPUというのがGoogleが深層学習用に作ったものらしいです。実行速度も魅力ですが、Out of memoryにならないのが魅力ですね。

機械学習を学ぶためには

 ライブラリには深層学習のフレームワークだけでなく、Scikit-learnもあります。先ほど述べたように、その場でライブラリのインストールもできます。インストール時間は意外と早かったりする場合も多くあります。
 このように「まず、データサイエンスやってみたい」っていう人にはオススメの環境です。 

今回はここの記事を参考にしました。 qiita.com

qiita.com

www.codexa.net