2016.11.12 Sat |

機械学習を行うためのパッケージ(tensorflow)

こんにちは!

前回はchainerについて紹介しました!今回はtensorflowについて紹介していきます!

shutterstock_169012082

 


 

2. tensorflowとは

tensorflowとはGoogleの提供するOpenSourceです。以下のページがTensorFlowのページになります。

https://www.tensorflow.org

TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google’s Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.

とこのように書かれていました。どうやらchainerと同じように、GPUを用いることができ、Deep Neural Networkなどを実装するのに便利なパッケージのようですね。

そもそも「テンソル」とは行列やベクトルと似たような概念です。ベクトルや行列がテンソルと一部と言うほうが正しいでしょうか。

以下の画像がわかりやすかったので紹介しておきます。

 

2014-3-13-5-638

 

このように3階のテンソルは行列が奥側に連なったものです。このようなものを使う機会があるの?と疑問に持つ方もいらっしゃると思いますが、画像処理を機械学習で用いる際に以下のように、画像が奥行き方向に伸びたものを考えることがあります。

typical_cnn

 

このように、画像の奥行きを考えることで、計算が速くなったり、より数学的にシンプルになるようですね。

TensorFlowはこのように「テンソル」の概念をわかりやすく記述したプログラミング言語ということができそうです。

なおインストールなどは上のホームページにのっていますので、ぜひ参考にしてください。

個人的には今、研究でchainerを用いておりますので、chainerのほうがオススメではありますが、どちらを用いても機械学習を実装することができます。


 

機械学習は今、パッケージを用いることで非常に簡単に実装することができます。

ただ、データさえあればすぐできるのか、と言われるとそういうことは決してありません。

データをちゃんと「扱いやすい形」にする必要があります。これも長年の経験がものをいう世界です。

また、層の決め方、Dropoutを用いるかどうかを決めるのは非常に難しいです。

 

これらのことについてもまた紹介していきたいと思います。

shutterstock_318448577

 

東京大学工学部4年

H.M

 

 

2024.1  
給料も教育もガッツリと!メンター制度開始します  詳しく