pytestを使ったFlaskのテスト

はじめに 普段のデータ分析や機械学習モデリングをやっているのでテストコードを書くことは多くなかったので、Flaskでアプリケーションを作り出すとテストをどう具体的に書いていいのかわからなかった。基本的なことはTesting Flask Applicationsを参考にし…

GAEへpythonとFirestoreを使ったサービスをデプロイする

はじめに Python3.7のruntimeがGAE standard environmentで使えるようになったため、flaskでアプリを作ってGAEへデプロイしている。DBにDatastoreとFirestoreが選択肢に入ってくるが、GoogleがFirestoreが後継だと強く言っているようなので、今回はこちらを…

GCPのサービスアカウントについて

はじめに GCP使ってアプリ開発をしていて、サービスアカウントのJSONファイルを環境変数に設定することがあるが、割と雰囲気で使っているのできちんと理解したくなった。さらに元をたどって、Cloud IAMも合わせて理解しようと思う。 Cloud IAMとは Cloud Ide…

flaskでGAEからGSCにファイルをアップロードするまで

GAE standard environmentからGCSへファイルをアップロードしたい。 下記にあるようにGAE standard eivironmentではclinet libraryが異なるので注意が必要。 pip install --upgrade google-cloud-storage 認証を通すためにsecret.jsonへ環境変数を設定してお…

CircleCI2.0からGAEスタンダード環境のruntime:python3.7へデプロイする手順

GCP

概要 GAEのスタンダード環境のpython3.7を使う際に、CircleCIから直接デプロイできるようにした。CircleCIがDockerコンテナベースでのビルドなので、そこからgcloud SDKでデプロイするための設定をすればOK。基本的にpython3でAppを作ってるけど、gcloud SDK…

機械学習応用システム(MLS)パターン勉強会に参加してきた

概要 機械学習工学研究会(MLSE)の機械学習応用システム(MLS)パターン勉強会に参加してきました。実例や既に公開されているパターンをベースに機械学習システムにおける、デザインパターン、アンチパターン、プロセスパターン、組織のパターンについて議論す…

【書評】プログラムはなぜ動くのか 第2版

中身の概要 データ分析のためにプログラミングを使う立場で計算機と付き合ってきたが、機会学習モデルをシステムとして本番環境にデプロイするようになってくると、コンピューターのこと知らなさ過ぎることの辛みが出てきたので、今年は計算機や情報工学につ…

「Kubeflow PipelinesでTensorFlow Extendedを動かしてみた」をTensorflowアドカレ2018に投稿した

Kubeflow PipelinesについてQiitaのTensorflow Advent Calendarに投稿した。

【Kubeflowのラズパイ包み】ラズパイにKubeflowをインストールして機械学習基盤化するとこまで

前回作ったkubernetesのラズパイ包みを、Kubeflowのラズパイ包みにして、機械学習基盤のおもちゃにする。 tkzs.hatenablog.com まずはksonnetからのインストールから ksonnetはkubernetesをjsonnetというJSON用のDSLを使った設定ファイル管理ツールっぽい。…

【Kubeのラズパイ包み】Rasberry Piを使ったKubernetes クラスタでの機械学習基盤構築

はじめに 機械学習基盤、もうちょいなんとかしたくて、勉強のためにKubernetesのオライリー本を買ったら、付録に「Rasberry Piを使ったKubernetes クラスタ構築」を見つけたので本体読み始める前に必要なもの揃えて構築してみました。この上で勉強すればいい…

Pythonのクロージャ理解する

少し複雑なデコレータを実装したくなったけど、クロージャの挙動ちゃんと理解してないなと思いFluent Pythonで復習しました。 使ったのは第7章5節と6節です。Fluent Python ―Pythonicな思考とコーディング手法作者: Luciano Ramalho,豊沢聡,桑井博之,梶原玲…

機械学習工学研究会キックオフシンポジウムを振り返って

なんか最近こればっかやけど、機械学習工学研究会のキックオフシンポジウム行ってきました。mlxse.connpass.com企業の方、アカデミアの方など立場様々な方が参加されてそれぞれの視点から課題点を出されていて面白かった。有賀さんや久保さんなど企業の方々…

【後編】機械学習工学研究会キックオフシンポジウムの前に読みたい記事や論文や本

昨日は分析官やっている人間が機会学習システムの課題感について全体感を把握するためにいくつか見直したけど、今日は開発プロセスや実行する組織、支える基盤についてフォーカスあてていこうと思う。もろもろ課題あるけど、実際どうやって機械学習システム…

【前編】機械学習工学研究会キックオフシンポジウムの前に読みたい記事や論文や本

機械学習をPoCから実際の本番環境への導入、プロダクトへの適用を考えると従来のITシステムに用いられてきた開発手法やソフトウェア工学的な手法では対応できない課題がたくさんあります。 じゃあそれについてどう対応しようか?を考えるのが機械学習工学だ…

【論文読み】CVAE-GAN : Fine Grained Image Generation though Asymmetric Training

今回はクラス情報を持った画像を生成するためにVAEとGANを上手に組み合わせましたよというお話。 CVAE-GAN: Fine Grained Image Generation though Asymmetric Training 【感想】 ・Mean feature matching のなるほど感 ・Loss関数たくさん&そこにハイパラ…

