アンケート調査は万能ではない ~データ欠損と選択バイアス~

突然だが、アンケート調査はまんべんなく人々の声を集められるか?

実際に日本国民全員にアンケートするのは現実的ではない。よって、このようなときは全体となる母集団から一部を抜き出した標本調査を行う。簡単に言えばランダムに数人抜き出せば全体の縮小版になるので、人々の意思をまずまず反映できるだろうということだ。

だが実際はそううまくいかない。アンケートは万能ではない。今回はそういう話。





機会均等性の無視

某国の大統領選挙を思い出してほしい。あの過激で問題発言の多い候補者Tに誰が投票するかと言われていたし、事前調査ではもう一方の候補者Hが優勢だったのに、蓋を開ければ勝者は候補者Tであった。

なぜか?

これは、候補者Hを支持する人はアンケート調査に素直に「私は候補者Hを支持します」と回答するのに対して、候補者Tを支持する人はアンケート調査に素直に「候補者Tを支持しています」と言いにくく、無回答としたり「候補者Hを支持する」と嘘をついたりしたからだ。

つまり、特定の選択肢について選びにくい事情がある場合、アンケート調査は実態と離れてしまう。選択肢にバイスがかかっていて機会が均等ではないのだ。

さらに面白いのは、機会均等性が保たれていない上記のような状況では、標本数(アンケートした人数)が多いほど誤りが多くなることもある。(※一般には標本酢が多いほど母集団の特性を正確に反映できる)


調査方法によるバイアス

応えにくい選択肢があるのならば、完全匿名のインターネットで調査するのはどうだろうか。この場合は調査方法によるバイアスに注意が必要だ。

現代ではその影響はだいぶ少ないかもしれないが、インターネットでアンケート調査をすると、対象が「インターネットの操作に慣れている人々」に限定されてしまい、これがバイアスとなりかねない。

東京で街頭調査をしても関東人の意見の酒豪であり、関西人の意見は反映されない。こうなると日本人の相違とは若干遠ざかってしまうのだ。


興味によるバイアス

選択肢をいくら用意しても、興味が無いことには回答しようがない。サッカーを見たことが無い人に「どのチームが好きですか?」と尋ねても、だいたい無回答になってしまい、さらにはランダムな回答すらされることがある。

これでは、ランダムに起因したノイズデータや、データ欠損が起こってしまう。

興味がある人だけ回答してくださいとすればうまくいくだろうか?そうではない。その場合はサッカーに興味がある人だけに調査対象が偏ってしまい、標本にバイアスがかかってしまう。


おわりに

データのノイズや欠損は、統計的手法をしばしば困難にする。

ディープラーニングやデータマイニングによる価値が注目されているが、そのためには品質高いデータが必要だということだ。

 

IoTシステム技術検定 対策① 紛らわしい略語たち

IoT技術テキスト -MCPC IoTシステム技術検定 対応


こちらはIoTシステム検定の推薦図書。私は深層学習やってる傍らIoT技術者でもあるので一応読んでおきました。試験対策を意識して知識をまとめていきます。


覚えにくい略語まとめ

M2M:
Machine to Machine(マシーン・ツー・マシーン)の省。機器間の通信や、機器間で通信するデバイスを意味する。

oneM2M:
IoTやM2Mに共通性を持たせようと取り組む団体、および、団体による国際規格。アプリケーション(AE: Application Entity)、共通プラットフォーム(CSE: Common Service Entity)、ネットワークサービス(NSE: Network Service Entity)の3つのレイヤーによるアーキテクチャを定義した。

CSE(Common Service Entity)
アプリケーション管理、セッション管理、セキュリティなどM2Mデバイスに共有の機能を提供する。

ASN(Application Service Node):
M2Mデバイス。CSEを搭載しているもの。

ADN(Application Dedicated Node):
M2Mデバイス。消費電力などの観点からCSEを組み込めないもの。

CEP(Complex Event Processing:複合イベント処理):
IoTで収集されるストリームデータに対し、ローカルで分析して条件合致したら「特定のイベントが発生した」と判断してアクションを実行する処理。サーバに格納する前にエッジ端末で即時処理するシステムを想像すればわかりやすい。



