SAS Japan

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て
Data for Good | SAS Events | Students & Educators
小林 泉 0
SGF2017 レポート - 初日、オープニングセッション他

今年のSAS Global Forum は、USのフロリダ州オーランドで開催されました。 例年同様日曜日スタート 従来と異なるのは、パートナー様向けの、SAS Partner Forum 2017 がSGFと同時開催されたことです。日本から参加されたSASジャパンのパートナー企業様は、前日夜のレセプションから始まり、イベント週間の先頭をきって、日曜日朝8:30からのSAS Executiveも登壇するセッションに参加いただき、みっちり午後までのスケジュールを、忙しくこなして頂きました。その様子は、こちらのSAS Partner Blogよりビデオでご覧いただけます。お忙しい中を時間を割いて日本からご参加いただくパートナー企業様が年々、増加しており、今年もセッション他、有意義なコミュニケーションの時間を過ごさせていただきました。誠にありがとうございます。多種多様なスキル・経験をお持ちのパートナー企業皆様に囲まれ、今後のSASビジネスに非常に心強さを感じました。 明日のリーダーを育成する さて、SAS Global Forum、通称SGFは、初日の夜のOpening Sessionからスタートなのですが、その前に、前述のパートナー様向けのイベントだけでなく、毎年最も重要なイベントの一つであるAcademic Summitが行われます。これは、SASが重要視することの一つである、人材育成・教育への投資、そしてその結果、社会へ優秀なデータサイエンティストを生み出すための活動であるAcademic Programの年次の総会のようなものです。教育関係者だけではなく企業関係者も参加することで、実務で役立つ教育の促進と人材の確保というエコシステムを形成しています。これを特徴付ける数字としては、このイベントのスポンサーを見てもわかります。 通常のパートナー企業様のスポンサーが29社 アカデミックのスポンサーは、16教育機関。 この数から見ても、本イベントを大学などの教育機関が重要視していて、教育と企業との連携が盛んであることが伺えると思います。 SAS Global Forumそのものが、教育機関と民間企業の接点の場であり、学生の発表や表彰、そして参加大学の企業へのアピールの場にもなっています。さて、Academic Summitのアジェンダを見てみましょう。 ネットワーキング SAS担当エグゼクティブの挨拶 スカラシップ受賞者の紹介 Student Ambassador Program受賞者の紹介 Student Symposiumファイナリストの発表 ゲスト講演 Student Symposium(SGF2017で実施されるコンペティション)の優勝チームである、Kennesaw State University の "The Three Amigos"は、「銀行の定期預金契約者の決定要因をロジスティック回帰と決定木で分析」したものでした。その他Student Symposiumの発表は以下のようなものがありました。 Dataninjas: Modeling Life Insurance Risk (Kennesaw State University)

Programming Tips
小林 泉 0
グラフ理論②:PythonとSAS Viyaでグラフ分析