完全ランダム木のアンサンブルによる確率密度推定

Qiita Advent Calenderに記事書いた。完全ランダム木をアンサンブルした学習器で、すべてのサンプルが一つずつ最終ノードに入るまで木を生い茂らせ、その深度を基にそのデータが生まれてくる確率密度を推定してやろうというもの。会社で下記の本の読み会や…

【論文】Graph Convolutional Networks for Classification with a Structured Lebal Space

今回はGraph conv層を持つネットワークを使って、分類問題におけるラベルがグラフ構造を持っている場合に有用であろうという分類器についての話。[1710.04908] Graph Convolutional Networks for Classification with a Structured Label Space 【感想】 ・G…

【論文】Squeeze-and-Excitation Networks

読んだ論文をアウトプットしていく。[1709.01507] Squeeze-and-Excitation Networks ・Feed-Foward なネットワークでAttention機構を持たせる ・チャネル間の相互関係性を考慮 ・Channel-wiseな非線形な相互関係性を学習するために、小さいNNを挟んでるイメ…

KerasでCifar10分類、とりあえずCNNのAlexModelで

GPUマシンが使えるようになったので、Kerasで用意されているデータセットの中にcifar10があったので学習・分類してみた。 モデルはcifar10の作成者でもあり、ILSVRC2012優勝者でもあるAlex Krinzhvskyさんの優勝時のモデルがベース。 モデルの構成について深…

確率的勾配法あれこれまとめ

Kerasで選択できる最適化アルゴリズムそれぞれの違いと使い所がいまいちわからんかったので調べてみた。 Incorporating Nesterov Momentum into Adamがアルゴリズムを整理してくれているので理解しやすかった。とりあえずざっくりと俯瞰した感じだと、いかに…

CODE COMPLETE 第2版 を読んで

『CODE COMPLETE 第2版 上』、『CODE COMPLETE 第2版 下』を読み終えました。CODE COMPLETE 第2版 上 完全なプログラミングを目指して作者: スティーブマコネル,Steve McConnell,クイープ出版社/メーカー: 日経BP社発売日: 2005/03/26メディア: 単行本購入: …

CodingBatでアルゴリズム100本ノック

これまでの自分のプログラミングは機械学習周辺に偏っていて、コンピューターサイエンスやったことある人間が通ってくる基本的なアルゴリズムについての知識が足りていないとの指摘を受けたので、その部分を埋めるためにCodingBatにチャレンジしてみた。Codi…

Scikit-learnのpipeleine.Pipelineが便利

分析する際に、次元圧縮→分類のような流れで行う場合には、scikit-learnのPipelineが便利。特にハイパーパラメーターを探すときには手続が煩雑になることもありますが、まとめて分類器としててGridSearchCVに突っ込むだけで良いのでめんどくさいこと考えずに…

Spark MLlibの協調フィルタリングを活用したMovie Recommendation

Sparkを触る機会が増えてきてるので、知識の棚卸しを兼ねてMLlib使ってレコメンデーションシステムを実装してみました。SparkSamit2014などMLlibのチュートリアル的に色々使われているSparkのMovie Recommendationですが、edXのIntroduction to Big Data wit…

Spark MllibでのClick through rate(CRT) 予測

1年以上も前ですが、edXのScalable Machine learningを受講していた時のコードが出てきたので、見直してみました。この講座のネタが、KaggleのCriteoのコンペのデータ を基にしたCTR予測でして、One-hot-encodingやhushingした高次元のデータを Mllibのロジ…

時系列解析① ARモデル

時系列データの解析を二つのデータに対して実施します。 基本的には、RawDataの確認、トレンドと季節性の排除、モデルのフィッティングの順にやっていきます。 データ①simulated data Rで生成したデータについて分析してみます。 データを作成するコードは下…

OLS、リッジ回帰、ラッソでのパフォーマンス比較

OLS、特徴選択、リッジ回帰、ラッソの4つの方法でTrainデータからモデルをFittingし、Testデータを用いて、平均2乗誤差(MSE)を推定して比べるといったことをします。 まずはデータの準備 データはStanford大学の統計学部からprostateのデータをダウンロード…

PRML 7章 サポートベクトルマシン

パターン認識と機械学習、第7章「Sparse Kernel Machines」に入ってSVMの実装をしてみます。 図7.2の再現を行うにあたり、カーネルがガウジアンカーネルが選択されているようなので、今回の実装もこれに従います。いつも通り境界面の求め方など、SVMそのもの…

【論文メモ】人間を理解するためのロボティクス

石井加代子 (2007). 人間を理解するためのロボティクス. Cognitive studies 14(1), 11-30, 日本認知科学会 (https://www.jstage.jst.go.jp/article/jcss/14/1/14_1_11/_pdf) 「全ての作業をプログラムす ることは不可能であるから,ロボットが作業…

PythonでXGBoostをちゃんと理解する(3) hyperoptでパラメーターチューニング

xgboostのハイパーパラメーターを調整するのに、何が良さ気かって調べると、結局「hyperopt」に落ち着きそう。 対抗馬はSpearmintになりそうだけど、遅いだとか、他のXGBoost以外のモデルで上手く調整できなかった例があるとかって情報もあって、時間の無い…