AIの考え方を人生に活用する方法

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

突然ですが、皆様は家探しは好きですか?私も嫌いです。なぜって、どんなに探しても大満足の家がなかなか見つからないし、そんな家があったとしても予算外。そこそこの家で妥協するにしても、どこで線引きをすれば良いか分からないですよね。

戦略としては、最初の数件は市場に出ている家がどんな感じか、感触を得るために「探索モード」(特に契約はする気は無くただ見て回るだけ)で見て回って、ある程度感触を掴んだらお財布と印鑑を引っ張り出して「本気モード」で探すというのが常套手段ではないでしょうか。そんなときに悩むのが、いつ「本気モード」への転換をするかです。実はこのような問題は数学的に証明されていて、答えがあります。その答えは37%です。

つまり1ヶ月家探しに費やすのであれば、31日 X 37%の11日間は探索モードで見て、12日目からは印鑑を持参して、これまでに見た家の中でも一番良い、もしくはかなり上位に入るという家があれば即断即決する。これが最適解とされています。

このようにAIとかアルゴリズムとかいうと、いかにも機械しか分からない世界の話に思いがちですが、機械も限られた資源の中で以下に良いものを選ぶかとか、以下に早く処理するかということを考えて行動しています。そういう意味では人間と似ていて、実際このようにAIのために開発されたアルゴリズムが人生に応用できることも良くあります。

もしこのような話にご興味があればものすごい良書があります。実は上記の家探しの話もこの本からきているので、気になる方は読んでみてください。

アルゴリズム思考術 問題解決の最強ツール (早川書房)

ビジネスインサイダー主催イベントでトークセッションを行いました。

10月25日に東京・青山のINTERSECT BY LEXUS TOKYO で Business Insider Japan主催のトークセッションにて講談致しました。

Soup Stock Tokyoなどを手がける株式会社スマイルズ代表取締役社長の遠山正道さんと「テクノロジーの発展がもたらす、新たな働き方とは」というテーマでお話させていただきました。

日本の20代、30代の今後の働き方のビジョンなども直に聞けて、楽しいトークセッションでした。

多くのみなさま、ありがとうございました。

PA250684.JPG
PA250543.JPG
PA250458.JPG

経営塾フォーラムで講演会を行いました。

10月25日に、ホテルオークラ・オーチャードホールにて経営塾主催のフォーラム『人工知能は人間の仕事を奪うのか?ーーAIビジネスの現在と世界の潮流』というテーマの講演を致しました。

AIは将来的に大手、中小企業を問わずあらゆる業種に活用され、人間の仕事を奪うとまで言われていますが、現在の世界のビジネスシーンにおけるAIの活用法はどこまで進んでいるのか、また日本企業はどう対処しているのか、AIビジネスの現在と世界的な方向性について、経営の観点からも語らせていただきました。

多くの経営者の方にお越しいただき心より感謝致しております!

PA250248.JPG
PA250014.JPG

UBERが作る、「フェイクニュース」を見破るAI

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

Open Data Science Conference(ODSC)はデータサイエンスをテーマに質の高いプレゼンテーションが用意され、参加者も面白い人が多いので注目していたカンファレンスの一つでした。

今年のODSCはパロアルト近辺で開催される上に気になる スピーカーが何人かいるので参加しました。気になるスピーカーとは、テスラでAIのディレクターを務めるAndrej Karpathy氏、UBERでデータサイエンスチームをリードし、Berkleyで教鞭を握るMike Tamir氏、そして弊社でも欠かせないツールとなっているSlackのデータサイエンスチームを作り上げたJosh Wills氏の3名です。

 Andrej Karpathy氏はテスラでのAI開発の現状を解説していました。テスラではモデルの精度が人命に関わるケースがあるため、エッジケースをとにかく追求して質が高い上に超汎用性が高いモデルの開発を目指していると言っていました。またアジャイルの一歩上を行くソフトウェア2.0の開発手法や、データ自体がプログラムの領域に達してきている現状を解説していました。

 フェイクニュースを見破るAIを披露するMike Tamir氏

フェイクニュースを見破るAIを披露するMike Tamir氏

Mike Tamir氏は自然言語処理のディープラーニングモデルを用いて「フェイクニュース」を見破るAIを披露していました。私はSiriでエンジニアをしていた頃は自然言語処理を生業としていたため、ここら辺の内容、特にLSTMなどの手法は馴染みやすかったです。彼は機械学習の本題に入る前に「課題定義」の重要性を説いていました。フェイスブックのようにフェイクニュースを「事実とは異なるニュース」というように定義してしまうと、では事実とは何かといった非常に難しい問題と直面します。そうではなくて、「フェイクニュース」の特徴として、人間の感情を逆撫でして論理的思考能力を停止させるニュースを「フェイクニュース」と定義して、そのような文面を判別する分類器を作るように心がけたようです。

 マイクをつけるJeff Wills氏

マイクをつけるJeff Wills氏

最後にSlackのJeff Willsですが、私は彼がまだClouderaでチーフサイエンティストをしていた時代から知っていたので、面白い発表をするに違いないと踏んでいました。出だしから「今は何だか皆が機械学習は面白いと思い込んでいるようだけど、私は機械学習をいつも苦痛に思っていた」と斜に構えた出だしだったので、さすが肝が据わってるなと思いました。彼はグーグルでアドのランキングなどの仕事もしていたので、グーグルの検索エンジンが3つの層で構成されているという内情を話していました。1つはリアルタイム層、これは新聞記事などの情報の鮮度が重要なデータの索引でドキュメント数は約2,500万。2つ目はコア層で、これが検索の大部分を占める内容で、ドキュメント数は4億以上。最後に「テラグーグル」という層があってなんとドキュメント数が16億もあったらしいです。

というわけで内容も参加者も素晴らしいイベントでした。来年も是非参加したいところです。

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などが名前を連ねる