AI(人工知能)& IoT

AI(人口知能)とIoT(モノのインターネット)について、少しずつ紹介していきます。

2019年11月

「Optuna」とは、TPE(tree-structured parzen estimator)というベイズ最適化アルゴリズムの一種を用いたハイパーパラメータの最適化を自動化するためのソフトウェアフレームワーク

 「Optuna」は「Chainer」を含む様々な機械学習ソフトウェアと一緒に使うことができ、現在は「Python」で利用できる。「Chainer」は以前紹介した深層学習フレームワークであり、「Chainer」を用いたニューラルネットの学習に関するハイパーパラメータを最適化する場合、「Chainer」を用いるユーザーコードの一部に「Optuna」からハイパーパラメータを受け取るコードを書き、それを「Optuna」に渡すことによって、「Optuna」が自動的に何度もそのユーザーコードを呼び出し、異なるハイパーパラメータによりニューラルネットの学習が何度も行われ、優れたハイパーパラメータが自動的に発見される。

 「Optuna」と「Chainer」は密結合しているわけではなく、「Chainer」以外の機械学習ソフトウェアとも一緒に使うことができる。


TPEに関して、詳細を知りたい人は下記webページを参照。

『TPE(tree-structured parzen estimator)について』


参考(引用)
Preferred Research:ハイパーパラメータ自動最適化ツール「Optuna」公開

 ハイパーパラメータ(Hyperparameter)とは、機械学習や深層学習行う際に人間が予め設定しておかなければいけないパラメータのこと。ニューラルネットワークの層の数やユニットの数、正則化の係数など。


◆入力層・出力層のユニット数
 入力層のユニット数は、データの次元に一致させる必要があり、出力層のユニット数も、分類したクラスの数だけ準備するので考える必要はない。

◆中間層のユニット数
 理論上は、最低1つの中間層を準備するだけで十分。ただし、ユニット数は多ければ多いほど、ニューラルネットの表現できる関数の幅が広がるので、ユニットの数は学習に掛かる時間を考慮しながら、取り敢えずは多く設定しておけばいい。とはいえ、少ないユニットで同じ精度を出せるのであれば、学習の手間を考えても明らかに少ないほうが良いのは当然。

◆荷重減衰(Weight decay)
 上述のように、ユニットの数は通常多めに設定しておくが、するとニューラルネットは高い表現力のあまりデータにだけフィットする過学習(Overfitting)に陥ってしまう。そこで用いるのが荷重減衰で、荷重減衰は、ニューラルネットの重みパラメータwを最適化する。回帰でも分類でも基本的には同じ。荷重減衰を用いると、表現力の高いモデルを仮定していたとしても、その学習は抑制され、丁度いい具合に落ち着かせることができるが、逆に荷重減衰を強くし過ぎると、学習はほとんど進まなくなる。荷重減衰というのは、入力データの値に対して相対的に決められるべきもの、無論、分類問題が変わると、荷重減衰のハイパーパラメータの具合は完全に変化する。

◆正則化(regularization)
 正則化とは、数学・統計学において、特に機械学習と逆問題でよく使われるが、機械学習で過学習を防いだり、逆問題での不良設定問題を解くために、追加の項を導入する手法である。モデルの複雑さに罰則を科すために導入され、なめらかでないことに罰則をかけたり、パラメータのノルムの大きさに罰則をかけたりする。(出典:ウィキペディア)

◆ドロップアウト(Dropout)
 ドロップアウトとは、ニューラルネットワークの学習時に、一定割合のノードを不活性化させながら学習を行うことで過学習を防ぎ(緩和し)、精度をあげるための手法。
 
◆学習率(learning rate:lr)
 学習率は勾配法によってどれだけ大きくパラメータの更新を行うかを決めるハイパーパラメータ。基本的に、学習率はいつでも一定にするのではなく、学習が進む毎に変化させるべき。


参考(引用)
HELLO CYBERNETICS:深層学習:ハイパーパラメータの設定に迷っている人へ
https://www.hellocybernetics.tech/entry/2016/11/13/035443

