ごあいさつ 或いはmatlab教徒がpythonistaに改宗した話 (関東cv勉強会)
TRANSCRIPT
ごあいさつ或いは MATLAB 教徒が Pythonista に改宗した話
牛久 祥孝losnuevetoros 中二病みたいだ
ごあいさつ或いは MATLAB 教徒が Pythonista に改宗した話
牛久 祥孝los nueve torosthe nine bulls牛玖 ( 玖は九の旧漢字 )
中二病みたいだ
中二病みたいだ
お前は誰だ?~ 2014.3 博士 ( 情報理工学 ) 、東京大学• 画像説明文の自動生成
• 大規模画像分類
2014.4 ~ NTT コミュニケーション科学基礎研究所
お前は誰だ?~ 2014.3 博士 ( 情報理工学 ) 、東京大学• 画像説明文の自動生成
• 大規模画像分類
2014.4 ~ NTT コミュニケーション科学基礎研究所
という自己紹介スライドで今年度も続けるつもりでした
お前は誰だ?~ 2014.3 博士 ( 情報理工学 ) 、東京大学• 画像説明文の自動生成
• 大規模画像分類
2014.4 ~ NTT コミュニケーション科学基礎研究所
お前は誰だ?~ 2014.3 博士 ( 情報理工学 ) 、東京大学• 画像説明文の自動生成
• 大規模画像分類
2014.4 ~ 2016.3 NTT コミュニケーション科学基礎研究所
お前は誰だ?~ 2014.3 博士 ( 情報理工学 ) 、東京大学• 画像説明文の自動生成
• 大規模画像分類
2014.4 ~ 2016.3 NTT コミュニケーション科学基礎研究所2016.4 ~ 東京大学 大学院情報理工学系研究科知能機械情報学専攻 講師 ( 原田・牛久研究室 )
お前は誰だ?昨年度の kantocv イベント5 月 有名論文読み会7 月 CVPR2015 読み会10 月 コンピュータビジョンのお仕事2 月 ICCV2015 読み会
発表者枠で皆勤賞!
お前は誰だ?昨年度の kantocv イベント5 月 有名論文読み会7 月 CVPR2015 読み会10 月 コンピュータビジョンのお仕事2 月 ICCV2015 読み会
発表者枠で皆勤賞!
前職ほど時間取れないかもしれない…
今年度からは…関東 CV 会場確保のお手伝いを務めます
New!
新任教員のお仕事• 授業– 来月から– 演習も座学も
• 大学運営– ○○ 委員会– ぱわぽわーどえくせるいられ職人
• 卒論指導– 先週配属– 修論 / 博論生はまだ
あれ、研究する時間…?
研究室新メンバー顔合わせ会にて
M2
B4
ここだとプログラミングはほとんどpython か MATLAB だから。
原田先生も牛久先生もMATLAB 派だから 牛久
まあ、そうなるだろうな~
あ。
LT の残り:改宗した話• 学生時代は熱心な MATLAB 教徒– C/C++ は授業とバイトのみ– 研究では少しだけ Java を使う
– 全てのアルゴリズムを行列演算にするのが信条– for/while ループは悪魔の所業
• NTT に入って… Pythonista に– MATLAB 少ない– でもきっかけは 100% ある人の影響
ACM Multimedia 2011 で実演したデモ・画像ファイルをウィンドウに D&D →説明文が出力される・ GUI を Java で書き、 MATLAB から呼ぶ・アルゴリズムは MATLAB が担当
MATLAB書かない
MATLAB
• 単体でなんでもできるMathworks 社が本体以外にも多彩な Toolbox を提供– 画像処理– 機械学習– 最適化– ディープラーニング– 記号数学計算 などなど…
• 値段がごっつい– 初期導入費用 数十万円– ライセンス維持費用 / 年 数万円
Python
• もとは身軽– 基本的に無料– 科学計算機能はあまり無い
• 装備をどんどん追加するイメージ– NumPy ないと死ぬ– scikit-learn ないと死ぬ– matplotlib 便利– pandas 便利– SciPy あんまり使わない
NumPy
• 行列計算用モジュール– 元 MATLAB 教徒には、行列積がたいそう気持ち悪い• 行列の要素ごとの積MATLAB: A .* B Python: A * B• 行列の積MATLAB: A * B Python: matrixmultiply(A, B)
• 実行速度は裏で叩く BLAS に大きく依存– MATLAB もそれは同じ (Intel MKL の恩恵 )– Intel MKL の為だけに Anaconda Accelerate 購入
( 当時約一万円 )→ のちに無料提供されるように…
scikit-learn
• 多くの機械学習手法を提供knn, kemans(++), regression, pca, pls, cca, svm, lasso, nmf, ica, lda, adaboost, random forest, Gaussian process, mds, lle, kdtree, decision tree, などなど
• より僕にとって重要:BaseEstimator の継承による機械学習手法実装僕の考えたかっこいメソッドを、 scikit-learn の他のメソッドと同等に扱える→ 恩恵は様々–パイプライン化–クロスバリデーションによるパラメータ決定
たとえば…僕の考えたかっこいいメソッド mymethod() 用のハイパーパラメータを決めたい→k 分割クロスバリデーションしようfor i in range(k):
# 訓練用とバリデーション用にデータを分割for param1 in param1_set:for param2 in param2_set:for param3 in param3_set:for param4 in param 4_set:mymethod.fit()# 性能評価# パラメータと対で記録
# 一番良いパラメータの組み合わせを探す
scikit learn だとfrom sklearn import grid_searchclf = grid_search.GridSearchCV( mynethod,
parameters,cv=k )
clf.fit()
以上。( 最良パラメータは clf.best_params_ に自動で入る )
最後に今年度からお手伝いはじめます• 顔と名前の一致が不得手ですが頑張ります。• よろしくお願いいたします。今は Pythonista です• MATLAB の構文を忘れつつある• 便利モジュール情報随時募集中• 改宗は Anaconda のおかげ
アッ 神だ ! [米谷 , 2015]