はじめに 以前このブログ「グラフ理論入門:ソーシャル・ネットワークの分析例」でもご紹介しましたが。SASは従来からネットワーク分析(グラフ分析)をサポートしています。ネットワーク分析の基本的なことはまず上記のブログをご参照ください。 今回は、プログラミングスキルがあるアプリケーション開発者やデータサイエンティスト向けです。Pythonからネイティブに利用できるSAS Viyaを使用して、ネットワーク分析をする簡単な利用例をご紹介します。 2016夏にリリースされたSAS Viyaは、アナリティクスに必要な全てのアルゴリズムを提供しつつ、かつオープンさを兼ね備えた全く新しいプラットフォームです。これにより、SAS Viyaをアプリケーションにシームレスに組み込むことや、どのようなプログラミング言語からでもアナリティクス・モデルの開発が可能になりました。今回は、SASのパワフルなアナリティクス機能にアクセスするために、そのオープンさがどのように役立つののかにフォーカスします。 前提条件 SAS Viyaは、REST APIにも対応しているため、それを使用しても良いのですが、一般的には、使い慣れたプログラミング言語を使用する方が効率が良いと考えられるため、今回は、データサイエンティストや大学での利用者が多い、Pythonを使用したいと思います。 デモ環境としては、Pythonコードを実行できるだけでなく書式付テキストも付記できる、Webベースのオープンな対話型環境であるJupyter Notebookを使用します。Jupyterをインストールした後に、SAS Scripting Wrapper for Analytics Transfer(SWAT)をインストールする必要があります。このパッケージは、SAS Cloud Analytic Services(CAS)に接続するためのPythonクライアントです。これにより、Pythonから全てのCASアクションを実行することが可能となります。SWATパッケージの情報やJupyter Notebookのサンプルはこちらをごらんください。https://github.com/sassoftware SAS Cloud Analytic Services(CAS)にアクセスする SAS Viyaのコアにあるのは、SAS Cloud Analytic Services(CAS: キャス)というアナリティクスの実行エンジンです。"CASアクション"という個々の機能を実行したり、データにアクセスしたりするためには、CASに接続するためのセッションが必要となります。セッションからCASへの接続には、バイナリ接続(非常に大きなデータ転送の場合にはこちらが推奨です)あるいは、HTTP/HTTPS経由のREST API接続のどちらかを使用することができます。今回は、デモンストレーション目的で非常に小さなデータを扱うので、RESTプロトコルを使用します。SAS ViyaとCASのより詳細な情報はこちらのオンラインドキュメントをごらんください。 多くのプログラミングと同様、まずは使用するライブラリの定義からです。Pythonでは、importステートメントを使用します。非常に良く使われるmatplotlibライブラリに加えて、ネットワークをビジュアライズするためのnetworkxも使用します。 from swat import * import numpy as np import pandas as pd import matplotlib.pyplot as

Data Management
小林 泉 0
Hadoopだからこそ必要なセルフサービス-そしてアダプティブ・データマネジメントの時代へ

