PyCon JP 2018カンファレンスレポート

[1日目]キーノートは南米からのスピーカー,AI人材の育て方,注目セッション~LTまで

この記事を読むのに必要な時間:およそ 4 分

1日目注目セッション「Webアプリケーションの仕組み」 ― Takayuki Shimizukawa

(陶山嶺)

Takayuki Shimizukawa(清水川 貴之)氏による「Webアプリケーションの仕組み」と題されたセッションを紹介します。

最近のWebアプリケーション開発はとても幅広い知識が要求されています。 現在Webサイトに求められる要件はWeb黎明期と比べると複雑,高度化していますが,基本的な仕組みは変わっていません。 そのため,黎明期にあったようなWebアプリケーションを作りながらWebサーバーの動作を観察することで仕組みを理解します。

まずは,Webブラウザのデバッグツールやtelnetコマンド,標準ライブラリであるurllib.requestなどを使い,クライアント側から動作を観察する方法が紹介されました。続いて,Webサーバー側の動作を確認するために清水川氏が用意した簡易Webサーバープログラムのコード解説が行われました。簡単な文字列を返すところから始まり,レスポンスをHTMLにする,リクエストによってレスポンスを変える,CSSや画像も返すなどプログラムの変更ととともに挙動が変化するのを観察することで,非常にわかりやすい解説となっていました。

最後は,改めて現在Webアプリケーションに求められる要件を満たすためにヒントや方法が紹介されました。PythonではWSGIと呼ばれる仕様があるため,その仕様に沿えば,自作アプリケーションであってもGunicornやuWSGIなどを利用して起動できることも,ライブコーディングで解説されました。

このセッションのスライドは多くのキーワードがリンクになっています。気になる用語,知らない用語があれば,ぜひリンク先まで参照してみることをおすすめします。

わかりやすい説明に定評のある清水川氏

わかりやすい説明に定評のある清水川氏

1日目注目セッション「Interpretable Machine Learning, making black box models explainable with Python!」 ― David Low

(大堀優)

Pand.aiのチーフデータサイエンティストであるLow氏は,機械学習の解釈可能性について発表しました。

2018年5月より施行された EU一般データ保護規則(GDPR)の22条によると,自動化されたシステムによる意思決定の影響を受ける者はその意思決定に対して説明を要求する権利を有するとあります。

したがって,解釈可能なモデルやモデルを説明する技術は,今後機械学習システムを構築する上で重要な要素となります。

Low氏は,モデルに依存しない手法として以下を紹介した後,Floydhub上で作成した犬種の画像認識のデモを用いて各手法を解説しました。

  • Partial Dependence Plot (PDP)
  • Individual Conditional Expectation (ICE)
  • Feature importance
  • 代理モデル(LIME)

参考資料

1日目注目セッション「How to Data Wrangling? Tips for using python libraries for big-data analysis including scikit-learn.」 ― 松岡光

(大堀優)

不均衡データに関する研究をしている松岡氏は,大規模データ分析におけるscikit-learnのtipsについて発表しました。

scikit-learnに実装されているL2正則化ロジスティック回帰は,デフォルトソルバとして座標降下法(LIBLINEAR)を採用しています。しかし,L2正則化ロジスティック回帰の目的関数は強凸性を満たすことから,大規模データの場合,SAGやSAGAを用いた方が解の収束が速いことが知られています。これは,solver='saga'とするだけで簡単に利用できます。

scikit-learnに実装されているSVMは,二次計画問題をSMO(LIBSVM)で解いているため,大規模なデータに不向きです。そこで,シンガポール国立大学は,⁠ThunderSVM⁠と呼ばれるライブラリを開発しました。このライブラリは,マルチコアCPU上やGPU上で高速に動作する上,scikt-learnライクな形で実装されています。

K-Meansは,クラスタの中心の初期値によって収束速度が大きく変化するため,scikit-learnのデフォルトパラメータの場合,K-Means++で収束しやすい初期値を選出しています。近年,更に高速に収束する手法としてAFK-MC^2が新たに提案されました。この手法は,"afkmc2"と呼ばれるライブラリに実装されています。

松岡氏は,これらを全て紹介した後,scikit-learnのデフォルトパラメータと比べて計算時間がどれだけ変化するかを検証しました。

参考資料

著者プロフィール

陶山嶺(すやまれい)

事務局チームで主にメディアスポンサーを担当。PyCon JPにはPyCon JP 2015で初めて一般参加。Python自体に貢献しようとPyCon JP 2016からはスタッフとして参加している。

渋谷のSENSY株式会社に勤務し,広島の尾道でリモートワークを実践中。前職ではiOS/Androidアプリ開発,現職ではPythonとGCPでのサーバーサイド開発をメインとしている。

学生時代から一番好きな言語はずっとPythonで,GCPUG岡山の運営にも携わっている。

『WEB+DB PRESS Vol.104』で特集「イマドキPython入門」を執筆(共著)。

Twitter: @rhoboro


大堀優(おおほりゆう)

事務局チームでメディアスポンサーを担当。

現在は,新日鉄住金ソリューションズ株式会社で異常検知をはじめとした機械学習及びデータマイニングの研究開発に従事している。

Twitter: @Y_oHr_N


二宮健(にのみやたけし)

PyCon JP 2018で,メディアスポンサーやジョブフェアを担当。

株式会社LIFULLのAI・データ分析チームで,PythonやRubyを使って開発しているソフトウェアエンジニア。最近読んで面白かった本は『エンジニアの知的生産術 ──効率的に学び,整理し,アウトプットする』


花井宏行(はないひろゆき)

事務局チームで主にメディアスポンサーを担当。スタディプラス株式会社所属。PyCon JPにはPython未経験のままスタッフに参加。スタッフ参加がきっかけでPythonに興味を持ち,日々勉強中。

現職ではRuby on Railsでサーバーサイド開発をメインとしている。学生時代の縁で舞台監督や舞台運営のスタッフとしても活動している。

Twitter: @hanahiro_aze

バックナンバー

PyCon JP 2018カンファレンスレポート

コメント

コメントの記入