README_kimura.md :職務経歴書(木村正彬)
この文書について
- この職務経歴書は、より現場に近いマネージャーやアーキテクト、エンジニアの皆様向けの詳細版となります。過去の実績を数値で簡略に示したスライド版も用意しておりますので、お忙しい方はこちらをご覧ください。
連絡先
独立前の経歴概要
- 慶應義塾SFC(湘南藤沢キャンパス) → アドテク/EC/ゲームのベンチャー企業にてプロジェクトリーダー → 某メガベンチャーにて機械学習エンジニア → 個人事業主として独立(機械学習やデータサイエンスのR&Dを担う) → 法人成り(社外CTO、技術顧問へ)
独立後の経歴概要
- 独立後は国内の電機メーカーとして知られる某多国籍コングロマリットにて、深層学習や深層強化学習をはじめとした機械学習・AIの概念実証(Ploof of Concept: PoC)や研究開発(R&D)の要求定義(問題設定)、原理検討(モデリングやアルゴリズム設計)、実装(実証)に携わり、某スマートフォンや某犬型ロボットを製造する工場の作業者の映像データを用いた異常検知、物体検知、行動認識モデルなどを設計・実装し、2020年には同社の欧州の工場向けに、作業者の管理ツールとして機能する行動認識モデルをリリース。
- 2020年からは某商社の自動運転技術のAI部分に関する技術顧問も兼任。某携帯電話サービス会社の5G回線を利用した画像認識技術の研究開発において、主に自動運転車両の「眼」に該当する物体検知に関わり、ベンダー様との開発折衝支援を遂行。2021年はエンドユーザー様向けの技術的な解説を行ないながら、横展開をサポート中。2021年10月からは社外CTOも兼任。
- 2021年度はヘルスケアの研究開発を行なう某医療機器メーカーにて、細胞の画像からその細胞の種類を予測する分類モデルなど、生物学や医学の研究を支援するツールを深層学習で開発し、納品した。
- 2021年7月より、製造業の在庫管理システムを開発するIT企業で、技術顧問として、統計モデルや機械学習の概念実証をサポート。
- 2021年10月より、某産業機械・農機メーカーにおけるCADシステムを利用した物体検知・意味論的セグメンテーション(semantic segmentation)の技術顧問として始動。
- 2021年10月より、某輸送用機器メーカーにおけるドローンを利用した経路探索アルゴリズムの概念実証の技術顧問として始動。
# Table of contents
対応可能なご相談の例
費用の見積もり方がわからない
如何に「AI」や「機械学習」と言っても、ビジネスとして取り組む以上、初期費用はなるべく抑えたいところです。しかし「AI」や「機械学習」の場合、どのような観点から見積もり、技術選定していけば良いのかわからないというご相談を受けます。
確かに、「AI開発」には通常のソフトウェアの制作とは異なる論理が介在しています。機械学習のアーキテクチャ設計やアルゴリズム設計、モデリング、実装の経験が無ければ、正確な見積もりは難しいでしょう。
「AI開発」の技術選定もまた、専門知識が要求される試みです。例えばGPUサーバを選定する場合であっても、スペックが高ければ高いほど良いという訳ではありません。実際これは、「AI開発」の専門家の技術力や知識をはじめとした「実力」に依存して決まる変数でもあります。
人によっては、メモリが16~32GBのGPUサーバで無ければ動作させることのできないタスクであっても、例えば私が技術顧問として設計から実装まで見直せば、8GBのメモリで済んだという事例もございます。恐ろしいことに、「AI開発」のコストは1/2にもなれば1/4にもなり得るということです。
「AI開発」を発注する場合にせよ、「AI人材」の雇用を強化する場合にせよ、あるいは「AI」に関わるスタートアップ企業に「出資」する場合にせよ、こうした技術選定の背景知識をおさえておかなければ、貴社は「AI」の投資対効果の面で不利な立場に立たされることになります。巷の「AI開発」を担っている研究開発者たちやデータサイエンティストたちは、貴社に必ずしもこうした背景知識を教えてくれるとは限りません。
「AI(機械学習)」のモデルが思うように動作しない
高い費用をかけて内製・外注した機械学習モデルが、ビジネスのソリューションとして機能しないという問題は、「AI」という概念が大衆化されて以来、スタートアップ企業、中小ベンチャー企業、そして大企業が共通して直面し続けている問題です。
中長期の研究開発を通じて出来上がった「AI」が、ビジネスの何の役に立つのかわからないといった悲しい状況も発生しているようです。あるいは、納品された直後までは順調に機能している「AI」でも、その既存モデルを「横展開」した途端に精度が落ちてしまったといったご相談も頻繁に受けます。
このようなお悩みをお持ちの企業様に対しては、単に機械学習や統計学の理論や方法を詳解するだけではなく、お客様のニーズを明確化させるための「概念実証(proof of concept: PoC)」や、お客様のニーズに合わせてカスタマイズできる独自の機械学習ライブラリのソフトウェア・アーキテクチャ設計、Pythonコードの実装、性能の比較検証などのノウハウを伝授致します。
社内に「AI」や「機械学習」の専門家が定着しない
ベンチャーと大企業の正社員時代の経験や独立後の経験を踏まえ、今年発表されたばかりの論文の調査内容や市場の動向なども踏まえ、貴社のCTOの「壁打ち役」や、若手のエンジニアへのメンタリングも行います。
スキル概要
データサイエンス/人工知能の概念実証(PoC)と研究開発(R&D)関連
強化学習問題の枠組み
- ベンチャー企業では、アドテクノロジー領域の配信アルゴリズムに「強化学習(Reinforcement Learning)」(Sutton., R, Barto, A., 1998)の一種である「バンディットアルゴリズム(Bandit algorithms)」(White, J., 2012)を採用し、設計・実装・検証までフルスタックに実施した。
- 某多国籍コングロマリットでは、訪問介護の送迎ルートや宅配業者の宅配ルートに関する「組み合わせ最適化問題(Combinatorial optimization problem)」(Du, K. L., & Swamy, M. N. S., 2016)に対して、「深層強化学習(Deep Reinforcement Learning)」のモデルの一つであるDeep Q-Network(Mnih, V., et al., 2013)のアルゴリズムを応用する概念実証を展開し、アプリケーション化に着手している。
プライベートの活動
- Python3で「強化学習」の一種である「Q学習(Q-Learning)」のソースコードやJupyter Notebookを公開している。
- 基本的にはEpsilon Greedy Q-LearningとBoltzmann Q-Learning(Watkins, C. J., & Dayan, P., 1992)の二つのTemplate Methodを提供している。
- Deep Q-Networkによる「マルチエージェント型の深層強化学習(Gupta, J. K., et al., 2017)」のソースコードも公開している。
- 他にも、「シミュレーテッドアニーリング(Simulated Annealing: SA)」(Bertsimas, D., & Tsitsiklis, J., 1993)や「適応的シミュレーテッドアニーリング(Adaptive Simulated Annealing: SAS)」(Du, K. L., & Swamy, M. N. S., 2016)や「量子アニーリング(Quantum Annealing)」(Das, A., et al., 2005, Messiah, A., 1966, )によるハイパーパラメタの組み合わせ最適化にも対応している。
探索アルゴリズムの可視化
以下の二つのGIFアニメーションでは、それぞれDeep Q-Networkによる迷路探索や「ハンターと追跡者問題」の学習過程を可視化している。
Deep Reinforcement Learning (Deep Q-Network: DQN) to solve Maze.
|
Multi-agent Deep Reinforcement Learning to solve the pursuit-evasion game.
|
それぞれ左上が出発地点、右下が目標地点、白がプレイヤーで、薄い黒のマスが敵プレイヤーを意味する。
詳細は以下のリポジトリや文書で記述している。
GitHub
PyPi
API Doc(Sphinx製)
統計的機械学習問題の枠組み
業務経験
- 某多国籍コングロマリットでは、後述する「SLAM(Simultaneously Localization And Mapping)問題」の枠組みとの関連から、IoT事業のセンシングデータの一つであるRSSI(Received Signal Strength Indication)を利用したSLAM問題の特徴抽出器として採用した。
- 某多国籍コングロマリットの別案件では、上述した配送ルートの組み合わせ最適化問題に対しても、「次元削減(Dimensions reduction)」や「関数近似(Function Approximation)」の方法として採用した。
- 同様に某多国籍コングロマリットの別案件では、工場労働者の製造行動の映像データを対象とした画像認識による異常検知モデルを実装した。異常検知モデルにはEncDec-AD(Malhotra, P., et al. 2016)のフレームワークを採用した。Encoder/Decoder(Cho, K., et al., 2014, )のフレームワークを広義のAuto-Encoderと見做すなら、異常検知モデルのPoCでは、以下の5種類のモデルの比較検討を実施した。
- 積層自己符号化器(Stacked Auto-Encoder) (Le Roux, N., & Bengio, Y., 2008)
- Encoder/Decoder based on LSTM (Malhotra, P., et al. 2016)
- Encoder/Decoder based on ConvolutionalLSTM(ConvLSTM) (Xingjian, S. H. I. et al., 2015)
- Convolutional Auto-Encoder (Masci, J., et al., 2011)
- 時系列オートエンコーダ(Spatio-Temporal Auto-Encoder) (Baccouche, M., et al., 2012, Patraucean, V., et al. 2015)
- 工場労働者の製造行動の映像データを対象とした画像認識では、異常検知に必要な工場労働者の動作が、工場のマシンをはじめとした背景に埋もれてしまうため、Auto-Encoderのインターフェイス部分に「前景抽出器」を挿入する必要があった。そこで業務時間の空きを使って、Xu, P., et al (2014)によって提唱されたAuto-Encodersを用いた深層背景学習による前景検出器を設計し、実装した。
- 以上の背景から、とりわけ2018年の某多国籍コングロマリットで実施した概念実証(PoC)では、問題を設定し、設定した問題の解決策として機能する5種類以上のAuto-Encodersを設計し、実装し、制度や速度の検証実験を展開した。
プライベートの活動
- Pythonで「制限ボルツマンマシン(Restricted Boltzmann machine: RBM)」、「深層ボルツマンマシン(Deep Boltzmann machine: DBM)」のライブラリを公開している。
- DBMは主に「積層自己符号化器(Stacked Auto-Encoder)」として構造化させることで、次元削減や事前学習(pre-learning)として機能する。
- 事前学習器としてのDBMは、重みやバイアスの「転移学習(Transfer learning)」にも対応している。
- このライブラリは Numpy (+ Cython )によりCに変換することで高速化に対応している。
- 他にも以下のような時系列的なデータの生成モデルとして機能するRBMも構築できるよう、ライブラリを拡張した。
- Recurrent Temporal Restricted Boltzmann Machine(RTRBM) (Sutskever, I., et al. 2009)
- Recurrent neural network Restricted Boltzmann Machine(RNN-RBM) (Boulanger-Lewandowski, N., et al. 2012)
- LSTM-RTRBM (Lyu, Q., et al. 2015, Lyu, Q., Wu, Z., & Zhu, J. 2015)
DBMの拡張としては、画像のセグメンテーションとして活用できるShape Boltzmann Machine(Shape-BM)(Eslami, S. A., et al. 2014)についても、本ライブラリで実装できるようにした。
- これらのAuto-EncoderとしてのDBMsは、既存の著名な深層学習の機能的等価物として記述できる。そこで本ライブラリでは、次のAuto-Encodersのソースコードも公開することで、各Auto-Encodersの精度や速度を比較することを可能にしている。
- 時系列的なデータの生成モデル(RTRBM, RNN-RBM, LSTM-RTRBM)の機能的等価物としては、Encoder/Decoder based on LSTMやEncoder/Decoder based on ConvolutionalLSTM(ConvLSTM)を実装できるようにしている。
- Shape Boltzmann Machine(Shape-BM)の機能的等価物としては、Convolutional Auto-Encoderを実装できるようにしている。
本ライブラリでは、上記のEncoder/Decoder based on ConvolutionalLSTM(ConvLSTM)とConvolutional Auto-Encoderを構造的に結合させることで設計できる「時系列オートエンコーダ(Spatio-Temporal Auto-Encoder)」も実装できるようにしている。
Auto-Encodersによる画像の再構成
下図はShape Boltzmann MachineとConvolutional Auto-Encoderによる画像の再構成過程をGIFアニメーションで比較している。
それぞれthe Weizmann horse datasetの馬の画像を参照している。二つのモデルは、重み行列の初期化戦略こそガウス分布のサンプリングで共通しているが、学習アルゴリズムは全く異なる。再構成されていく過程も、再構成の結果も異なる。再構成画像を比較することは、モデルやアルゴリズムの差異を視覚的に把握する上で有用となる。
尤も、Auto-Encodersのパラダイムにおいて肝要となるのは重み行列やバイアスベクトルの事前学習結果なのであって、再構成画像の推論結果なのではない。本ライブラリではこの事前学習結果の抽出から転移学習までサポートする機能を提供している。
詳細は以下のリポジトリと文書で記述している。
GitHub
PyPi
Wheel files
API Doc(Sphinx製)
SLAM問題/システム同定問題の枠組み
業務経験
- 某多国籍コングロマリットでは、Wi-FiのRSSIのセンシングデータから送信機の位置推定を実行する機械学習モデルの設計・実装・検証まで展開した。
- 「カルマンフィルタ(Kalman filter)」を用いたノイズフィルタリング技術を導入することで、クライアントが制作していた既存の機械学習モデルの精度向上に貢献した。
- 教師データやマスタデータが十分に収集されない状況でも機能するモデルとして、「制限ボルツマンマシン」の生成モデルを設計・実装・検証を展開した。
自然言語処理
業務経験
- チャットセンター事業でのユースケースを想定した「文書自動要約(Automatic Summarization)」のプロトタイプを設計・実装した。
- この技術を応用した社内Wikiの検索エンジンを開発した。
プライベートの活動
- Python3で初歩的なデータクラスタリングやフィルタリング技術に基づいた「文書自動要約」のソースコードを公開している。
- Webスクレイピングのデモコードと共に提供している。
- 自然文の次元削減機能として、Encoder/Decoder based on LSTM(Cho, K., et al., 2014)のコードも公開している。
GitHub
PyPi
API Doc(Sphinx製)
ソフトウェア・アーキテクチャ関連
習熟しているドメイン
- 機械学習のモデルの実装を前提としたシステム開発を多数経験した。
- アドテクノロジー領域の配信アルゴリズム。
- CRM領域のレコメンドエンジン。
- AWS lambdaやGoogle Compute Engine(GCE)のプラットフォームを前提とした機械学習モデル。
- システム同定問題、サイバネティクス、制御工学、信号処理。
- 画像認識、動画認識。
アーキテクチャ設計
- ベンチャー時代、IBMがいうところの「ラショナル統一プロセス(Rational unified process; RUM)」を採用することで、「ユースケース駆動型開発」と「アーキテクチャ中心設計」のPDCAを細かくアジャイルのように回していく開発スタイルを自身の開発チームに適用した。
- 小刻みに進めていく開発プロジェクトのリーダー的な立場で小規模ながらにチームビルディングを経験した。
- C#(ただしUnity3Dの環境下)、Python3、PHP(v5以降)の言語を介して、オブジェクト指向分析、オブジェクト指向設計、オブジェクト指向プログラミングを一通り習得した。
- UMLによるシステム構成の視覚化技法も習得した。
経験環境・言語
- まず「何のフレームワークを使うか」から話を進めても、目的と手段を逆転させる以外の意味は無い。
- まず問題を設定して、その問題の解決策として機能するフレームワークを採用するという思考手続きを採るため、特定のフレームワークに習熟するという経験は意図的に排除している。
フレームワーク
- なし
- オブジェクト指向プログラミングのためのフレームワークであれば、オブジェクト指向分析とオブジェクト指向設計の設計思想を前提とすることで、初めて触れるフレームワークでも最低限の学習コストで対応できるため、個別具体的な特定のフレームワークに精通するための学習コストは支払ったことがない。
ライブラリ
- まず「何のライブラリを使うか」から話を進めても、目的と手段を逆転させる以外の意味は無い。
- まず問題を設定して、その問題の解決策として機能するライブラリを採用するという思考手続きを採るため、特定のライブラリに習熟するという経験は意図的に排除している。
- 特に「機械学習ライブラリ」の場合、モデリングやアルゴリズム設計を知らずとも利用できてしまうため(そして、知らないままに造られた機械学習モデルは、大抵の場合、実務的には機能しないため)、「何のライブラリを使うか」から話を進める意味は尚更無い。
MxNet
- 2019年に入ってからは、某多国籍コングロマリットではGluonベースのmxnetを頻繁に利用するようになった。
- 2018年の年末ごろにmxnetが大々的に進化し、設計・実装時にはNDArray APIによるImperativeなデバッグが可能になり、実運用時にはSymbol APIによるSymbolicな計算グラフの構築が可能になるHybridBlockが導入された。
- これにより、開発の時間的な投資対効果と実運用時のサーバ運用の投資対効果の双方をバランスよく効率化できるようになった。
PyTorch
- 2021年に、ヘルスケアの研究開発を行なっている某医療機器メーカー向けに、生物学や医療の研究を支援するツールをPyTorchにより深層学習で実装した。
機械学習系
- 統計的機械学習問題の枠組みに対応するライブラリはほとんどないため、 Numpy (+ Cython ) や Mxnet の NDArray API などで「命令的」に記述する。
- 強化学習問題の枠組みのライブラリは個別具体的なユースケース(経路探索など)に特化し過ぎているような印象があるため、そもそも汎用的なライブラリは中々登場しないように思える。
- そのため、自分の業務上の問題設定との関連から自分で数式とコードを書いてしまう。
- 「教師あり」の分類問題や回帰問題であれば TensorFlow を使う。
- データクラスタリングの場合は sklearn を使う。
- Keras や Chainer などについては触れたことがない(と思われる)。
その他
- なし
- 業務の問題設定、ソフトウェア要求との関連から、機能的に再利用可能なライブラリを順次選択するため。
ミドルウェア
- MySQL
- SQLite3
- MongoDB
- Redis
- fluent
OS
- Bash on Ubuntu on Windows 10 (Windows Subsystem for Linux)
- Linux(Ubuntu 16.04 / Ubuntu14.04 / centOS6)
- Windows7
- Mac OS X
プログラミング言語
- PHP
- R言語
- Python3
- Python2
- 3to2 ライブラリで変換して対応したことはある。
- C#
- JavaScript
- ShellScript
- CSS3
- HTML5
クラウドサービス
- Google Cloud Platform(GCE、GAE、Google Cloud Storage、SQL)
- AWS(S3, lambda)
設計サポートツール
- Astah* community
- LiquidChart
- draw.io
プロジェクト管理ツール
- Redmine
- JIRA
- Earned Value Management(EVM)
その他開発プロジェクト関連
- 見積もり技法としては三点見積もりを、工数管理法にはEVMをよく使う。
- 私が機械学習モデルそのものを、他のエンジニアがモデルの組み込みを担当するロール配分の場合は、次のような手続きで疎結合を保つ進め方を好む。
- 実装前までにUML等の可視化ツールでシステム構成を可視化して認識の共有を図っておく。
- 機械学習モデルのソースコードはpipでインストール可能なtarballとして配布する。
- Sphinxなどを用いて機械学習モデルのAPI仕様をドキュメント形式で共有する。
- 以後、UMLやAPI Docを前提に随時調整。
- しかし、近年AI・機械学習関連の開発プロジェクトが増大するにつれて、データサイエンスや機械学習がわかっていないにも拘らず、顧客と要求・仕様を調整しようとせざるを得なくなってしまっているプロジェクトマネージャーや「いわゆるSE」が増えてきている。彼らと連携する機会が増えたことにより、最近は私自らが顧客からヒアリングして、要求定義やインターフェイス仕様の設計を進めていく手筈を採ることが増えてきている。
経歴概要
フリーランス & 法人での経歴
某商社(2020年9月から現在まで)
- 某商社の自動運転技術のAI部分に関する技術顧問も兼任した。
- NTTドコモ5Gを利用した画像認識技術の研究開発において、主に自動運転車両の「眼」に該当する物体検知に関わり、ベンダー様との開発折衝支援を遂行した。
- 2021年はエンドユーザー様向けの技術的な解説を行ないながら、横展開をサポート中。
- 2021年10月から、物体検知、SLAM、異常検知に関わる幾つかのベンダー企業をコントロールする社外CTOも兼任。
某IT企業(2021年8月から現在まで)
- 製造業の在庫管理システムを開発する某IT企業の技術顧問として、統計モデルや機械学習の概念実証をサポート。
某医療機器メーカー(2021年2月から2021年3月まで)
- 簡単に言えば、研究者たちがこれまで目視で行なっていた「細胞の分類・仕分け」を自動化する画像分類器の設計と実装をお願いされた。
- 事前に先方がPyTorchで実装を試みたものの、目標の性能には達していなかった。
- そこでこのプロジェクトでは、先方の実装成果物を改修することで、目標の性能に達するモデルを納品した。
某多国籍コングロマリット(2017年8月から現在まで)
- データサイエンティスト兼ITアーキテクトのフリーランスとして参画。
- 2018年からは更に機械学習を主題とした研究開発(R&D)や概念実証(PoC)の進め方を伝導していくコンサルタント的な立場での参画も求められるようになった。
- 2018年1月、2月は画像認識による行動分類問題、振動データの異常検知問題など、データサイエンスや機械学習の概念実証や研究開発において、自身で手を動かす作業のみならず知恵袋的な役目も担っている。
- 2018年3月からは訪問介護や宅配業者の送迎・配送ルートの組み合わせ最適化問題に近似解を出す概念実証に着手した。
- 2018年9月からは、工場労働者の製造行動の映像データに対する異常検知モデルの概念実証に着手した。
- 2019年6月からは、工場労働者の製造行動の映像データに対する画像認識、動画認識の概念実証、R&D、サービス化に着手した。
- 2021年からは、工場労働者の作業効率を可視化するために、工場労働者や製造対象の部品などを対象とする物体検知器を設計し、実装した。現在は、自己教師あり学習により、ラベル付け(アノテーション)のコストを削減しつつ汎化性能を高める策を講じている。
受注内容
- クラウドサービス技術支援。
- 精確に言えば、クラウドサービスの専門家たちと協同することで、クラウド上に機械学習のコンテンツを導入していくサービスの支援。
- 数理的な基礎のレクチャーから最新論文の解説まで、それまで社内に無かった機械学習のノウハウを伝導していく立ち位置にある。
- IoT分野の特にセンシングデータを対象とした人工知能(AI)の研究開発(R&D)や概念実証(PoC)を実施した。
- プロトタイプとして、Wi-FiのRSSIから送信機の位置座標を推定するSLAM問題を解くための機械学習モデルを設計し、実装した。
- ノイズフィルタリング技術としてカルマンフィルタを、位置推定には生成モデルとして制限ボルツマンマシンを採用した。
- その後は社内に機械学習関連のPoCが増えてくるに連れて、R&Dエンジニアのみならずコンサル的な立ち位置でも支援した。
正社員時代の経歴
某メガベンチャー(2016年8月から2017年7月まで)
- アドテク事業部のアドテクスタジオのAI Labのデータサイエンティストグループの正社員として参画。
- アドテクスタジオは、某メガベンチャーのグループのアドテクノロジー分野におけるサービス開発を行うエンジニアの横断組織。
- ビジネスと研究開発をブリッジするデータサイエンティストとしての「修行」の名目でジョインした。
- ITコンサルティング的な意味でビジネス側と連携しつつ、理論的なロジック/アルゴリズム設計のノウハウを蓄積していくことに成功しました。
事業内容
- 人工知能領域の研究開発やサービス開発に特化したAI Labのデータサイエンティストとして、チャットボット事業のビジネスパーソンと連携しながら、ロジック/アルゴリズム設計やログ分析/可視化などに参加。
- 特に自然言語処理、次元削減、データクラスタリング、データビジュアライゼーションなどの学習期間として入社。
- 自然言語処理を用いたチャットセンター事業との関連から、簡易的なWebクローラや検索エンジンなどもプロトタイプとして設計し、実装。
某プロフェッショナルサービス企業(2016年3月から2016年6月まで)
- 社内の知人の紹介により、1つのプロジェクトのみ参画。
- プロジェクト完了のタイミングで某メガベンチャーとご縁があり、転職。
事業内容
- 在庫・補充最適化サービス AFS。
- 顧客に提案した在庫補充のログの可視化ツールの新規開発に参加した。
インターネット広告事業の某ベンチャー企業(2012年4月から2016年2月まで)
- ECサイトのレコメンドエンジンやデータ収集/集計基盤を設計・実装し、年間のCTRを10%向上させるという効果を出した。
- その際には、アドテクノロジー分野の広告配信アルゴリズムを企画、設計、実装し、ビッグデータ収集/集計基盤、アルゴリズム/アーキテクチャ設計をプロジェクトリーダーでありながらフルスタックにも貢献した。
事業内容
- 独自アルゴリズム、CRM、コンテンツ企画、ゲーミフィケーション、インターネット広告、TV代理通販など。
職務経歴詳細
某多国籍コングロマリットにおける職務経歴詳細
クラウドサービス支援(センサーデータを対象とした機械学習モデルの概念実証、研究開発)
期間
ロール
- 概念実証(PoC)を担当するデータサイエンティスト
担当フェーズ
- 概念実証のプロトタイプ開発とはいえ、pipでインストール可能なtarballを展開するところまでフルスタックに着手した。
- 先行研究の参考文献の調査、ソフトウェア要求定義、アーキテクチャ設計、実装、単体テストまでは単独で遂行した。
- tarball共有後は、機械学習モデルを組み込むサーバサイドエンジニア1名とタッグで実装した。
業務内容(2017年8月から2017年9月まで)
- Wi-FiのRSSIの値と受信機の座標などの情報からRSSIの送信機の位置を推定するSLAM問題を解いた。
- 前提として、クライアント側で、RSSIの値から送信機の位置座標を推定する回帰モデルが開発されていたが、精度が良くなかった。
- ジョイン後、精度が良くなかった理由をノイズと見做し、ノイズフィルタリングの導入を提案し、カルマンフィルタをプロトタイプとして設計・実装。
- 先方が既に開発していた回帰モデルの精度向上に貢献した。
業務内容(2017年10月から2017年12月まで)
- 引き続きWi-FiのRSSIの値と受信機の座標などの情報からRSSIの送信機の位置を推定するSLAM問題を解いた。
- 新たな情報として、SLAM問題を「教師あり学習」の回帰モデルで解くほどには、「教師データ」や「マスタデータ」が得られないことがわかった。
- 既存のクライアント側で開発されていた回帰モデルでは、私のカルマンフィルタを以ってしても、精度向上には限界が見受けられた。
- そこで「教師あり学習」を切り捨て、生成モデルを用いた位置推定方法を提案した。
- 幾つかの生成モデル法を試したが、最終的には制限ボルツマンマシンによる位置推定が最も精度が高かったため、これを提案した。
環境
- 最終的に機械学習モデルはAWS Lambdaに導入した。
- 機械学習モデルの開発そのものはJupyter notebookで遂行した。
言語
- Python3で開発した。
- AWS LambdaはPython2しか動作しなかったが、
3to2
のライブラリで変換した。
工場労働者の製造行動における画像認識、異常検知
業務内容(2018年1月から2018年3月まで)
- 工場労働者の俯瞰映像から得た時系列的な画像データに対する画像認識(ヒューマンファクター・行動認識)。
- 各労働者が何の作業を行なっているのかを分類して、作業内容の可視化&監視する仕組み。
- 画像認識の分類モデル自体はライブラリを使えば現場のエンジニアでも実装できると考え、木村は特徴工学のアドバイザーとして参加。
- Donahue, J., et al (2015)やPopoola, O. P., & Wang, K. (2012)の行動認識(human behavior recognition)のモデルや、Garg, P., Aggarwal, N., & Sofat, S. (2009)やRautaray, S. S., & Agrawal, A. (2015)のハンドジェスチャー認識(hand gesture recognition)のモデルなどの先行研究を紹介。
- 特徴抽出、次元削減、事前学習などのノウハウを教示し、精度向上に貢献。
業務内容(2018年4月から2018年6月まで)
- 工場労働者の俯瞰映像から得た時系列的な画像データに対する画像認識(ヒューマンファクター・行動認識)。
- 各労働者が何の作業を行なっているのかを分類して、作業内容の可視化&監視する仕組み。
- 現場のエンジニアだけでは精度面で限界が視えたため、木村の分類モデル自体の開発に参加。
- 工場労働者の作業ミスや「サボり」を検出する「異常検知」技術
- 上記の画像認識の応用として木村から提案。
- LSTM based Encoder/Decode schemeによる異常検知方法であるEncDec-AD(Malhotra, P., et al. 2016)に画像認識用の畳み込み層を結合させたモデルの開発。
- 簡単に言えば、LSTMを二つ結合して抽出できる再構成誤差から異常度を計算する仕組み。
- 正常データのみから正常/異常の識別が可能になるので、データが得られ難いビジネス序盤に使えるparadigmとして提案した。
- 尚、畳み込み層との結合は、end-to-endの疎結合とした。訓練時はEncode/Decoderの再構成誤差をCNN側へ逆伝播させた。
業務内容(2018年7月から2018年9月まで)
- 本格的に異常検知モデルの設計に着手。
- Encoder/Decoder(Cho, K., et al., 2014, )のフレームワークを広義のAuto-Encoderと見做すなら、異常検知モデルのPoCでは、以下の5種類のモデルの比較検討を実施した。
- 積層自己符号化器(Stacked Auto-Encoder) (Le Roux, N., & Bengio, Y., 2008)
- Encoder/Decoder based on LSTM (Malhotra, P., et al. 2016)
- Encoder/Decoder based on ConvolutionalLSTM(ConvLSTM) (Xingjian, S. H. I. et al., 2015)
- Convolutional Auto-Encoder (Masci, J., et al., 2011)
- 時系列オートエンコーダ(Spatio-Temporal Auto-Encoder) (Baccouche, M., et al., 2012, Patraucean, V., et al. 2015)
- 最終的には時系列オートエンコーダが精度・速度ともに優秀であると判断し、異常検知モデルとして採用した。
業務内容(2018年10月から2018年12月まで)
- 工場労働者の製造行動の映像データを対象とした画像認識では、異常検知に必要な工場労働者の動作が、工場のマシンをはじめとした背景に埋もれてしまうため、Auto-Encoderのインターフェイス部分に「前景抽出器」を挿入する必要があった。
- そこで業務時間の空きを使って、Xu, P., et al (2014)によって提唱されたAuto-Encodersを用いた深層背景学習による前景検出器を設計し、実装した。
- ただしXu, P., et al (2014)で活用されているAuto-Encodersは、無印の、通常のStacked Auto-Encodersとなっている。画像を使うならば畳み込み演算の恩恵は受けたい。Xu, P., et al (2014)の文中でも、Convolutional Auto-Encoderを採用することが明示的に否定されている訳ではないため、Xu, P., et al (2014)で提案されている深層背景学習のモデルを拡張して、「深層畳み込み背景学習」を設計し、実装した。
- 最終的に、事前に実装した時系列オートエンコーダと上記の深層畳み込み背景学習による前景検出機能を結合させることで、異常検知モデルを構成した。
業務内容(2019年1月から2019年6月まで)
- 工場労働者の製造行動に潜む「ムリ」「ムダ」「ムラ」を検出して、製造行動の効率化を検討するための可視化ツールが求められた。
- 重要な製造行動とそうではない行動を区別できるようにするために、動画要約(video summarization)のためのRe-Seq2Seq(Zhang, K., et al., 2018)を構築し、代表的な製造行動とそうではない行動のクラスタリングを実現した。
- 動画を象徴する代表的な行動以外に「ムリ」「ムダ」「ムラ」が潜んでいるという仮定から、的を絞ることを可能にした。
- Gluonベースのmxnetで提供されているHybridBlockを拡張することでRe-Seq2Seqを実装することで、NDArray API でデバッグしつつ、実運用時はシンボリックな計算グラフとGPUで処理を高速化させることを可能にした。
業務内容(2019年7月から2019年12月まで)
- 工場労働者の製造行動における「基本動作」を詳細に「分類」する機械学習モデルのモデリングとアルゴリズム設計が求められた。
- 動画データにおけるラベル付きサンプルが真の分布を網羅するほど収集されておらず、「ラベル付け」そのものの人的コストも高まるため、少ないデータと少ないラベルの中で如何に高い精度で識別するかが問われた。
- これについては、Ghifary, M., et al.(2016)の「教師なしドメイン適応法」を用いた識別モデルの一種であるDeep reconstruction-classification networks(DRCN)を採用することで、データとラベルが少ない状況でも、ラベルなしのサンプルを活用することで、学習に活かした。
- 工場に配置できるGPUサーバのメモリが8GBに制約されていたため、小規模なモデルでパフォーマンスを発揮しなければならなかった。
- これについては、Sandler, M., et al. (2018)のMobileNet V2を採用することで、精度を落とすことなく、より小規模なモデルで識別が可能になるように設計した。
- 実際のアプリケーションでは「ラベル付け」は製造行動を実施する工場の作業者たちによって実践されるため、機械学習の専門知識を持たないユーザーが「ラベル付け」を行なった場合の誤りや不足など、いわゆる「ラベルノイズ問題」が発生することが研究段階で予測された。
- これについては、ラベルノイズ対策としての統計力学的なモデリングや誤差関数のアルゴリズムが既に提唱されているため、それらを採用した。
業務内容(2020年1月から2020年8月まで)
- 2020年1月、欧州の工場にて、上記の機械学習モデルをリリース。
- それまで可視化されていなかった製造行動の内訳や経過時間など、マネジメントに必要なデータを提供できるようにした。
- 2020年2月以降は、国内の工場に横展開。
業務内容(2020年9月から現在まで)
- 製造行動の分類に留めず、製造行動の物理的な移動コストや、作業員の認知リソースをデータ化したいという追加の依頼を受けた。
- 物体検知(object detection)を提案。某多国籍コングロマリット社内の別プロジェクトで試験的に運用されていたYoLoV3のモデルを、精度改善策を施した上で横展開する方針で進める。
- ただし物体検知だけでは、物理的な移動コストは計測できても、作業員の認知リソースを計測できないため、熱力学と情報理論(Crutchfield, J. P., & Shalizi, C. R., 1999)を応用した物体検知モデルを提案。
送迎・配送ルートの組合せ最適化問題
業務内容(2018年1月から2018年3月まで)
- 介護の送迎車の配送ルート最適化。
- 典型的な「組み合わせ最適化問題」。
- ただし単なる巡回セールスマン問題とは異なり、リアルタイムで条件が変わるため、技術選定としては強化学習(TD学習)を採用。
- この期間はユースケースのヒアリングとprototype開発のみ。
- プロトタイプも簡単なデータクラスタリングによる領域分割(Nallusamy, R. et al., 2009)を前提とした多重巡回セールスマンアルゴリズム(Bektas, T., 2006)を採用した。
業務内容(2018年4月から2018年6月まで)
- 介護の送迎車の走行/配送ルート最適化を目的とした強化学習アルゴリズムのプロトタイプ開発。
- 強化学習のハイパーパラメタを最適化させる方法として、更にシミュレーテッドアニーリング(Bertsimas, D., & Tsitsiklis, J., 1993)を採用した。
業務内容(2018年7月から2018年9月まで)
- 上記の強化学習をマルチエージェント化することで、複数の車両による送迎・配送ルートを同時に最適化するアルゴリズムを設計し、実装した。
- 強化学習のハイパーパラメタを最適化する方法として採用していたシミュレーテッドアニーリングを拡張して、量子コンピュータがなくても動作する量子アニーリングとして著名な「量子モンテカルロ法(Quantum Monte Carlo Method)」(Somma, R. D., et al., 2007)を設計し、実装した。
業務内容(2018年10月から2018年12月まで)
- 複数の車両(マルチエージェント)における最適化を効率化させるために、深層学習を関数近似器として結合させた深層強化学習の一種であるDeep Q-Network(Gupta, J. K., et al., 2017)を設計し、実装した。
- アプリケーション化のフェーズでもあるため、新たにアサインされたプロジェクトマネージャーや他のエンジニアたちと連携しながら進めていくことになった。
- ただしアサインメンバーは機械学習やデータサイエンスに関する背景知識が不足しており、「エンジニアリング」が捗っていない状況が続いたため、木村自身が顧客と調整しながら要求とインターフェイス仕様を定義するようになった。
- これに伴い、アプリケーションサイドの開発に木村は関与せず、pipでインストール可能なライブラリを設計して実装するまでで留めて、空いたリソースを開発プロジェクトの上流工程に費やすことになった。
機械学習の社内普及活動
業務内容(2018年1月から2018年12月まで)
- 機械学習の社内普及活動。
- 機械学習に関する最新論文を読み込み、課定例などでポイントを解説する取り組み。
- 上述した画像認識の関連から、例えばHoward, A. G., et al (2017)とSandler, M., et al. (2018)などのMobileNetV1/V2の2018年論文などを共有。
- 社内のメンバーが実装した機械学習に対する数理的な観点からのレビュー。
- 数理的な観点での勉強会。
- ニューラルネットワークの活性化関数、損失関数、最適化、汎化、再構成(推論)部分の数式の説明など。
某メガベンチャーにおける職務経歴詳細
某チャットボットサービスにおける「自然言語処理」を用いたチャットセンター用の簡易的な「検索エンジンシステム」の開発
期間
ロール&担当フェーズ
- 実験的なプロトタイプ開発。
- 要件定義
- アーキテクチャ設計
- ロジック設計
- 可視化UI設計
- 実装
- テスト
- 文書作成
業務内容
問題設定
- チャットボットのシステムはチャットセンターとも連携しており、チャットボットで回答できなかった質問には有人で対応するサービス設計になっている。しかしチャットセンターでは、チャットで回答すべき内容となるFAQのデータなどをExcelで管理していた。プロダクト発足当初ならば、ユーザ数も少なかったために、この体制でも機能していたが、クライアント数の増加により、非効率な運用体制が問題視されるようになった。
問題解決策
- そこで、ビジネス側と調整し、これまでExcelで管理していた内容にチャット対応時でも素早くアクセスできるようにするための簡易的な検索エンジンを実装した。機能的には、コールセンターで利用されている「音声自動応答装置(IVR)」のチャット版のようなもので、エンドユーザがチャットに書き込んだ質問文を検索エンジンの入力フォームに入力すると、それに近しい回答文を検索結果として出力する機能として設計した。
環境
データストア
言語
某チャットボットサービスの自然言語処理を用いたチャットセンター用の簡易的な「文書自動要約システム」の開発
期間
ロール&担当フェーズ
- 実験的なプロトタイプ開発。
- 要件定義
- アーキテクチャ設計
- ロジック設計
- 可視化UI設計
- 実装
- テスト
- 文書作成
業務内容
- 上述した「検索エンジンシステム」に付随して、エンドユーザがチャットで書き込んだ質問内容が比較的長い文章であった場合に、その概要を抽出する文書自動要約システムも実装した。
某チャットボットサービスにおける「強化学習」を用いたユーザーフィードバックのモックアップ開発
期間
ロール&担当フェーズ
- 実験的なプロトタイプ開発。
- 要件定義
- アーキテクチャ設計
- ロジック設計
- 可視化UI設計
- 実装
- テスト
- 文書作成
業務内容
問題設定
- チャットボットのFAQ応答では、チャットボットの回答直後に、「この回答は役に立ちましたか?」という質問がエンドユーザに投げ掛けられるが、そのエンドユーザによるフィードバックログはそれまでチャットボットの学習にもビジネス側のPDCAにも活かされていなかった。
問題解決策
- そこで、エンドユーザの評価に基づいてFAQの回答文をランク付けする強化学習アルゴリズムを構築した。ランク付けにより、ランクが高いほど次回以降の類似質問に対して優先的に回答する仕組みとした。
環境
データストア
言語
某チャットボットサービスの「シナリオ型」の対話応答ログにおけるグラフ理論を用いたデータビジュアライゼーションシステムの開発
期間
ロール&担当フェーズ
- 実験的なプロトタイプ開発。
- 要件定義
- アーキテクチャ設計
- ロジック設計
- 可視化UI設計
- 実装
- テスト
- 文書作成
業務内容
問題設定
- 某チャットボットサービスでは、チャットボットが提示する質問項目の選択肢をエンドユーザが選択していくことでFAQ対話応答を展開していく、いわゆる「シナリオ型」のサービスも提供されていた。しかしビジネス側のPDCAが回っていなかったため、「シナリオ型」の対話ログを可視化するツールを作成し、運用を提案した。
問題解決策
- 可視化ツールとしては、対話ログを対象に、グラフ理論を用いたネットワーク図を動的に作成するJupyterのシステムを実装した。ノードとエッジにより、「シナリオ型」の対話の流れや選択肢の分岐などを可視化した。これにより、エンドユーザが対話の中でどのような選択肢を選択する傾向にあるのか、選択されるFAQの割合などをビジネス側でも把握できるように配備した。(対話の流れを、ほとんどFAQサイトのページ回遊、クリックの流れに喩えて、ビジネス側が広告のノウハウで分析し易くなるように手配した。)
環境
- Tableau Server
- Jupyter Server
データストア
言語
某チャットボットサービスの語彙補強を目指した「Webクローリング&スクレイピングシステム」のモックアップ開発
期間
ロール&担当フェーズ
- 実験的なプロトタイプ開発。
- 要件定義
- アーキテクチャ設計
- ロジック設計
- 可視化UI設計
- 実装
- テスト
- 文書作成
業務内容
問題設定
- チャットボットの対話ログを対象としたクラスタ分析によって、エンドユーザの質問文の中に、チャットボットが参照するFAQ用のコーパスに登録されていない「未知語」が含まれている場合に回答の精度が落ちることが判明した。例えば、クライアント企業で提供されている「商品名」は固有名詞であることが多いため、この名詞データ収集が肝となった。
問題解決策
- そこで、Webクローリング&スクレイピングシステムを開発することにより、未知語が発覚した際に、動的に当の未知語が含まれている文書をクローリング&スクレイピングし、コーパスに追加、及びモデルの再構築を実行するシステムを実装した。
- 尚、WebクローラはGooglebotのように全てのWebページを対象とするのではなく、既存のFAQコーパスとの「文書間類似度」が一定の閾値を超えるWebページのみを対象とすることにした。これにより、FAQ応答として必要以上の学習が実行されないように配備した。
環境
- Tableau Server
- Jupyter Server
データストア
言語
某チャットボットサービスの対話ログを対象としたテキストクラスタリング&データビジュアライゼーション
期間
ロール&担当フェーズ
- 要件定義
- アーキテクチャ設計
- ロジック設計
- 可視化UI設計
- 実装
- テスト
- 文書作成
業務内容
- チャットボットのサービス設計は、クライアントがそれまで社内のオペレータを通じて応答していた内容を代行する「FAQ応答システム」となっている。
- そのため、まずはエンドユーザの質問傾向を可視化するためのテキストクラスタリング機能をPython3で実装した。可視化のポイントは、(1)チャットボットがビジネス側の期待通りに回答できているエンドユーザの質問の傾向と(2)そうではない質問を区別できるようになることであった。
- 以下のように、この期間にはエンジニアとしての開発のみならず、幾つかのデータサイエンスの手法で実験するための分析フェーズも含まれる。
- MeCabの形態素解析によるトークン化
- Word2VecあるいはTF-IDFによるベクトル化
- K-Means法やDBSCAN、BIRCH、OPTICSなどのクラスタ分析結果の比較
- クラスタリングで得られた特徴量を次元削減により二次元に圧縮した後、Tableau Serverでビジュアライゼーション
- 可視化データをビジネス側と共有、チャットボットの次期改修案などの提供
環境
- Tableau Server
- Jupyter notebook
データストア
言語
某チャットボットサービスの売上の可視化
期間
ロール&担当フェーズ
- 要件定義
- アーキテクチャ設計
- 可視化UI設計
- 実装
業務内容
問題設定
- チャットボットの売上を可視化するツールの提供をビジネス側から求められた。だがまだ始まったばかりのプロダクトであったため、会社全体として具体的なKPIなどの指標が確定していなかった。
問題解決策
- そのため、ビジネス側と調整し、KPI設計からシステム要件定義も含めて、可視化ツールの実装を行なった。最終的なシステムは、Linuxサーバ上で稼働する集計システムと、その結果を可視化するTableau Serverの構成となった。
環境
データストア
言語
某プロフェッショナルサービス企業における職務経歴詳細
在庫・補充最適化サービス AFSの改修
期間
- 2016年4月から2016年6月まで
- 社内の知人の紹介を受けて1プロジェクトのみサポート。
ロール&担当フェーズ
- 要件定義
- アーキテクチャ設計
- ロジック設計
- 可視化UI設計
- 実装
- テスト
- 文書作成
業務内容
- 顧客に提案した在庫補充のログの可視化ツールの新規開発に参加した。
環境
データストア
言語
インターネット広告事業の某ベンチャー企業における職務経歴詳細
某ファッションアプリの立ち上げ参画
期間
ロール
業務内容
- 社内DMPと接続されているミニゲームと某ファッションアプリをつなぎ込むサービスの商品設計、開発体制の立ち上げなどに参画した。
CRMツール新規受託案件獲得
期間
ロール
業務内容
- 社内DMPで可能になった「名寄せ」の仕組みを前提に、既存CRMツールのログを遡及して、KPIと照らし合わせてデータマイニングすることで、相互送客サービスの受託開発の提案に結び付くデータ分析結果を提出できた。
環境
データストア
言語
広告配信向け機械学習アルゴリズム
期間
ロール&担当フェーズ
- 商品企画
- 進捗管理
- ソフトウェア要求定義
- アーキテクチャ設計
- アルゴリズム設計
- 実装
- テスト
- API仕様書作成
- 設計レビュー
- コードレビュー
業務内容
- 広告配信の最適化および自動化のためのアルゴリズムを開発した。エンドユーザのオーディエンスデータと行動データに基づいて、「One to One」な配信を目指したサービスとなる。
- アーキテクチャ設計とアルゴリズム設計の工程では、機械学習の一分野である「強化学習」の一種である「バンディットアルゴリズム」をベイズ統計学的に拡張したThompson SamplingをPython3.4によって実装することを前提に、UMLとオブジェクト指向設計思想に基づき、設計に従事した。
- アルゴリズム設計の際には、母校の慶應義塾大学の教授を招き、社長、副社長に同席していただいた上で、事業戦略と照らし合わせつつ、仕様を決定する調整作業に従事した。大学教授のような専門家からのヒアリングスキルが上達するという個人的な付加価値が大きな案件となった。
環境
データストア
言語
- PHP5
- JavaScript
- Python3
- ShellScript
ECサイトのミニゲーム付き相互送客ツール
期間
ロール&担当フェーズ
- 商品企画
- 進捗管理
- リソース管理
- ソフトウェア要求定義
- アーキテクチャ設計
- 実装
- テスト
- リリース作業
- 保守
- API仕様書作成
- 設計レビュー
- 部下後輩の技術指導
業務内容
- ECサイトの継続率向上によるLTV(Life Time Value)の増加をKPIとしたCRMツールを開発した。内容は簡単なミニゲームで、簡素なScriptタグをECサイト上に埋め込むだけでミニゲームのコンテンツを表示することが可能になる。
- Google Compute Engine(GCE)やGoogle App Engine(GAE)などのようなプラットフォームや、Google Cloud Storage(GCS)やGoogle Cloud SQLのようなデータ収集基盤を活用することを前提に、低コストで拡張性の高いWebアプリケーションの設計を試行錯誤した。
- ミニゲームに特化したコンポーネント部分の設計に関しては、後輩のソフトウェアエンジニアに設計に挑戦させ、その設計レビューを通じて、設計方法を指導・教育した。
- 進捗管理にはプロジェクトマネジメント方法論のEVM(Earned Value Management)を採用し、データドリブンなプロジェクト管理を実践した。
- この新規事業のタイミングでPukiwikiによる仕様書の管理を提案して、実際に普及させることで、文書が無い企業文化を撲滅した。
環境
データストア
言語
Unity3D向け広告配信SDK開発
期間
ロール&担当フェーズ
- 違う部署の開発であったが、社内にUnity3Dを知るエンジニアが一人もいないため、サポート要員としてアサインされた。
- しかし社内にUnity3Dを学習できるエンジニアが一人もいなかったため、効率の観点から、要件定義以降の設計から実装までを全て担当するよう調整した。
業務内容
- 自社のADネットワークをUnity3Dにつなぎこむための独自SDKを開発した。
環境
言語
ECサイト向けレコメンドエンジン開発
期間
ロール&担当フェーズ
- ソフトウェア要求定義
- アーキテクチャ設計
- アルゴリズム設計
- プログラミング
- テスト
- リリース作
業務内容
- R言語でアソシエーション分析を応用したレコメンドエンジンを開発した。アーキテクチャとアルゴリズムの設計や実装はフルスタックに担当した。他、サーバ管理者やデザイナーとの調整も行なった。
- CTOや開発リーダーと相談し、この新規開発案件にて、当事者内に根付いていなかったオブジェクト指向分析、オブジェクト指向設計、UML、RUPなどの方法を社内で実験的に単独で実践することとなった。
環境
- Windows7 Server
- Linux(CentOS)
データストア
言語
既存CRMツールの保守・改修
期間
ロール
業務内容
- 基本的に社内に仕様書が無かったため、ほぼリバースエンジニアリング的な作業から着手した。しかし、これによりコードリーディングスキルの上達には結び付いた。エラーログの読み方など、初歩の初歩まで、先輩エンジニアにご指導いただいた。
環境
データストア
言語
- PHP5
- JavaScript
- CSS
- ShellScript
- ActionScript3
自己PR
ソースコードの公開/ライブラリの配布
キュレーションメディア/ブログの自動生成のプロトタイプ
- https://media.accel-brain.com/
- 事前に2, 3年間、Twitterやブログ、ニュースサイト、法律の条文などのテキストデータをWebクローラ&Webスクレイピングで収集して、コーパスを構築しておく。
- ニュースサイト、ソーシャルメディア、企業の公式Webサイト、その他公私問わず様々なWebページを対象に、「強化学習」のアルゴリズムを用いたWebクローリング&Webスクレイピングを実行することでデータを収集。
- 「深層学習」の一種でもある「深層ボルツマンマシン」を「積層自己符号化器」として応用することにより、膨大なテキストデータを次元削減。
- 各Webページの「文書自動要約」を実行することで、当該文書の概要や要約文となる文章を3つほど抽出し、引用。「まとめ」記事の体裁を組み立てる。
Unity3Dのアセット
出版物
- 概念実証(Ploof of Concept: PoC)や研究開発(R&D)の背景に当たる思想を記述。
- ラベル付け(アノテーション)のコスト削減の方法など、近年進展している深層学習の統計力学的な背景にも踏み込んでいる。
- 「ファイナンス機械学習」の統計学・統計力学的な背景を詳解している。
- ポートフォリオ最適化問題における深層強化学習の機能を分析している。
- 価格変動(ボラティリティ)モデリングにおけるGANの機能を分析している。
- 価格変動に関する自己アフィン過程など、数学的背景も軽く解説している。
- WebクローラーやWebスクレイピングを用いた文書自動要約の機能を解説している。
- Transformer、GPT-3、BERTなどのニューラルネットワーク言語モデルを用いた文章生成の機能を解説している。
- チャットボットの歴史的背景を1960年代まで遡り解説している。
- 19世紀末ウィーンの時代と関わるルートヴィッヒ・ボルツマン、ジェームズ・クラーク・マクスウェル、ジョセフ・ウィラード・ギブスらによって展開された熱力学、量子力学、そして統計力学の展開が、現代広く普及している「統計的機械学習(statistical machine learning)」の設計思想の根源的な位置付けにあることを解説している。
- データは嘘を吐かないが、データで噓を吐くことはできる。この前提から、データビジュアライゼーションに潜むフェイクニュースを見抜く術を講じている。その際本書では、絵画や映画のような芸術作品が、データビジュアライゼーションと接点を有しているという歴史的経緯から、理論的には美学に準拠している。
参考文献
- ここでは、私の日々の業務やプライベートの活動を支えている先行事例を紹介しておく。
強化学習モデル
- Richard Sutton and Andrew Barto (1998). Reinforcement Learning. MIT Press.
- Watkins, C. J., & Dayan, P. (1992). Q-learning. Machine learning, 8(3-4), 279-292.
- Watkins, C. J. C. H. (1989). Learning from delayed rewards (Doctoral dissertation, University of Cambridge).
バンディットアルゴリズム
- Agrawal, S., & Goyal, N. (2011). Analysis of Thompson sampling for the multi-armed bandit problem. arXiv preprint arXiv:1111.1797.
- Bubeck, S., & Cesa-Bianchi, N. (2012). Regret analysis of stochastic and nonstochastic multi-armed bandit problems. arXiv preprint arXiv:1204.5721.
- Chapelle, O., & Li, L. (2011). An empirical evaluation of thompson sampling. In Advances in neural information processing systems (pp. 2249-2257).
- Kaufmann, E., Cappe, O., & Garivier, A. (2012). On Bayesian upper confidence bounds for bandit problems. In International Conference on Artificial Intelligence and Statistics (pp. 592-600).
- White, J. (2012). Bandit algorithms for website optimization. ” O’Reilly Media, Inc.”.
深層強化学習モデル
- Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D., & Riedmiller, M. (2013). Playing atari with deep reinforcement learning. arXiv preprint arXiv:1312.5602.
マルチエージェント型深層強化学習
- Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder-decoder for statistical machine translation. arXiv preprint arXiv:1406.1078.
- Egorov, M. (2016). Multi-agent deep reinforcement learning.(https://pdfs.semanticscholar.org/dd98/9d94613f439c05725bad958929357e365084.pdf)
- Gupta, J. K., Egorov, M., & Kochenderfer, M. (2017, May). Cooperative multi-agent control using deep reinforcement learning. In International Conference on Autonomous Agents and Multiagent Systems (pp. 66-83). Springer, Cham.
関数近似器としての深層学習
- Malhotra, P., Ramakrishnan, A., Anand, G., Vig, L., Agarwal, P., & Shroff, G. (2016). LSTM-based encoder-decoder for multi-sensor anomaly detection. arXiv preprint arXiv:1607.00148.
- Sainath, T. N., Vinyals, O., Senior, A., & Sak, H. (2015, April). Convolutional, long short-term memory, fully connected deep neural networks. In Acoustics, Speech and Signal Processing (ICASSP), 2015 IEEE International Conference on (pp. 4580-4584). IEEE.
- Xingjian, S. H. I., Chen, Z., Wang, H., Yeung, D. Y., Wong, W. K., & Woo, W. C. (2015). Convolutional LSTM network: A machine learning approach for precipitation nowcasting. In Advances in neural information processing systems (pp. 802-810).
アニーリング器
- Bektas, T. (2006). The multiple traveling salesman problem: an overview of formulations and solution procedures. Omega, 34(3), 209-219.
- Du, K. L., & Swamy, M. N. S. (2016). Search and optimization by metaheuristics (p. 434). New York City: Springer.
- Nallusamy, R., Duraiswamy, K., Dhanalaksmi, R., & Parthiban, P. (2009). Optimization of non-linear multiple traveling salesman problem using k-means clustering, shrink wrap algorithm and meta-heuristics. International Journal of Nonlinear Science, 8(4), 480-487.
シミュレーテッドアニーリング
- Bertsimas, D., & Tsitsiklis, J. (1993). Simulated annealing. Statistical science, 8(1), 10-15. Mezard, M., & Montanari, A. (2009). Information, physics, and computation. Oxford University Press.
量子アニーリング
- Das, A., & Chakrabarti, B. K. (Eds.). (2005). Quantum annealing and related optimization methods (Vol. 679). Springer Science & Business Media.
- Edwards, S. F., & Anderson, P. W. (1975). Theory of spin glasses. Journal of Physics F: Metal Physics, 5(5), 965. Facchi, P., & Pascazio, S. (2008). Quantum Zeno dynamics: mathematical and physical aspects. Journal of Physics A: Mathematical and Theoretical, 41(49), 493001.
- Heim, B., Rønnow, T. F., Isakov, S. V., & Troyer, M. (2015). Quantum versus classical annealing of Ising spin glasses. Science, 348(6231), 215-217.
- Messiah, A. (1966). Quantum mechanics. 2 (1966). North-Holland Publishing Company.
- 鈴木正. (2008). 「組み合わせ最適化問題と量子アニーリング: 量子断熱発展の理論と性能評価」.,『物性研究』, 90(4): pp598-676. 参照箇所はpp619-624.
- 西森秀稔、大関真之(2018) 『量子アニーリングの基礎』須藤 彰三、岡 真 監修、共立出版、参照箇所はpp9-46.
統計的機械学習
- Ackley, D. H., Hinton, G. E., & Sejnowski, T. J. (1985). A learning algorithm for Boltzmann machines. Cognitive science, 9(1), 147-169.
- Hinton, G. E. (2002). Training products of experts by minimizing contrastive divergence. Neural computation, 14(8), 1771-1800.
- 岡谷 貴之 (著) 深層学習 (機械学習プロフェッショナルシリーズ)、講談社、2015
- 麻生 英樹ほか (著) 深層学習 Deep Learning (監修:人工知能学会)、近代科学社、2015
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning (adaptive computation and machine learning series). Adaptive Computation and Machine Learning series, 800.
MobileNets
- Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., ... & Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861.
- Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). Inverted residuals and linear bottlenecks: Mobile networks for classification, detection and segmentation. arXiv preprint arXiv:1801.04381.
ボルツマンマシン系
- Ackley, D. H., Hinton, G. E., & Sejnowski, T. J. (1985). A learning algorithm for Boltzmann machines. Cognitive science, 9(1), 147-169.
- Boulanger-Lewandowski, N., Bengio, Y., & Vincent, P. (2012). Modeling temporal dependencies in high-dimensional sequences: Application to polyphonic music generation and transcription. arXiv preprint arXiv:1206.6392.
- Eslami, S. A., Heess, N., Williams, C. K., & Winn, J. (2014). The shape boltzmann machine: a strong model of object shape. International Journal of Computer Vision, 107(2), 155-176. Le Roux, N., & Bengio, Y. (2008). Representational power of restricted Boltzmann machines and deep belief networks. Neural computation, 20(6), 1631-1649.
- Lyu, Q., Wu, Z., Zhu, J., & Meng, H. (2015, June). Modelling High-Dimensional Sequences with LSTM-RTRBM: Application to Polyphonic Music Generation. In IJCAI (pp. 4138-4139).
- Lyu, Q., Wu, Z., & Zhu, J. (2015, October). Polyphonic music modelling with LSTM-RTRBM. In Proceedings of the 23rd ACM international conference on Multimedia (pp. 991-994). ACM.
- Salakhutdinov, R., & Hinton, G. E. (2009). Deep boltzmann machines. InInternational conference on artificial intelligence and statistics (pp. 448-455).
- Sutskever, I., Hinton, G. E., & Taylor, G. W. (2009). The recurrent temporal restricted boltzmann machine. In Advances in Neural Information Processing Systems (pp. 1601-1608).
Encoder/Decoder schemes
- Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder-decoder for statistical machine translation. arXiv preprint arXiv:1406.1078.
- Malhotra, P., Ramakrishnan, A., Anand, G., Vig, L., Agarwal, P., & Shroff, G. (2016). LSTM-based encoder-decoder for multi-sensor anomaly detection. arXiv preprint arXiv:1607.00148.
- Xingjian, S. H. I., Chen, Z., Wang, H., Yeung, D. Y., Wong, W. K., & Woo, W. C. (2015). Convolutional LSTM network: A machine learning approach for precipitation nowcasting. In Advances in neural information processing systems (pp. 802-810).
Auto-Encoders
- Baccouche, M., Mamalet, F., Wolf, C., Garcia, C., & Baskurt, A. (2012, September). Spatio-Temporal Convolutional Sparse Auto-Encoder for Sequence Classification. In BMVC (pp. 1-12).
- Chong, Y. S., & Tay, Y. H. (2017, June). Abnormal event detection in videos using spatiotemporal autoencoder. In International Symposium on Neural Networks (pp. 189-196). Springer, Cham.
- Masci, J., Meier, U., Cireşan, D., & Schmidhuber, J. (2011, June). Stacked convolutional auto-encoders for hierarchical feature extraction. In International Conference on Artificial Neural Networks (pp. 52-59). Springer, Berlin, Heidelberg.
- Patraucean, V., Handa, A., & Cipolla, R. (2015). Spatio-temporal video autoencoder with differentiable memory. arXiv preprint arXiv:1511.06309.
行動認識
- Donahue, J., Anne Hendricks, L., Guadarrama, S., Rohrbach, M., Venugopalan, S., Saenko, K., & Darrell, T. (2015). Long-term recurrent convolutional networks for visual recognition and description. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 2625-2634).
- Popoola, O. P., & Wang, K. (2012). Video-based abnormal human behavior recognition—A review. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 42(6), 865-878.
ハンドジェスチャー認識
- Garg, P., Aggarwal, N., & Sofat, S. (2009). Vision based hand gesture recognition. World Academy of Science, Engineering and Technology, 49(1), 972-977.
- Rautaray, S. S., & Agrawal, A. (2015). Vision based hand gesture recognition for human computer interaction: a survey. Artificial Intelligence Review, 43(1), 1-54.
深層背景学習による前景検出器
- Braham, M., & Van Droogenbroeck, M. (2016). Deep background subtraction with scene-specific convolutional neural networks. In IEEE International Conference on Systems, Signals and Image Processing (IWSSIP), Bratislava 23-25 May 2016 (pp. 1-4). IEEE.
- Xu, P., Ye, M., Li, X., Liu, Q., Yang, Y., & Ding, J. (2014, November). Dynamic background learning through deep auto-encoder networks. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 107-116). ACM.
- Yang, B., & Zou, L. (2015). Robust foreground detection using block-based RPCA. Optik-International Journal for Light and Electron Optics, 126(23), 4586-4590.
動画要約
- Zhang, K., Grauman, K., & Sha, F. (2018). Retrospective encoders for video summarization. In Proceedings of the European Conference on Computer Vision (ECCV) (pp. 383-399).
ドメイン適応
- Ghifary, M., Kleijn, W. B., Zhang, M., Balduzzi, D., & Li, W. (2016, October). Deep reconstruction-classification networks for unsupervised domain adaptation. In European Conference on Computer Vision (pp. 597-613). Springer, Cham.
ラベルノイズ対策
- Frénay, B., & Verleysen, M. (2013). Classification in the presence of label noise: a survey. IEEE transactions on neural networks and learning systems, 25(5), 845-869.
- Natarajan, N., Dhillon, I. S., Ravikumar, P. K., & Tewari, A. (2013). Learning with noisy labels. In Advances in neural information processing systems (pp. 1196-1204).
- Patrini, G., Rozza, A., Krishna Menon, A., Nock, R., & Qu, L. (2017). Making deep neural networks robust to label noise: A loss correction approach. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 1944-1952).
- Sukhbaatar, S., Bruna, J., Paluri, M., Bourdev, L., & Fergus, R. (2014). Training convolutional networks with noisy labels. arXiv preprint arXiv:1406.2080.
- Wang, D., & Tan, X. (2014, August). Label-denoising auto-encoder for classification with inaccurate supervision information. In 2014 22nd International Conference on Pattern Recognition (pp. 3648-3653). IEEE.
- Wilson, D. R., & Martinez, T. R. (1997, July). Instance pruning techniques. In ICML (Vol. 97, No. 1997, pp. 400-411).
物体検知
YOLO
- Bochkovskiy, A., Wang, C. Y., & Liao, H. Y. M. (2020). YOLOv4: Optimal Speed and Accuracy of Object Detection. arXiv preprint arXiv:2004.10934.
- Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779-788).
- Redmon, J., & Farhadi, A. (2017). YOLO9000: better, faster, stronger. arXiv preprint., p7264-7265.
- Redmon, J., & Farhadi, A. (2018). Yolov3: An incremental improvement. arXiv preprint arXiv:1804.02767.
Faster-RCNN
- Chen, Y., Li, W., Sakaridis, C., Dai, D., & Van Gool, L. (2018). Domain adaptive faster r-cnn for object detection in the wild. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 3339-3348).
- Ganin, Y., & Lempitsky, V. (2015, June). Unsupervised domain adaptation by backpropagation. In International conference on machine learning (pp. 1180-1189). PMLR.
- He, Z., & Zhang, L. (2019). Multi-adversarial faster-rcnn for unrestricted object detection. In Proceedings of the IEEE International Conference on Computer Vision (pp. 6668-6677).
自己教師あり学習(ラベル付けのコスト削減)
- Bousmalis, K., Silberman, N., Dohan, D., Erhan, D., & Krishnan, D. (2017). Unsupervised pixel-level domain adaptation with generative adversarial networks. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 3722-3731).
- Chen, Y. C., Lin, Y. Y., Yang, M. H., & Huang, J. B. (2019). Crdoco: Pixel-level domain transfer with cross-domain consistency. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 1791-1800).
- Ghifary, M., Kleijn, W. B., Zhang, M., Balduzzi, D., & Li, W. (2016, October). Deep reconstruction-classification networks for unsupervised domain adaptation. In European Conference on Computer Vision (pp. 597-613). Springer, Cham.
- Glorot, X., Bordes, A., & Bengio, Y. (2011). Domain adaptation for large-scale sentiment classification: A deep learning approach. In Proceedings of the 28th international conference on machine learning (ICML-11) (pp. 513-520).
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning (adaptive computation and machine learning series). Adaptive Computation and Machine Learning series, 800.
- Jing, L., & Tian, Y. (2020). Self-supervised visual feature learning with deep neural networks: A survey. IEEE Transactions on Pattern Analysis and Machine Intelligence.
- Xu, J., Xiao, L., & López, A. M. (2019). Self-supervised domain adaptation for computer vision tasks. IEEE Access, 7, 156694-156706.
その他の算術、アルゴリズム、正則化技法など
- Dumoulin, V., & Visin, F. (2016). A guide to convolution arithmetic for deep learning. arXiv preprint arXiv:1603.07285.
- He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778).
- Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.
- Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: a simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research, 15(1), 1929-1958.
- Zaremba, W., Sutskever, I., & Vinyals, O. (2014). Recurrent neural network regularization. arXiv preprint arXiv:1409.2329.
自然言語処理
- Matthew A. Russell 著、佐藤 敏紀、瀬戸口 光宏、原川 浩一 監訳、長尾 高弘 訳『入門 ソーシャルデータ 第2版――ソーシャルウェブのデータマイニング』 2014年06月 発行
次元削減器としての深層学習
- Boulanger-Lewandowski, N., Bengio, Y., & Vincent, P. (2012). Modeling temporal dependencies in high-dimensional sequences: Application to polyphonic music generation and transcription. arXiv preprint arXiv:1206.6392.
- Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder-decoder for statistical machine translation. arXiv preprint arXiv:1406.1078.
- Luhn, Hans Peter. "The automatic creation of literature abstracts." IBM Journal of research and development 2.2 (1958): 159-165.
- Lyu, Q., Wu, Z., Zhu, J., & Meng, H. (2015, June). Modelling High-Dimensional Sequences with LSTM-RTRBM: Application to Polyphonic Music Generation. In IJCAI (pp. 4138-4139).
- Lyu, Q., Wu, Z., & Zhu, J. (2015, October). Polyphonic music modelling with LSTM-RTRBM. In Proceedings of the 23rd ACM international conference on Multimedia (pp. 991-994). ACM.
- Sutskever, I., Hinton, G. E., & Taylor, G. W. (2009). The recurrent temporal restricted boltzmann machine. In Advances in Neural Information Processing Systems (pp. 1601-1608).
熱力学と情報理論
- Anguita, D., Ghio, A., Oneto, L., Parra, X., & Reyes-Ortiz, J. L. (2013, April). A public domain dataset for human activity recognition using smartphones. In Esann.
- Bandt, C., & Pompe, B. (2002). Permutation entropy: a natural complexity measure for time series. Physical review letters, 88(17), 174102.
- Bennett, C. (1988). "Logical Depth and Physical Complexity", In Rolf Herken, The universal Turning Machine: A Half-Century Survey, Oxford University Press, 1988, pp.227-257.
- Bertschinger, N., Rauh, J., Olbrich, E., Jost, J., & Ay, N. (2014). Quantifying unique information. Entropy, 16(4), 2161-2183.
- Coplien, J., Hoffman, D., & Weiss, D. (1998). Commonality and variability in software engineering. IEEE software, 15(6), 37-45.
- Crutchfield, J. P., & Shalizi, C. R. (1999). Thermodynamic depth of causal states: Objective complexity via minimal representations. Physical review E, 59(1), 275.
- Gilbreth, F. B., & Gilbreth, L. M. (1924). Classifying the elements of work. Management and Administration, 8(2), 151-154.
- Drucker, P. F. (1954). The practice of management: A study of the most important function in America society. Harper & Brothers.
- Jiang, W., & Yin, Z. (2015, October). Human activity recognition using wearable sensors by deep convolutional neural networks. In Proceedings of the 23rd ACM international conference on Multimedia (pp. 1307-1310).
- Koskimaki, H., Huikari, V., Siirtola, P., Laurinen, P., & Roning, J. (2009, June). Activity recognition using a wrist-worn inertial measurement unit: A case study for industrial assembly lines. In 2009 17th Mediterranean Conference on Control and Automation (pp. 401-405). IEEE.
- James, R. G., Barnett, N., & Crutchfield, J. P. (2016). Information flows? A critique of transfer entropies. Physical review letters, 116(23), 238701.
- Lloyd, S., & Pagels, H. (1988). Complexity as thermodynamic depth. Annals of physics, 188(1), pp186-213.
- March, James G., & Simon, Herbert. (1993) Organizations, Second Edition, John Wiley & Sons.
- Peterek, T., Penhaker, M., Gajdoš, P., & Dohnálek, P. (2014). Comparison of classification algorithms for physical activity recognition. In Innovations in bio-inspired computing and applications (pp. 123-131). Springer, Cham.
- Schreiber, T. (2000). Measuring information transfer. Physical review letters, 85(2), 461.
- Stiefmeier, T., Ogris, G., Junker, H., Lukowicz, P., & Troster, G. (2006, October). Combining motion sensors and ultrasonic hands tracking for continuous activity recognition in a maintenance scenario. In 2006 10th IEEE International Symposium on Wearable Computers (pp. 97-104). IEEE.