README_kimura.md :職務経歴書(木村正彬)

この文書について

連絡先

独立前の経歴概要

独立後の経歴概要

# 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)関連

強化学習問題の枠組み

  1. ベンチャー企業では、アドテクノロジー領域の配信アルゴリズムに「強化学習(Reinforcement Learning)」(Sutton., R, Barto, A., 1998)の一種である「バンディットアルゴリズム(Bandit algorithms)」(White, J., 2012)を採用し、設計・実装・検証までフルスタックに実施した。
  2. 某多国籍コングロマリットでは、訪問介護の送迎ルートや宅配業者の宅配ルートに関する「組み合わせ最適化問題(Combinatorial optimization problem)」(Du, K. L., & Swamy, M. N. S., 2016)に対して、「深層強化学習(Deep Reinforcement Learning)」のモデルの一つであるDeep Q-Network(Mnih, V., et al., 2013)のアルゴリズムを応用する概念実証を展開し、アプリケーション化に着手している。

プライベートの活動

  1. Python3で「強化学習」の一種である「Q学習(Q-Learning)」のソースコードやJupyter Notebookを公開している。
探索アルゴリズムの可視化

以下の二つの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製)

統計的機械学習問題の枠組み

業務経験

  1. 某多国籍コングロマリットでは、後述する「SLAM(Simultaneously Localization And Mapping)問題」の枠組みとの関連から、IoT事業のセンシングデータの一つであるRSSI(Received Signal Strength Indication)を利用したSLAM問題の特徴抽出器として採用した。
  2. 某多国籍コングロマリットの別案件では、上述した配送ルートの組み合わせ最適化問題に対しても、「次元削減(Dimensions reduction)」や「関数近似(Function Approximation)」の方法として採用した。
  3. 同様に某多国籍コングロマリットの別案件では、工場労働者の製造行動の映像データを対象とした画像認識による異常検知モデルを実装した。異常検知モデルにはEncDec-AD(Malhotra, P., et al. 2016)のフレームワークを採用した。Encoder/Decoder(Cho, K., et al., 2014, )のフレームワークを広義のAuto-Encoderと見做すなら、異常検知モデルのPoCでは、以下の5種類のモデルの比較検討を実施した。
  4. 工場労働者の製造行動の映像データを対象とした画像認識では、異常検知に必要な工場労働者の動作が、工場のマシンをはじめとした背景に埋もれてしまうため、Auto-Encoderのインターフェイス部分に「前景抽出器」を挿入する必要があった。そこで業務時間の空きを使って、Xu, P., et al (2014)によって提唱されたAuto-Encodersを用いた深層背景学習による前景検出器を設計し、実装した。
  5. 以上の背景から、とりわけ2018年の某多国籍コングロマリットで実施した概念実証(PoC)では、問題を設定し、設定した問題の解決策として機能する5種類以上のAuto-Encodersを設計し、実装し、制度や速度の検証実験を展開した。

プライベートの活動

  1. Pythonで「制限ボルツマンマシン(Restricted Boltzmann machine: RBM)」、「深層ボルツマンマシン(Deep Boltzmann machine: DBM)」のライブラリを公開している。
  2. 他にも以下のような時系列的なデータの生成モデルとして機能するRBMも構築できるよう、ライブラリを拡張した。
  3. DBMの拡張としては、画像のセグメンテーションとして活用できるShape Boltzmann Machine(Shape-BM)(Eslami, S. A., et al. 2014)についても、本ライブラリで実装できるようにした。

  4. これらのAuto-EncoderとしてのDBMsは、既存の著名な深層学習の機能的等価物として記述できる。そこで本ライブラリでは、次のAuto-Encodersのソースコードも公開することで、各Auto-Encodersの精度や速度を比較することを可能にしている。
  5. 本ライブラリでは、上記のEncoder/Decoder based on ConvolutionalLSTM(ConvLSTM)とConvolutional Auto-Encoderを構造的に結合させることで設計できる「時系列オートエンコーダ(Spatio-Temporal Auto-Encoder)」も実装できるようにしている。