Qiita:【ニューラルネットワーク】Dropout(ドロップアウト)についてまとめる

 テレイグジスタンス(telexistence)とは、人間が、自分自身が現存する場所とは異なった場所に実質的に存在し、その場所で自在に行動するという人間の存在拡張の概念であり、また、それを可能とするための技術体系。

 自分自身の分身ロボットであるアバターを用いて遠隔の場所に存在したり、コンピュータが創成した身体であるバーチャルヒューマンをアバターとして、コンピュータの創成した情報空間に存在したり、また情報空間を介して、実空間に存在したりすることが可能となる。

 「tele=遠隔+existence=存在」の造語。1980年に、東京大学名誉教授の舘 暲氏が提唱した。

 テレプレゼンス(telepresence)は、「tele=遠隔+presence=存在」の造語。1980年に、アメリカの人工知能の大御所マービン・ミンスキー氏が提案した概念で、テレイグジスタンスと同じと言える。

 ただし、この概念から生まれたアバターロボットを見ると、テレプレゼンスロボットテレイグジスタンスロボットでは、現時点では、少し趣が異なるように思う。

 テレプレゼンスロボットは、米国カリフォルニア州に本社を置くRevolve Robotics社が開発した日本語の「首」を由来とする、左右に300°上下に90°自由自在に稼働するテレプレゼンスロボット「kubi」のように、テレビ会議の拡張で、離れた場所からその場に存在しているかのようにするもの。

kubi


 下に示すような自立歩行するものもあるが、役割は同じ。

double_2


 Pepper君をスマートフォンから遠隔操作できるシステム(アスラテックが開発した「VRcon for Pepper」)もある。


 一方、テレイグジスタンスロボットは、離れた場所からその場に存在しているかのように見せるとともに、その場所にいるかの如くに体感できるもの。

 2018年9月14日~27日までの2週間、JTBとKDDIが、小笠原村の観光局やTelexistence社、竹芝エリアマネジメントと協力して開催した「小笠原村の観光資源の遠隔体験イベント」の動画が公開されている。


 操縦者はその場まで行かずとも、ロボットが見たり聞いたり触れたりしたものをそのまんま体験できる。まさしく「遠隔旅行」。

 テレイグジスタンスを用いれば、遠隔のロボットを自分の分身として操り、その眼や耳、体などを用いてロボットの働く環境を臨場感を有して体感し、その環境で自在に行動するばかりではなく、さらにそこにいる実感を持つのに加え、同時に能力の拡張もできる。例えば,人間は暗闇や煙の中では物を見ることができないが、ロボットの赤外線センサや超音波センサを用いれば暗闇や煙の中でも対象物を捉えることが可能となる。これを、拡張型テレイグジスタンス(augmented telexistence)と呼んでいる。
 テレイグジスタンスは、人間を従来の時空の制約から開放し、時間と空間ないしはそれらの両者を隔てた環境に実効的に存在することを可能とする。いわば、アバターを利用して人間をユビキタスにすることを可能とする技術。

【ユビキタス(ubiquitous)】
 「Being or seeming to be everywhere at the same time:同時にいたるところに存在する、あるいはそのようにみえる:遍在する」という意味。


参考引用
Tachi Laboratory, The University of Tokyo:テレイグジスタンス

日本バイナリー株式会社:Double 2 遠隔プレゼンスシステム

株式会社プリンストン:kubi-テレプレゼンスロボット|Revolve Robotics

ITmedia:Pepperをスマホで操作、テレプレゼンス体験も

TIME&SPACE:テレイグジスタンスで遠隔旅行! ロボット×VRで「感触」まで伝わる小笠原観光

 「Anaconda」とは、データサイエンス、機械学習などの開発で便利なツールがたくさんまとめられた、Pythonの「ディストリビューション」


【ディストリビューション(Distribution)】
パソコン、ITの世界では、UNIX系のOS、特にLinuxの配布形態を指す。企業やユーザーコミュニティーなどが中心となって必要なプログラムを集め、場合によっては自らプログラムを作成するなどして実用的な環境を構築できるようまとめたもの。インターネット経由でのアプリケーションソフトの追加機能や、自動更新機能が取り入れられていることもある。(知恵蔵より)


 「Anaconda」では、「Python」のパッケージだけではなく、他言語(R言語など)のライブラリやいろいろなユーティリティも提供しており、NvidiaのGPUを利用する場合に必要な、CUDAなどの環境も簡単にインストールできるようになっている。

 「Python」の開発環境や便利なエディター(テキストファイルを編集するソフト)もまとめられているので、機械学習などで必要な物のほとんどが「Anaconda」からインストールできる。

 AIに関するモジュールを活用する上では、環境を切り替える必要があり、「Anaconda」のインストールは必須とも言える。


参考(引用):
【Samurai Blog:Windows編】0から始める!AnacondaでPython環境を一括インストール
https://www.sejuku.net/blog/59340

↑このページのトップヘ