AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる -

HOME  >  PyTorchとは?特徴やメリット、インストール方法まで紹介

公開日:2020.09.25 [最終更新日]2020.10.05

PyTorchとは?特徴やメリット、インストール方法まで紹介

AI(人工知能)の知識

データ解析のサポートや数値計算処理など、機械学習の分野においてさまざまなライブラリが存在し活用されています。今回はその中でも2016年リリースという、比較的新しいライブラリであるPyTorchに注目していきましょう。PyTorchについての概念・基礎知識をはじめとしてその特徴やインストール方法、さらには活用事例などに関しても解説します。

PyTorchの概要について


PyTorchとは、高水準汎用プログラミング言語の1つであるPythonに向けた機械学習ライブラリです。開発元はFacebookの人工知能研究グループAI Research labによるものであり、2016年10月に公開されました。オープンソースという形で公開されているため、日々更新・修正が加えられ続けており2年後の2018年10月には開発者向けのプレビュー版であるバージョン1.0がリリースされています。
原型となったのはtorchと呼ばれる機械学習ライブラリであり、深層学習の対象となるライブラリがPythonであるため、2つの名前を組み合わせて「PyTorch」と名付けられたという訳です。なお2018年時点では先述の通りプレビュー版であり、安定稼動バージョンとされているのはPyTorch0.4です。

PyTorchの注目ポイントは?

他のライブラリと比べてPyTorchは新しく歴史は浅めであるのにも関わらず、リリース当初の2016年より着実にシェア率を伸ばしています。アメリカ国内においても、日本国内においてもそれぞれ機械学習ライブラリの分野で初期段階から注目を浴び、わずか2年ほどで他のメジャーなライブラリと肩を並べるところにまで急成長しています。もちろん人気度がその良し悪しを決定づけるものではありませんが、歴史の長いライブラリに迫るシェア率を短期間で得られたという点においては注目すべきポイントでしょう。

PyTorchの特徴・長所

PyTorchはNumpyと似ている!?

機械学習ライブラリ・PyTorchの大きな特徴かつ人気の理由として挙げられるのが、Numpyの基本的な操作方法と酷似しているという点です。大本であるPythonにおける機械学習でのプロセスで必須と言えるのが、Numpyというライブラリです。そのためNumpyの使い方・操作方法を知っているエンジニアは多い傾向にあり、そんなNumpyと似ているPyTorchも同じような操作感で使用できます。新しいライブラリであるにも関わらず2年ほどで驚くほどシェアを伸ばしたのは、既存のライブラリと共通事項が多いがゆえに新規導入の抵抗感が少ないという点が大きいでしょう。

PyTorchの設計は動的な計算グラフ!

PyTorchの設計的な部分での特徴として、動的な計算グラフであることが挙げられます。ニューラルネットワークを構築するライブラリの定番製品の多くは、静的な計算グラフを用いています。計算グラフはニューラルネットワークにおける設計書にあたる部分であり、この違いがライブラリを活用する上で非常に重要です。柔軟であるがゆえに複雑なネットワークを実装しやすいという特徴を持つ、動的な計算グラフを導入することでより効率が向上する場面はいくつもあるでしょう。一方で動的な計算グラフよりも静的なものの方が適するケースもあるため、状況に応じて活用することが大切です。

他のライブラリと比較して、簡潔な記述が可能である点も大きな特徴であり長所の1つです。機械学習においての手法や論文が学会にて発表されると、その後にそれを応用したPyTorchによる実装例が公開されるケースが多いことからも、分かりやすく汎用性が高いことが窺い知れます。人工知能の分野においての最先端の研究者が使用している事例も増えており、PyTorchの海外コミュニティも活発であり参考となるソースが多い点もシェアが高い理由の1つと言えるでしょう。

PyTorchのインストール方法について

①事前準備 Pythonのインストール

