白色の濃淡で、判別に影響を与えている箇所を確認することができます。Viyaでは、画像認識モデルの判断根拠情報を可視化する手法の一つである、Grad-CAMと同様に、画像の何処に着目したのかを、カラフルなヒートマップとして出力し、確認することもできるようになっています。heat_map_analysis()メソッドを使用して、以下の通り、たった1行書くだけでです。青、緑、赤の濃淡で、判別に影響を与えている箇所を確認することができます。DLPyの詳細に関しては、以下をご覧ください。ディープラーニングだけではなく、従来からの機械学習のモデルによって導き出された予測や判断に関しても、それがなぜ正しいと言えるのか、具体的に言えば、なぜAさんはこの商品を買ってくれそうだと判断されたのか、なぜこの取引データは疑わしいと判断されたのか、を説明する必要性があるわけです。Viyaの次期版には機械学習の判断根拠情報、モデル内容を説明するための機能が実装される予定です。影響度が最も高い変数は、という問いに対しては、従来からの変数の重要度で確認することができます。日本語では「部分従属」と言いますが。重要度の高い変数は、予測に対して、具体的にはどのように作用しているのかを知ることができます。(ICE)になります。(LIME)を活用することができます。Analyticsで地図上にカスタム境界線(領域)を描いて分析―(続編)前回、この機能を紹介した際には、海外に実在する施設や地図上での活用例をご覧いただきました。その続編となる今回は、以下の2点に関してご紹介します。私は埼玉県さいたま市に在住しているのですが、だからというわけではありませんが、今回は、埼玉スタジアムの座席レイアウトを地図上の埼玉スタジアム上に描画してみました。ページが表示されています。左側には客席ゾーン別の座席数が棒グラフで表示され、右側には、スタジアムの客席レイアウトが表示され、利用率によって色分けされています。棒グラフ上でゾーンCが選択され、スタジアム内の対応する客席の部分がハイライトされている状態です。Analytics(以降、VA)の標準機能を使用して、特定の客席エリアをクリックし、そのエリアのチケット料金や、収益の推移、などの詳細情報をポップアップで表示させることも可能です。右側の地図が本当に埼玉スタジアムのある地点なのかを分かりやすく見ていただくために、図2.ではズームアウトしたものも載せました。埼玉スタジアムは国道122号線沿いにあるんですね。以下の図3.は同じレポート内の「ゾーン別客席マップ」ページです。棒グラフのゾーン別の色に合わせて、客席エリアの色を合わせたものです。実は、VAの地図描画用オブジェクトである、「ジオマップ」では、地図を非表示にすることができます。あれ?、地図描画用の機能なのに、地図を非表示にする意味あるの?と思われるかと思いますが、これがあるんですね。その一例をご紹介します。以下の図4.は、とある列車の車両内の座席別収益率を分析するレポートです。座席ごとの収益率が色分けで表示されています。この座席レイアウトも「ジオマップ」オブジェクトを使用し、地図上に描画されているものなのですが、地図は境界線(領域)を描くためには必要ですが、この例のような場合は、描いた後は地図が必要ないので非表示にしているわけです。地図を非表示にしていること以外は、その他の例と同様に、チャートやアナリティクスとのインタラクション等はもちろん可能です。上記の図4.でも、座席別収益率の棒グラフ上で、最も収益率の低い座席(右端の棒)を選択し、該当の座席位置をハイライト表示しています。Viyaでは、こんなこともできるんですね。人体図の中の内臓別の疾患状況をビジュアルに分析する、工場内プラントの設備(工程)ごとの稼働状況を図解でビジュアルに可視化し分析する、店舗内の商品陳列棚別の在庫状況や売上状況を図解でビジュアルに可視化し分析する...なんていうこともできそうですね。AnalyticsはセルフサービスBI&Analyticsツールで、ビジネスユーザー自身で簡単にレポートやダッシュボードを作成することができます。その際、標準で備わっている数多くのチャートオブジェクトを使用することができますが、お客様要件によっては、標準のチャートタイプだけでは表現できないものもあります。8.2(以下VA)には大きく2つの機能が用意されています。今回は、2番目の「地図上のカスタム境界線描画」機能に関してご紹介します。VAに標準搭載のチャートオブジェクトには地図描画のための「ジオマップ」オブジェクトが含まれています。この機能を活用することで、例えば、地図上で隕石落下地点と被害の度合いを分析(図1.参照)したり、都道府県別の売上や店舗別の顧客数などをビジュアライズし、分析(図2.参照)することができます。地図描画のタイプとしては、図1の「座標」、図2の「バブル」以外に「領域」を選択可能です。「座標」とは、地図上の該当ポイントに円形や星形などのアイコンを表示するものです。「領域」では、基本的に地図上の国の境界線や、その一つ下のレベルである州や都道府県の境界線領域を描画します。アメリカの州や日本の都道府県の領域を指定した値に基づき色分けして表示するものです。地図上に表示するこの「領域」をカスタムで描画することが可能で、これを「カスタム境界線(領域)」描画機能と呼んでいます。この機能を活用することで、例えば、特定施設内の人や物の動線を描画したり、家屋ごとのソーラー発電量を実際の地図上に描画することなども可能になります。その基本的な手順を、アメリカにあるコロラド・コンベンション・センター(以下CCC)内のミーティングフロアにある各種の会議室領域の描画を例に、以下に示します。Shapeファイルとして保存(図7.参照)します。(詳細に関しては、使用するツールのマニュアルを御覧ください。部屋の輪郭をなぞって描く(描いた領域ごとにIDを設定しておきます。Datasetに変換(以降Shapeデータ)し、VA環境(インメモリー)にロードします。Viya管理者(Administration)マニュアルを御覧ください。予測モデル生成において、従来は、人が考えてデータの中から特徴を抽出する必要がありましたが、ディープラーニングでは、この特徴を自動的に抽出して学習することが可能になっています。半面、どのように特徴が抽出されているのかに関しては、基本的にはブラックボックスであり、説明責任が求められるような業務要件では、その分析結果を業務に活用することが難しい場合もあります。近年ディープラーニングから出てきた結果の根拠=判断根拠を可視化する手法がいくつか考案されてきています。RNN)を用いた学習が可能ですが、今回はCNNを用いた画像認識において、判断根拠となり得る情報の出力に関してご紹介します。この例は、複数のイルカの画像をCNNで学習し、対象の画像(写真)がイルカなのかどうかを判別するものです。モデルを作成後、以下の画像をモデルに当てはめてスコアリングを実施。この画像は「イルカ」だと判定されたのですが、その判断根拠の一つとして、以下のように、この画像のどの部分がより重要であると判断されているのかを可視化することが可能になっています。map)を画像として指定ライブラリに出力することが可能です。map)を表示したものです。Viyaの最新版3.3がリリースされました。Viyaベースのすべての製品を自由に触っていただけるようになりました。利用手順に関しては、以下のブログをご覧ください。Network(RNN、再帰的ニューラルネットワーク)まで利用可能になります。ディープラーニングを使うことのメリットは、従来の機械学習やニューラルネットワークが苦手としている画像や文章を認識し、高い精度で分類や推論することが可能になります。高い精度というのは、ディープラーニングのモデルによっては人間の目よりも正確に画像を分類することができるということです。コモンドールという犬種がありますが、この犬はモップのような毛並みをしていて、人間ではモップと見間違えることがあります。いう人間だと見分けにくい画像に対しても、ディープラーニングであれば、人間よりも正確に犬かモップかを見分けることができるようになります。Viyaのディープラーニングを使って画像分類をしてみたいと思います。画像分類のディープラーニングではCNNを使います。CNNは画像の特徴を探し出す特徴抽出層と特徴から画像を分類する判定層で構成されています。特徴抽出層は主に畳込み層とプーリング層で構成されています。畳込み層で入力画像に対し、ピクセルの特徴(横線の有無とか斜め線とか)を探し出し、プーリング層で重要なピクセルを残す、という役割分担です。判定層は、特徴抽出層が見つけた特徴をもとに、画像の種類を分類します。犬と猫の分類であれば、特徴抽出層が入力画像から、面長で大きな鼻の特徴を見つけだし、犬と分類します。丸っこい顔立ちと立った耳の特徴を見つけだし、猫と分類します。ViyaディープラーニングでCifar10をネタに画像分類をしてみたいと思います。Cifar10は無償で公開されている画像分類のデータセットで、10種類の色付き画像60,000枚で構成されています。各画像サイズは32×32で、色はRGBです。10種類というのは飛行機(airplane)、自動車(automobile)、鳥(bird)、猫(cat)、鹿(deer)、犬(dog)、蛙(frog)、馬(horse)、船(ship)、トラック(truck)で、それぞれ6,000枚ずつ用意されています。画像は総数60,000枚のうち、50,000枚がトレーニング用、10,000枚がテスト用です。画像データは以下から入手することができます。Cifar10を使って画像分類をしてみます。言語はPython3を使います。Viyaで画像分類をする場合、まずは入手したデータをCASにアップロードする必要があります。Viyaの脳みそにあたる部分です。Viyaの分析は、ディープラーニング含めてすべてCASで処理されます。CASではImage型のデータを扱うことができます。Image型とは読んで字のごとくで、画像を画像フォーマットそのままのバイナリで扱えるということです。