カテゴリー

アナリティクス

滋賀大学彦根キャンパスで特別講義を実施しました。

滋賀大学特別講義TOP
2019年8月28日から30日までの3日間、滋賀大学彦根キャンパスでデータサイエンス学部、経済学部在籍の学生の方々を対象に、滋賀大学と連携した特別講義「作って学ぶ機械学習」で、ニューラルネットワークの仕組みや実装方法について当社データサイエンティストが講義を行いました。

ALBERTでは、ビジネスに即したデータ活用スキルやデータサイエンティスト育成のノウハウ・講座実施の実績を活かして、学生が実践的なデータ活用方法や分析手法等を学べる機会を提供しています。

今回、その取り組みの一環として、滋賀大学と連携して特別講義を実施しました。1日6時間、3日間で合計18時間の集中講義形式で行い、学部生や修士の方々合わせて約20名が参加しました。


続きを読む 滋賀大学彦根キャンパスで特別講義を実施しました。

ARISE analytics社と合同で勉強会を開催しました

開催概要

こんにちは。データソリューション本部の川﨑・栗山です。

今回は、8/2(金)にALBERT本社で実施されたARISE-ALBERT合同勉強会の様子をレポートします。この勉強会は、ARISE analytics社と一緒に、ARISE analytics が持つビジネス×データ分析のノウハウとALBERTの強みである高度な技術力を共有し、さらに両社の技術力向上を図る趣旨で開催されました。
当日は合わせて約60名の方が集まり、会場のキャパシティを大幅に超える大盛況となりました!! 続きを読む ARISE analytics社と合同で勉強会を開催しました

【2019年新卒入社】株式会社ALBERTに入社しました

こんにちは。2019年4月に新卒として入社した本山理梨子です。

りこぴんと呼ばれている人です。

入社前後のあれこれについて書きます。

入社動機

そもそも、ALBERTに興味を持ったのは、インターンがきっかけでした。

機械学習分野は専門ではなかったのですが、研究の中でデータを収集し、統計的に処理することが多くあったため、もともとデータサイエンティストの仕事に興味を持っていました。

修士1年の冬ごろ、研究と並行して就活を進める中、「機械学習 インターン 有給」みたいな雑なキーワードで検索していたところ、たまたまALBERTを見つけました。

当初、「あまり規模も大きくないし、どんな会社なんだろう?」となんとなく様子を見るつもりで面接に行ったのを覚えています。

しかし、実際に社員の方々と話してみると、想像以上に自分の研究の話を深く掘り下げて丁寧に聞いてくださった上に、社員の方々の技術レベルも高く、「ちゃんとした会社だ!」と感じることができました。

そのまま、インターンに参加しました。
続きを読む 【2019年新卒入社】株式会社ALBERTに入社しました

ニューラルネットの新しい正規化手法 Group Normalization の高速な実装と学習実験

今年 1 月に ALBERT に入社した清水です。深層学習プログラマとして自社プロダクト開発をしております。このブログを書くのは始めてなのですが、今日はちょっとプログラミング寄りの記事を。残暑厳しい折ですが、実装の詳細にまで立ち入りつつアツく Yuxin Wu および Kaiming He の考案した手法 Group NormalizationECCV 2018 採択済)について語ります。Kaiming He 氏は ResNet を筆頭に優れた convolutional neural networks (CNN) の設計で知られていることもあり、みなさんも注目している手法ではないでしょうか?

Chainer v5.0.0b4 を用いて、Chainer に入っている実装と弊社の独自実装での速度比較、また Batch Normalization との速度・精度比較を行いました。その上で、速度差が生じる原因の調査や CUDA を使った高速化の工夫について詳しく記します。ソースコードは MIT ライセンスで GitHub に公開していますので、ぜひご覧ください。

Group Normalization って?

Group Normalization の発想はシンプルです。早速ですが、Group Normalization を端的に表す図(論文 Figure 2 より引用)を見てみましょう。

