Deep Learning(以降DLと記載)の代表的な使われ方
Microsoft Cognitive Services
画像分析、音声認識、レコメンデーション等のAPIツールを提供
デモとしてCaptionBotがあり。
CaptionBot - For pictures worth the thousand words
画像をアップロードすると、それが何であるか認識した結果を教えてくれる。
例)はりねずみの写真をアップロードした場合
Tensor Flow
Tensor Flowを理解するには、playgroundが有用
playground.tensorflow.org
ニューラルネットワークの仕組みを理解するための教育コンテンツ
おすすめのDLフレームワークは?
使いやすいのが一番では?
関連キーワード
言語処理=>encodecモデル→RNN→Seq2Seq
Sequence-to-Sequence(Seq2Seq)学習は、任意長の入力列から任意長の出力列を出力するような学習のこと
chainernlpman.hatenablog.com
Deep Learningの実装はコーディングするべきか?
そうでもない。GithubにDL実装プログラムがあり。
言語処理の場合、OpenNMTがオススメ。コードを書かずモデル作成が可能。
DL実装ではバグ取りが大変。そもそも結果が何故そうなるかわからないのに、バグかどうかの判定も困難。
Githubソースを使う時の注意点はバグが有る点。信頼性の高いものを使うべき。
最近Tensor FlowがOpenNMTみたいなサービスを公開したらしい。。。
OpenNMTについて
必要なものはデータだけ。
質問&回答を記述した2つのファイルが必要。(2ファイル間で質問と回答が1行毎に対応している必要あり。)
質問・回答セットは万単位は必要
Deep Learning取り組みの現状
経験則が大きい。何故それが正しいかは、説明できないケースが多い。
ビジネス活用する時は、簡易PoCをして結果が出たものを使うべき。結果が出ない場合は、ニューラルネットをいくら調整しても無理な場合が多い。
汎用人工知能→専門家の間では使われない言葉。SF映画レベルの色々できる人工知能はまだまだ実現できないとの感想。現在の人工知能はタスク特化。それらを組み合わせた結果、汎用的に見えるものもあるが、あくまで複合技術であり、カバーできる範囲は少ない。
Deep Learningに取り組む時の数学知識の取得について
Playgroundが理解できる程度でOK。(これだけでも難しいそうなのだが。。。。。)
統計学の習得は不要。
数学知識の習得は必要に応じてやるのが効率良し。
OpenNMT検証メモ
OpenNMT - Open-Source Neural Machine Translation
環境構築手順
Installation - OpenNMT
上記のDocker利用方式でやってみる。
Ubuntuにopenssh-serverインストール&起動(Ubuntuは普段使わない。最小だとインストールされなかった)
$ sudo atp-get install openssh-server
$ systemctl start sshd
$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
$ sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
$ sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
$ sudo apt-get update
$ vim /etc/apt/sources.list
以下行を最後に追加
deb http://kr.archive.ubuntu.com/ubuntu trusty main
$ sudo apt-get install libltdl7 docker-engine
$ sudo apt-get install nvidia-modprobe
$ sudo dpkg -i /tmp/nvidia-docker*.deb
※URLの手順だとlibltdl7が依存関係でインストールされない問題があった為、上記手順で実施。nvidia-dcockerも最新がリリースされていた為、wgetのパス変更。
$ sudo nvidia-docker run -it harvardnlp/opennmt:8.0