Auto-Encodersによる画像の再構成

下図はShape Boltzmann MachineとConvolutional Auto-Encoderによる画像の再構成過程をGIFアニメーションで比較している。

Image in the Weizmann horse dataset.

Reconstructed image by Shape-BM.

Reconstructed image by Convolutional Auto-Encoder.

それぞれthe Weizmann horse datasetの馬の画像を参照している。二つのモデルは、重み行列の初期化戦略こそガウス分布のサンプリングで共通しているが、学習アルゴリズムは全く異なる。再構成されていく過程も、再構成の結果も異なる。再構成画像を比較することは、モデルやアルゴリズムの差異を視覚的に把握する上で有用となる。

尤も、Auto-Encodersのパラダイムにおいて肝要となるのは重み行列やバイアスベクトルの事前学習結果なのであって、再構成画像の推論結果なのではない。本ライブラリではこの事前学習結果の抽出から転移学習までサポートする機能を提供している。

詳細は以下のリポジトリと文書で記述している。

GitHub
PyPi
Wheel files
API Doc(Sphinx製)

SLAM問題/システム同定問題の枠組み

業務経験

  1. 某多国籍コングロマリットでは、Wi-FiのRSSIのセンシングデータから送信機の位置推定を実行する機械学習モデルの設計・実装・検証まで展開した。

自然言語処理

業務経験

プライベートの活動

  1. Python3で初歩的なデータクラスタリングやフィルタリング技術に基づいた「文書自動要約」のソースコードを公開している。
  2. Webスクレイピングのデモコードと共に提供している。
  3. 自然文の次元削減機能として、Encoder/Decoder based on LSTM(Cho, K., et al., 2014)のコードも公開している。
GitHub
PyPi
API Doc(Sphinx製)

ソフトウェア・アーキテクチャ関連

習熟しているドメイン

アーキテクチャ設計

経験環境・言語

フレームワーク

ライブラリ

MxNet
PyTorch
機械学習系
その他
ミドルウェア
OS
プログラミング言語
クラウドサービス
設計サポートツール
プロジェクト管理ツール
その他開発プロジェクト関連

経歴概要

フリーランス & 法人での経歴

某商社(2020年9月から現在まで)

某IT企業(2021年8月から現在まで)

某医療機器メーカー(2021年2月から2021年3月まで)

某多国籍コングロマリット(2017年8月から現在まで)

受注内容

正社員時代の経歴

某メガベンチャー(2016年8月から2017年7月まで)

事業内容

某プロフェッショナルサービス企業(2016年3月から2016年6月まで)

事業内容

インターネット広告事業の某ベンチャー企業(2012年4月から2016年2月まで)

事業内容

職務経歴詳細

某多国籍コングロマリットにおける職務経歴詳細

クラウドサービス支援(センサーデータを対象とした機械学習モデルの概念実証、研究開発)

期間

ロール

担当フェーズ

業務内容(2017年8月から2017年9月まで)

  1. Wi-FiのRSSIの値と受信機の座標などの情報からRSSIの送信機の位置を推定するSLAM問題を解いた。
  2. 前提として、クライアント側で、RSSIの値から送信機の位置座標を推定する回帰モデルが開発されていたが、精度が良くなかった。
  3. ジョイン後、精度が良くなかった理由をノイズと見做し、ノイズフィルタリングの導入を提案し、カルマンフィルタをプロトタイプとして設計・実装。
  4. 先方が既に開発していた回帰モデルの精度向上に貢献した。

業務内容(2017年10月から2017年12月まで)

  1. 引き続きWi-FiのRSSIの値と受信機の座標などの情報からRSSIの送信機の位置を推定するSLAM問題を解いた。
  2. 新たな情報として、SLAM問題を「教師あり学習」の回帰モデルで解くほどには、「教師データ」や「マスタデータ」が得られないことがわかった。
  3. 既存のクライアント側で開発されていた回帰モデルでは、私のカルマンフィルタを以ってしても、精度向上には限界が見受けられた。
  4. そこで「教師あり学習」を切り捨て、生成モデルを用いた位置推定方法を提案した。

