カテゴリー

アナリティクス

Steerable CNNs の紹介

この画像には alt 属性が指定されておらず、ファイル名は D4_exp-1024x957.png です
こんにちは、先進技術部の古川とプロダクト開発部の中井です。今回は、Steerable CNNs と呼ばれるネットワークの論文解説と Chainer による実装 のレポートを行います。なお、この記事は前任者の実装・レポートを元に、ブログ用に追記・編集したものです。

1. 概要

Steerable CNNs とは

Steerable CNNs は、Taco S. Cohen と Max Welling が提案した、入力画像の平行移動・回転・鏡映の作用を保つような CNNs (Convolutional Neural Networks、畳み込みニューラルネットワーク) です。 このアイディアを発表した論文 [CW17] はICLR 2017 で採択されました。以下のような特徴があります。
  • 高精度である。WideResNet をベースにしたネットワークが CIFAR-100 でエラー率 18.82\% と、当時の最高精度を出した。
  • 上記の精度は、水平反転と平行移動のみのデータオーグメンテーションで達成した。
  • 少ないパラメータ数である。ResNet50 が 2000 万程度、2019 年 5 月現在最高精度の AmoebaNetB は 5.5 億程度あるのに対し、WideResNet ベースのネットワークは 920 万ほどで済んでいる (ただし、その後 EfficientNet-B0 では 400 万程度のパラメータで transfer-learning を使って より低いエラー率を出すなど CNN 自体もさらに進歩しています)。
続きを読む Steerable CNNs の紹介

[2020新卒入社]株式会社ALBERTに入社しました

こんにちは!
2020年4月に新卒として入社した小林です。

今年は新型コロナウイルスの影響で入社式が無くなり、研修はほとんどオンラインでの研修となり、新入社員、そして研修を用意する講師陣にとって怒涛の2ヶ月間でした。

また、 2020年の新入社員は計29名が入社し、例年に比べ大人数であったため研修準備も二重、三重に大変だったのではと思います。
2020/04/01 松本社長のメッセージを新入社員29名で視聴しています
松本社長の新入社員へのメッセージを視聴した4月1日を境に、研修がオンラインに移行しました。新入社員全員分のポケットWi-Fiを用意済みであるなど、オンラインへの対応の速さに驚いた記憶があります。

オンライン研修が決まった当時は、大学生気分である自分をオフィスで鍛え上げて欲しかったので、複雑な心境でした(もちろん、素晴らしい判断だと思います)。

しかし、その不安も忘れるような密度の濃い研修を受けることができました。

これから、今年行ったオンライン研修についてご紹介します。
ALBERTに興味がある方、あるいはオンライン研修について気になる方はぜひ読んでいただけると幸いです。 続きを読む [2020新卒入社]株式会社ALBERTに入社しました

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

滋賀大学特別講義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広告配信やレコメンドシステム、はたまたトップ棋士に勝ち越したことで有名なアルファ碁にもその技術が応用されたことで注目を集めています。

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

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