Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事にトラックバックする(FC2ブログユーザー)
http://exphenomenologist.blog100.fc2.com/tb.php/923-e5032933

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

坂本俊之『人工知能システムを外注する前に読む本』


ディープラーニングとはどういうもので、ディープラーニングを使ったシステムを開発しようとしたらどのような点に気をつける必要があるかを書いている。著者はスマホアプリ等を作ってきた開発者のようだ。こういった課題はコンサルティング会社を中心に多く扱われているが、本は少ないので面白い試みか。

ディープラーニングについての解説が半分以上を占めている。ビジネスサイドの初心者がサーベイしておくべきレベルの話が続く。ディープラーニングを使ったシステムの開発が普通のソフトウェアの開発と異なる点は、結局3つ。大量の学習用データが必要になるので、データ準備・作成に費用・工数がかかること。また、精度があらかじめ保証できるものではないので、ある程度、失敗を許容して進むべきこと。さらに、開発にGPUを始めとした特有のインフラが必要なこと(p.124-136)。それ以外の点においては、ディープラーニングを使ったシステムでも、それを業務で運用しようとしたら周りのシステムとつながなければならない。結局はシステムインテグレーションの必要がある(p.117-123, 263-267)。よってSIerの仕事はなくならない。

それぞれの点で対処方法は異なる。学習用データの作成は人手を投入して短縮できる。しかしモデルの学習段階は、計算資源がネックになる。結局は計算が終わるのを待つ時間が増えるので、この工程で人を追加しても無駄だ(p.141-144)。むしろ計算パワーを追加する必要がある。一方、学習用データは人を投入すればいいので、この工程だけ別途の契約にすることもできる(p.229f)。ちなみに、学習用データのことを著者は一貫して教師データと書いている。教師なし学習を行う場合でも、学習用データの収集は同じく必要で、教師データと限定する意味はない。

学習はうまく精度が出るかは事前に分からないので、アジャイル開発のアプローチが適するとしている(p.230f)。ただし、著者の書くアジャイルは学習用データ作成の計画段階から、モデル設計、学習、性能評価の一連のサイクルをアジャイルに回すもの。実はモデル設計と学習段階にこそアジャイルに回すべきループがある。ハイパーパラメータの膨大なチューニングなど。ここは外注する想定で一つにまとめられているのだろう。

学習済モデルの権利問題について扱われているのは、最近の話題をフォローしている。ただ、学習済モデルに著作権が認められないというだけで、特段、新しい方向性や提言はない。なお学習用データの作成のところは、収集したデータに著作性が認められるか(あたかも電話帳やデータベースの著作性のように)が述べられている(p.247f)。ここでは、学習用データの作成のためには既存の著作物の利用が著作者の許諾なく可能という、著作権法47条の7(情報解析のための複製)についてぜひとも述べておくべきだろう。

この本はおそらく流行りに乗ってディープラーニングの開発を外注する想定で書かれている。しかしほとんどの部分はデータ分析のプロジェクトに共通するものだ。本書もどうやら本来はそうした方向を見ているようだ。コラム的にある「やってみよう」コーナーでは、エクセルのソルバーを使った線形回帰が内容を何も解説しないままいきなり登場したり(p.99-105)、なぜかWekaが出てきたり(p.172-185)。ディープラーニングを触ってみようと出てくるのが、誰も知らないようなJavaベースのsimbrain(p.232-240)。TensorFlow Playgroundでも紹介すればよいかと。

最後に、著者の理解の怪しそうなところ。ビジネス側の人間ならともかく、開発者がこのような理解なのはどうか。

学習用データが1つしか必要のない例として、スタイル変換のChainer-Goghが出ている(p.110f)。Chainer-Goghはすでに十分に学習されたCNNであるVGG-16を使っている。学習用データが1つしか必要のない例とはとても言えない。それなら、例えば学習済のモデルを使って単純に手持ちのデータで画像分類に使うのも、学習用データが1つしか必要のない例となる。Chainer-Goghにも「学習」があるが、普通のCNNのようにネットワークの重みではなく、入力画像そのものをSGDで変化させるものだ。同列に学習と呼ぶべきものではないだろう。

ニューラルネットワークの精度を評価するものとして、決定係数が挙げられている(p.212)。これは「出力された結果がどのくらい正解しているかを表す数値」だそうだ。それはPrecisionというのではないか。決定係数はディープラーニングではなく回帰分析で出てくるもので、定義がいくつかあるがメジャーなのは「残差の平方和を標本値の平均からの差の平方和で割ったものを、1から引いた値」といったところ。ちなみに「決定係数の逆数(つまり、不正解の割合)」(p.212)と書いてあるが、Precisionが60%(6/10)だったらその逆数は10/6=166.7%だ。これは不正解の割合40%ではない。

「強化学習」という単語については、全面的に誤解しているようだ(p.217-220, 250f, 257)。何を言おうとしているのか判明ではないが、一度学習したモデルに別のデータを与えて学習することを強化学習と考えてるらしい。モデルを「強化する」とでも言うのだろうか。それは最大限に好意的に解釈しても、転移学習だ。教師データを自動的に収集してディープラーニングのモデルの精度を向上させる手法が強化学習だという誤解が、どうやら一般に流布していると知り合いから聞いた。たぶんそんな誤解だろう。教師あり学習だけを扱っているから本書の趣旨には影響しないものの、残念すぎる。
スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://exphenomenologist.blog100.fc2.com/tb.php/923-e5032933

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。