OSGi:
Java VM上で働くアプリケーションの動的追加や実行を管理するためのミドルウエア。リモートから動的にJavaモジュールを追加・更新できるのが特徴で、1つの機能アプリケーションを「バンドル」と呼ぶ単位で管理する。

IoTデバイスに対してOSGiフレームワーク上で、バンドル単位のアプリケーションのインストールとアンインストールをすることで管理する。(例:HTTPサーバー機能、デバイス管理機能)

 

NB-IoT(Narrow Band IoT):
IoTでの利用を想定した無線通信方式として既存のLTEを拡張したもの。約200kHzという狭い帯域幅で通信をして、専有帯域幅が狭いため既存ネットワークと併存しやすい。

PAN:
Personal Area Networkの略。BluetoothやZigBeeなどのこと。

 


No-SQL

私はいつも逆に覚えてしまうのだが、データが膨大、一度書き込んだデータの更新はめったにしない、データ定義の拡張性、データベースの拡張性、書き込み処理の速さ、といった観点からIoTではRDBMSではなくNo-SQLが推奨されている。

 

読了「人工知能は人間を超えるか/松尾豊」(その3)

人工知能は人間を超えるか/松尾豊

人工知能の入門書とも言われている本書。感想まとめ第3弾です。

第1弾はコチラ
http://r2d.info/2017/10/30/matsuo1/

第2弾はコチラ

読了「人工知能は人間を超えるか/松尾豊」(その2)





第6章:人工知能は人間を超えるか

6章には今後の人工知能の展望を予言して、最終的に「人工知能が人間を支配するような未来はこない」と締めくくっています。今後の人工知能ロードマップは各地で謳われているものでして、把握しておいた方が良いでしょう。

抽象化:
物事の類似・対比・因果といった「隠れた仕組み」を見つけ出すこと。

①画像特徴の抽象化:
既にディープラーニングの登場で実現されつつあるレベル。画像から「ヒト」や「ネコ」の概念を抽出する。

②マルチモーダルな抽象化:
画像だけでなく音やセンサ値も合わせて認識をする。

③行動と結果の抽象化:
コンピュータ自らの行動と、結果として得られる外部情報の因果関係を抽象化して理解する。このあたりから身体性が強くなっている気がする。ブロックを押せば動くといったことを理解する。この段階までくると、何の行動が何に影響するのか因果関係を理解し始めるのでフレーム問題を解決しうる。

④行動を通じた特徴量の獲得:
ややわかりにくいが「一連の行動の結果として世界から引き出せる特徴量」を得ることができる段階。例えば、ゲームをプレイしてみて難しかった・簡単だったということを認識するといった具合だ。コップを強く握ったら割れたということを学習しだすと知能の環境適応がすすむ

⑤言語理解:
概念と記号を結び付けて、シンボルグラウンディング問題を克服する。

⑥知識獲得:
文章等から知識を獲得・創出する。

所感としては、身体性の獲得によってフレーム問題の解決、言語理解によってシンボルグラウンディング問題を解決というのがポイントであろう。


終章:変わりゆく世界

終章では今後の人工知能による事業展開、日本業の課題などが記されている。

この図を見れば早いので引用しておく

出典源:http://www.soumu.go.jp/main_content/000400435.pdf

 

以上、最後は駆け足でしたが、まとめでした

読了「人工知能は人間を超えるか/松尾豊」(その2)

人工知能は人間を超えるか/松尾豊

人工知能の入門書とも言われている本書。感想まとめ第2弾です。

第1弾はコチラ
http://r2d.info/2017/10/30/matsuo1/

第3弾はコチラ
http://r2d.info/2017/10/31/matsuo3/


第3章: 第2次 AIブーム(1980~1995)

エキスパートシステム:
専門分野の知識を大量に取り込み、推論を行う。

MYCIN(マイシン):
1970年代にスタンフォード大学が開発した人工知能。伝染病の血液疾患の患者を診断して抗生物質を処方する。膨大に蓄積された知識を基に、患者の症状に対してIF文を繰り返すことで症状を判定する。

エキスパートシステムの課題:
・専門家の知識ヒアリングに膨大な労力がかかる。
・ルールに一貫性が保たれない。
・曖昧な状態を表現でき無し。
・人間にとって常識的な知識を導入しにくい。