環境

言語

工場労働者の製造行動における画像認識、異常検知

業務内容(2018年1月から2018年3月まで)

  1. 工場労働者の俯瞰映像から得た時系列的な画像データに対する画像認識(ヒューマンファクター・行動認識)。

業務内容(2018年4月から2018年6月まで)

  1. 工場労働者の俯瞰映像から得た時系列的な画像データに対する画像認識(ヒューマンファクター・行動認識)。
  2. 工場労働者の作業ミスや「サボり」を検出する「異常検知」技術

業務内容(2018年7月から2018年9月まで)

  1. 本格的に異常検知モデルの設計に着手。
  2. Encoder/Decoder(Cho, K., et al., 2014, )のフレームワークを広義のAuto-Encoderと見做すなら、異常検知モデルのPoCでは、以下の5種類のモデルの比較検討を実施した。
  3. 最終的には時系列オートエンコーダが精度・速度ともに優秀であると判断し、異常検知モデルとして採用した。

業務内容(2018年10月から2018年12月まで)

  1. 工場労働者の製造行動の映像データを対象とした画像認識では、異常検知に必要な工場労働者の動作が、工場のマシンをはじめとした背景に埋もれてしまうため、Auto-Encoderのインターフェイス部分に「前景抽出器」を挿入する必要があった。
  2. 最終的に、事前に実装した時系列オートエンコーダと上記の深層畳み込み背景学習による前景検出機能を結合させることで、異常検知モデルを構成した。

業務内容(2019年1月から2019年6月まで)

  1. 工場労働者の製造行動に潜む「ムリ」「ムダ」「ムラ」を検出して、製造行動の効率化を検討するための可視化ツールが求められた。
  2. Gluonベースのmxnetで提供されているHybridBlockを拡張することでRe-Seq2Seqを実装することで、NDArray API でデバッグしつつ、実運用時はシンボリックな計算グラフとGPUで処理を高速化させることを可能にした。

業務内容(2019年7月から2019年12月まで)

  1. 工場労働者の製造行動における「基本動作」を詳細に「分類」する機械学習モデルのモデリングとアルゴリズム設計が求められた。

業務内容(2020年1月から2020年8月まで)

  1. 2020年1月、欧州の工場にて、上記の機械学習モデルをリリース。
  2. 2020年2月以降は、国内の工場に横展開。

業務内容(2020年9月から現在まで)

  1. 製造行動の分類に留めず、製造行動の物理的な移動コストや、作業員の認知リソースをデータ化したいという追加の依頼を受けた。

送迎・配送ルートの組合せ最適化問題

業務内容(2018年1月から2018年3月まで)

  1. 介護の送迎車の配送ルート最適化。

業務内容(2018年4月から2018年6月まで)

  1. 介護の送迎車の走行/配送ルート最適化を目的とした強化学習アルゴリズムのプロトタイプ開発。

業務内容(2018年7月から2018年9月まで)

  1. 上記の強化学習をマルチエージェント化することで、複数の車両による送迎・配送ルートを同時に最適化するアルゴリズムを設計し、実装した。
  2. 強化学習のハイパーパラメタを最適化する方法として採用していたシミュレーテッドアニーリングを拡張して、量子コンピュータがなくても動作する量子アニーリングとして著名な「量子モンテカルロ法(Quantum Monte Carlo Method)」(Somma, R. D., et al., 2007)を設計し、実装した。

業務内容(2018年10月から2018年12月まで)

  1. 複数の車両(マルチエージェント)における最適化を効率化させるために、深層学習を関数近似器として結合させた深層強化学習の一種であるDeep Q-Network(Gupta, J. K., et al., 2017)を設計し、実装した。
  2. アプリケーション化のフェーズでもあるため、新たにアサインされたプロジェクトマネージャーや他のエンジニアたちと連携しながら進めていくことになった。

