ハフマン符号

あけましておめでとうございます。CTO長谷川です。

今年は基礎に立ち返って色々なアルゴリズムの復習をするという目標を一つ立てたので、面白いアルゴリズムを取り上げてはブログ記事を書いていこうと思います。今回は情報圧縮技術を勉強していました。圧縮技術は通信速度に限りがあるインターネットの世界ではものすごく重要な位置付けにあります。例えば、ネットで見る画像や動画はほとんどjpgやmp4などで圧縮されたものですし、zipファイルに固められたフォルダなんかも様々な圧縮技術が使われています。

今回はその中でも面白かったハフマン符号という文字の圧縮方式を紹介します。この圧縮方式はデイビッド・ハフマン氏が1951年、若干25歳のMIT学生時代に発明したものです。情報理論の授業で単位を取得するために、期末試験を受けるか、もしくは期末論文を書く選択があり、その論文のテーマが「文字や数字などの情報を最も効率的に表現する手法を探せ」というものでした。ハフマン氏は、その期末論文の回答としてハフマン符号を発明したのです。今でも例えばZipファイルなどの圧縮方式の一部として世界中で使われている圧縮手法を25歳のときに授業の宿題の一環で発明してしまうとは、まさに天才的です。

さて、ハフマン符号とはどのようなものでしょうか。この符号化の方式は、我々が使う文字の頻度に格差があることを利用して情報量の圧縮を実現します。例えば、英語ならば母音の「e」という文字が最も頻繁(英文字の12.5%)に出現し、「z」は最も稀である(全文字の0.09%)という統計をグーグルのPeter Norvig氏が発表しています。この統計を利用して、より頻繁に起きる文字をより少ないスペースで、より稀に起きる文字をより多くのスペースで表現しようというものです。

モールス信号もこれと同じ原理で組まれています。頻繁に起きる文字である「e」には、最も短い信号「.」、稀な文字である「z」には、長い信号「--..」が割り当てられています。

例えば、このブログ記事の冒頭の「あけましておめでとうございます。CTO長谷川です。」という文をハフマン符号化すると、次のようになります。

10000101100001001010111100010010111010011101011010011001111100000100111011011011110101111111000001111100100111

長さにして110ビット(0か1の上記の並びが110桁)です。元々の文は25文字ですが、日本語はUTF8というユニコードで機械の中では表現されており、日本語のユニコード1文字に付き24ビット消費します。

例えば、ひらがなの「あ」はコンピュータから見るとこう見えます。

111000111000000110000010

つまり、元々の文は25文字ですが、データ容量としては600ビット使っているということです。

もっと長い文章ではどうでしょうか。例えば、夏目漱石の「こころ」で試してみたところ、以下のような結果になりました。

Original character count:  174549
Original string bits:     4179584
Encoded string bits:      1268100

元々の文字数は約17万字、符号化による圧縮はなんと70%もデータ容量をセーブできます。

どのように符号化がなされるかというと、ハフマン符号化をするに当たって、以下のような辞書を作成します。前述した通り、頻繁に起きる文字を短いビット数で表現するようにします。

char       n                code
--------------------------------
の      7662               11111
い      6989               11010
私      2695              100010
が      2649              100000
生       784            10110110
事       747            10101101
わ       680            10001110
先       677            10000111
め       644            01111101
人       625            01110011
ろ       586            01100001
時       560            01000100
や       516            00100011
ば       480           111101010
分       470           111011111
出       469           111011110
見       453           111011000
自       415           110001111
K       411           110001110
み       409           110001100
奥       401           110001001
父       388           101101010
来       385           101101000
間       352           100110010
彼       348           100101111

上記の辞書は漱石のこころから算出したものです。漱石のこころに登場する人物たちが見事に符号化されています。「私」、「先生」、「K」などの符号化の順番などを分析していると面白いです。やはりというべきか「私」という文字が「K」という文字の前に来ていますね。この辞書を作るに当たって気を付けなければいけない点として、重複したコードが発生しないようにしなければいけません。例えば、「の」は「11111」ですが、もっと頻度が少ない文字、仮に「z」が「111110」のようなコードだと、「の」に続いて「0」が一つあるのか、「z」なのか分からなくなってしまいます。これを回避するために、内部では以下のような木構造を作ります。

tree structure

(出典:wikipedia)

この木を作成する簡易的なアルゴリズムとして、まずそれぞれの文字の頻度を算出し、頻度が少ないもの同士を繋げて一つの木に合体させていくということをするだけで、ハフマン木ができます。そのハフマン木を今度は天辺から下に辿っていって、右にいくときは1、左にいくときは0とコードを繋げていくと、上記の辞書が出来上がります。

コードを書いてみるとそのアルゴリズムのシンプルさと分かりやすさに感嘆します。私が書いたものを弊社のGitHubにて公開していますので、良かったら見て実行してみてください。

新刊へのコメント

日本電産の専務執行役員であり中央モーター基礎技術研究所長の福永泰様より読後コメントを頂きました!感謝です。 「AI時代のビジネスインパクトを出すには、なるべく離れた分野の知を組み合わせたほうがいい、という箇所がよかった。日米の懸け橋、よろしくお願いします」

日本商工倶楽部で講演会を行いました。

12月18日に、とみん神田にて日本商工倶楽部主催で『スピーディーに移り変わるAIビジネスの世界』というテーマの講演を致しました。

「来年は中小企業こそAI元年」という言葉をキーワードにアメリカと日本の両方の視点からAIビジネスについて語らさせていただきました。すでに先週発売されたばかりの私の本を読んでくださっている方もいらっしゃり、多くの経営者の方がAIに興味を持ってくださっていることを実感致しました。

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

2018-12-18 13.51.19.jpg
2018-12-18 14.27.03.jpg

AIによる人類の破滅というたわ言

CTO長谷川です。

イーロンマスク氏のインタビューをHBOで見ました。彼は「AIによる人類の破滅論者」で、私は彼のことを一企業家兼ビジョナリーとしてかなり尊敬はするものの、AI破滅論については懐疑的なので果たして何を根拠にそんなたわ言を言うのかなと興味本位で聞いていました。

インタビュー時間は15分程度で、オフィスの中で二人のインタビュアー(技術的なことには疎そう)がマスク氏に対して質問を投げかけると言う設定。大まかな内容としては以下の通りでした。

  • 人間は生物学的に自己の絶滅危機を冷静に見定めることができない、危機感が足りていない

  • アルゴリズムとハードがこのまま進化すれば人間は到底太刀打ちできない

  • 例えばコンピュータが直接手を下さなくても、人間を操るレベルにきている

  • 例えば今の顔認証技術にドローンをくっ付けるだけで超高性能暗殺ロボットができる

  • 今年はテスラのモデル3を量産化することに死力を尽くしたため、心身ともにボロボロ

  • 今投資している(?)ベンチャーの中で、脳に直接コンピュータを埋め込むことを実現しようとしている

率直な感想を言うと、心身共にボロボロと言うのは本当で、顔面蒼白で集中力も散漫な感じがしていました。話も飛び飛びで、深い技術的な理解に基づいた洞察と言うよりは、センセーショナリズムを煽るような話し方だったので、やはりAIによる人類破滅なんてことは無いなと再認識するような内容でした。質問のレベルが低かったためというのもあるかもしれません。

Getty Images

Getty Images

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つのポイントも課題の中に上がってきます。例えば、いくら精度の高いアルゴリズムが開発できたとしても、予測値を出すまでの時間、お客様のオペーレーションにどのようにモデルを組み込むかなど、運用上の条件も満たすことができないとビジネスの問題は解決できないからです。

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

参照: