はじめに
いつも心は虹色に! nikkieです。
皆さん、SciPy Japanはご存知でしょうか?
機会をいただいたので、当日ボランティアとして参加してきました。
イベントの概要
SciPy Japan Conferenceは、日本で成長しているScientific Pythonコミュニティを結集させ、最新のプロジェクトを紹介し、参加者が熟練したユーザーや開発者から学ぶことを目的としています。
学問、企業、Pythonコミュニティからの参加者が一堂に会しました。
内訳は、5カ国から90名だそうです。
会場は「マンダリンオリエンタル東京」(超高級ホテル!)です。
Tutorial(Beginner): TensorFlow 2.0 Tutorial
https://storage.googleapis.com/applied-dl/SciPy_Tokyo.pdf
#SciPyJapan
— nikkie (@ftnext) 2019年4月23日
AMのJoshさんのTensorFlow2.0チュートリアルでは以下のノートブックを実行していき、TFでは簡単に色々できることを掴みました。
応用編としてDeep Dreamやseq2seq、DCGANにも触れられました。
TF.jsでのアプリ作成に俄然興味
Thank you great tutorial!https://t.co/ywUNUqsjwR
ディープラーニングは画像や長大なテンソルを入力にするという印象を抱いていたのですが、
- 線形回帰も扱える
- 構造化データ(CSVで扱われるような表形式のデータ)も扱える
ことがわかりました。
入門の例だけではなく、
- DCGAN
- seq2seq
といった応用例も取り上げていただき、TensorFlow2.0のクイックツアーに参加した感触です。
TensorFlowのインターフェース
tensorflow.keras
前提です。
- 層(Layer)を並べてモデルを定義
- モデルをインスタンス化
- compile
- fit
- predict
機械学習のポイント:カジノの例
- トレーニングデータセットはモデルを作成する上で自由に使えるデータ
- テストデータセットはカジノにある(モデル作成時に自由に使えず、自信のあるモデルをカジノに持って行ってテストデータセットへの性能を試す)
興味深かったのは、TensorFlow.js!
機械学習アプリケーションのデプロイに関心があるのですが、「JSで作ってしまうのはありだな」と思いました。
今度手を動かしてみます。
Advanced TutorialのAdvanced NumPyは公開されるビデオに期待しています。
Keynote: f(x) = a + bi
- f: future
- a: Atom
- bi: Bit
- →リアルとビットが未来を決める(世の中もエンジニアのキャリアも)
Bit
現在のAIの懸念点(AlphaGoを想定)
- AIは高価
- 電力コストを食い過ぎる
→解決策がCognitive Computing
Atom
リアルな世界の技術が必要
- 5G:高周波帯で発生する電波干渉の解決
- 再生可能エネルギー:電気ではなく、水を電気分解して水素で持ち運ぶ
- 自動運転:今のリチウムイオンバッテリーの3倍の性能が必要
成功例:Carbon社
3Dプリンティングの問題をAtomとBitを組合せて解決
高い視座での話を久しぶりに聞いたので、ワクワクしました。
個人的には、これから来るだろう分野で素振りしておいて、チャンスに備えたいですね。
Apache Arrow
Pythonistaへのメリット
- pickleの代替として使える(PySpark)
- pandasとVaes(データフレームのライブラリ)は少しArrowを使っている
メモ:pickleはPythonのオブジェクトをバイトに変換したもの1
cross-languageがArrowの魅力とのことです。
多様な言語で使えるようにC++ベースで実装しようという考えが開発者間で共有されているのが、開発に参加したきっかけとおっしゃっていました。
Chainer: A Deep Learning Framework for Fast Research and Applications
- ChainerはDefine-By-Runのパイオニア
- メモ:データを流しながら、ニューラルネットワークの構造を構築する方式2
- PyTorchやTF2.0にも取り込まれた
- ChanierXによるSpeed, Quick deployment
- Domain Specific add-on packages
- ChainerCV(画像)
- ChainerRL(強化学習)
GoogleがTensorFlowでいろいろなプロジェクトを進めているのと同様に、PFNはChainerでいろいろなプロジェクトを進めている印象です。
直近では充実のチュートリアルが公開されています。
Scaling Your Python Interactive Applications with Jupyter
Jupyterでの懸念点を解決したそうです。
- Optimized resource allocation
- Security(HTTPS、multiuser)
クラウドのリソースを使いやすくする仕組みで、複数人で使わなくてもメリットはあるとのことです。
ドキュメントにチュートリアルがありました:
CuPy: A NumPy-Compatible Library for High Performance Computing with GPU
「ColabもしくはNVIDIA GPU環境で試してみて」:pip install cupy-cuda-101
(ColabではGPUを有効にする必要あり(Select runtime))
- CuPyはNumPy, SciPy互換
- コード中のnpをcpに置き換える(
import cupy as cp
している前提)
- コード中のnpをcpに置き換える(
- NLPで聞いたことのあったspaCyもcupyを使っていた
GitHubにはexamplesも充実しているそうです:
cupy/examples at master · cupy/cupy · GitHub
RAPIDS: GPU Accelerated Data Science
2018年10月のPyDataでも取り上げられたPAPIDS
RAPIDSの世界観ではfail fastで進められるのがいいですね。
構成要素
太字のものをデモ込みで紹介していただきました。
- GPU上にArrow互換な形式でデータを持つ
- pandasライクなデータフレームのライブラリcuDF
- scikit-learnライクな機械学習API cuML
- グラフ解析→cuGraph
- ディープラーニングはこれまで通り
- 可視化→cuXFilter
cuDF, cuMLともに本体をC++実装して性能を確保し、インターフェースをPython実装して、既存パッケージライクなAPIを実現しているそうです。
pip, conda対応しているので、すぐに使えるのもいいですね。
感想
会場の高級感に終始圧倒されていました。
食事も豪華でおいしく、なんとミシュランに載るほどだそうです。
Wi-Fi接続などはホテルのスタッフさんがサーブの中で対応され、実はボランティアの出る幕はあまりありませんでした(十分にトークを聞くことができました)。
あまりに多くをいただきすぎていると感じているので、このレポートブログや、ツイートで盛り上げに貢献できればと思います。
2日目も(途中までですが)よろしくお願いします。