機械学習の社内普及活動

業務内容(2018年1月から2018年12月まで)

  1. 機械学習の社内普及活動。

某メガベンチャーにおける職務経歴詳細

某チャットボットサービスにおける「自然言語処理」を用いたチャットセンター用の簡易的な「検索エンジンシステム」の開発

期間

ロール&担当フェーズ

業務内容

問題設定
問題解決策

環境

データストア

言語

某チャットボットサービスの自然言語処理を用いたチャットセンター用の簡易的な「文書自動要約システム」の開発

期間

ロール&担当フェーズ

業務内容

某チャットボットサービスにおける「強化学習」を用いたユーザーフィードバックのモックアップ開発

期間

ロール&担当フェーズ

業務内容

問題設定
問題解決策

環境

データストア

言語

某チャットボットサービスの「シナリオ型」の対話応答ログにおけるグラフ理論を用いたデータビジュアライゼーションシステムの開発

期間

ロール&担当フェーズ

業務内容

問題設定
問題解決策

環境

データストア

言語

某チャットボットサービスの語彙補強を目指した「Webクローリング&スクレイピングシステム」のモックアップ開発

期間

ロール&担当フェーズ

業務内容

問題設定
問題解決策

環境

データストア

言語

某チャットボットサービスの対話ログを対象としたテキストクラスタリング&データビジュアライゼーション

期間

ロール&担当フェーズ

業務内容

環境

データストア

言語

某チャットボットサービスの売上の可視化

期間

ロール&担当フェーズ

業務内容

問題設定
問題解決策

環境

データストア

言語

某プロフェッショナルサービス企業における職務経歴詳細

在庫・補充最適化サービス AFSの改修

期間

ロール&担当フェーズ

業務内容

環境

データストア

言語

インターネット広告事業の某ベンチャー企業における職務経歴詳細

某ファッションアプリの立ち上げ参画

期間

ロール

業務内容

CRMツール新規受託案件獲得

期間

ロール

業務内容

環境

データストア

言語

広告配信向け機械学習アルゴリズム

期間

ロール&担当フェーズ

業務内容

環境

データストア

言語

ECサイトのミニゲーム付き相互送客ツール

期間

ロール&担当フェーズ

業務内容

環境

データストア

言語

Unity3D向け広告配信SDK開発

期間

ロール&担当フェーズ

業務内容

環境

言語

ECサイト向けレコメンドエンジン開発

期間

ロール&担当フェーズ

業務内容

環境

データストア

言語

既存CRMツールの保守・改修

期間

ロール

業務内容

環境

データストア

言語

自己PR

ソースコードの公開/ライブラリの配布

キュレーションメディア/ブログの自動生成のプロトタイプ

Unity3Dのアセット

出版物

「AIの民主化」時代の企業内研究開発: 深層学習の「実学」としての機能分析

AI vs. ノイズトレーダーとしての投資家たち: 「アルゴリズム戦争」時代の証券投資戦略

自然言語処理のバベル: 文書自動要約、文章生成AI、チャットボットの意味論

統計的機械学習の根源: 熱力学、量子力学、統計力学における天才物理学者たちの神学的な理念

データビジュアライゼーションのメディア美学: ハイブリッド戦略の魔術師たち

参考文献

強化学習モデル

バンディットアルゴリズム

深層強化学習モデル

マルチエージェント型深層強化学習

関数近似器としての深層学習

アニーリング器

シミュレーテッドアニーリング

量子アニーリング

統計的機械学習

MobileNets

ボルツマンマシン系

Encoder/Decoder schemes

Auto-Encoders

行動認識

ハンドジェスチャー認識

深層背景学習による前景検出器

動画要約

ドメイン適応

ラベルノイズ対策

物体検知

YOLO

Faster-RCNN

自己教師あり学習(ラベル付けのコスト削減)

その他の算術、アルゴリズム、正則化技法など

自然言語処理

次元削減器としての深層学習

熱力学と情報理論