2014 およそ2014年からSAS on Hadoopソリューションを本格展開してきました。時代背景的には、2014頃は依然として、業態の特性からデータが巨大になりがちで、かつそのデータを活用することそのものが競争優位の源泉となる事業を展開する企業にHadoopの活用が限られていたと思います。その頃は、すでにHadoopをお持ちのお客様に対して、SASのインメモリ・アナリティクス・エンジンをご提供するというケースが大半でした。 その後、急速にHadoopのコモディティ化が進んだと感じます。 2015 2015頃になると、前述の業態以外においてもビッグデータ・アナリティクスの成熟度が上がりました。データ取得技術の発展も伴い、これまで活用していなかった種類や量のデータを競争優位性のために活用を志向するようになり、蓄積および処理手段としてのHadoopの選択が加速します。この頃になると、数年前には必ずあったHadoopそのものの検証ステップを踏まない企業が増えてきます。データ量、処理規模、拡張性、コスト効率を考えたときに妥当なテクノロジーがHadoopという結論になります。ビッグデータはデータのサイズだけの話ではありませんが、筆者の足で稼いだ統計によると、当時大体10TBくらいが、従来のテクノロジーのまま行くか、Hadoopを採用するかの分岐点として企業・組織は算段していたようです。この時期になると、従来のテクノロジーの代替手段としてのHadoopの適用パターンが見えてきました。 新しいデータのための環境 従来捨てていた、あるいは新たに取得可能になった新しいデータをとりあえず蓄積して、何か新しいことを始めるためのある程度独立した環境として、コスト効率を考慮してHadoopを採用するパターン 既存のデータウェアハウスへ価値を付加(上の発展形であることが多い) 新たなデータを使用してHadoop上で加工し、アナリティクス・ベーステーブルにカラムを追加し、アナリティクスの精度を向上 ETL処理負荷やデータ格納場所のHadoopへのオフロード BI & アナリティクスの専用基盤 SQLベースのアプリケーションだけをRDBMSに残し、その他の機械学習、ビジュアライゼーションなどSQLが不向きな処理をすべてHadoop上で実施 多くは、インメモリアナリティクスエンジンと併用 データレイク (筆者の意見としては)いざ新しいデータを使用しようと思ったときのスピード重視で、直近使用しないデータも含めて、全てのデータを蓄積しておく。よくあるのが、新しいデータを使用しようと思ったときには、まだデータが蓄積されておらず、利用開始までタイムラグが生じてしまうケース。その時間的損失すなわち利益の喪失を重要視し、そのような方針にしている企業が実際に当時から存在します。 2016 海外の事例等では数年前から見られましたが、2016になると、日本でも以下の傾向が見られます 既存Hadoopをそのコンセプトどおりスケールアウトしていくケース グローバル・データ・プラットフォームとして、複数のHadoopクラスターを階層的に運用するケース AI、機械学習ブームにより機械学習のためのデータの蓄積環境として IoTの流れにより、ストリーミング処理(SASでいうと、SAS Event Streaming Processingという製品です)と組み合わせて まさに、Hadoopがデータプラットフォームとなる時代がやって来たと思います。その証拠に、SAS on Hadoopソリューションは、日本においても、金融、小売、通信、サービス、製造、製薬といったほぼ全ての業種において活用されています。 Hadoopの目的は、従来型のBI・レポーティングではなく、アナリティクス このような流れの中で、Hadoopの採用には一つの確固たる特徴が浮かび上がっています。もちろん弊社が単にITシステムの導入をゴールとするのではなく、ビジネス価値創出を提供価値のゴールにしているというバイアスはあるのですが。。。 Hadoopの導入目的は、ビジネス価値を創出するアナリティクスのためであることがほとんどである したがって、Hadoopに格納されるデータには主にエンドユーザーがアナリティクス観点の目的志向でアクセスするケースがほとんどである つまり、ある程度の規模のITシステムではあっても、Hadoopに格納されるデータはアナリティクスの目的ドリブンでしかアクセスされません。主たるユーザーは、分析者やデータ・サイエンティストです。彼らが、「使いたい」と思った瞬間にアクセスできる必要があるのです。このようなユーザーサイドのリクエストは、従来のBIすなわちレポーティングのような固定化された要件定義をするような依頼ではないため、その都度従来のようにIT部門と要件をすり合わせて、IT部門にお願いするという方法では成り立ちません。その数日、数週間というリードタイムが意思決定を遅らせ、企業の業績に悪影響をもたらすからです。あるいはIT部門の担当者を疲弊させてしまいます。つまり、アナリティクスにおいては、分析者・データサイエンティストが自分自身で、Hadoop上のデータにアクセスし、必要な品質で、必要な形式で、必要なスピードで取得するために自由にデータ加工できる必要があるのです。 このあたりの話については、下記でも紹介していますので、是非ご覧ください。 【ITmedia連載】IT部門のためのアナリティクス入門 第2回 やっと分かった ビッグデータアナリティクスでHadoopを使う理由 第3回 データ分析で成功するためのデータマネジメントとIT部門の新たな役割  【関連ブログ】 アナリティクスの効果を最大化するデータマネジメント勘所 これが、Hadoopにおいて、セルフサービス・データマネージメント(データ準備)ツールが不可欠な理由です。SASはアナリティクスのソフトウェアベンダーとして、このHadoop上でITスキルの高くない分析者・データサイエンティストでも自分自身で自由にデータを取得できるツールを開発し提供しています。それが、SAS Data Loader for Hadoopです。 SAS Data Loader

Artificial Intelligence | Machine Learning
小林 泉 1
ディープ・ラーニングとAI