Batch Normalization, Layer Normalization, Instance Normalization, Group Normalization の図示

(N, C, HW) の 3 次元からなる多次元配列が出てきましたが、これは CNN の中間層の出力だと考えると想像しやすいかと思います。バッチサイズ N, チャンネル数 C, 画像の縦幅 H, 画像の横幅 W です。

図に示された Batch Normalization, Layer Normalization, Instance Normalization およびこの記事の本題 Group Normalization の 4 つの手法は、いずれも青色で示された領域ごとに算出される平均・分散によって入力を正規化 (normalize) します。Batch Normalization が各チャンネルごとに平均・分散を求めることは有名ですね。精度・収束性を劇的に向上させる Batch Normalization は今や CNN のデファクトスタンダードですが、しかし

  • 画像の解像度が大きくてメモリが不足するなどの理由でバッチサイズが小さくなる場合に、平均・分散の推定が不安定になり学習ができなくなる
  • 複数 GPU にまたがって平均・分散を推定することで実質的なバッチサイズを増やすことは可能だが、高価なハードウェアが必要になる上に実装や最適化が複雑
  • ビデオの隣接フレームといった相関がある画像をミニバッチとして入力する場合も平均・分散の推定が不安定になる
  • 学習時に平均・分散の移動平均を覚えておいて推論時に用いるといった処理が煩雑
  • Finetune 時に移動平均をどう扱うべきかよくわからない

といった難点も併せ持っており、いつでも使えるわけではありません。このためミニバッチに依存しない正規化手法が待ち望まれていました。

そのような手法として、全チャンネルにまたがって平均・分散を取る Layer Normalization と、各チャンネル独立に画像の縦横方向についてのみ平均・分散を取る Instance Normalization が考案されました。とはいえ十分にバッチサイズが確保されている条件下での精度は Batch Normalization に比べてかなり劣っており、主流とはなっていません。

そこで登場したのが Group Normalization です。チャンネルを G 個にグルーピングして Layer Normalization と Instance Normalization の中間的な処理を行うことで、画像分類などのタスクで Batch Normalization に匹敵する精度を実現しました。グループ数 G を 32 にした場合がベストだったと論文に述べられていますが、それほど G の値に対して敏感ではないようです。Group Normalization の論文では、Instance Normalization には複数のチャンネルの組み合わせによって表現される特徴を歪めてしまう問題があると考察されています。その対極になるのが Layer Normalization ですが、こちらは大域的すぎて、特に重要ではないチャンネルが画像全体にわたって高い値を示した場合に他の全てのチャンネルが抑制されてしまいます。中間的な Group Normalization は良いとこ取りをできるというわけです。

なんだか素晴らしそうですね。Chainer では v5.0.0b3 から Group Normalization がサポートされているのでお手軽に使えます。しかし、本当に Batch Normalization をドロップインで置き換えて精度低下は起きないのでしょうか? Batch Normalization と同等の速度で動作するのでしょうか? この疑問を検証します。

結論から言えば、Batch Normalization を単に Group Normalization に置き換えるだけでは精度がかなり落ちてしまいました。なので Group Normalization を使う場合は精度の確認やパラメータチューニングをきちんとやるべきでしょう。また、Chainer v5.0.0b3 に追加された Group Normalization の実装はあまり効率的ではなく、CNN 全体の実行速度を大きく下げてしまうことがわかりました。この原因や、より効率のいい実装方法についても詳述します。

続きを読む ニューラルネットの新しい正規化手法 Group Normalization の高速な実装と学習実験

データサイエンティスト新卒研修レポート

こんにちは。
2018年4月に新卒としてALBERTに入社した、データソリューション部の羽山です。

入社式から、早3ヶ月が経ちました。
ALBERTでは入社式のブログでお伝えしたように、ALBERTに在籍している100人のデータサイエンティストのノウハウを活用した2ヶ月のデータサイエンティスト技術研修が新卒社員に対して行われます。

