AWS DeepLens箱開け

AWS DeepLensとは、アマゾンが開発した、クラウド直結型画像認識カメラです。この小さな箱の中でカメラから画像を取得し機械学習モデルなどで物体認識や異常検知などができます。今日はそのDeepLensが届いたので、箱開けの様子と、セットアップ後の様子を紹介します。

割とコンパクトなカメラなので、箱も小さいです。中には、カメラ本体、充電器、そして1枚の取扱説明書がついています。説明書の内容は簡単で、表はカメラのそれぞれの入出力ポートの説明、裏にはオンラインでセットアップの仕方を調べてくださいとあります。

AWS DeepLensというくらいなので、AWSとの連携がこのカメラの強みです。カメラのセットアップが終了したら、AWS上でカメラの状態や、実際に捉えている画像などを閲覧することができます。また、機械学習のモデルなども、LambdaというAWSのサービスを通してプログラムをカメラの中で実行するようにできています。これにより、簡単にPythonのプログラムを書くだけで機械学習のモデルをカメラ本体に実装し、継続的にモデルを呼び出し分類などを実行することができます。

 AWS上でプログラムを編集し、編集したプログラムはカメラに送られてカメラ内で実行される

AWS上でプログラムを編集し、編集したプログラムはカメラに送られてカメラ内で実行される

上記のプログラムでは20個の物体を認識するディープラーニングのモデルを読み込み画像の中で物体認識を行うコードです。こうしたクラウドとデバイス間の連携をスムーズにしているところあたりは、AWSの強みが生きています。

カメラの画像認識結果もクラウドから確認できて、遠隔の監視などにも非常に便利です。上の画像では、テントをボートと誤認識していますが、ここら辺もベースのモデルを改善して、例えばテントという分類を作るか、もしくは確度が何%以下の場合は認識しない、などのしきい値を作れば精度も改善されます。

感触としては、色んな分野に応用できそうな便利なデバイスだと感じました。特に機械学習のモデルを手早く実装したい場合や、訓練データとして画像をたくさん捉えたい場合は使えるクラウド直結型カメラがAWS DeepLensです。

パロアルトインサイトで働いてみて

こんにちは。パロアルトインサイト、データサイエンティストの辻です。最先端のIT技術を生み出すシリコンバレーの企業の下で働き約半年が過ぎました。今までとは全く違う環境で仕事をすることになり、毎日新しい課題に挑戦しています。 今日はその中でもパロアルトインサイトで仕事をしてみて私が特に素晴らしい思ったことを簡潔にお話ししたいと思います。

 

私がデータサイエンティスト を目指した理由の一つは、データ分析や機械学習の技術を使って、様々な業界でAIの導入をしてみたいという思いからでした。その方が1つの業界で専門知識を高めるよりも、色々な業界の知識を習得して、自分の今後のキャリアアップにも繋がると考えたからです。パロアルトインサイトではお客様のビジネスに合わせて、機械学習を使った様々なソリューションやプロジェクトを提案、実装をしています。まさに自分のニーズにぴったりでした。また、プロジェクトの提案から設計、導入までの一連の流れを各データサイエンティスト が責任を持って担当するので、決められたやり方ではなく、各自の得意とする技術や手法を取り入れてプロジェクトの成果を達成できたときは、自分の成長がすごく感じられる瞬間です。例えば、プロジェクトの提案の際に、いくつかのモデルを自分で考えて提案書に書き、導入時にテストを行いながら一番良いモデルを選んだり、ハイブリッド方式にしてより精度の高いモデルに改善したりもしました。

 

また、機械学習の分野は凄まじいスピードで新しい論文や、手法が発表されているので日々の勉強が欠かせません。パロアルトインサイトでは完全リモートで仕事ができるので通勤の必要がなく、個人の采配で仕事をしながら新しい技術を勉強する時間を作ることも可能です。さらにSlackを通じてアップルやグーグルで働いた経験のあるエンジニアやNIPS*などで発表経験のある優秀なチームメンバーとコミュニケーションをとったり、NIPSのExecutive Boardである杉山将教授から直接アドバイスをいただける機会があったりと、常に業界の最先端の情報に触れられる環境が整っているのも、パロアルトインサイトの強みだと思います。

 

あと少数精鋭のチーム編成で日々ビジネスの課題に取り組んでいるところも非常に気に入っています。社内調整のプロセスや承認は最小限に抑えられていて、無駄な会議はありません。1日の大半を提案書の作成、プログラムの作業などに当てられるので以前と比べて効率よく仕事に集中できていることが実感できます。またクライアント先のエグゼクティブの方達と直接お仕事をする機会が豊富にあり、それも大きなやりがいの一つになっています。

 

パルアルトインサイトは今まで学んだデータサイエンスの知識をフルに活かせる職場だと思います。同じように、新しい課題に挑戦してみたいというデータサイエンティスト の方、是非お気軽にお問い合わせください。お問い合わせページはこちら

 ミーティングの様子(中央が筆者)

ミーティングの様子(中央が筆者)

アマゾンジャパン事業開発本部長と語る非公開セミナーを開催しました!

7月10日に、パロアルトインサイト主催非公開セミナー『パロアルトインサイト主催非公開セミナー:Amazonアレクサ事業開発本部長と語るスマートスピーカーの本当の可能性と日本市場における課題』を開催しました!

Amazonジャパンでアレクサのスキル事業開発のトップとして指揮をとられている柳田晃嗣GM・本部長とパロアルトインサイトCTO(元アップル本社、Siri開発者)で音声UIの可能性や未来へのビジョンについて語ってもらいました。

たくさんの方にお越しいただき心より感謝致します!

あれくさセミナー.png

RでKeras

こんにちは。PALO ALTO INSIGHT辻です。ニューラルネットワークでよく使われるKerasですが、以前はPythonのみサポートされていましたが、Rでも使うことが可能になったので、今日は使い方の1例を紹介させて頂きます。

Rでは「keras」と「kerasR」というパッケージが利用可能ですが、今回は「keras」パッケージを紹介します。これにより、Rでもさらにニューラルネットワークの分析がしやすくなりました。また、損失関数を別途定義する際の注意事項なども紹介します。