オントロジー研究:
「概念化の明示的な仕様」と定義され、知識を記述するときの仕様を定義しようとする研究。このように、エキスパートシステムの課題を受けて知識をどう定義するかの研究が盛んになった。

ヘビーウェイト・オントロジー:
人間によって概念間の関係を正確に定義して、知識を記述する。

ライトウェイト・オントロジー :
効率性を重視して、正確性に少々かけても大量のデータを読み込ませて自動で概念間の関係性を見つける。Webマイニングなどと相性が良い。

Watson:
IBMが開発した人工知能。ライトウェイトオントロジーの究極系とも称され、2011年にクイズ選手権で優勝。

フレーム問題:
あるタスクを実行するうえで関係ある知識だけを取り出して使うという作業が、ロボットや人工知能にとっては難しいという問題。バッテリーをとってくることを指示されたロボットが、バッテリーに付与された時限爆弾をどう処理するか、というダニエル・デネット氏の話が有名。

シンボルグラウンディング問題:
記号(文字列・言葉)と、それが意味するものとを結び付けられていないという問題。フレーム問題と並んで人工知能の難題とされる。

 





第4章: 第3次 AIブーム①(2010~2015)機械学習

機械学習:
「学習することとは分けること」と本書には記載されている。蓄積されたデータについて、それらのデータをどうすれば目的に沿って分類できるのかというイエス・ノー問題の解き方を人工知能が自ら学習する。

代表的な分類手法①:最近傍法
1番近いデータと同じカテゴリーだと認識する。

代表的な分類手法②:ナイーブベイズ法
データの特徴ごとに、どのカテゴリに当てはまるのかを算出して加算していく。

代表的な分類手法③:決定木
ある属性の値で線引きをして、その二分割を繰り返す。空間を斜めに切ることができない点が弱点。

代表的な分類手法④:サポートベクターマシン
マージンを最大にするようにいい感じに境界線を引く。

代表的な分類手法⑤:ニューラルネットワーク
人間の脳構造をヒントに開発された技術。後にディープラーニングへとつながる。

機械学習における難題:
フィーチャーエンジニアリング(識別のための特徴量設計)を人手でしなくてはならない。深層学習の搭乗前は、いい特徴量を作るのが一番大変で、人間がやるしかないとされてた。

なぜ今まで人工知能が実現しなかったのか:
知識の記述が出来ない。フレーム問題。シンボルグラウンディング問題。特徴量設計が難しい。総じて「世界からどの特徴に注目して情報を取り出すべきか」について人の手を借りざる得なかった。(これの解決の兆しを後に深層学習がみせるわけである。)

 


第5章: 第3次 AIブーム②(2010~2015)ディープラーニング

2012年のILSVRCでトロント大学がディープラーニングにより圧倒的な勝利を収めて世界に衝撃をもたらしたこと。そこから、ディープラーニング技術の詳細が記載されている。技術的なことについてはここでは省略します。(ググればSlideShareなど山ほど資料があるので)

ディープラーニングは今まで人工知能が実現できなかった概念を自ら作り出すということを可能にしうる。最難題である「世界からどの特徴に注目して情報を取り出すべきか」を学習により解決できる可能性を秘めている。と語られている。

 

