エンジニアとしてのスキルアップや転職に向けて、機械学習を始めたい人が増えています。需要がどんどん高まっている機械学習のスキルは今後エンジニアとして活躍するには必須のスキルですよね。
そんな機械学習でよく使われているのが、「TensorFlow」です。TensorFlowはGoogleの開発した機械学習ライブラリで、Googleの各種サービスにはもちろん、他のさまざまな企業でも使われている重要な技術です。機械学習を一から実装するには仕組みを理解し、コードを全て書く必要がありますが、このような機械学習用ライブラリを使うと、その手間を省けます。機械学習を用いたアプリを作成する際にはこのようなライブラリを必ず使うので、ぜひ習得しましょう。
そんなわけで今回は機械学習ライブラリの中でも特に人気の高いTensorFlowの使い方をお伝えします。
TensorFlowとは
TensorFlowはオープンソースの械学習のライブラリ。元々はディープラーニングの研究のためにGoogle Brainが開発していました。しかし、現在ではオープンソース化されたため、誰でも使えます。
TensorFlowはディープラーニングだけではなく、機械学習にも使用することができる幅広い能力を持っています。機械学習を一から実装するのは非常に大変で気が遠くなる作業ですがこのようなフレームワークを活用すると機械学習を用いた問題解決に集中できます。TensorFlowは抽象度の高い操作をサポートしているため、TensorFlowを使ったことがなかったり、機械学習の経験がなかったりしても、簡単に始めることができます。さらに、わからないことがあってもチュートリアルも充実しているので安心ですよね。
TensorFlowを使えば、手書き文字の認識や音声認識、顔認識など様々なことができます。そのため、TensorFlowはGoogleやDeepMindの各種サービスにも広く利用されています。
TensorFlowの特徴
TensorFlowの特徴は、機械学習の経験がなくても簡単にモデルを構築できること。TensorFlowはPythonから使用できるため、抽象度の高い操作が内部の機械学習の挙動を気にせずに使用できます。一方、内部の処理はC++で記述されているため実行自体は高速に行え、速度の心配をする必要がありません。
最後に、コミュニティが活発なのもTensorFlowの特徴。Googleが開発していたことから、TensorFlowは知名度が非常に高く、沢山の使用者がいます。困ったことがあっても、Googleなどで検索すれば解決策が高い確率で見つかるでしょう。また、TensorFlowの使い方を学ぶ上でもネット上に豊富な資料があるため、スムーズに学習を進めることができます。
TensorFlowはどんなときに利用するのか
TensorFlowは機械学習のほぼすべての内容に対して適用できます。以下ではTensorFlowをどんなときに利用できるのか、3つ取り上げましょう。
呼吸器系の疾患を見つける
医師が呼吸系の疾患を見つける手助けにTensorFlowが使われています。これまで医療には補聴器が使われてきましたが、人間の耳を通じて音を拾うため特定の周波数の音を認識することが出来ず、疾患の見落としや誤診がありました。
そこで、Tambua HealthはTensorFlowを用いた機械学習で肺の音などを解析し、即座に可能性の高い疾患を医療者に提示するアプリを開発しました。このアプリは、医療用リソースの少ない地域で特に実用されています。
古文書を翻訳する
古文書などは使われている文字が異なるため解読するには労力と時間が必要でした。そこでCodice Ratioは文書の解読のために、TensorFlowを用いて文章を自動で読み取り解釈するソフトウェアを開発しました。このソフトを活用すると、作業時間を大幅に削減できたため、10年前では解読が不可能うな文章が解読されつつあります。
天気を予測する
天気を予測するためにもディープラーニングが使用されています。気象衛星からの画像を利用して学習して、従来より高い時間・空間分解能での予測ができるようになりました。また従来、詳細に降水量を予測するにはスーパーコンピューターが必要でしたが、ディープラーニングの場合はいったん学習が済めば、家庭のコンピュータでも予測ができるようになりました。天気の予測以外にも、洪水や森林火災といった災害の予測にも使用されています。
以上3つの事例を取り上げました。この他にも音声認識や検索エンジンの最適化、自動運転などさまざまな箇所でTensorFlowは利用できます。
TensorFlowを導入してみよう
TensorFlowはPythonから簡単にインストールできます。まずTensorFlowをインストールするために必要なパッケージ管理システムpipを
でインストールしてください。Pipのインストールが完了したら、以下のコマンドでTensorFlowをインストールしましょう。
パッケージが見つからずエラーが出る場合は
によってpipを最新版にアップグレードします。そして、TensorFlowがインストールが完了したかどうかは
によって表示されるインストール済みのパッケージのリストにTensorFlowが含まれているかどうかで判断できます。
TensorFlow導入で注意すること
TensorFlowは独自のモデルと用語が用いられているため、正確に理解するには少し時間がかかることに注意しましょう。特にテンソルグラフという他の機械学習ライブラリにはない概念に苦戦するかもしれません。
また、TensorFlowはアップデートが頻繁(1,2か月に一度)に行われることにも注意しましょう。これは良い点でもあるのですが、その一方でまれに公式ドキュメントが追いついていないことがあります。その際は、Stack Overflowなどで質問すれば、高確率で答えをもらう事ができます。TensorFlowはユーザー数が非常に多いためコミュニティが活発で、情報を得やすいことを利用すれば良いでしょう。また、アップデートが頻繁に行われると、バージョン間でのコードの互換性を保つことが難しくなる場合があることにも注意が必要。
TensorFlowはニューラルネットワークを記述する自由度が高い一方、自分で書かないといけないことが多くなります。KerasというTesorFlowのラッパーライブラリを用いればもう少し簡単に書くことが出来るので、初心者のうちはこちらも使用を検討しましょう。
さて、今回はTensorFlowの基本についてお伝えしました。以下に今回の記事の内容をまとめます。
- TensorFlowとはGoogleの開発したオープンソースの機械学習のライブラリ
- TensorFlowはグラフやデータの描画が簡単
- TensorFlowはpipを使えば簡単にインストールできる
- TensorFlowは更新が頻繁に行われるので、情報が最新版に対応しているか注意
- TensorFlowは独自のモデルと用語を持ちているため慣れるのに少し時間が必要