「PyCon APAC 2018 in Singapore」参加レポート

Day2:今すぐ始められる機械学習、“Pythonic”コードを書くには

こんにちは、taisaです。第2回となる今回は、PyCon APAC 2018 in Singaporeのカンファレンスデイ2日目の様子をお届けします。⁠キーノート」「セッション」のレポートの他にも「はじめて海外カンファレンスに参加してみて」「夜の懇親会について」⁠シンガポールについて」のコラムもありますので合わせてご覧ください。

キーノート:"Introduction to object detection" ―Alan Descoins

(家治亮)

2日目のKeynoteにはTryolabs社CTOのAlan Descoins氏が登壇しました。Tryolabs社では企業を対象とした機械学習プロダクトの構築支援を行っており、 Alan Descoins氏は研究開発と全プロジェクトに関わるコンサルティング業務を担っています。

このセッションでは、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を利用した物体検出(object detection)アルゴリズムの解説と、Luminothというツールの紹介が行われました。

キーノート開始直前の様子
キーノート開始直前の様子

まず導入として、画像分類(classification)を題材に、どのようにしてCNNが画像からパターンを抽出するかが説明されました。次に、物体検出アルゴリズムの具体例として Faster R-CNN を取り上げ、 CNNの中間層から得られる特徴マップ (activation mapまたはfeature map) が物体候補領域の推定に利用されること、その推定結果から物体のクラス分類と矩形領域の回帰計算を行うことが説明されました。

最後にLuminothの紹介とそのデモが行われました。Luminothは、TensorFlowを基にしたディープラーニングのツール群およびライブラリです。作成したモデルの学習、評価を一貫して行うためのCLIツールが用意されている他、ライブラリとして既存のアプリに組み込むこともできます。現在Luminothはまだアルファ版であり、物体検出のみをサポートしている状況です。しかし「but we are aiming for much more」とのことですので、今後の発展に期待しましょう。

セッションの感想

画像を対象にしたアプリケーションで、ディープラーニングは当然のごとく使われるようになりました。有名なモデルであればGitHubで既に公開されているので、TensorFlow実装のモデルを用意し、目的に応じて再学習 (可能なら転移学習) させることによって所望のモデルが得られます。

そのくらい一般的な技術になったので、私も手を動かすことを怠らず、必死でこの分野をキャッチアップしていかなくてはと強く実感しました。

Elements of Programming Interviews in Python―Tsung-Hsien Lee

新井正貴

Googleのhiring committeeに所属していて、コーディング試験についての書籍も出版している専門家によるトークでした。

発表の中では、選考の進み方やコーディング試験の具体例を示していました。またコーディング試験の対策として、⁠普段からエディタは好きなものを使っていいけど、補完機能には頼るな。ホワトボードを使った試験の場合に困るぞ!」とのアドバイスがありました。

最後にアルゴリズム系のコーディング試験でよく使うPythonの標準ライブラリ・サードパーティライブラリが紹介されました。そして「Pythonicなコードを書くことが成功の鍵だ!」という言葉と、自身の書籍の紹介とともにトークが締めくくられました。

セッションの感想

今回のAPACでは、数多くの高校生が参加していました。シンガポールではいつものことらしく、教育水準の高さを垣間見ることができました。その中でも特にこのコーディング試験の発表は、将来の就職・インターン採用につながるからか彼らが真剣に聞いていたのがとても印象的でした。

このようなコーディング試験を扱うトークというものは日本のカンファレンスでは聞いたことがなかったので、新鮮で面白かったです。このように他国のエンジニア文化を肌で感じられるのも、海外カンファレンスに参加する醍醐味といえるでしょう。

セッション:Streaming data processing pipelines with Apache Beam [in Python, naturally!]―Markku Lepistö, Solutions Architect -APAC and Japan, Google Cloud Platform at Google

清田史和

Apache Beamsの解説とリアルタイムにPOS(point of sales)データを処理をする実演が行われた初級~中級者向けのトークでした。まず、Apache Beamの名前の由来の話がありました。 "batch"と"streaming"のワードの頭文字を組み合わせて、beamと名付けたらしいです。

次に、 PCollectionとPTransformの話がありました。

PCollectionは、バッチ処理の場合有限(bounded)状態で、ストリーミング処理の場合は無限(unbounded)状態になります。PCollectionを生成する時の入力ソースによって状態が決まります。一度生成されたオブジェクトは変更ができない(Immutable)そうです。あと、いくつかの特徴があるので確認しておくと良いと思います。

PTransformは、パイプラインのロジックのことで、単一(or 複数)の"PCollection"をインプットとして受け取り、そこから、単一(or 複数)の"PCollection"を新たに生成します。準備したそれぞれのPTransformは、完全に独立した並列処理になります。Pythonは、2系しかまだサポートしていないとのことです。