データのダウンロード

keras datasetの「ボストンの住宅価格データセット」を使用してニューラルネットワークで線形回帰を行いたいと思います。データ項目名などの詳細に関してはURLを参照ください。インストールされていないパッケージはinstall.package('パッケージ名')などでダウンロードしてください。

# 必要なライブラリーの読み込み
library(ggplot2)
library(tidyr)
library(dplyr)
library(keras)

#  データを読み込んでデーターフレームに入れる。
dataset = dataset_boston_housing()
c(c(x_train, y_train), c(x_test, y_test)) %<-% dataset

# トレーニングデータを正規化する
x_train = scale(x_train, center = TRUE, scale = TRUE)
center_train = attr(x_train, "scaled:center")
scale_train = attr(x_train, "scaled:scale")
x_test = scale(x_test, center = center_train, scale = scale_train)

kerasパッケージでモデルを作る

Rの「keras」パッケージではパイプ「%>%」を使って階層を組み立てます。Rをすでにお使いの方は「dplyr」と使い方が一緒なのでわかりやすいと思います。

# モデルの立ち上げ
model = keras_model_sequential()

# %>% を使ってレイヤーの設定を行う。以下中間層を2つ使った例
base = c(ncol(x_train))
model %>% 
  layer_dense(units = base, activation = "tanh", input_shape = base, name = "firstLayer") %>% 
  layer_dense(units = ncol(x_train), activation = "tanh", name = "secondLayer") %>% 
  layer_dense(units = 1, activation = "linear", name = "predictions")

# Optimizerと損失関数の指定
model %>% compile(optimizer = optimizer_nadam(), loss = 'mse')

# トレーニングの実行
historyTrain = model %>% fit(x_train, y_train, epochs = 250, batch_size = 5, verbose = 0)

# 損失関数のグラフ
plot(historyTrain)

pred = predict(model, x_test)
result_mse = data.frame(correct_value = y_test, MSE = pred)
kerasRchart1.png

損失関数のカスタマイズ