本記事では入社後2ヶ月間に渡って受講したデータサイエンティスト研修の内容についてご紹介します。

続きを読む データサイエンティスト新卒研修レポート

ベイズ統計によるアイオワ・ギャンブリング課題のモデリング方法

こんにちは。データ分析部の長尾です。

今回は心理学において有名な実験である「アイオワ・ギャンブリング課題」を題材として,ベイズ統計によるモデリング方法を紹介します。

突然ですが、パチンコのホールを思い浮かべてください。パチンコではまず,出玉の多そうな台を野生の勘で選び,その台でしばらく様子を見ます。出玉が少ないようであれば,他の台に移り,またしばらく打ちます。個人差はありますが,上述の探索行動を繰り返し,最終的には,一番期待できそうな台に落ち着いて,利益を最大化するよう努めます。このような意思決定のプロセスを模倣した実験のひとつにアイオワ・ギャンブリング課題(Iowa Gambling Tasks, IGT; Bechara, Damasio, Damasio & Anderson, 1994)があります。

続きを読む ベイズ統計によるアイオワ・ギャンブリング課題のモデリング方法

Semi-Supervised Learning

はじめまして、データ分析部のシャオです。今回は半教師あり学習(Semi-supervised Learning)を英語で紹介します。

This blog introduces representative methods in section 2, including Generative Model, Support Vector Machines, Graph-Based Model and co-training. In section 3, the demonstration of text classification by R is presented. The co-training exmaple is in section 3.2.1 and generative model is in section 3.2.2.

続きを読む Semi-Supervised Learning

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

データ分析部の中村、中野です。
今回から2回に分けてバンディットアルゴリズムをご紹介いたします。

今回は基本編ということで「バンディットアルゴリズム」の基本的な思想と代表的な方策について簡単にご説明します。

バンディットアルゴリズムはWEB広告配信やレコメンドシステム、はたまたトップ棋士に勝ち越したことで有名なアルファ碁にもその技術が応用されたことで注目を集めています。

そもそも、バンディットアルゴリズムとはどういったものでしょうか。まずは少しややこしいその問題設定を丁寧に見ていきます。

続きを読む バンディットアルゴリズム 基本編

DeepLearningがなぜうまく学習出来るのか

データ分析部の島田です。今回はDeepLearningがなぜうまく学習出来ているのか、についてサーベイしてみました(簡単なコード付きです)。

記事アウトライン

ベイズ情報量規準及びその発展 ~概説編~

今井です。今回より数回にわたってベイズ情報量規準及びその発展について書きたいと思います。

情報量規準と聞くとAIC(Akaike, 1973)やBIC(Schwarz, 1978)が真っ先に思い浮かぶ人が多いかと思います。情報量規準を勉強したことのある人であれば、予測精度を上げるためにモデル選択をするのであればAIC、データが生成されている構造を知ろうとするのであればBICを用いるという使い分けをすることもご存知だと思います。以下ではベイズ情報量規準(BIC)に絞って説明をしていきます。

ベイズ情報量規準の目的である、予測ではなく妥当なモデルの構造を知りたい時とはどういった場合でしょうか。例えば、単なる売上の予測だけではなくMMM(Marketing Mix Modeling)を因果モデル化したモデルによる広告などの施策の効果を知りたい場合や、k-means法でクラスター分析をする時のkを決める時などが上げられます。

後者の方が簡単なので、後者から説明します。先日弊社で行われたデータサイエンティスト養成講座のクラスター分析の岩崎先生による基調講演の中で次のようなお話をされていました。下の3つの混合分布の内、一番右の分布であれば誰でも2つの分布から構成されていることが分かるが、統計を用いて真ん中、さらには一番左の分布も2つの分布から構成されていることが分かるかが問題になる、と。

GMM_distribution

続きを読む ベイズ情報量規準及びその発展 ~概説編~