この写真に写っているのは何でしょうか?きっと皆さん考えることもなく瞬時に家だと分かるでしょう。なぜなら、何百、何千という種類の家を見てきた経験から、家を構成する特徴(屋根、ドア、窓、玄関前の階段など)を脳が認識できるようになっているからです。そのため、たとえ家の一部分しか写っていない写真でも、自分が何を見ているかが瞬時に分かります。家を認識する方法を学習済みなのです。 多くの皆さんは、この話題ですぐに、「あぁ、ディープ・ラーニングの話だな」とピンとくることでしょう。今回は、昨今メディアを賑わせ、誤解も多くある、ディープ・ラーニングとAI(人工知能)の理解について、簡単に頭を整理してみましょう。 ディープ・ラーニングとは、家の画像の認識、分類、説明など人間が行うようなタスクを実行できるようにコンピューターに学習させることに特化した、人工知能(研究)の一領域です。しかし、ビジネスにおけるディープ・ラーニングの手法と応用はどのような状況にあり、アナリティクスの将来にディープ・ラーニングはどのようなメリットをもたらしてくれるのでしょうか? ディープ・ラーニングとその仕組みについて、SASのアナリティック・サーバー研究開発担当副社長であるオリバー・シャーベンバーガー(Oliver Schabenberger)に話を聞きました。 ディープ・ラーニングをどのように定義していますか? 【オリバー・シャーベンバーガー】ディープ・ラーニング手法は機械学習の一種であり、いわゆる「弱いAI(人工知能)」の一形態と考えられます。「弱いAI」とはAI分野の専門表現で、人間の脳と同じように動作する思考マシンの作成を前提としていないことを意味します。その代わり、「ディープ・ラーニング手法は人間が行うような特定のタスクをインテリジェントな方法で実行することができる」という前提に立っています。そして私たちは今、こうしたインテリジェンス強化システムが人間よりも優れた正確性、安定性、反復性をもってタスクを実行できるケースが多々あることを明らかにしつつあります。 ディープ・ラーニングは機械学習とビッグデータが重なり合っている領域だという人もいますが、それだけではありません。「ディープ」および「ラーニング」という側面の意味を詳しく考えてみましょう。 ディープ・ラーニングの1つの側面(=ディープ)は、ニューラル・ネットワーク・モデルを「より深く」適用することによってアナリティクスの精度が高まる、ということを指しています。学習(ラーニング)システムは、そのモデルあるいは環境を階層構造として表現します。それぞれの層(レイヤー)は、例えば画像における規則性の形態(形状、パターン、境界線など)のように、課題に関する異なるタイプの情報を表していると考えることができます。こうした階層構造とニューロン間の情報フローという2つの特長から、ニューラル・ネットワークは学習システムを構築するための標準ツールとなっています。コンピューティングとアルゴリズムの高度化により、現在では、ほんの数年前と比べても、より多くの層からなるニューラルネットを構築できます。ディープ・ニューラル・ネットワークは多くの学習手法の土台となる概念です。 第2の側面(=ラーニング)は、より多くのデータを利用する際のパフォーマンス(スピード、精度、一般化可能性)の改善という意味においても、システムが「学習」を行うことを指しています。この側面は、パターンの認識、テキストの読解、音声の理解、事象や物体の分類など、「これまで人間が学習してきたタスクを機械が実行する」という応用用途も指し示しています。システムは課題を解決するのではなく、課題に関してトレーニングを受けるのです。 ディープ・ラーニングはどのような点でAI(人工知能)なのでしょうか? 【シャーベンバーガー】多くの人々は「人工知能」という言葉を聞いたとたん、機械が人間に取って代わるのではないかと不安になりますが、ディープ・ラーニングの場合、そうはなりません。コンピューターは依然として「石頭」 です。あくまで、パターン認識、音声認識、質問への回答など、人間が行うようなタスクを機械独自の方法で疑似的に実行しているにすぎません。また、学習した能力を別のタスクに一般化することもできません。例えば、最近、数回の対局で世界最強の囲碁棋士に勝利したAlphaGo(アルファ碁)は、Googleの子会社であるDeepMindが開発した驚異的なディープ・ラーニング・アルゴリズムですが、画像を分類したり、洗浄機の中身を食器棚に片づけたりといった用途には役立ちません。それでも、囲碁に関しては驚異的なプレイヤーなのです。 しかしながら、人間の大脳新皮質が担っている機能に関する最新の理解とディープ・ニューラル・ネットワーク手法との間には、興味深い類似点があります。新皮質は多くの認知能力を担っていますが、そこでは階層構造を通じて入力信号が伝播されており、それらの層がモノの表現を生み出す規則性を発見していることが分かってきたのです。 [Tweet "コンピューターは依然として「石頭」 です。あくまで、パターン認識など、人間が行うようなタスクを機械独自の方法で疑似的に実行しているにすぎません。"] 同様に、ニューラル・ネットワーク・アルゴリズムもレイヤーとニューロンで編成されます。しかし、「ニューラルネットがコグニティブ・コンピューティングの世界で有用性が証明されてきたのは、それが人間の脳を模倣しているから」というよりは、「過去のアプローチとは異なる方法、すなわち、我々人間の大脳新皮質とは異なる方法でデータを処理するからこそ、ニューラルネットは成功を収めてきている」と言うべきではないかと私は思います。 ディープ・ラーニングの理解しやすい例を示していただけますか? 【シャーベンバーガー】ディープ・ラーニングと標準的なアナリティクス手法の違いが分かる優れた例として、 Atari社のBreakoutというゲーム(筆者と同年代以上の方であればご存知のはずの「ブロックくずし」のオリジナル作品らしいです)をプレイするタスクを考えてみましょう。最初に、考えられる選択肢について議論し、それから実際の動作をYouTubeのビデオでご覧いただきます。 1つの選択肢は、ブレイクアウトの遊び方を知っているゲームボットを書くことです。パドル(プレイヤーが水平に移動させるバー)とその動き方、ボール、ボールがパドルや壁やブロックにぶつかったときの跳ね返り方のルールなどの要素をプログラミングします。つまり、ゲームのロジックと戦略を、ソフトウェア自体に組み込むのです。ソフトウェアをコンパイルしたら、導入して実行し、ゲームボットがどのようにプレイするかを観察します。ゲームプレイ能力の改良が必要な場合は、コード改変、コンパイル、導入、実行、テストというサイクルを繰り返していきます。 もう1つの選択肢は、「深層強化学習」と呼ばれるディープ・ラーニング手法を用いて課題を解決する方法です。ディープ・ニューラル・ネットワークでゲーム環境を表現し、この環境内で動く方法、アクションの取り方、そのアクションを取ることで得られる報酬をプログラムに指示します。つまり、報酬はゲーム画面の上部に表示されるスコアであり、アクションはパドルを動かすことであるとコンピューターに伝えます。コンピューターが知る必要があるのは、これが全てです。実行が始まるとコンピューターは、パドルを動かし、スコアがどうなるかを読み取ります。この選択肢の場合、ゲームをプレイするというタスクは、「ゲームの現在の状態と、取るべきアクション(パドルの動かし方)の2つを変数として、将来の報酬を最大化せよ」という最適化課題へと変わります。 それでは、Google DeepMind社が実装したAtariブレイクアウトの深層強化学習をビデオでご覧ください。 このソフトウェアは、壁やブロック、さらにはボールの存在さえも知りません。知っているのは、自分で動かせるパドルがあることと、少しでも高いスコアを獲得するという目的だけです。それでも、学習開始から2時間後には、熟練者並みにプレイしています。誰もコンパイル、導入、実行を繰り返す必要はありませんでした。4時間後には、ゲームをクリアできるようになっています。特定の領域に関する知識は一切投入されていません。 ディープ・ラーニングについて詳しく学ぶにはどうすればよいでしょうか? 【シャーベンバーガー】私はつい最近、SASのサイトにディープ・ラーニングとは? という新しい記事を寄稿しました。ディープ・ラーニングが重要な理由と動作の仕組みについて、幅広い情報を盛り込んであります。また、ディープ・ラーニングに関するWebセミナーや、ディープ・ラーニングの現状についてデータ・サイエンティストが対談しているビデオへのリンクも用意しました。ディープ・ラーニングについて同僚に説明する際もお役に立つと思います。 いかがでしたでしょうか。ディープ・ラーニングとAIの位置づけが少しクリアになったのではないでしょうか。 ゲームと言えば、任天堂の「スーパーマリオ」というゲームを人工知能でクリアしてしまおうという取り組みもあります。インターネット上で検索すると色々情報が見つかるので調べてみてください。学習過程の動画を見ていて、筆者が始めてこのゲームをやったときの、最初の頃まだうまく操作できてないときの動かし方(右に無謀に突き進んでは行き過ぎてやられる)にそっくりだなと感じました。 データマイニング、機械学習、ディープ・ラーニングについて、弊社日本語サイトを更新したので是非ご活用ください。これらのテクノロジーの実用についてのより詳細な情報をご提供しています。

1 48 49 50 51 52 55