パッケージで提供されている以外の損失関数を定義するには、kerasのバックエンド(tensorflow)で定義する必要があります。(https://keras.rstudio.com/articles/backend.html)

またHuber関数、その他の損失関数の定義はこちらを参照。(https://bi.biopapyrus.jp/ai/machine-learning/loss-function.html) Huber関数は外れ値による過学習を抑えることができるのが特徴です。

huberloss <- function(y_true, y_pred){

  a = k_abs(y_true - y_pred)
  loss = k_switch(k_less_equal(a, 1.0), 0.5 * k_square(a), a - 0.5)

  return (k_mean(loss))
}

# Huber Lossで同じモデルを立ち上げる
model = keras_model_sequential()
model %>% 
  layer_dense(units = c(ncol(x_train)), activation = "tanh", input_shape = c(ncol(x_train)), name = "firstLayer") %>% 
  layer_dense(units = ncol(x_train), activation = "tanh", name = "secondLayer") %>% 
  layer_dense(units = 1, activation = "linear", name = "predictions")

model %>% compile(optimizer = optimizer_nadam(), loss = huberloss)

# トレーニングの実行
historyTrain = model %>% fit(x_train, y_train, epochs = 250, batch_size = 5, verbose = 0)
plot(historyTrain)

# 価格予測
pred = predict(model, x_test)
result_hl = data.frame(correct_value = y_test, HuberLoss = pred)
kerasRchart2.png

予測値

最後にMSE, Huber Lossを使った予測値を以下のグラフで対比してみました。MSEは外れ値の影響でHuber Lossに比べ同じ条件下ではエラーが大きく出ています。

簡単ですが、Kerasの使い方をメインにニューラルネットの使用例を紹介しました。みなさまも是非試してみてください。

final_results = left_join(result_mse, result_hl, by = 'correct_value')
final_results = gather(final_results, "model", "prediction", 2:3)
final_results$error = (final_results$prediction - final_results$correct_value) ** 2
colnames(final_results) = c('正解値', 'モデル', '予測値', 'エラー')


ggplot(data = final_results, aes(x = 正解値, y = 予測値)) + facet_grid(.~モデル) + 
  geom_point() + geom_abline(slope = 1, intercept = 0, color = 'blue') + 
  theme(text = element_text(family = fontJP))

errors = final_results %>% group_by(モデル) %>% summarize(二乗誤差 = sum(エラー))
knitr :: kable(errors, caption = "モデル比較")
kersaRchart3.png
kerasRchart4.png

WWDC2018

こんにちは、CTOの長谷川です。

本日はアップルが年に一度開催するエンジニア向けカンファレンスであるWWDC(Worldwide Developers Conference)でした。私がアップル本社に在籍していた7年間、毎年欠かさずカフェテリアなどで社員一同集まってライブ配信される動画を食い入るように見ていました。その雰囲気は、ファンが映画の開幕を見るように、面白い機能が発表されると「おお」といったような感心の声が上がり、笑いどころはみんなで笑ったり、Swiftの発表のようなサプライズがあると大拍手が上がったりしていました。

アップルは社内でも徹底した秘密主義を貫いていて、例えば廊下を隔てて同じチームで働いている同僚でも、なんのプロジェクトをやっているかを教えてくれないような始末です。なので、WWDCのプレゼンテーションを見て初めて、「ああ、きっとアイツはこの機能をやってたから、こないだこんな質問をしてきたんだろうな」みたいに納得してしまうことがあったりします。というわけで、実際にアップルで働いている人間でも、知らないことや驚くような発表があったりするので、WWDCはそういう意味でもワクワクするイベントでした。また、エンジニアとしては、自分が必死に努力して作り込んだ機能がようやく発表される日でもあるので、大いなる達成感も味わえます。

今年のWWDCでは、検索やSiriの開発をしていた頃の同僚が発表していたので、懐かしくもありました。なんといっても、社員ではなく1ユーザーとして見るWWDCは、安心してみれました。というのも、WWDCのデモで発表される機能は、上層部から超注目されていて、デモ当日に絶対に失敗しないようにものすごいプレッシャーを浴びるからです。特に音声認識のデモは、会場のマイクとスピーカーの配置やネットワーク環境、発表者の声や緊張具合、聴衆の声など様々な要因に影響を受け易いので、ヒヤヒヤしながら見てることも多かったです。

さて、今年の新機能で、特に注目しているのは、以下のものです。

  • ARKit。特にLEGOが実演した、実世界のLEGOに仮想世界のキャラなどを組み合わせることができる機能などは本当に楽しそうでした。
  • Siriの拡張。プログラムを書くようにSiriに様々な命令を事前にプログラミングできる機能は便利そうでした。
  • iPhoneの使用を制限する機能。これはユーザー目線で考えるアップルならではの素晴らしい機能群でした。例えばGoogleやFacebookのような広告主体のビジネスモデルだと、いかにユーザーが自身のプラットフォームに長時間いるかを最大化することを考えるようになってしまいますが、アップルは敢えてiPhoneの使用時間をユーザーが自ら制限できるような機能たちを紹介しました。
  • グループFacetime。これは社内の会議などでも使えそうな感じでした。自分の顔に絵文字を上乗せして参加できたりするので楽しそうでした。
  • 機械学習周りのAPIとeGPUの動向

本日のプレゼンテーションで発表されたのはほんのさわりの部分だけで、具体的なAPIなどはこれから1週間かけてセッションを通して説明されます。私も楽しみに見ています。

データサイエンティストとは

こんにちは。パロアルトインサイト、データサイエンティストの辻です。

日々お客様とお話をさせていただく際に、データサイエンティストとはどのようなお仕事なのですか?という質問をよくいただくので、今日はデータサイエンティストについてお話ししたいと思います。

データサイエンティストとは2008年にCloudera社の共同創始者Jeff Hammerbacher氏らによって提唱された比較的新しい職種で、日本での認知度は業界によって異なるようです。日本データサイエンティスト協会は「データサイエンティストとは、データサイエンス力、データエンジニアリング力を ベースにデータから価値を創出し、ビジネス課題に答えを出すプロフェッショナル」 と定義しています。わかりやすく言うと統計学やプログラミング(主に機械学習)などを活用して、データから事業戦略につながるようなアイデアを生み出し、実現するという仕事です。

では実際にどのような知識や技術がデータサイエンティストには求められるのでしょうか? 下の表では、データアナリストとデータサイエンティストの対比をしてみました。両職業ともに数学・統計学を活用して企業価値を向上するアイデアなどを提案します。データアナリストは、構造が整っているデータを分析して改善点などを見つけるのが主な業務です。それに対しデータサイエンティストは、お客様とビジネスの課題について話し合い、機械学習を導入するためのデータ構造を設計し、それを実装します。それにより、新たなデータ利用の手法やビジネス展開をお手伝いしてします。表にあるオレンジ色の項目がデータサイエンティストとしての付加価値の部分となります。

 図1:データアナリストとデータサイエンティストの比較

図1:データアナリストとデータサイエンティストの比較

この表について研究開発系のデータサイエンティストの方の中には、データベースのエンジニアリング、ソフトウェアエンジニアリングの必要性について異なる見解をお持ちの方も思われます。しかしながら、ビジネス案件を扱う場合、実際にお客様とデータ活用・運用方法などのお話をすると、必ずこの2つのポイントも課題の中に上がってきます。例えば、いくら精度の高いアルゴリズムが開発できたとしても、予測値を出すまでの時間、お客様のオペーレーションにどのようにモデルを組み込むかなど、運用上の条件も満たすことができないとビジネスの問題は解決できないからです。

このように、データサイエンティストの業務は非常に多岐に渡り、多くのエリアの知識を必要とします。大手企業はこれらの人材を自社で確保できるかもしれませんが、日本ではまだ人材も少なく、新しい分野でもあるためアウトソースをしながら共同で機械学習を導入されるアプローチが良いのではないかと思います。少しでもデータサイエンスにご興味のある方は弊社までご連絡ください。次回は機械学習に関してもう少し詳しく触れてみたいと思います。

参照: 

ジョージア工科大学主催セミナーに登壇します

3月28日19時(東海岸時間)(日本時間3月29日午前8時)ジョージア工科大学コンピューターサイエンス学部が主催するセミナーで弊社CTO長谷川とデータサイエンティストの辻が登壇します。

データサイエンティストに向けたキャリアアドバイスをします!ご興味がある方は下のリンクをクリックして申し込みをしてください。

 CTO長谷川とデータサイエンティスト辻

CTO長谷川とデータサイエンティスト辻

R言語でディープラーニング

RStudio::Confの2日目のメインスピーカーはRStudioの創設者であるJJ Allaire氏でした。RStudio社が2017年から本腰を入れて開発してきたプロジェクト、TensorFlowとの連携について講演しました。

 左:Hadley Wickham氏、右:JJ Allaire氏

左:Hadley Wickham氏、右:JJ Allaire氏

TensorFlowというとグーグルが開発したディープラーニングのライブラリとして有名ですが、実はディープラーニングだけではなく、いかなる演算処理も高速に様々な環境で実行できます。また、ハードウェアに頼ることなく、CPU、GPU、TPUと言った様々なプロセッサーで処理を行えます。

Rは歴史的にもそのような外部の演算処理ライブラリーと連携することが強みです。例えば、Rの前身であるSプログラミング言語は、Fortranという演算処理言語と連携することができましたし、EigenやBlastなどの例もあります。

そのような背景から、TensorFlowとRが手を取り合ってRユーザーにもこの超強力なパッケージを使いやすくしたいということで作ったのが「TensorFlow for R」です。Kerasというディープラーニングの階層構造を作りやすくするためのライブラリーや、グーグルのクラウドを使いやすくするライブラリーが揃っています。

Allaire氏はKerasの開発者であるFrancois Chollet氏と共著で「Deep Learning with R」という本を出していますが、これはChollet氏が既に出版した「Deep Learning with Python」という本をベースにコードを全てRに書き換えただけのものと説明していました。

Rのファンである私にとってはTensorFlowやKerasなどのライブラリーがRから使えるということでかなり嬉しい発表内容でした。これまでは、どうしてもディープラーニングならPythonを使うということになりがちでしたが、これからはRも選択肢として考慮します。また、TensorFlowなら一回学習したモデルを保存して、どのような環境でも再現できるので、Rで学習させてiPhoneに読み込む、などの使い方ができそうです。

Rに興味がある、Rを学びたい、という方は是非弊社の「Rプログラミングでデータサイエンス入門講座」をオススメします!夏までに中級編(Rで機械学習)と年内に上級編(Rでディープラーニング)を公開予定です。

Di Cook氏が説くApophenia(データ妄想癖)の避け方

こんにちは、CTO長谷川です。

突然ですが、質問です。晴れた日の午後に芝生の上に寝そべって雲を見ながら、雲の形が他の何かに見える連想ゲームをしたことはありますか?表題のApopheniaとは、まさにそういう意味で、「特に繋がりがないのに意味もなく連想してしまう」ことをさします。ドイツ心理学者のクラウス・コンラッド氏が「統合失調症の前駆症状」という論文の中で使った言葉です。

Cumulus_clouds_panorama.jpg

RStudio::ConfのトップバッタースピーカーのDi Cook氏はMonash大学の統計学の教授です。彼女によると、Apopheniaは数字や図表を扱う仕事では頻繁に起きる現象です。人間は先入観に基づきデータを見る生き物なので、特にデータにトレンドがなくても、自分のバイアスを裏付ける証拠を見出そうとするため、何の相関性もない図表を見て、相関性があると錯覚してしまう危険性があります。

このApopheniaを避けるための手法を二つ紹介してくれました。[1]

  1. Rorschach protocol: 本物のデータを見る前に、練習として、(ランダムサンプル)を図表化してみて、何の関連性もない時に発生し得る形を知っておく。
  2. Lineup protocol: 20個くらいの偽のチャート(ランダム数値に基づく)の中に本物のデータがあるチャートを埋め込み、他の人間にその20個のうち特徴的な図表があるか尋ねる。警察が証人に犯人を特定してもらう時に、容疑者と一般人を一列に並べ、どの人だったかを特定してもらう手法をLineupということから、同じ原理を統計に応用している。
 Photo: Gramercy Pictures; Courtesy Everett Collection

Photo: Gramercy Pictures; Courtesy Everett Collection

他にも統計におけるTidy Data[2]の重要性や、p値に頼り過ぎることの危険性など、面白い統計話をしていました。Tidy DataはRStudioカンファレンスの重要なテーマの一つだったので、定義を記述しておきます。

  • 各変数が列になっていること
  • 各事象が行になっていること
  • セルが値になっていること

上記の3つの条件を満たすことがTidy Dataの前提で、このような形になっていることが後のデータ分析やモデル化を簡単にします。

  • [1] http://www.dicook.org/files/rstudio/#41
  • [2] Wickham H (2014), "Tidy Data" Journal of Statistical Software

RStudio::Confシリーズ

こんにちは、CTOの長谷川です。 

Rプログラミング言語について開発者が集い最新の事例紹介やツール紹介をする、RStudio::Confというカンファレンスに参加しました。RStudioとは、Rプログラミングをする際に使うアプリです。ワードを起動して文章を書くように、RStudioを起動してRのコードを書き、実行します。2日間に渡り南カリフォルニアのサンディエゴで開催されました。

 参加者の登録ブース。無料でTシャツを配布している。 

参加者の登録ブース。無料でTシャツを配布している。 

内容を大きく分類すると、以下の通りです。

  • Rの中でも利用度がかなりたかまっているライブラリである「tidyverse」について
  • Rを使って分析や機械学習のモデルを作る事例紹介 
  • 各エンジニアが独自に開発したパッケージの紹介 

70個以上のプレゼンテーションを2日間でこなすため、3部屋に分かれて実施されました。全部のプレゼンを見ることは物理的に不可能なので、ある程度的を絞って見に行く必要があります。

 プレゼンテーションの   予定表&nbsp;

プレゼンテーションの 予定表 

 大物スピーカーとしては、ggplot2という図表作成のためのパッケージを開発し、tidyverseの中心的人物であるHadley Wickham氏、RStudioの創業者であり近年TensorFlowをRから使えるようにしたJ. J. Allaire氏、StitchFix社のChief Algorithm OfficerであるEric Colson氏などがプレゼンテーションをしていました。

Rはオープンなコミュニティで、言語自体が拡張しやすくできているため、多くのエンジニアが新しいパッケージを開発してはRの有用性を高めていると感じました。例えば、Rで時系列のデータを分析し易くする「tibbletime」や、機械学習のモデルを学習させるときに、クロスバリデーションをし易くするrsampleなどが紹介されていました。 

 オープンなコミュニティのもう一つの利点は、多様性です。R言語を20年以上使っているという人もいれば、使い始めて1年未満という人もいました。私が話した参加者は、例えば教育委員会、保険業界、ファイナンス、メディア、大学教授など、多様な業界から来ていると感じました。

  キーノートの様子。多様な参加者が世界中から集まっている。

 キーノートの様子。多様な参加者が世界中から集まっている。

様々な先進事例やRの使い方についての示唆を得られるカンファレンスでした。1つのブログ記事ではとてもカバーしきれないので、シリーズ化して、プレゼンテーションの中でもとくに面白かったものなどを紹介していきます!講演のタイトルなどはカンファレンスのスケジュールから見れますので、とくに知りたい内容などがあればコメントに入れるか、直接ご連絡ください。乞うご期待。

日経MJ『学ぶ磨く』面に寄稿記事が掲載されました

2018年1月31日発売の日経MJ『学ぶ磨く』コーナーに寄稿しました。

シリコンバレーではAI技術を使って、消費者が欲しいもの、購買する可能性の高いものをレコメンドすることは珍しくなくなってきました。

しかし、イーコマース(EC) の世界ではレコメンド精度を高めて購買のコンバージョンレートを上げるのではなく、AI(と専門家)がレコメンドした商品を消費者に直送してしまおう、という逆の発想のサービスが増えてきています。

比較→検討→購買までの消費者の労力を取り払い、家まで自動的に欲しいと思われる商品を送ってくれる新しいタイプのファッションECサイト『スティッチフィックス』社の事例を元に、データ解析が現在のEC業界でどう使われ、どんな新しいビジネスモデルが生まれているかを書きました。

ご一読ください!

 日経MJ 2018年1月31日 掲載

日経MJ 2018年1月31日 掲載

Deep Learning & AI Assistant Summit:2日目

こんにちは、CTO長谷川です。Deep Learning Summit2日目の報告です。

Deep Instinct社のCTO、Eli David氏は、自社でディープラーニングを活用してコンピュータのウイルスやマルウェアの検知をしています。Deep Instinct社は、マルウェア検知という新領域にディープラーニングを活用していることから、2017年にNVIDIAから「Most Disruptive AI Startup賞」を受賞しています。毎日、約100万の新しいマルウェアやウイルスが新たに開発される中で、どのようにディープラーニングを活用しているかを説明していました。まず約2億ファイルの学習データを準備し、ファイルがウイルスかどうかを判別する分類器をディープラーニングで開発しています。従来の方法と比べてディープラーニングが優れている点は、特徴量の生成などを行う必要がなく、生のファイルを学習データにそのまま使えるという点です。また、従来型の方法で開発された検知システムは、時間が経過するに連れてその効力が著しく低下しますが、ディープラーニングで開発したDeep Instinctの検知システムは時間が経過しても効力が保たれるそうです。そして、マルウェアの中でも更に7種類のマルウェアを識別する分類器を開発しています。これは、ファイルの中で頻出する単語5万個を抽出し、それを分類器に当てるだけでかなりの精度で識別できるようになるようです。

プレゼンテーションの後も面白い質問がいくつも出ました。例えば、マルウェアを潜伏させる手法の一つとして、ファイル自体を暗号化して検知ソフトが察知できないようにする仕組みがあります。そのような暗号化されたファイルはどう検知するのかという質問がありました。それに対しDavid氏はハッカーが暗号化する仕組みが2通りあることを説明しました。まずは、ファイルが全て暗号化されていて、ファイル自体の暗号を解いて別ファイルになってからウイルスが作動する仕組みです。これについては、暗号が解かれた先にもう一つのファイルができるので、その新たなファイルに検知システムを流せば良いだけとのことでした。次に、より高度な手法として、ファイルが部分的に暗号化されていて、新たなファイルを作らずにファイル実行時に暗号を解きながらウイルスを作動させる仕組みです。これについては暗号化されていない部分だけを見ながら判別しなければいけなくて、その場合の精度は若干落ちるようですが、そういうファイルについても90%以上の精度で検知できるらしいです。

 プレゼンの後も質問を受けるEli David氏

プレゼンの後も質問を受けるEli David氏

Daphe Koller氏は、スタンフォードの教授をしながらCourseraというMOOCの創業し、現在はCalicoという医療系のベンチャーを経営しています。彼女はインタビュー形式でのセッションを受けていました。「当時、Courseraという概念を周りに説明した時にどんな反応があったか」という質問に対し、「大学の最重要資産とも言える授業の内容を無償で公開する大学なんてあるわけがないと笑われたが、スタンフォードやUPennなど先進的な考え方をする大学は、無料で公開することによってより認知度が広がり、質の高い学生や研究者を連れてこれると考えてくれて、助かったし、その考え方は正しかったことが今となっては立証された」と答えていました。機械学習の民主化については、様々なツールが出てきて、個人の研究者でも簡単にディープラーニングができる環境が整ってきていることは素晴らしいが、モデルが本当に正しく機能しているかを理解せずに使うことは危険だとも言っていました。最後に、女性でありながらこの業界でキャリアを形成することの大変さの例として、Coursera時代で実際にあったメールのやり取りの話をしていました。とある大企業との商談をするに当たって、その企業の社長に次のようなメールを出しました。「初めまして、CourseraのCOOのDapheです。アシスタントのJamesをCCしましたので、彼と会議の日程を決めてください。」そして返事が、「初めましてDapheさん、是非Jamesの予定が空いている日程候補をいくつか挙げてください」と、彼女がアシスタントだと勘違いしたメールが来た話をしていました。

 インタビュー形式でのDaphne Kollerとの話

インタビュー形式でのDaphne Kollerとの話

最後に会場ではベンチャー企業の支援やリクルーティングの仕組みも整っていて、人材募集用の掲示板や、VCがベンチャー企業にアドバイスをするためのセクションなどが設けられていました。

 人材募集掲示板

人材募集掲示板

 ベンチャー企業支援パネル。Andreesen Horowitz, Trifecta Capital, Toyota Ventures, 500 Startupsなどが名前を連ねる

ベンチャー企業支援パネル。Andreesen Horowitz, Trifecta Capital, Toyota Ventures, 500 Startupsなどが名前を連ねる

Deep Learning & AI Assistant Summit:1日目

こんにちは、CTO長谷川です。

サンフランシスコで開催されているディープラーニングサミットにやってきました。2018年1月25日から二日間に渡り開催されています。ディープラーニングトラックとAIアシスタントトラックという二つのトラックに別れていて、私はディープラーニングトラックに参加しました。といいつつも、元アップルでの同僚のRushin Shah(現在はフェースブック)がAIアシスタントトラックでスピーカーをしていたので、そのプレゼンだけちら見しに行きました。

 Rushin Shah氏。フェースブックの自然言語処理についてプレゼンする

Rushin Shah氏。フェースブックの自然言語処理についてプレゼンする

ディープラーニングサミットの方は、こちらのスケジュールにある通り、セオリー、画像認識、自然言語処理、強化学習、レコメンと検索など、幅広い分野でのプレゼンテーションがありました。

GANを発明したことと、ディープラーニングの教科書を作ったことで知られるIan Goodfellow氏が自らGANについての解説と、その応用例をいくつか紹介していました。GANとはGenerative Adversarial Networkの略で、ゲーム理論と機械学習を融合させ、ニューラルネットワーク同士を対決させようという発想です。Generatorというニセモノを作るためのネットワークと、Discriminatorという本物か偽物かを判別するネットワークが対決していくことによって、Generatorはより現実味のある偽物を作れるようになるという仕組みです。応用例としては、例えば教師データが少ない中でGANが生成したデータを教師データとして使ってしまうというものがありました。具体的には、自動運転の応用例で、夜間は運転しているクルマが少ないことから、夜の時に車を識別するニューラルネットワークを学習するためのデータが不足しているという問題に対して、「昼間クルマが運転している画像」と「夜の画像」を組み合わせて「夜クルマが運転している風景」を人工的に生成して学習データにする例などをあげていました。おまけにプレゼンの後はサイン会が開かれていて、多くの人が彼の教科書にサインを求めていました。

 教科書にサインするIan Goodfellow

教科書にサインするIan Goodfellow

他にも以下のようなプレゼンテーションがありました。

  • Disney Researchがスポーツの戦術に機械学習を応用して、「この瞬間プレーヤーがどこにいるべきか」を予測するモデル
  • 動画から、次に何が起こるかを予測するモデル。例えば、二人の人間がいて、次に起こることがキス、抱擁、ハイタッチのうちどれかを予測するモデル
  • フェースブックのユーザーのうち、約10億人がモバイルのみのユーザーである現状を受けて、モバイル端末でディープラーニングが高速で動くようにするための手法
  • ELMOという自然言語の言葉単位だけではなく、文脈からも意味を読み取れるシステム
  • 強化学習で、タスクの組み合わせを実現できるロボット。例えば、「ボールを投げる」と「箱を拾う」を教えて、「箱を投げる」ということが実演できるロボット
  • Netflixが映画のレコメンに使っている各種手法の紹介

『ポジショニング戦略』& Four Steps to the Epiphany

こんにちは。パロアルトインサイトCEO石角友愛です。

常日頃新しい情報ばかり追い続けているとふと時代の流れと逆を行く様な、クラシックと言われる古典書が読みたくなるときもあります。

20年以上前に書かれたマーケティング業界の古典書、
『ポジショニング戦略』(アルライズ&ジャックトラウト著)
を読んでみて感じたことを書き留めます。出てくる企業などは今とは全く扱いが違うところに時代の流れを感じますが、本質は変わりません。

アメリゴベスプッチ vs クリストファーコロンブスの話

小学生でも知っているコロンブス。彼はアメリカ大陸の発見者の割に努力に見合う評価を受けず、最後は獄中死するという人生を過ごしました。それに引き換え、コロンブスより5年遅れでアメリカに到達したアメリゴベスプッチは、その努力と功績が評価され、存命中にスペイン王国にカスティーリャの市民権を与えられ、要職につくことができました。そして、ヨーロッパ人はアメリゴこそが新大陸の発見者だと信じ、その名にちなんで新大陸を『アメリカ』と名付けたのです。

なぜ、2番手のアメリゴの方が存命中に正当な評価を受けたのか?
コロンバスがやらなくて、アメリゴベスプッチがやったこととは?

  • 『新世界』をアジアとかけ離れた別の大陸であると明確にポジショニングし、当時の地理学に革命的貢献をもたらした。
  • 自分の発見と主張を明確に記録し、公開中の書簡をまとめた『新世界』はなんと25年間で40ヶ国語にも翻訳された。

そう、コロンバスはベスプッチと比べると出版などで自分の主張や偉業を明確に世間に伝えなかったのです。そのせいで、ドイツの製図家(地図を作る人)がコロンバスのことを知らずに、ベスプッチの書籍だけを読んで、
新大陸に彼の名前を書いたのが、アメリカの由来とされています。

マーケティング戦略においてここから言えることは何か?

①『〇〇ではない』ポジショニングの強み

  • ベスプッチは、新大陸がアジアとは全く違うものだということを明確に主張しました。新商品や新サービスを打ち出すとき、必ず既存商品に対抗する形で打ち出さないといけない。人はすでにあるものと関連づけられていない限り、新しいものを受け入れないので、連想のし易さ、すでにある人々のスキームへの入り込み易さを考慮しても、『アスピリンじゃなくてタイレノール』『コークじゃなくてペプシ』などのポジショニングは効果的なのです。

②アウトプットの大事さ

  • 私の中では『マラドーナ戦法』と読んでいるものです。ゴールが入ったかどうかあやふやだったらさきに『やったー!!!』と大喜びして走り回って会場を味方につける。それと同じで、ペスプッチもたくさんの書簡という形で(自分で書いてはいなかったようですが)自分の考えを形に残しました。それにより、確固たるポジショニングを得た、というわけです。

スタートアップをやるときに、シリコンバレーでは必ず起業家が読む本の一つが
Steve Blankの "4 Steps to the Epiphany" ですが、そこでも、既存商品や既存ニーズが存在しない、全く新しい市場を開拓するのは一番難しいと書かれています。しかし、上手くいけばゲームチェンジャーになれる可能性も秘めています。(AirBnBなどがその例)

弊社はスタートアップ企業より、大企業で『AI技術を活用して新しくどの領域に参入すべきか』という案件に関わることが多いですが、そのときもポジショニング戦略の視点は役に立つなと感じました。

 何回読んだかわからない、プロダクト開発をしている人、スタートアップをやっている人、新商品を世に送り出したい人オススメの良書。技術やアイデアが先行しがちなプロダクト開発ですが、一番大事なのはカスタマー開発だ、という概念を教えてくれました。また今度読もう。

何回読んだかわからない、プロダクト開発をしている人、スタートアップをやっている人、新商品を世に送り出したい人オススメの良書。技術やアイデアが先行しがちなプロダクト開発ですが、一番大事なのはカスタマー開発だ、という概念を教えてくれました。また今度読もう。

虎ノ門のDBIC主催『横塚裕志が聞きたいシリーズ第7回』で登壇しました。

こんにちは。パロアルトインサイトCEO石角友愛です。2017年12月20日、虎ノ門にあるデジタルビジネスイノベーションセンター(DBIC)で『日米企業AI活用の差がなぜ生まれるか:新規事業における提言』をテーマに講演をしました。

大企業の新規事業部や経営企画部の方がメンバーになりオープンイノベーションを実現しているDBIC様ですので、オープンイノベーションを円滑に行うにはどうすれば良いかという視点からもお話しました。参加された方は皆さんとても本質的な素晴らしい質問を投げかけていただき、講演1時間、質疑応答1時間では足りないくらいでした。

やはり大企業の場合、良い新規事業案が生まれても事業部にまで落とし込むところが難しく、導入の壁だけではなく、定着の壁を超える必要があります。そのための組織管理におけるコツなどもお話しました。また、良い事業案が浮かんだ時に無駄にしない方法は何か、というところでIT企業のR&D部門が実践しているアイデア抽出方法のお話をしました。

DBIC様、参加された皆様、どうもありがとうございました!

 DBIC代表の横塚裕志様と講演開始前に記念撮影しました。

DBIC代表の横塚裕志様と講演開始前に記念撮影しました。

組立式AIのGoogle AIY Voice Kitの箱開けとテスト

 こんにちは、CTOの長谷川です。AIYとは、DIYをもじって「自分で簡単にAIを作ってみよう」という組立キットです。グーグルが開発したもので、普段から機械学習や基盤の組み立てなどと馴染みが無い人でも、1時間程度でAIを作れます。現在はVoice kitという、音声認識ができるキットと、Vision kitという画像認識ができるキットの2種類のキットがあります。両方ともRasberry Piという小型コンピュータをベースに作ります。キットとPiは別売りなので注意が必要ですが、両方とも3千円程度なので、安価で本物のAIをゼロから作れるというのは魅力的です。私はSiriの開発に携わっていたこともあり、Voicekitの方に興味があったので、それをゲットしました。

IMAGE.JPG

出来上がりは箱の写真にあるとおり、ダンボールの小さな箱の中にコンピュータ、スピーカー、ボタン、マイクが詰め込まれています。手順はまずコンピュータに必要な端子を差し込み、それを箱の中に詰め込んでいくイメージです。 

IMAGE.JPG

箱の完成図は下の動画のような感じです。 

最後に画面とキーボードを繋いで、ソフトのインストールとプログラミングをします。 プログラム自体もサンプルが提供されていて、初心者でも分かり易いように構成されています。

IMAGE.JPG

最後に音声テストを実施して準備完了です。 

組み立て易いのに加えて、さすがグーグルというべきか、ソフトも充実していて、非常に良いキットだと思います。 

NIPS2017:5日目

NIPSの5日目はコンペティションの発表がありました。私の友人でStudio OusiaのCTO山田育矢氏がクイズAIのコンペで機械選手権を勝ち抜いてきましたので、応援に駆けつけました。詳細はStudio Ousiaのブログに記述されていますが、早押しクイズ形式で、問題を読み上げている最中に答えが分かったらボタンを押し回答するという内容です。そのコンペでまずはAI同士の戦いに勝ち抜き、AIのトップになったのがOusiaのAIです。そして本日はAIの中でトップになったOusia対人間のエキスパート6名の対戦でした。ちなみに昨年も同じコンペが開催され、その時は人間が圧勝しています。そして、問題の難易度も去年と比べて難しくなっているようです。

結果は、465対200で、Ousiaの圧勝でした。最初の方はAIが答えると人間も感心して拍手などが湧き起こりましたが、途中からは差があまりにもデカすぎるので会場の人間があからさまに人間の応援に回るようになりました。悪者扱いされるくらい本当に強かったということです。

勝負が終わったあと、Richard Socherなどの著名な研究者を含めたパネルディスカッションがありました。そこでの議論が「来年はどうすればよりAIにとって難しいゲームになるか」という方向で運ばれていたので、ちょっとイラっとなりました。というのも、今回のこの圧勝はすごい結果ですし、そこには様々な技術的課題を乗り越えたりしているはずなのに、その本質的な議論が全然されないことを少し残念に思いました。アルファ碁が囲碁でトップ棋士に勝ったからといって、「じゃあどうすれば囲碁をもっとAIが勝ちづらくできるか」みたいな話は誰もしないじゃないですか。

 NIPSにてStudio Ousia CTOの山田育矢氏と。優勝おめでとうございます!

NIPSにてStudio Ousia CTOの山田育矢氏と。優勝おめでとうございます!

午後はk近傍法という、機械学習の中でもシンプルな概念に基づくアルゴリズムのワークショップに参加しました。概念としては、新たなテストデータが来たときにこれまで見てきたトレーニングデータのどれと一番近いかをベースに分類するという分類機です。シンプルな上に有用性が高いので、クライアント様に実装する手法として使うことが多いので、興味を持って聞いていました。k近傍法は他の全てのデータセットと比較しなければいけないので、パフォーマンスがボトルネックになることが多いので、その課題をどうやって解決するかという内容でした。

NIPS2017:4日目

今日からは「ワークショップ」という形式に変わり、テーマ別にいくつかのワークショップが平行で走るようになっています。ワークショップのテーマは以下の4つです:

  1. Metalearning:昨日Pieter Abbeel氏が話していた学習の仕方を学習するというメタラーニング
  2. Kinds of intelligence:知識とは何かという定義を見直そうという内容
  3. Deep Reinforcement Learning:ディープラーニングの強化学習への応用
  4. Interpretable Machine Learning:解釈可能な機械学習のための研究

私はアルファ碁について興味があるし、David Silver本人(アルファ碁の開発リーダー)にも会いたかったので3番の強化学習のワークショップに参加していました。1番バッターが彼だったので良かったです。今週また新たに発表した、アルファゼロについての説明があったので、食い入るように聞いていました。アルファゼロは、囲碁だけでは満足できず、同じ手法を使って学習データなしの状態からチェスとなんと将棋をアルファゼロに学習させ、世界のトップAIに勝たせるという快挙を成し遂げました。後々少しDavid Silverと話す機会があったので、「将棋のドメインエキスパートがいないようですが、その不在により何か課題などはありましたか」ということを聞いてみました。というのも、囲碁については、論文自体の作成にファン氏という欧州チャンピオンの囲碁棋士が関わっていたし、チェスについては、DeepMindの創設者であるDemis Hassabis氏はチェスのチャンピオンですが、論文を見る限り、将棋の深い知見を持つ人間がいないように見受けられたからです。彼の答えは、囲碁もチェスも、ドメインエキスパートの知見を借りたのは最終的な結果を見せて「本当に強いのか」という確認をしてもらった程度で、実際のAIの学習においては彼らのインプットをもらっていないとのことでした。

次のスピーカーはJoelle PineauというMcGill大学の教授でFacebookのMontreal研究所所長です。彼女の元で研究していた博士や学生が、業界の最先端の研究を再現するために苦労しているのを見て、機械学習の研究の再現性を高めるためにはどうすれば良いのかという話をしました。研究者に対するアンケート調査によると、「今、研究の再現可能性は危機的状況にあるか」という問いに対して、52%がYes、さらに38%が「ちょっと危機的」とほぼ9割の研究者が問題有りと認めていることを発表していました。解決策として、例えばモデルをチューニングするときの変数であるハイパーパラメータを明記することや、プログラムを流すためのコードを公開することなどを勧めていました。それに対して、前の講演者だったDavid Silver氏が「どこかで折り合いを付けなければ技術革新のスピードが落ちてしまうのではないか」という質問を投げかけていました。このようにトップレベルの研究者がただ単に自分の発表をするだけではなく、他の講演内容も真摯に聞き入って納得がいかない点や気になる点があるとちゃんと公共の場で質問するというところもすごいなと感じました。この動画はそのときの様子です。

最後に、今年のNIPSはInterpretable Machine Learningというのが一つの大きなテーマで、機械学習のモデルを解釈できるようになるための研究が発表されていました。そのワークショップの締めくくりとして、Yann LeCunをはじめとする研究者4名が議論するという面白い趣向がありました。議題は「Interpretibility is necessary in Machine Learning(解釈可能性は機械学習において不可欠である)」でした。下のビデオはその「選手紹介」の部分です。ちなみにNIPSのビデオはほとんどがNIPSのFacebookページでライブ配信されその後公開されています。精度がめちゃめちゃ高くて、しっかりテストされていれば解釈可能性は関係ない、という反対派に対して、何が起きているか分からない(ブラックボックスな)モデルを導入することは倫理に反するといった肯定派の主張がありました。

NIPS2017:3日目

本日は(ネット上で)ちょっとしたハプニングがありました。2日目のブログでも紹介しましたが、「Test of Time賞」を受賞したAli Rahimi氏の講演内容に対して、Yann LeCun氏がFacebook上で抗議しました。具体的な内容については彼の投稿を見ていただければ分かると思いますが、ディープラーニングのことをRahimi氏が「Alchemy」と表現したことに対して、「礼を逸していると同時に間違っている」と憤慨しています。昨日は内容にあまり踏み込むことが出来なかったので、もう一度Rahimi氏のプレゼンテーションを以下に要約します。

  • 今の機械学習のコミュニティには「self congratulatory」(自己の成功を過剰に賞賛し祝うような)な空気が漂っています。例えばAndrew Ngの次のような発言にもその風潮が見受けられます「Machine learning is the new electricity」(機械学習は現代の電気である)
  • 私は全然そうだとは思わず、どちらかというと今のディープラーニングは「Alchemy」(魔術)だと思います。Alchemyは大昔、病気を直したりする上で、実際に成果をあげていました。成果はありましたが、「なぜそれがうまくいくか」また「なぜ不可解なことが起きているのか」の原因究明は全くされておらず、その後、科学は数百年の時をかけてそれらのことを紐解く必要がありました。
  • 私たちは今、機械学習を使って、車を運転し、選挙の行く末に影響を与え、病気を直そうとしています。素晴らしいことですが、ぜひここであなたのこの一年の仕事を振り返って、①ある基準値を達成するために遮二無二色々なパラメーターを試し、とにかく結果を出すために費やした時間が多かったのか、それとも、②何か一つのものに納得できず、原因を考察し、分かり易い再現可能な実験を繰り返し、人類の科学に対する理解を深めることに費やす時間が多かったか、どちらが多かったか考えてください。
  • その答えが②でない場合は、ぜひ②の時間を増やしてください。

科学とは何か、機械学習が人類のためになるにはどうすれば良いか、深い洞察とコミュニティに対する愛を持ちながら話していることが伝わり、感銘を受ける内容でした。

それに対して、LeCun氏は以下のように反論します。

  • 科学の発展においては、理論の理解よりもモノの開発が先行することがよくあります。レンズ、飛行機、ラジオなどはその例です。
  • 理論的な理解が追い付いていないのは事実だが、解決策はコミュニティを批判することではなく、実際に仕事をして理論的な理解を追いつかせることです。
  • このような批判は、10年間ニューラルネットワークという素晴らしい手法を機械学習のコミュニティが無視するに至った、失われた10年を再現することになる危険性があります。

曲がりなりにも今の機械学習の時代を作った二人の間の議論なので、口を挟むのも憚られるようなハイレベルな議論ですが、機械学習を実装する人間の意見を言わせてもらうと、是非理論的な解明は進むようになって欲しいです。例えば、人の命を取り扱うようなクライアントの案件の場合、やはり「なぜうまくいくかは説明できないですが、結果として高い精度が得られました」というのはやはり通らないからです。いくらパワフルなモデルがあっても、それを使ってもらうことができません。あと、「分かんないなら自分でどうにかしろ」というのはいささか乱暴な気がします。もちろん、Rahimi氏ほどの人なら、色々と自分で研究した上で手が足りないと感じたからこその訴えだったと思います。とかなんとか考えていたら、今日は目の前の席にLecun氏が座っていたのでちょっと驚きながらも、写真を撮っておきました。

さて、本題の3日目の内容ですが、今日の講演で素晴らしかったのは、Pieter Abbeel教授の強化学習をロボットに応用するという内容の講演でした。強化学習は実際に学習をする期間が長くかかるという課題がありますが、一つの方向性として、「One shot imitation」という一度人間がやった内容を見ただけで真似できるようになるという手法を見せていました。また、強化学習にはGoalの定義の仕方や、実際の学習の仕方などを定義する必要がありますが、その学習の仕方自体を学習するという「Metalearning」という手法について発表していました。最後に、若い研究者がどのような貢献をすれば良いかという質問に対して、「良い評価環境の整備が必要です」と答えていました。