PyTorchをインストールするには、まず事前にPythonを端末にインストールしておく必要があります。この時Pythonは最新版であることが必須条件となるため、必ずバージョンの確認をしておきましょう。アナコンダ経由でインストールした場合はcondaコマンドにて、最新バージョンを指定すればアップデートが可能です。初めて導入するという方については、Pythonの公式ホームページへとアクセスすれば最新バージョンを簡単にダウンロードすることができます。

②PyTorchのインストール

Pythonのインストールが完了したら、いよいよPyTorchのインストールへと移行します。公式サイトへとアクセスして、「QUICK START LOCALLY」と書かれた箇所までスクロールして自身のパソコンの環境と照らし合わせてください。OSや現在の環境にマッチしたビルドバージョン、適したプログラム言語を選択します。全て選択を終えたら「Run This Command」と書かれた欄の横に、先程設定したバージョンやOSに従ったインストール実行のためのコマンドが表示されます。この文字列をコピーして、コマンドプロンプトへと貼り付けて実行しましょう。Macの場合は、ターミナルを起動して同様にペーストすれば実行できます。実行後にPyTorchのバージョン情報が出現すれば、インストールは成功です。

PyTorchはWindowsとMacの他に、Linux環境でも動作が可能となっています。海外コミュニティではWindows環境においては、Anaconda経由でインストールすることが推奨されています。なおインストールの際に表示されていたSTART LOCALLYとは、日本語に翻訳するとローカル環境で始めるという意味です。もしオンライン環境でも試したい場合は、Googleの研究プロジェクトの1つであるGoogle Colabで作動するのも良いでしょう。機械学習の普及を目的としたプロジェクトのライブラリであるため、必要なライブラリの相当数が既に事前に構築されています。汎用的なライブラリはほとんどインストールされているため、容易に始められるのが大きなメリットです。

PyTorchの構成について

本格的に活用する前に、PyTorchのパッケージ構成を知っておきましょう。基本的なデータ構造を示すTensor(テンソル)や色々な数学関数が含まれているtorchは、主力のネームスペースです。Numpyと似た構造を持っているパッケージであり、PyTorchが扱いやすいとされる要因となっています。自動微分のための関数が含まれているautograd、ニュートラルネットワークを構築する上で必要なレイヤーが定義されているtorch.nnも重要なパッケージ構成の1つです。他にもパラメータ最適化アルゴリズムが実装されているoptimや、SGDの繰り返し計算のための関数が含まれているutils.data、モデルを書き出すためのonnxなどが含まれています。

PyTorchの活用事例

PyTorchを活用する上で欠かせないのが、基本となるデータ構造であるTensorについてです。メインとなるネームスペースであるtorchに含まれており、多次元配列を扱います。先述のNumpyにおけるndarrayとインターフェイス構造がほとんど同じであり、GPUの演算のサポートも行う部署です。Tensorの生成は、入れ子構造であるlistおよびndarrayをtorch.tensor関数に渡します。他にもデバイスの指定によってGPUに作成したり、dtypeを選択することで倍の精度のTensorが生成可能です。ただGPU上に生成した分については、そのままでは変換・出力できないため一度CPUに移してください。

Tensorでは定義したグラフ・計算式に対して、事前に保持した情報をもとに計算を行う自動微分が可能です。最初にTensorの定義を設定して計算グラフを作成しておき、勾配の計算を行うことにより動作します。自動微分によって、求めた値のグラフを描画することもできます。

PyTorchは簡潔な記述と動的な計算グラフが魅力

リリースが2016年と比較的新しいライブラリでありながら、多数のシェア数を誇るのは記述が簡潔であることと動的な計算グラフという特徴が大きく関係しています。加えてNumpyと酷似していて導入しやすいという点も、大きな導入理由となっています。Tensorや自動微分の他にもネットワークの構築など、さまざまな機能を有しているためプロジェクトの目的やデータ特性に応じて使い分けると良いでしょう。


参考になったら「いいね!」と「シェア」をお願いします!!

このエントリーをはてなブックマークに追加
AI(人工知能)セミナー開催中