つづく、(かも

読了「人工知能は人間を超えるか/松尾豊」(その1)

人工知能は人間を超えるか/松尾豊

人工知能の入門書とも言われている本書。「人工知能とは何なのかを正しく理解しよう」というコンセプトで執筆されています。私は人工知能の開発に従事する技術者ですが、それでも「正しく理解」というフレーズを前にすると「念のため読んでおこう」という気持ちにさせられした。勘違いや思い込みとは最も恐ろしいものですからね。吉良吉影もそういってます





第1章:人工知能とは何か

人工知能の定義について、著名教授の見解紹介や、様々な角度からの定義を試みている。

人工知能研究者の目的:
人工知能研究者は構造論的に知能を解明しようとしている。対照的に、脳科学者は分析的に知能を解明。

チューリングテスト:
コンピュータと別の部屋にいる人間が画面とキーボードを通じて会話する。相手がコンピュータだと見抜けなければ合格。

AI効果:
原理がわかってしまうと「これはAIではない!」と思ってしまうこと。

AIの4段階:
レベル1 :   制御工学による制御をマーケティング的に人工知能と称している。
レベル2 :  推論探索や知識ベースにより振る舞いが多彩なもの。
レベル3 :    機械学習によりルールを自ら学習する。
レベル4 :   深層学習によって特徴量を自ら抽出する。

※一見、レベル3とレベル4が似ているように感じるかもしれません。が、これらは全然同じではありません。

「強いAI」と「弱いAI」:
強いAI:   人間の知能を工学的に実現。
弱いAI :  限定された機能によって、知的な問題解決が一見できているかのようにふるまう。

中国語の部屋:
中国語がわからないオペレーターが、中国語で問い合わせされたとい、入力された文字を膨大なマニュアルに照らし合わせながら確認し、決められた返答をしても、会話が成立したように見えるがその人は中国語を理解してはいない。


第2章: 第1次 AIブーム(1956~1970)

探索:
深さ優先探索や幅優先探索といった、場合分けによって答えを見つけ出す。

ハノイの塔:
第1次AIブームでは、単純な問題をAIで解くことができた。その例としてよく挙げられるゲーム。

ディープブルー:
1997年にチェス世界チャンピオンを下したIBMの人工知能。

モンテカルロ法の導入:
チェスや将棋における人工知能の性能を飛躍的に向上させた手法。ランダムに手を指し続けて終局させるという行為を何度も繰り返し、望ましい結果が得られた回数から、次の一手を評価する。

トイプロブレム:
ビジネスや医療など現実世界はいっそう複雑であり、AIには限定的なルールの定められた問題(トイプロブレム)しか解けないとされた。

 

つづく http://r2d.info/2017/10/30/matsuo2/

第3弾はコチラ
http://r2d.info/2017/10/31/matsuo3/

How to modify a .prototxt on Python? (Caffe)  ~.prototxtをPythonで編集する~

Caffeでディープラーニング研究開発をするにあたり、FeatureMapsの数だったりを増やしたり減らしたりしながら試行錯誤することはよくあります。

そんなとき、ネットワーク構造をPythonから自動的に変更させたくなりますよね?(あれ?なりませんか?)

とういわけでPythonからネットワーク構造定義ファイル.prototxtを編集する方法を調べました。こちらの投稿が参考になりました。




結論
・caffe_pb2 と google.protobuf.text_format を利用
・caffe.netから変更と保存できればと思ったけど無理そう

例えばprint(conv)とすると下記のように構造をとれていることがわかります。

 

なお、.caffemodelは

とった具合に編集していってください。

Watson Tone Analyzer で日本語の文章から感情推定

はじめに


いきなり釣りのようで恐縮ですが、文章から感情を推定するIBM提供サービス“Watson Tone Analyzer”は日本語対応していません

文章の多言語翻訳だったり解析系はまだまだ日本語対応していない点が我々から見たIBM社の短所です。ただでさえ AWS・GCP・Azure がクラウドビッグスリーと呼ばれて、IBM社のクラウドは後塵を拝しているので頑張ってほしいものです。

 

翻訳APIでフォロー


そんな文句はさておき、せっかくの Watson API なのでなんとか活用してみようとするのが今回の話です。結論から申し上げますと“Watson Tone Analyzer”が日本語対応していないので、文章入力前に日本語を英語に翻訳するAPIをかませるという雑アプリを設計しました。

日本語でメッセージ入力⇒日本語から英語に翻訳⇒英語化した文章から感情推定⇒グラフで結果出力

翻訳くらいはWatsonを使えばと思いましたが、翻訳APIも日本語対応完了していないため今回は下記APIを利用。(無料。ただし要登録。)

Yandex.Passport https://passport.yandex.com/

“Tone Analyzer”は設定が色々あるのですが、今回は5つのパラメータ『Anger、Disgust、Fear、Joy、Sadness』を出力する設定にしました。

 

 

しかし、なんというか、出力パラメータ5つのうち4つが負の感情ってどういうことだ・・・?

 

設計メモ


テキスト入力の受け付けはFormで適当に定義

翻訳APIは下記のようにしてhttps://translate.yandex.net/api/v1.5/tr.json/translateに投げます

データ工学の歴史と今後

巷ではビッグデータが何年も注目を浴びています。ある大学の先生は2013年時点で「もうビッグデータは古い。」と言っていましたが、2017年になっても熱は冷めません、むしろ加速しています

ただ、ブームに飛びつくのはいいですが、『データを集めて分析して、で、それからどうするの?』という声もよく耳にします。

ちょうどいい機会だと思って、ビッグデータに至るまでのデータ工学の歴史を調査してみました。それが下の図です。


もともとマイニングとは『採掘』という意味の言葉で、データマイニングやテキストマイニングは『知識を取り出す』試みです。

2010年以降はデータマイニングを試みるものの、公知である当たり前の知識抽出しかできず、学会には『研究の結果、ラーメンの伸び具合と、麺のゆで時間には強い相関があるとわかった。』みたいな発表が散見される時期もありました。

ただ、IoT等の技術発展によりデータ量が爆発的に増加している近年では、データマイニングによって今までなかったような知識発掘への期待が高まっています。製造業や物流業界ではデータマイニングによって、気づかなかった無駄を発見&削減によって効率化を図ったりと、実績が出ています。

このような最適化が現在のデータマイニングの目指すところですね。




では、今後のデータ工学はどのような方向に進むのか?

有識者の方々からは自律社会、パブリックデータ(オープンデータ)などがキーワードとして挙げられています。が、私個人としてはデータの質を重視する流れが高まり、質の高いデータを収集する仕組み作りとデータクレンジング技術に注力するのではないかと思っています。

データの質と量についての議論はよくされていますが、結局両方必要です。ずいぶんデータ量が確保できるようになってきたので、そろそろ質も伴わねばならないフェーズに移行して来ていると私は考えています。

ブロックチェーン定義 ~プライベートブロックチェーンと既存の分散データベースの相違点~

今回はブロックチェーンの定義を確認します。特にプライベートブロックチェーンは『既存の分散データベースと同じでは?』という声が多くあるので、そのあたりを中心に整理していきます。


JBAによるブロックチェーンの定義

※JBA:Japan Blockchain Association(一般社団法人 日本ブロックチェーン協会)

1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」

1) A blockchain is defined as a protocol, or implementation of a protocol, used by an unspecified number of nodes containing Byzantine faults, and converges the probability of consensus reversion with the passage of time to zero.

