あの論文を検証してみた! - シリーズ第6回 - Structual Probe 論文

こんにちは!ブレインズコンサルティングの大下です。

今回は、「あの論文を検証してみた!」のシリーズ第6回、A Structural Probe for Finding Syntax in Word Representationsを検証していきます。 BERT、ELMo で埋め込んだ空間表現の中に、パースツリー情報が埋め込まれているらしいことを示した論文です。 本当に埋め込まれていると言ってよいのか、具体的にどのようにして構造を復元しているのかが疑問になるところです。

続きを読む

あの論文を検証してみた! - シリーズ第5回 - Neural Processes 論文(実験編)

こんにちは!ブレインズコンサルティングの大下です。

今回は、「あの論文を検証してみた!」のシリーズ第5回、前回理論的(数学的・確率論的)な側面を解説したNeural Processes の論文の実験編です。 DeepMind社のTensorflow による実装を参考に、PyTorch 版を作成しました。 意外と、DeepMind社の実装のように、ある程度抽象化したりモジュール構成を整理したPyTorch版Neural Processesの実装がない印象だったので、独自作成しました。

今回の実験編では、Few-Shot Leaning をテーマに、いくつかのデータセット(※)で検証していきます。

(※)使ったデータセットは、Toy Dataset、MNIST、Fashion-MNIST、Kuzushiji-MNIST です。

続きを読む

あの論文を検証してみた! - シリーズ第4回 - Neural Processes 論文(解説編)

こんにちは!ブレインズコンサルティングの大下です。

今回は、「あの論文を検証してみた!」のシリーズ第4回、Neural Processes の論文について解説します。 Neural Processes の論文を選んだモチベーションは、もともと確率とニューラルネットワークの合わせ技のモデルに興味があったところ、 Deepmind 社が、ICMLでガウス過程の深層学習版として提案した当論文が目に入って来たというところです。

続きを読む

あの論文を検証してみた! - シリーズ第3回 - Neural ODE 論文

こんにちは!ブレインズコンサルティングの大下です。

今回は、「あの論文を検証してみた!」のシリーズ第3回、Neural ODE の論文について解説、検証します。 今回の論文は、Neural Ordinary Differential Equationsで、ResNet と、オイラー法の更新則の類似性に着目し、 連続時間のモデルへ拡張した、新しい考え方、手法を提案した論文です。 個人的には、かなり内容が濃い論文の印象で、勉強になった論文です。

続きを読む

Objective-CでPythonモジュールを作ってみる

こんにちは!
ブレインズコンサルティングのゆるふわ担当の馬目です!

今回はゆるふわな記事として、Objective-CPythonのモジュールを作成してみます。
PythonのモジュールをC/C++で記述できることは、公式ドキュメントでも説明されているのですが、
実はObjective-Cで記述したコードも、モジュールとしてビルドできます。

1. C や C++ による Python の拡張 — Python 3.7.2 ドキュメント

そこで、MacOSAPIPythonから叩いてみる手始めとして、
Metal APIを叩いて、デバイス名を取得するモジュールを作成してみようと思います。

続きを読む

あの論文を検証してみた! - シリーズ第2回 - BERT 論文(実験編)

こんにちは!ブレインズコンサルティングの大下です。

今回は、「あの論文を検証してみた!」のシリーズ第2回、BERTの可視化実験を紹介します。 BERTの枠組みで学習したTransformer (Self-Attention) が、入力系列のどこを注目しているのか、を可視化し、解釈を試みます。

先月ぐらいに、政府が考えるAIの7原則が記事になっていました。 その中に、「企業に決定過程の説明責任」というものがあり、一部で話題になっていたと記憶しています(批判が多かった印象)。 日本の戦略を考えると、量で質をカバーする方法では、もはや米国、中国には叶わないということもありそうなので、 仮に少量でも、日本らしい?質(==説明責任による安心・安全)を担保して差異化を図りたい、という流れになるのかもしれません。

ということで、説明責任に繋がるといいなぁという願いを込めて、BERTのアテンションの可視化に挑戦します!

続きを読む

あの論文を検証してみた! - シリーズ第1回 - BERT 論文(解説編)

はじめまして、ブレインズコンサルティングの大下です。

ブレインズコンサルティングでは、過去Blogger で、技術的な情報を公開していましたが、長らく更新が途絶えていたこともあり、 そちらを廃止し、こちらで、新たなテックブログとして開始することになりました。

記念すべき初回記事は、「あの論文を検証してみた!」のシリーズ第1回、今(2018年11月)、話題沸騰中(?)の 論文 [1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding の解説です!

なにやら、複数の自然言語処理タスクでSOTAをたたき出して、すごいらしいということは、各種記事により、すぐわかったのですが、具体的にどういう仕組みですごいことができているのか、よくわからなかったので、「論文とGitHub のコードから探ってみよう!」というのが本記事執筆のモチベーションになっています。

そこで、本記事では、論文を読んで、実際に GitHub のコード (GitHub - google-research/bert: TensorFlow code and pre-trained models for BERT) を確認した結果を共有します。

続きを読む