| Japanese | English |
back to Profile
業績
コンテスト
-
Ryo Kanbayashi
"Realization of Grid Technology for Anyone",
Intel ISEF 2004, May 2004.
特許
-
神林 亮, 橋本 剛, 出願人:富士通株式会社
"計算機システム、処理方法及びジョブ処理プログラム", 特許6446989
書籍
-
神林 亮
"私がチャレンジしたSBMデータマイニング",
"ソーシャルブックマークは進化し続ける?ソーシャルブックマーク研究会の議論から",
情報処理学会誌, Vol.19 No.12 通巻526号, 2008, pp. 1421-1423.
-
Twitter コミュニケーション・バイブル "5.4章 Twiter関連Webサービス"
自作サービスであるひらめいったーが掲載された。
ひらめいったー: Twitterのbotの形態をとり、Twitterのリプライ機能を活用してアイデアを投稿してもらい集積・配信するWebサービス
-
ネットランナー 2007年3月号 "三ツ星ネットワービスを探せ"
自作サービスであるYougakuTubeが掲載された。
YougakuTube: ビルボードにランクした曲のミュージックビデオをYoutubeからアグリゲートして提示するウェブサービス (CDTubeの洋楽版)
海外論文誌
-
Ryo Kanbayashi, Mitsuhisa Sato,
"A distributed architecture of Sensing Web for sharing open sensor nodes",
Future Generation Computer Systems, Volume 27, Issue 5, May 2011, Pages 643-648
国際会議
-
Ryo Kanbayashi, Mitsuhisa Sato,
"A Distributed Architecture of Sensing Web for Sharing Open Sensor Nodes",
Grid and Pervasive Computing 2009 (GPC 2009)
-
Takayuki Banzai, Hitoshi Koizumi, Ryo Kanbayashi, Takayuki Imada, Toshihiro Hanawa and Mitsuhisa Sato,
"D-Cloud: Design of a Software Testing Environment for Reliable Distributed Systems Using Cloud Computing Technology",
10th IEEE/ACM International Sym-
posium on Cluster, Cloud and Grid Computing (CCGRID2010) Workshop on
Second International Symposium on Cloud Computing(Cloud 2010), pp.
631-636, 2010
研究会
-
神林 亮,佐藤三久
"オープンなセンサを共有するセンシングWebのための広域分散アーキテクチャ",
2008年並列/分散/協調処理に関する『佐賀』サマー・ワークショップ
(SWoPP佐賀2008),2008-HPC-116, pp. 229-234.
-
(大会優秀賞受賞論文)
神林 亮,佐藤三久
"仮想マシンを用いた分散システムの耐故障性評価環境",
第70回情報処理学会全国大会, 2008年3月, pp. 1-181 - 1-182.
-
神林 亮,坂西 隆之, 小泉 仁志, 佐藤三久
"クラウド環境を用いた大規模テストファームの検討",
第7回ディペンダブルシステムワークショップ (DSW'09summer), ISSN 1341-870X, pp. 161-166.
-
坂西 隆之, 小泉 仁志, 神林 亮,佐藤三久
"プログラムテスト環境を提供するクラウドコンピューティングシステムの検討 ",
並列/分散/協調処理に関する『仙台』サマー・ワークショップ (SWoPP仙台2009), 2009-OS-112, No 19.
その他の発表 (POSTER など)
-
神林 亮,中島 佳宏,佐藤 三久,
"ボランティアベース分散コンピューティング環境構築のためのフレームワーク
TOFU-Gの実装と性能評価",
先進的計算基盤システムシンポジウム, (SACSIS 2006), 2006年5月.
テレビ出演
-
2013年6月23日 BS朝日 "富士通ペシャル 未来を拓け! 若き科学者たちの挑戦II"
高校生科学コンクールJSEC (Japan Science and Engineering Challenge) のOB (2003年入賞者) & 同ISEF (International Science and Engineering Fair) のOB (2004年派遣) として、現在の業務 (富士通株式会社にてスパコン京のソフトウェア研究開発に従事) を交えて高校生にエールを送った。
動画(TV放送のダイジェスト)
開発したソフトウェア (プライベート、オリィ研究所、及び大学での研究活動)
-
シンプルなリレーショナルデータベース(RDB) SamehadaDB の開発【2021-現在】
分散KVSを開発してみて、より広く用いられているRDBの内部設計や実装に興味を持ったため、自身でも開発してみることにした。
ゼロベースでの実装は困難であるため、Carnegie Mellon University(CMU)のオープンコースウェアな講義で教育用実装として公開されているBusTubをベースに開発を進めている。
元の実装はC++により行われているが、よりモダンな言語で実装したいという理由から実装にはGoを採用した。
C++ to Go のポーティングは go-bustub というプロジェクトによりある程度成されていたため
直接的にはそのプロジェクトのコードをベースとしている。
もともと個人プロジェクトであったが、一人ではめげそうであるという理由から共同開発者を募り、現在は自身を含む2名で開発を進めている。
GitHubリポジトリ
-
DHTベースの分散KVSであるFunnelKVSのRustによる実装【2020-現在】
Rust言語学習の題材として分散KVS(アクセスインタフェースはREST)を実装した。
初めにノードルックアップの仕組みとして採用するChordアルゴリズム(プロトコル)に基づいた設計(認識)に誤りが無いか、Pythonで簡易なシミュレータを開発し実システム実装前の設計検証を行った。
続いて、そのシミュレータをRust言語へポーティングした。
あえてシミュレータもRust言語でも実装したのは、シミュレータ自体が内部のメソッド呼び出しをRPC呼び出しに置き換えることでおおむね実システムに落とし込めるように設計されていたためである。
そして、最終的にメソッド呼び出しの部分をRPCに置き換え、その他少量の修正を行うことで複数プロセスで動作する分散KVSとして動作するものとした。
ノード間通信もRESTで実装してしまったためか、1台のマシン上で20ノード起動した環境での小データのgetクエリでも30ms程度を要する低速なパフォーマンスとなったが、
少なくとも20ノード程度であれば、複数ノードに並列にクエリをかけた場合に全体でのスループットがスケールすることは確認できた。
putされたデータはレプリカを複数ノードで保持するようになっており、例えば20ノード中5ノードをランダムに選択してダウンさせるといったことをしても、システムは
正常に動作を継続し、データのロストは発生しない。
データの一貫性については、おおむね強い一貫性が提供されるよう設計してあるが、アクセスパターンによっては結果整合性すら保証できない場合が存在しうると考えている。
なお、開発作業は勤務先であるオリィ研究所の研究開発に当ててよいとしている時間でも行わせていただいた。
GitHubリポジトリ
-
深層強化学習(DQN)で学習するFXトレードエージェントの開発【2020】
時系列データに対するディープラーニング適用の一例として、深層強化学習(DQN)させたトレードエージェントのモデルを作成し、FX自動トレード(のシミュレーション)にトライした。
結果としては、ある程度実用になりそうなモデル(およびその選定の方法)が開発できたと認識しているが、実際に開発したエージェントを用いた運用による検証などは行っていないため、実用性の本当のところは定かではない。
なお、開発作業は勤務先であるオリィ研究所の研究開発に当ててよいとしている時間でも行わせていただいた。
githubリポジトリ
-
Over-Nat-Lib: 異なるNAT内のPC間でP2P通信をしてファイル転送したり、パイプをつないだりできるツール及びライブラリ【2019】
aiortcライブラリを用いてUDPホールパンチングを行いNAT超えしたうえでP2PでのSCTP通信路を確立する(aiortcが持つ、WebRTCのデータチャネル確立の機能を利用)。
実装にはPythonを用いた。
pipモジュール(onatlib)として配布しており同梱のサーバを2者がローカルで起動することで通信路は確立・維持され、その通信路を使いまわし、同梱のツールを用いたファイル転送やパイプ転送が可能。
さらに、ローカルで起動したサーバが通信用にlistenしているポートは任意の通信が可能であり、同梱のツール以外でも確立された通信路でソケット通信を行うことが可能。
WebRTCで異なるNAT内にいる二者が通信するためには、2者の情報を仲介するシグナリングサーバとSTUNサーバが必要であるが、前者は自身のサーバでホストし、後者はGoogleが提供しているものを利用している(aiortcにハードコードされている)。
ライブラリと銘打ったもののツールがメインになってしまっているが、ローカルサーバを用いた他方との通信を簡易に行うためのpython向けのユーティリティーライブラリも提供している。
同ライブラリを用いることで、ローカルサーバの存在を意識せずにソケット通信が可能である。
Windowsプラットフォーム向けにはPython環境無しで利用できるよう、githubリポジトリにてexeファイル形式にパッケージングしたものも配布している(releaseのページを参照のこと)。
なお、開発作業は勤務先であるオリィ研究所の研究開発に当ててよいとしている時間でも行わせていただいた。
Introduction of Over-NAT-Lib on English
githubリポジトリ
-
Webカメラで表情認識してWebsocketでブラウザアプリ内のキャラを動かす【2018】
ローカルで動作させるWebアプリと連携させたかったので、既存のコードを参考にPythonによる顔認識プログラムをWebSocketサーバに仕立てて、Webアプリ内のLive2Dの美少女キャラを顔認識で動かした。
また、同様の顔認識WebSocketサーバをUnityアプリとして作ってみた。
なお、開発作業は勤務先であるオリィ研究所の研究開発に当ててよいとしている時間でも行わせていただいた。
-
Mastodon風マイクロブログホスティングサービス UZOMUZO 【2017-現在】
Mastodon風マイクロブログホスティングサービス。UZOMUZOを利用することで、誰でも趣味や同郷の仲間などでおしゃべりできる専用のMastodon風チャットルーム(インスタンス)を作ることができる。WebフレームワークはRuby on Railsを利用。運用にはHerokuを利用。Scrum-Upプロジェクトの成果物。おおむね3名のメンバで開発を行っている。
-
kaomoji2vec【2017】
ニコ動コメントコーパスをword2vecすることにより顔文字をベクトル表現で扱うことに成功した
なお、開発作業は勤務先であるオリィ研究所の研究開発に当ててよいとしている時間でも行わせていただいた。
-
FXシステムトレーディングの検討 【2015-現在】
古典的な移動平均線との関係を用いた手法、ニューラルネットワーク (RNN) を用いた手法、各種テクニカル指標を特徴量としたロジスティック回帰(xgboostを使用)などの手法などを実装。為替予測は不可能ではないが、スプレッドを含む手数料が存在した場合、安定して利益を上げることは難しいとの結論を得た。と思ったが、常勝できそうなアルゴが完成し、半月程度実運用を行う。その後、知人のアドバイスを受け、グリッドトレーディング戦略のプログラムを作成し一時運用した。
コード(python、MQL)
-
深層強化学習(DQN)によるオセロもどきAI 【2016】
PythonでディープラーニングのフレームワークChainerを利用して実現。オセロに関する知識(ヒューリスティクス)をまったく与えずに学習し動作する。人間との対戦も可。当初はChainerでディープラーニング部を実装していたが、TensorFlowで書き換えて、AWS EC2のGPUインスタンス(g2.xlarge)で学習の高速化を試してみたりもした。だいたい数倍から10倍程度の加速が行えたようであった。
なお、開発作業は勤務先であるオリィ研究所の研究開発に当ててよいとしている時間でも行わせていただいた。
コード
-
顔面偏差値スカウター 【2015-現在】
芸能人の平均顔との類似度から人の顔面偏差値を求める手法を考案。Microsoft社のTwisornotというサービスを使う方法を記事にした。また、同手法をスマホアプリ化(Android)し公開。2015/11/16にリリースし、9ヶ月後の2016/8/11現在2万2千ダウンロード強。上記記事はGigazineをはじめとした各種ネット媒体でも取りあげられた。なお、アプリはiOS版も開発したが、人を格付けするというコンセプトが認めらないため審査を通らず公開には至らなかった。
コード(Android)
コード(iOS)
-
キャチボ 【2015】
スマホの加速度センサを用いて2台のスマホを用いて仮想的なキャッチボールを行うAndroidアプリ。フィジカルコンピューティングのproof of conceptとして開発。なお、iOS版アプリも開発したがApp Storeの機器を破壊する恐れがあるアプリは認めないというポリシによって審査が通らず公開できず。
コード(Android)
コード(iOS)
-
P2Pニコ動キャッシュ共有プロキシ 【2007】
peer to peer (P2P) ネットワークを構築し、相互にニコニコ動画の動画データをキャッシングし、サーバ負荷軽減に貢献できないかという試み。実験レベルでのプロトタイプを実装した。NicoCache_nl に P2PSocketを利用したキャッシュ共有機能を追加することで実現。
-
Svengali 【2010】
クラウド時代の分散マシン操作ライブラリ(Ruby言語向け)。従来シェルスクリプト等で記述していた処理がより簡潔で柔軟に記述できる。
-
TOFU-G (Tsukuba Open Framework for Using Grid technology) 【2004】
ボランティアコンピューティングのプロジェクトを簡便に運用可能なJavaフレームワーク
-
ひらめいったー 【2007】
Twitterのbotの形態をとり、Twitterのリプライ機能を活用してアイデアを投稿してもらい集積・配信するWebサービス
-
Kikker 【2006】
ユーザパーソナライズドなニュースサイト。データマイニング(コサイン類似度による類似ドキュメント検索)を行いユーザに合わせたWebページをサジェストするWebサービス。学習機能を搭載しておりユーザがKikkerのページ経由で閲覧したWebページの情報からサジェストするWebページを最適化する。
-
はてブおせっかい 【2006】
ユーザパーソナライズドなニュースサイト。データマイニング(コラボレイティブフィルタ)を行いユーザに合わせたWebページをサジェストするWebサービス。
-
Kookle【2006】
はてなブックマークから収集されたブックマークページのタグ情報から自動生成するWebディレクトリサービス。Yahoo のWebディレクトリと同様のものをフォークソノミー的な方法で構築できないかという試み。
-
もひかんチャット 【2007】
Webベースのリアルタイムチャットサービス。Webページについての議論や意見交換を目的としており、Webページ毎にチャットルームを作成することができる。オープンソースのチャットソフトウェアであるKOCHAをベースに開発。
-
Fault VM 【2007】
ハードウェア故障を擬似的に発生可能な Virtual Machine (仮想マシン)。フォルトインジェクタと呼ばれるソフトウェアの一種。ソフトウェアの耐故障性の評価を目的にプロトタイプを開発。プロトタイプではメモリ故障の発生に対応した。Xenをベースに開発。
-
SW-Agent 【2008-2010】
オープンなセンサのデータを利用したWeb環境を目指したコンセプトであるセンシングWebを実現するための基盤ソフトウェアを開発した。ユーザはセンサ直近にデータ処理のためのプログラムを遠隔配置することができる (センサ直近でプライバシ情報を除去し手元に転送する)。ptrace を利用したシステムコールエミュレーションによりサンドボックスの構成、仮想デバイスを実現した。
-
D-Cloud 【2009】
大規模テストファームであるD-Cloud を開発した。D-Cloudは、オープンソースのクラウド構築ソフトウェアであるEucalyptus をベースとする。ユーザは、D-Cloud が提供するテスト環境構築・検証作業の自動化と大規模な計算資源により、大規模な分散システムのテストをその複雑性に煩わされることなく行なうことができる。これにより,D-Cloud はソフトウェア開発におけるテストプロセスを加速する。分散システムのソフトウェアテストにおけるシステム構築・テスト実行支援のためXML での記述と、振る舞いを柔軟に記述可能なRuby言語を組み合わせた記述形式により、テストを直感的かつ柔軟に定義し実行できる手段 (= クラウド環境上への試験環境自動構築ツール、分散環境でのテストシナリオ実行ツール) を提供する。
賞罰
-
高校生科学技術チャレンジ(Japan Science & Engineering Challenge, JSEC) 2003 優秀賞
2003年11月
-
第70回情報処理学会全国大会 大会優秀賞
2008年3月
-
筑波大学大学院システム情報工学研究科コンピュータサイエンス専攻 専攻長表彰
2010年3月
ryo.contact(at)gmail.com (please replace "(at)" with @).
Copyright (c) Ryo KANBAYASHI