一通りApache Beamの基本的な機能の説明を行った後、持参したバーコードリーダーで、テストで準備してあったいくつかの商品のバーコードを読み込み、POSデータをApache Beamで処理しDataflowへデータを流す実演を行いました。

セッションの感想

実際の処理の流れを視覚的に確認すると、具体的なイメージが湧きやすく良かったです。データをStreamingして、処理を連続的に行い、最終的に機械学習やデータ解析のデータを動的に構築できるということだと思うのですが、クラウドを使って簡単にそれができる時代になったのだなと実感しました。バーコードリーダーを買って、自分で簡単にPOS解析システムができてしまうので、すごい世の中になったなと思いました。

2日目の夜について

(寺田学)

カンファレンスのもうひとつの醍醐味である、ソーシャルイベントという名の飲み会についてご紹介します。

シンガポールでの懇親会

カンファレンスには、公式の懇親会がある場合やスピーカーなどが集まるパーティーが開かれることもあります。しかし、今回のカンファレンスには公式の懇親会などは無く、参加者同士で行きたい人だけが集まって飲みに行ったり夕食に行ったりしていました。過去のシンガポールで開催されたPyConでも同様に懇親会やパーティーはありませんでした。文化的なことなのだと思っています。

その日の懇親会開催の経緯

日本からの参加者同士でビールを飲みに行きたいという事になりました。そこで、韓国から来ていたPSF(Python Software Foundation)でも活動しているKim Younggun氏や台湾から来ておりPyCon JPのスタッフでもあるNoah Chen氏を誘ってビールが飲めるレストランに行くことにしました。そこまではタクシーで20分程度でしたので、タクシーを呼んで約10名で移動することにしました。

タクシー待ちに向かう時に、現地で仲良くなったタイからの参加者がいたので声を掛けこれからビールを飲みに行く旨を話したところ、合流したいということになり、一緒に行くことになりました。そのタイからの参加者に続いて、他の国々から来ている人がどんどん増えていきました。

日本からの参加者で、タクシーを3台呼んでいました。これで十分に乗れると思っていたのですが、参加者が6人近く増え徐々に誰が参加したいのかすらもわからなくなってきました。1台目のタクシーには、日本からのメンバーだけを乗れるだけ乗ってもらい、2台目には私が先のタイからの参加者とその知人を乗せて移動を開始しました。他の日本からのメンバーはもう1台に乗り、他の海外からのメンバーには、集合場所を教えてそこで待ち合わせを行いました。案の定、1台のタクシーがはぐれ、先についたメンバーはビールを飲み始めていて、状況が混沌としてきました。

ここで便利だったのは、はぐれた人とやり取りできたFacebookチャットでした。Facebookチャットには現在位置をピンしてお知らせする機能がありそれを使い、お互いの現在地を確認し、10分程度待った後に全員が集合できました。

懇親会とビール

シンガポールは酒税が高く、ビールも高価です。ただ、19時や20時まではハッピーアワーという名のもと、比較的安くビールが飲めます。これを利用し、ピッチャーで頼んだりしビールを楽しみました。しかし、ここは国際色が強い分アルコールを飲まない人も数名います。この様な方にはソフトドリンクをお勧めしたり、食事の注文をお願いしたりをして楽しんでもらいました。

食事は、日本流のシェアをお勧めし、ピザやチップスなど多めに頼み食べました。

参加者

日本からは7人が参加しました。他に、韓国、台湾、タイ、インド、インドネシア、ナイジェリア、オーストラリアから集まり総勢17名でした。

多国籍な懇親会集合写真
多国籍な懇親会集合写真

まとめ

2時間程度ビールや会食を楽しんだ後、会計をすることになりました。日本流で割り勘を試みたのですが大変苦戦しました。カードで支払いたい人や、飲食の量と比例しない可能性をどのように許容してもらうかということが発生しました。そこは、多く飲んだ人は多めに、カードでの支払い希望者は一緒に来ていた知人と相談して現金を借りてもらったりしてなんとか支払いを済ませることができました。

このような、さまざまな国の人たちとPythonという技術を通じて知り合いになり、視野を広げられたことは、海外カンファレンスを楽しむ大事な要素だと思います。

終わりに

taisa

以上でPyCon APAC 2018 in Singaporeのレポートは終わりです。今年はPyCon JPスタッフと元スタッフの7名でレポートを書きました。また日本からはHDEさんがプラチナスポンサーとして参加しました。

PyCon APACへの参加を通じてPythonに関する学びを得るとともに、日本から参加したエンジニアメンバーと交流をしたり、現地スタッフや参加者、スポンサーと交流したり食事をしたり、観光したり、短い間ながら非常に充実した時間を送ることができました。このレポートを通じて、海外のカンファレンスへ行ってみようと思う人が少しでも増えてくれたらうれしいです。

おすすめ記事

記事・ニュース一覧