深層学習

提供:yonewiki

言語と開発環境へ戻る。


概要

 深層学習Deep Learningディープラーニングは、いわゆるAI人工知能Artficial Intelligenceアーティフィシャルインテリジェンスの根幹を成す仕組みです。

 プログラミングの世界では研究者はPythonと言う言語をよく使います。動作速度は遅いですが可読性が高いとか複雑な記述が少ない傾向が高いという特徴があります。速度に問題があるのでGPUを使って並列処理による高速化に頼る部分も大きいです。その世代その世代の同じ価格感覚の対になるような製品で比べるとCPUだけで動かすより4倍くらい速くなる印象だそうです。GPUにもいろいろありますがNVIDIAのCUDAという仕組みがよく使われるので過去の遺産を有効利用するのであれば、よく使われるモノと同じやり方を、選ぶのが良いでしょうCUDAを取り入れるにはまぁまぁお金がかかります。


 4倍高速な研究が必要な知識と研究没入があるのであれば20万30万するようなGPU環境を構築するのがよいと思います。たまたまゲーマーで、あるいは3Dグラフィックデザイナーとかで深層学習する人は手持ちのCUDAを、使うと良いでしょう。


 GPUの環境がなくて、まずは勉強用と言う感じの人は軌道にのるまではCPUだけで頑張った方が良いと思います。参考書なんかを書く人はCUDAを利用する人が多いので参考書の通りにCUDAを準備しなくてはいけないような勘違いをしてしまいますが、それよりもCUDAを使おうとする関数をCPUで普通に計算させるやり方に焼き直す知識を身につければ無駄な出費が抑えられます。焼き直す知識はそれほど難しいものではありません。CUDAを使おうとする部分を通常の関数に変更するだけです。関数名の先頭にcudaとかcuとかがつく特別な関数を探し、それを外すとプログラミング言語が用意した標準的な関数に置き換えられると思います。単純に外すだけが正解という事では無いです。外して別の有効で同等の関数に作り直すという事です。勉強段階で4倍時間をかけたとしても1時間2時間の学習が8時間になるだけですし、繰り返し繰り返し学習作業をすることも少なくあまり支障はないような気がします。参考書にどんなものがあるかは全体を把握できませんがそんなに時間のかかる学習をする深層学習の入門はあまり無いと信じたい。システム開発収入や作業の自動化による利益に繋がるわけでもない状態でGPUの導入はお金に余裕のありすぎる人のやり方です。実際の仕事の現場でも有用でなければ投資決定はされません。

 最終的に高速化にはC++/C言語への移植と言うステップを辿ります。そこまで成功する事例は少ないです。


言語と開発環境へ戻る。