2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」

2) In a broader sense, a blockchain is a technology with a data structure which can easily detect manipulation using digital signatures and hash pointers, and where the data has high availability and integrity due to distribution across multiple nodes on a network.

“jba-web.jp/archives/2011003blockchain_definition”

 




もう少し噛み砕いた解釈

1)
・嘘をつく参加者がいるかもしれない
・故障している参加者がいるかもしれない
・それでも合意形成が可能な仕組みがある
・形成された合意は時間経過によって覆る可能性が0に近づく

2)
・暗号技術によって改ざん検出ができる
・複数端末に分散してデータを保持
・分散して保持することで停止しない仕組みを持つ
・分散して保持したデータの同一性を保証する

 


プライベートブロックチェーンの特徴

明確な定義は見つかりませんでしたが、パブリックブロックチェーンと比較して決定的に異なる特徴がいくつか挙げられます。

①参加者の総数を把握できる
②インセンティブを与える必要が無い

これらの特徴からプライベートブロックチェーンでは合意形成にリーダーを要することが基本です。なぜならば母数が把握できる(①)ため多数決が実施可能だから、また、インセンティブが無い(②)ため分岐したチェーンに対して正とされる選択をする必要が無いからです。

ここからがわかりにくいのですが、リーダーとは合意形成をファシリテートするのであり、リーダーがどの選択肢を正とするのか独断で決めるわけではありません。リーダーは正と思える選択肢を提案するだけで、採用されるには多数決によって参加者の過半数から合意を得る必要があります。

この合意形成の部分が従来の分散データベースとの違いと言えるでしょう。

 


合意形成の仕組みがもたらす価値

分散データベースではなくプライベートブロックチェーンを用いた方が良い場面としては、参加メンバーに異なる立場と役割がある場合が挙げられるでしょう。

 


さいごに

参考書籍:

一定時間間隔で処理をループ C# System.Windows.Forms.Timer

非同期で同じ処理を繰り返したいときはSystem.Windows.Forms.Timerを使うと便利です




リンク:msdn
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.timer(v=vs.110).aspx

使い方メモ