統計学の最近の記事

最近扱われるデータ量は膨大です。それに伴いデータの見方を変え、かつては重要度が低かった点からも関係性を見出す必要があります。
そのために確率推論は多くの命題の生起する可能性を確率として記述することから始められ、条件付き確率と結合確率を1つずつ繋ぎ合わせ段階的に構成されています。


ベイジアンネットワーク(Bayesian network)

人工知能(AI)における確率推論の一つのモデルです。
イギリスの確率論研究家トーマス・ベイズが発案したベイズの定理に基づき、因果関係を確率により記述するグラフィカルモデルの1つであり、「原因」と「結果」の関係を複数組み合わせることにより、「原因」「結果」がお互いに影響を及ぼしながら発生する現象をネットワーク図と確率で可視化したものです。これは「原因」から発生する「結果」を、確率をもって予測する推論手法とも表せます。

ベイジアンネットワークの特徴

  • 単純な二方向の計算ではないこと
  • 確率(乗算)で表現できること
  • 視覚的に操作できること
  • チューニングが容易であること
  • 人間の意志決定のプロセスと非常に似ていること
  • AIでは扱いにくい凡例の少ない事象もベイジアンネットワークでは扱える
  • 予測において説明変数の入力に欠損があってもよい
    欠損値に適切な確率分布が割り当てられ、必ずしも予測時に全ての観測値を揃える必要はない。
  • モデルの利用用途が限定されない
    ベイジアンネットワークは矢印の順方向だけでなく、逆方向にも推論が行える。観測を入力する変数と予測対象となる変数がモデルで限定されることなく自由に選択できる。


逆方向の推論?

鍵となるのは、条件付き確率と結合確率の定義です。

結合確率とは事象A、事象Bが同時に起こる確率で、条件付き確率とはどちらかの事象が先に起きた上で他の事象が起こる確率です。
では、以下がそれぞれの定義と逆方向への推論が可能であるかを示したものです。

スクリーンショット 2020-02-14 12.22.33.png

Aが先に起こる確率がわからない場合もBが先に起こる条件付き確率がわかれば推論できます。

Unknown.png


利用シーン

ベイジアンネットワークは様々な事象間の因果関係(厳密には確率的な依存関係)をグラフ構造で表現するモデリング手法の一つで、故障診断、気象予測、医療的意思決定支援、マーケティング、推薦システムなど様々な分野で利用されています。また消費者行動のモデル構築にも応用されています。
今後、ベイジアンネットワークは個人の特徴(行動、性格など)の因果関係を確率として数値化することで、個人の行動パターンや特徴を組み合わせて考えることで新たな可能性を見いだせるはずです。


Twitter・Facebookで定期的に情報発信しています!

2019年11月24日に行われた統計検定1級で、統計数理と統計応用(理工学)の両分野で合格をいただけました。このブログには僕がその合格までに行ったこととその振り返りを書き連ねておこうと思います。

admission_card

suri

ouyo

もくじ


統計検定1級を受けようと思った理由

僕がこの統計検定1級を受けようと思った理由は僕の興味対象となる研究分野が確率統計だったからです。現在僕は大学の学部3年で、4年で配属される研究室が主に統計の分野を研究しており一度基礎固めをしておきたかったと考えました。また、大学の授業で学んだ確率統計の知識を何かしらの形でアウトプットしておきたいと考え、その1つとしてこの資格を選びました。

申し込む前の学習状況

申込みを行う前に、既に大学で確率統計の授業を履修していました。レベルとしては統計検定2級ぐらいの内容+αを学んでいました。しかし、「この確率分布の名前は聞いたことあるけど、どんな形の密度関数だっけ」とか「この統計量に対しては何の検定をすればいいんだっけ」とか、かなり知識としては曖昧でした。実際の学習も基礎の復習からはじめました。
確率統計以外の分野では、線形代数や微積分の基礎数学についても一通り大学で学んでいました。特に積分計算は試験に必要だと思います。その他の基礎数学は学習して詰まったときに、その都度調べて思い出せるぐらいで大丈夫だと思います。(ある程度慣れておく必要はあると思います)

申し込み

統計検定を受けようと思ったのは8月頃で、実際に申し込んだのは9月の中旬です。申し込み時点では本格的に学習はしておらず、「そろそろ始めなきゃな...」ぐらいの気持ちでした。
統計検定1級は他の級とは少し異なり、「統計数理」と「統計応用」の2つの試験に分かれています。基本的には午前に統計数理、午後に統計応用(片方だけ受験することも可能)を受験することになるのですが、統計応用は人文科学・社会科学・理工学・医薬生物学の4分野から1分野を申し込みの時点で選択して受験します。僕は統計数理で学習した内容がそのまま応用できる問題が多いとされる理工学の分野を選択しました。このときは「勉強する量が少なく済んでラッキー」ぐらいの気持ちでしたが、この選択によって後で痛い目に遭います...

本番までに行った学習

申し込んでから試験日までは日本統計学会が出版している公式のテキストと過去問題集を使って学習を進めていきました。また、公式のテキストは出題される内容が網羅されていますが、詳細な証明や練習問題があまりなかったので、それを補う形で数理統計の教科書を一緒に読み進めました。基本的には公式のテキストを1から読み進めていき、必要に応じて教科書で証明や練習問題を補っていきました。学習がある程度進んだ段階で過去問題を大問ごとに解きました。過去問題でわからなかった部分をもう一度公式のテキストや教科書に戻って復習するというサイクルで勉強を進めました。
統計数理の具体的な学習内容としては、それぞれの確率分布に対して期待値・分散・モーメント母関数はすべて一度自分の手で導出しました。また、確率分布同士の関係性(極限をとることで二項分布→ポアソン分布、など)や確率変数の変換なども一通り目を通しました。これらは統計数理の問題を解く上でかなり重要だと思います。僕は学習のはじめにこれらを行い、ある程度分かった時点ですぐに過去問題に取り組んだことが理解を進めるのに役立ったと感じています。
統計応用の対策としてはあまり時間は取れませんでしたが、自分の得意なもの・興味のあるものを中心に学習しました。応用では様々な内容が出題されるのですべてを学習するのは難しいと思います。なのである程度自分の得意な分野を作って、それを得点源にしようと考えました。僕の場合は生存時間解析についてある程度知見があったので、その復習を行いました。時間が合えば他の分野も出来たと思いますが...
学習の総時間としてはだいたい40~50時間程度でした。過去問題も2018年~2016年までは統計数理と統計応用の両方を全問解きました。学習の進度としてはあまり学習時間が取れず、応用の内容すべてまでは手が回りませんでした。ある程度数理の内容でカバーできるとはいえ、これはかなりの悪手だったと今では反省しています...

試験本番

あまり準備ができていない状態で本番に臨みました...が、やるしかありません。統計数理と統計応用はそれぞれ5題出題されその中から3題を選ぶので、問題選択が重要になってきます。

統計数理

本番では統計的仮説検定はあまり自信がなかったので大問1,2,3を選びました。例年と比べて誘導が丁寧だったので解きやすかったと感じました。自分がした統計数理の対策がうまく効いたと思います。3の順序統計量の扱いには苦戦しましたが、どうにか7割ぐらいは取れたと確信しました。

統計応用(理工学)

問題の統計応用です。「なるべく数理の問題を解こう」......
ない。
いつもはある数理の問題が1問も見当たらない。例年と比べて大きく傾向が変わっています。いや、あるにはあるけど分散分析や適合度検定まで学習の手が回っていない!!死を確信しました。
とりあえずできそうなものから手をつけよう。1,2,5を選択しました。幸いにも生存時間解析はある程度やっていたので1で7割ぐらいは出来たと思います。しかし2,5は見たことのないトピック&苦手な分野なので、おそらく半分もできていないと思います...
そんな感じで午後にメンタルをやられた1日でした。

試験までを振り返って

そんな感じでドキドキな結果発表でしたが、驚いたことに数理と応用の2つで合格を頂けました。おそらく理工学は傾向が大きく変わり、全体の平均点が下がったからだと思います。僕の場合は得意な分野で得点を稼ぐことができたのでなんとか合格にこぎつけることができたのだと思います。
やはり試験合格までにはもう少し時間をかけて、応用的な分野まで一通り目を通して、傾向が変わっても得点を稼ぐ力を身につけることが重要だと感じました。合格したことにはしたのですが、逆にまだまだ勉強不足だと感じた試験でもありました。
一方で、統計数理の分野の基礎固めは試験合格のための必要条件だと思いました。これを突破しないことには数理と応用のどちらの分野でも合格は厳しいと思います。学習のはじめにここに注力したのは正解だったなと感じます。
以上が僕の統計検定1級の合格記です。正直運もありましたが、自分の確率統計の基礎固めとして良い経験となったかなと思います。この記事がこれから統計検定を受ける方々の参考になればと思います。


Twitter・Facebookで定期的に情報発信しています!

今回は初めて統計学を勉強しよう、統計検定を受けようという

  • 文系の大学生
  • 文系出身のビジネスマン


このような方に向けて、勉強方法やおすすめの本について紹介していきます。
今回紹介する本の内容をマスターすると、統計検定2級の合格や機械学習の本を理解できるようになります。

目次

  • 自己紹介
  • なぜ統計学の勉強が大変なのか
  • 本の紹介


自己紹介

僕は現在、大学3年生で文系の学部に所属しています。
統計学を勉強したきっかけは以下の2つです。

  • データを分析するのに必要なため
  • 機械学習の本を読むため


数学は、高校2年生のコース選択で文系に進んで以来、ほとんど勉強したことがありませんでした。
そのため勉強を始めた頃は、統計学も数学も1から勉強し直すのと同じ状況でした。
このように前提知識がほとんど無かったので、統計学を勉強していくのに苦労しました笑
そのため初学者や数学が苦手な文系の方が、勉強を進める中でどこでつまずきやすいかも触れていきたいと思います。

なぜ統計学の勉強が大変なのか

大きく2つあるとおもいます。

  • 本に書かれている数式や記号を読んでいくのがしんどい
  • やっている勉強が何のためにやっているのかわからなくなる


この2つの理由が統計学を勉強するのに大きく立ちはだかります笑

例えばですが 

\begin{equation} \sum \end{equation}

\begin{equation} \prod \end{equation}


これらの記号の読み方がわからない方、かなりいらっしゃると思います。
統計学の本で数式自体を文字で丁寧に説明してくれるものは結構あります。
しかし、記号についてまで丁寧に説明してくれている統計学の本はほぼないです。
統計学は集めたデータを数学的に扱うという性質から、やはりある程度の数学の知識が必要になります。
そのため一度、数学を学びなおして数学アレルギーを克服したほうが近道だと思います。
しかし高校数学を全部やり直すようなことはしないでください、統計学に行き着く前におそらく挫折します笑

そこでおすすめなのがこの本です。

統計学のおすすめ本 経済学と(経済学、ビジネスに必要な)数学がイッキにわかる!!

ビジネスマンや経済学部生向けの内容ですが、
会社の売上を最高にするにはどうするか? 得するお金の預け方はどっち?
みたいな身近なテーマを数学を使って解いていく内容なので、多くの方が取り組みやすいと思います。
この本で最小限の式変形や、記号の意味を学びなおしましょう。

またここで数学について説明しますが、
数学の知識は大きく2つにわかれています。

  • 式を自在に変形し、解けるようにする計算力
  • 式が何を意味しているのかを理解できる能力


どちらもあるに越したことはないですが、受験生と違い短時間に多くの問題を解く必要はありません。
むしろ本に書かれている式が、何を表しているのかを理解することが重要なので、計算力を上げるためにたくさんの問題を解くよりも
式や記号が何を表しているのかなどの概念を理解することを意識して学びなおした方が良いでしょう。

ここで話を戻して統計学を勉強しているうちに自分が、何のために勉強しているのかわからなくなる現象について説明します。
先程のように、文系の方だと前提知識が少ない場合が多いです。そのため、それらを学び直そうとするうちに気がつくと前提知識の勉強に深入りしすぎて
統計学を勉強するという目標を見失います。また、統計学で何ができるのかがわからずモチベーションを維持できない状態に陥ります。
勉強するモチベーションを維持するには、統計学でどんなことがわかるのかを知ることが重要だと思います。

数学を勉強しながら、以下の本を読むとモチベーションを保てると思います。
また、実際にデータ分析するときに必要な考え方についても身につけることができるでしょう。

統計学のおすすめ本 「原因と結果」の経済学―――データから真実を見抜く思考法

統計学のおすすめ本 ヤバい経済学-増補改訂版


どちらもタイトルに経済学とありますが、子供にテレビを見せると学力が下がるのは本当か?といったテーマが、読み物テイストで書かれているのでとても読みやすいです。
様々な世の中の常識を統計学で分析し、実際はこうだったという例がたくさん紹介されており
統計学をマスターすれば自分もこうしたことが出来る!と想像できるので勉強のモチベーション維持に役立つと思います。


統計学の本の紹介

ここからは自分が読んでおすすめだと思える統計学の本を紹介したいと思います。
ある程度数学アレルギーが克服できたらこちらの本がおすすめです。

統計学のおすすめ本 コア・テキスト統計学


この本は統計学の理論や式について、しっかり文字で説明してくれています。具体例も豊富なので常に統計学で何が出来るのかを見失わずに
勉強することができると思います。
またこの本の演習本もあります。問題を解くことは本質ではありませんが、実際に手を動かした方が理論を理解しやすいのは確かなのでおすすめです。

統計学のおすすめ本 基本演習-統計学
上記2冊を読む中で数学的にわからない部分があったら、以下の2冊がAmazonのprime会員なら無料で読めるのでおすすめです。(2019年11月現在)

統計学のおすすめ本 ふたたびの高校数学

統計学のおすすめ本 ふたたびの微分・積分


この2冊は全部読むのではなく、わからない箇所を調べるといった使い方のほうが効率よく勉強が進むと思います。


さいごに

ここまでの知識をマスターできたら、統計検定2級などの検定試験にもある程度対応できるので過去問などを解いてぜひ挑戦してみましょう!
また機械学習の本も、式を読み飛ばすことなく読めると思います。
それ以外にも、実際にデータ分析する際にパラメータのどの部分に気をつければよいかなどが、以前よりも明確にわかるようになっていると思います。
ここまでどうすれば挫折しないで統計学を勉強する方法を書いてきましたが最も大切なのは

  • なるべく説明の簡単な本を選ぶ
  • 常に何のために勉強しているのかを意識する


この2点だと思います。
これらに気をつければある程度の統計学はマスターできるはずです。
頑張っていきましょう!

※本記事の対象:自然言語処理という言葉は聞いたことはあるが、どういうアプローチで処理がされているかイメージが湧かない方(大学レベルの数学の知識は必要)
※内容はオーム社『ゼロから学ぶDeep Learning2』を参考にしている

目次


1. はじめに:自然言語処理(NLP)とは
2. シソーラスによる手法
3. カウントベースの手法( 統計的手法 )
4. カウントベースの手法の改善点
5. 【次回】word2vec( ←これがメイン )
6. まとめ
7. 参考文献

1.はじめに:自然言語処理(NLP)とは

まず一般に 自然言語 (Natural Language)とは、人間によって日常の意思疎通のために用いられる、文化的背景を持って自然に発展してきた言語(日本語、英語、中国語など)である。
そこで 自然言語処理 (Natural Language Processing: NLP )とは、一言で言うと「我々が普段用いてる言葉をコンピュータに理解させるための技術」である。
NLPの目標とするところは、人間が話す「同じような文章でも意味や表現が異なるような」言葉をコンピュータに理解させ、我々にとって有益なことをコンピュータに行わせることである。例えば機械翻訳、検索エンジン、文章の感情分析などが挙げられる。
我々の身の回りではそのような自然言語処理の技術がすでに数多く使われている。

我々の使う言葉は「文字」によって構成され、言葉の意味は「単語」によって構成されている。「単語」は、言わば意味の最小単位である。
つまるところ、自然言語をコンピュータに理解させるには、「単語の意味」を理解させることが重要であるといえそうだ。
そこで本記事では「単語の意味」をうまく捉えた表現方法について「シソーラス」による手法、「カウントベース」の手法の2つを見ていく。 

2.シソーラスによる手法

「単語の意味」を表すためには、人の手によって単語の意味を定義することが考えられる。例えば『広辞苑』のように、ひとつひとつの単語に対してその単語の意味を説明することである。
しかし自然言語の歴史を振り返ると、『広辞苑』のように人が使う一般的な辞書ではなく 、 シソーラス (thesaurus)と呼ばれるタイプの辞書が多く使われてきた。
シソーラスとは「類語辞書」のことで、「同義語」や「類義語」が同じグループに分類されている。例えば、「car」という単語に対して、
自然言語処理 のようにいくつかの同義語が存在することが分かる。
また、自然言語処理において利用されるシソーラスでは、単語間で「上位と下位(is a の関係)」、「全体と部分(part-of の関係)」などのより細かい関係性が定義されている場合がある。次のようなグラフ構造によって各単語の関係性が定義される。
自然言語処理 このグラフ構造だと、「car」の上位概念に「motor vehicle」という単語が、また「car」の下位概念に「SUV」などの具体的な車種があることが示されている。
このように全ての単語に対して類義語の集合を作り、それぞれの関係をグラフ構造で表現することで、単語間のつながりを定義できる。
自然言語処理のアプリケーションにおいてシソーラスをどのように利用するかというと、例えば検索エンジンにおいて、「automobile」と「car」が類義語であることを知っていれば、「automobile」の検索結果を「car」の検索結果に含めることができる。

WordNet

自然言語処理の分野において、最も有名なシソーラスは「WordNet」である。WordNetは1985年からプリンストン大学で開発がスタートされたシソーラスであり、様々な自然言語処理のアプリケーションにおいて大いに活躍してきた。
WordNetを使えば類義語を取得したり、「単語ネットワーク」を利用したりすることができる。また、「単語ネットワーク」を用いれば単語間の類似度を算出することも可能だ。
しかし既にお気付きの方もいるだろうが、このWordNetなどのようなシソーラスには、以下のような欠点がある。

時代の変化に対応することが困難
時とともに新しい言葉が誕生し、古い言葉は廃れていくように我々の使う言葉は「生きて」いる。
人の作業コストが高い
例えば、現存する英単語は1,000万語を超えており、それぞれの単語に対し定義付けを行うには大幅な人件コストがかかる。
単語の細かなニュアンスを表現できない
似たような単語であったとしてもそれぞれニュアンスは異なり、それを人間の手によって関連付けを行うのは至極困難。

このように、シソーラスなどの人手によって単語の意味を定義付けていく手法には大きな問題がある。
そこでこの問題を回避するために、続いて「カウントベースの手法」、ニューラルネットワークを用いた「推論ベースの手法【次回】」を紹介する。
これら二つの手法は、大量のテキストデータから自動的に「単語の意味」を抽出する、つまり、単語の関連付けに人が介入しなくても良いということだ。

3.カウントベースの手法【統計的手法】

これからカウントベースの手法を説明していくが、ここでは「コーパス」と呼ばれる大量のテキストデータを用いる。
このコーパスと呼ばれるデータは、自然言語処理の研究やアプリケーションのために目的を持って収集されたテキストデータである。
自然言語処理に関する分野で有名なコーパスといえば、WikipediaやGoogle Newsなどのテキストデータが挙げられる。

分散表現・分布仮説

さて、世の中には様々な「色」が存在するが、それらの色には「暗紅色」や「飴色」などの固有の名前が付けられている。
他方RGBの3成分がどれだけの割合で存在するかといった方法でも色は表現できる。つまり色を3次元のベクトルとして表現できるということである。
注目すべき点はRGBのようなベクトル表現の方がより正確に色を表現、指定できるということである。例えば先の飴色のようにどういう色なのか想像できない場合、飴色のRGBは(R, G, B)=(144, 103, 62)と表現できるので、明るい茶色っぽい感じがわかる。
また、色同士の関連性もこのベクトル表現の方が容易に判断しやすく、定量化も行えるので便利である。
このようなベクトル表現を、今議論している「単語」についても行えないだろうか?我々の目指すべきゴールは「単語の意味」を的確に捉えたベクトル表現である。
これは自然言語処理の分野では、単語の分散表現と呼ばれる。
自然言語処理の歴史において、単語をベクトルで表す研究は今まで数多く行われてきたが、その重要な手法の殆どがあるアイデアに基づいていることが分かる。
それは『単語の意味は、その周辺の単語によって形成される』という非常にシンプルなものである。
これは、分布仮説 (distributional hypothesis) と呼ばれている。つまり単語自体には意味がなく、その単語の「コンテキスト(文脈)」によって単語の意味が形成されるということだ。
例えば、「I drink water.」「You drink coffee.」などのように「drink」という単語の近くには飲み物が現れやすい。
また「I guzzle water.」「You guzzle coffee.」などの文章から、「drink」「guzzle」の意味は近そうだといった具合である。(guzzle: ガブガブ飲む という意味)
本記事では「コンテキスト」と言うとき、注目する単語に対してその周囲にある単語のことを指す。またコンテキストのサイズを「ウィンドウサイズ」という言葉で表すことにする。
例えばウィンドウサイズ2の場合、 自然言語処理
といったように、「goodbye」に注目したときその左右の2単語をコンテキストとして利用する。

共起行列

では、分布仮説に基づいて単語をベクトルとして表す方法を考えてみよう。
そのための素直な方法は、周囲の単語をカウントする「カウントベースの手法」である。
具体的には、或る注目している単語に対して、その周囲にどのような単語がどれだけ現れているのかをカウント、集計するのである。
では実際に、先の"You say goodbye and I say hello."という文章について、そのコンテキストに含まれる単語の頻度をカウントしていこう。ウィンドウサイズは1とする。
この文字列には全部で7つの単語(ピリオド含む)が含まれており、「You」という単語は[0, 1, 0, 0, 0, 0, 0]とベクトル表記できることがわかる。
なぜならばウィンドウサイズを1としているので、「You」の周辺単語は「say」のみであり、「say」にのみコンテキストの目印として共起した回数の1をカウントしているからである。
次に「say」については文字列中に2回現れていることに注意すると、[1, 0, 1, 0, 1, 1, 0]とベクトル表記できる。これらの作業を7つの単語について全て行うと、次のようなテーブルが得られる。
自然言語処理 このテーブルの各行が、該当する単語のベクトルに対応している。これは行列の形に対応していることから 共起行列と呼ばれている。
ここでは手動で共起行列を作成したが、もちろんこれはpythonなどを用いて自動化でき、コードはGithub上に上がっているので参照してもらいたい。

ベクトル間の類似度

今、共起行列で単語をベクトル化することに成功したが、続いてベクトル間の類似度を計測する方法を見ていこう。
ベクトル間の類似度を計測するのには、ベクトルの内積、ユークリッド距離などが代表例としてあげられるが、単語のベクトル間類似度を計測する際は コサイン類似度が主に使われる。コサイン類似度は以下の式で定義される。
\(\boldsymbol{x}=(x_1, x_2, \cdots ,x_n ), \boldsymbol{y}=(y_1, y_2, \cdots ,y_n )\)とした時、
$$ sim_{cos} = \dfrac{\boldsymbol{x} \cdot \boldsymbol{y}}{|\boldsymbol{x}| |\boldsymbol{y}|} = \dfrac{x_1 y_1 + x_2 y_2 + \cdots + x_n y_n}{\sqrt{x_1^2 + x_2^2 + \cdots + x_n^2} \sqrt{y_1^2 + y_2^2 + \cdots + y_n^2}} $$ 分子にベクトルの内積、分母に各ベクトルのL2ノルムの積を取っている。
注目すべきポイントはベクトルを正規化してから内積を取っているということである。2つのベクトルが同じ向きを向いているときにコサイン類似度は1、完全に反対向きだと-1になることは直感的に分かるだろう。

4.カウントベースの手法の改善点

さて、ここまでで我々は単語の共起行列を作れるようになり、それによって我々のゴールであった単語のベクトル化に成功した。
しかし、カウントベースの手法(特に共起行列の部分)には様々な改善点があり、今回はその改善点について取り組んでいくことにする。

相互情報量(Pointwise Mutual Information)

先程も述べたように共起行列の要素は、2つの単語が共起した回数を表している。
しかしこの回数は実際あまり良い性質を持っていない。というのも、例えばあるコーパスにおいて「the」と「car」の共起を考えてみることにする。「the」は冠詞なので「...the car...」などというフレーズは多数あり、共起回数は必然的に大きくなる。
他方、「car」と「drive」は明らかに強い関係があるが、「...drive car...」というフレーズの出現回数は低いと予想できる。つまり、単に共起回数だけを見てしまうと「drive」よりも「the」のほうが強い関連性があると評価してしまうことになる。
こういった問題を解決するために、 相互情報量(PMI) という指標が使われる。これはX、Yという確率変数に対して次の式で定義される。
$$ PMI(X,Y) = \log_2 \frac{P(X,Y)}{P(X)P(Y)}$$ このPMIの値が大きいほど関連性が高いことが示される。
この式より、単語単独の出現回数が考慮されたことになるので良い指標と言えそうだ。
しかし、このPMIの式には1つ問題がある。それは、2つの単語で共起する回数が0となるとき\(PMI =\log_2 0 = -\infty\)となってしまうことである。それに対応して、実際によく使われるのは次の 正の相互情報量(Positive PMI:以降PPMIと書く) である。
$$ PPMI(X,Y) = max(0, PMI(X,Y))$$ これは、PMIがマイナスのときは0を返す関数と見ることができ、単語間の関係性を0以上の実数値として表している。
これによって共起行列をPPMI行列に変換できるのだが、このPPMI行列にも大きな問題がある。例えば語彙数100万のコーパスを扱うとなると、ベクトルの次元数も必然的に100万にまで及び、このベクトルをそのまま用いるのは現実的でない。
さらに、PPMI行列の要素を見てみるとその多くが0であることが分かる(疎な行列)。これはベクトルの殆どの情報が重要ではない、つまり各要素の持つ重要度は低いと言える。このようなベクトルはノイズに弱く、頑健性に乏しいため次に説明する次元削減を行うのが一般的である。

次元削減(Dimensionality reduction)

次元削減とは、ベクトルの次元を削減することに他ならないが、ベクトルの持つ「重要な情報」をできる限り保持した上で削減することがポイントである。
次元削減を行う方法はたくさんあるが今回は特異値分解(SVD)を使った次元削減を行う。SVDは任意の行列を3つの行列の積として表せる。数式で書くと、
$$ X = \boldsymbol{US}\boldsymbol{V}^{T} $$ ここでUとVは直交行列でありその列ベクトルは互いに直行する。またSは対角行列である。
これらを視覚的に表すと次のようになる。(薄緑の部分にそれぞれ要素の値が入る)
自然言語処理 さて、上式においてUは直交行列であったがこの直行行列は何らかの基底を形成している。
つまりUという行列を単語空間として扱うことができる。またSは対角行列であり、その対角成分には特異値が大きい順に並んでいる。特異値は対応する基底の重要度とみなすことができる。つまり以下のように重要でない要素を削ることができるのである。
自然言語処理Wikipedia
ゼロから学ぶDeep Learning2

問1に続いて問2です。 同じくご指摘があればコメントをお願いします。


[1]\(U\)の期待値\(E[U]\)を求めよ。

\begin{equation} E[U] = E[X_1+X_2] = E[X_1]+E[X_2] \ (\because X_1, X_2は互いに独立) \end{equation} 今、\(X_i\)(\(i=1, 2\))について、
\begin{eqnarray*} E[X_i] &=& \int_0^\infty x_i f(x_i) dx_i \\ &=& \int_0^\infty x_i \lambda \mathrm{e}^{-\lambda x_i} dx_i \\ &=& \left[ x_i\mathrm{e}^{-\lambda x_i} \right]_0^\infty + \int_0^\infty \mathrm{e}^{-\lambda x_i} dx_i\\ &=& \left[-\frac{1}{\lambda}\mathrm{e}^{-\lambda x_i} \right]_0^\infty \\ &=& \frac{1}{\lambda} \end{eqnarray*} であるので、結局 \begin{equation} E[U] = \frac{1}{\lambda} + \frac{1}{\lambda} = \frac{2}{\lambda} \end{equation}
[2]\(U\)の確率密度関数\(g(u)\)を求めよ

まず\(U\)の積率母関数\(M_U(t)\)を求める。
\begin{equation} M_U(t) = M_{X_1+X_2}(t) = M_{X_1}(t)M_{X_2}(t) \ (\because X_1, X_2は互いに独立) \end{equation} であり、\(M_{X_i}(t)\)について、
\begin{eqnarray*} M_{X_i}(t) = E[\mathrm{e}^{t X_i}] &=& \int_0^\infty \mathrm{e}^{t x_i}\lambda \mathrm{e}^{-\lambda x_i} dx_i \\ &=& \lambda \int_0^\infty \mathrm{e}^{(t-\lambda)x_i}dx_i\\ &=& \lambda \left[ \frac{1}{t-\lambda} \mathrm{e}^{(t-\lambda)x_i} \right]_0^\infty\\ &=&\frac{\lambda}{\lambda - t}\ (\lambda > t) \end{eqnarray*} \begin{equation} \therefore M_U(t) = \left( \frac{\lambda}{\lambda - t}\right)^2 = \left( \frac{1}{1 - \frac{t}{\lambda}} \right)^2 \end{equation} これはパラメータ(2, \(\frac{1}{\lambda}\))のガンマ分布の積率母関数に一致する。積率母関数と確率密度関数の一対一対応性から、\(U\)の確率密度関数は、
\begin{equation} g(u) = \frac{{\lambda}^2}{\Gamma(2)}u^{2-1}\mathrm{e}^{-\lambda u} = {\lambda}^2 u\mathrm{e}^{-\lambda u}\ (\because \Gamma(2)=1! ) \end{equation} [3]期待値\(E[\frac{1}{U}]\)を求めよ。

\begin{eqnarray*} E\left[ \frac{1}{U} \right] &=& \int_0^\infty \frac{1}{u} g(u)du \\ &=& \int_0^\infty {\lambda}^2 \mathrm{e}^{-\lambda u}\\ &=& {\lambda}^2 \left[ -\frac{1}{\lambda} \mathrm{e}^{-\lambda u} \right]_0^\infty \\ &=& \lambda \end{eqnarray*}
[4]\(\alpha\)を正の定数とし、パラメータ\(\theta=\frac{1}{\lambda}\)を\(\alpha \bar{X}\)で推定する。その時の損失関数を
\begin{equation} L(\alpha\bar{X}, \theta) = \frac{\alpha\bar{X}}{\theta}+ \frac{\theta}{\alpha\bar{X}}-2 \end{equation} として期待値\(R(\alpha, \theta) = E[L(\alpha\bar{X}, \theta)]\)を導出し、\(R(\alpha, \theta)\)が最小となる\(\alpha\)の値を求めよ。

問題文の定義及び、[1][3]の結果から、 \begin{eqnarray*} E[L(\alpha\bar{X}, \theta)] &=& E \left[ \frac{\alpha\bar{X}}{\theta}+ \frac{\theta}{\alpha\bar{X}}-2 \right]\\ &=& \frac{\alpha}{\theta}E[\bar{X}] + \frac{\theta}{\alpha}E \left[\frac{1}{\bar{X}} \right] -2\\ &=& \lambda\alpha E \left[ \frac{U}{2} \right] + \frac{1}{\lambda\alpha}E \left[ \frac{2}{U} \right]-2\\ &=& \frac{\lambda\alpha}{2} E[U] + \frac{2}{\lambda\alpha}E \left[ \frac{1}{U} \right]-2\\ &=& \frac{\lambda\alpha}{2}\frac{2}{\lambda} + \frac{2}{\lambda\alpha}\lambda - 2\\ &=& \alpha + \frac{2}{\alpha} -2 \end{eqnarray*} となる。ここで\(R(\alpha, \theta)\)が最小となる\(\alpha\)の値を求めるために、上式を\(\alpha\)で微分したもの=0を解くと、 \begin{equation} 1-\frac{2}{{\alpha}^2} = 0\\ \therefore \alpha = \sqrt{2} \ (\because \alpha >0) \end{equation}


以上です。
普段は機械学習がメインなので機械学習でやってみたブログや理論、論文解説をおこなっています。
アクセルユニバース技術ブログ一覧


本記事や他の情報が役に立つことを祈って、問3の解説も作成していきます。

問2に続いて問3です。
同じくご指摘があればコメントをお願いします。


また、問1問2はこちらをご確認ください。
合格記も書きました。


[1]
\(X_1, X_2, \cdots , X_n\)の同時確率密度関数
\[ f(x_1, x_2, \cdots, x_n) = \begin{cases} \frac{1}{\theta ^n} & (x_1, x_2, \cdots , x_n \leq \theta)\\ 0 & (otherwise) \end{cases} \] の条件\((x_1, x_2, \cdots , x_n \leq \theta)\)は\(y \leq \theta\)と同値であるので、 フィッシャーネイマンの分解定理により、\(Y\)は\(\theta\)に関する十分統計量である.

[2]
区間\((0,\theta)\)上の一様分布に従う確率変数\(X\)の累積分布関数\(F_{X}(x)\)について \[ F_{X}(x) = P(X\leq x) = \begin{cases} \cfrac{x}{\theta} & (0\leq x \leq \theta) \\ 0 & (x<0) \\ 1 & (x>\theta) \end{cases} \] となる。よって\(Y\)の累積分布関数\(G(y)\)は \begin{eqnarray*} G(y) &=& P(X_{1}, X_{2}, \cdots, X_{n}\leq y) \\ &=& P(X_{1}\leq y)P(X_{2}\leq y)\cdots P(X_{n}\leq y) \\ &=& \left(\frac{y}{\theta}\right)^{n} \end{eqnarray*} これを\(y\)について微分することで \[ g(y) = \frac{n}{\theta^{n}}y^{n-1} \]

[3]
\(Y=max(X_1, X_2, \cdots , X_n)\)であったから、\(X_1, X_2, \cdots , X_n\)のうち最大の値をとる確率変数を、例えば\(Y=X_n\)とすれば、 \(Y=y\)つまり\(X_n=y\)が与えられたとき、
\[ f(x_1, \cdots , x_{n-1}, y | y) = \frac{1}{y^{n-1}} \] となる。

[4]
\begin{eqnarray*} E[Y] &=& \int^{\theta}_{0}y\frac{n}{\theta^{n}}y^{n-1} dy \\ &=& \frac{n}{\theta^{n}} \cdot \frac{\theta^{n+1}}{n+1} \\ &=& \frac{n}{n+1}\theta \end{eqnarray*} これより、\(\tilde{\theta}=\cfrac{n+1}{n}Y\)とすると\(E[\tilde{\theta}]=\theta\)となり不偏性をもつ。したがって、求めるパラメータ\(\theta\)の不偏推定量は\(\tilde{\theta}=\cfrac{n+1}{n}Y\)

[5]
関数\(u(Y)\)の期待値が0となるとき、 \begin{eqnarray*} E[u(Y)] &=& \int^{\theta}_{0}u(y)\frac{n}{\theta^{n}}y^{n-1}dy = 0 \\ &\Rightarrow& \int^{\theta}_{0}u(y)y^{n-1}dy = 0 \end{eqnarray*} どのような\(\theta\)についても等式が成り立つためには\(u(Y)\equiv0\)でなければならない。

[6]
\(Y\)の関数であるパラメータ\(\theta\)の不偏推定量を\(s(Y)\)とし、\(E[s(Y)-\tilde{\theta}]\)を計算すると、\(E[s(Y)-\tilde{\theta}]=0\)となり、[5]の結果から\(s(Y)-\tilde{\theta}=0\)で、どのような\(s(Y)\)に対しても\(s(Y)=\tilde{\theta}\)となる。つまり\(\tilde{\theta}\)は\(Y\)の関数であるパラメータ\(\theta\)の唯一の不偏推定量である。

解答は以上です。指摘事項があればお手数ですがご連絡ください。

2019年11月24日に実施された統計検定1級を受験しました! 略解は既に公開されているのですが、改めて勉強したい人(僕もその1人ですが...。)のために解答を共有します。 少しでも役に立つと嬉しいです。。。
本記事では統計数理の問1、次記事で問2を解説していきます。


[1]
確率母関数の1階および2階微分はそれぞれ \[ \frac{d}{dt}G_{X}(t) = \sum_{k} kt^{k-1}P(X=k) \] \[ \frac{d^{2}}{dt^{2}}G_{X}(t) = \sum_{k} k(k-1)t^{k-2}P(X=k) \] である。 ここで\(t=1\)を代入して \[ \frac{d}{dt}G_{X}(1) = \sum_{k} kP(X=k) = E[X] \] \[ \frac{d^{2}}{dt^{2}}G_{X}(1) = \sum_{k} k(k-1)P(X=k) = E[X(X-1)] \] したがって期待値、分散を求める式はそれぞれ \[ E[X] = \frac{d}{dt}G_{X}(1) \] \begin{eqnarray*} V[X] &=& E[X(X-1)] + E[X] - (E[X])^2 \\ &=& \frac{d^{2}}{dt^{2}}G_{X}(1) + \frac{d}{dt}G_{X}(1) - \left(\frac{d}{dt}G_{X}(1)\right)^{2} \end{eqnarray*} となる。

[2]
\(X\)~\(B(n,p)\)のとき、\(P(X=k)=\left( \begin{array}{c} n \\ k \end{array} \right) p^{k}(1-p)^{n-k}\)より、確率母関数は \begin{eqnarray*} G_{X}(t) &=& \sum_{k=0}^{n}t^{k}\left( \begin{array}{c} n \\ k \end{array} \right) p^{k}(1-p)^{n-k} \\ \\ &=& \sum_{k=0}^{n}\left( \begin{array}{c} n \\ k \end{array} \right) (tp)^{k}(1-p)^{n-k} \\ \\ &=& (tp+1-p)^n \end{eqnarray*} となる。最後の行では二項定理を用いた。また、この結果から \[ \frac{d}{dt}G_{X}(1) = np(tp+1-p)^{n-1}|_{t=1} = np \] \begin{eqnarray*} \frac{d^{2}}{dt^{2}}G_{X}(1) &=& n(n-1)p^{2}(tp+1-p)^{n-2}|_{t=1} \\ &=& n(n-1)p^{2} \end{eqnarray*} と求められるので、\(B(n,p)\)の期待値と分散は[1]の式を用いて \[ E[X] = np \] \[ V[X] = n(n-1)p^{2} + np - (np)^{2} = np(1-p) \]

[3]
確率母関数の定義式から、正の実数\(r\)について、 \begin{eqnarray*} G_{X}(t) &=& \sum_{k} t^{k}P(X=k) \\ &=& \sum_{k\leq r} t^{k}P(X=k) + \sum_{k> r} t^{k}P(X=k) \\ &\geq& \sum_{k\leq r} t^{k}P(X=k) \end{eqnarray*} となる。ここで\(k\leq r\)ならば\(t^{k-r}\geq 1\)が成り立つので \begin{eqnarray*} t^{-r}G_{X}(t) &\geq& t^{-r}\sum_{k\leq r} t^{k}P(X=k) \\ &=& \sum_{k\leq r} t^{k-r}P(X=k) \\ &\geq& \sum_{k\leq r} P(X=k) \\ &=& P(X\leq r) \end{eqnarray*} よって示された。

[4]
[2]、[3]の結果から\(X\)~\(B(n,p)\)と実数\(a\)について \[ P(X\leq an) \leq t^{-an}(tp+1-p)^n \] ここで、不等式の右辺において最小値を与える\(t\)を求める。右辺の値の自然対数をとった関数\(f(t)=n\{\log(tp+1-p)-a\log t\}\)を\(t \)で微分してその値を0とおくと \begin{eqnarray*} && \frac{d}{dt}f(t) = n\left(\frac{p}{tp+1-p} - \frac{a}{t}\right) = 0 \\ \\ &\Leftrightarrow& t = \frac{(1-p)a}{p(1-a)} \end{eqnarray*} この\(t\)を不等式の右辺の式に代入して \begin{eqnarray*} && \left\{\frac{(1-p)a}{p(1-a)}\right\}^{-an}\left\{\left\{\frac{(1-p)a}{p(1-a)}\right\}p+1-p\right\}^n \\ \\ &=& \left(\frac{a}{p}\right)^{-an}\left(\frac{1-p}{1-a}\right)^{-an}\left(\frac{1-p}{1-a}\right)^{n} \\ \\ &=& \left(\frac{p}{a}\right)^{an}\left(\frac{1-p}{1-a}\right)^{(1-a)n} \end{eqnarray*} よって \[ P(X\leq an) \leq \left(\frac{p}{a}\right)^{an}\left(\frac{1-p}{1-a}\right)^{(1-a)n} \]


以上が問1です。 ご指摘があればコメント頂けると嬉しいです。


普段はアクセルユニバース株式会社でデータサイエンティストとしてインターンをしています。
kaggleコンペに挑戦したり、pythonで機械学習を実装したりしています。ゼロから学ぶ!機械学習とプロセス
コンペの結果、解法や実装した成果物等を今後も公開していくので、ぜひご覧頂きたいです!


目次

はじめに:機械学習の社会実装

『機械学習』という言葉を聞いて何を思いつきますか?自動運転、顔認証、AI...。さながら映画のような世界が訪れるとワクワクしている人、その一方で「AIが人間の仕事を奪う」と憂いている人もいるでしょう。


目覚ましい機械学習技術の発展とともにメディアなどで盛大に取り上げられているため「機械学習(主にAI)を使えば何でもできそう!(もしくはできてしまう...)」と思っている方もいるのではないでしょうか?


しかしながら、機械学習は魔法ではありません。機械学習はそのアルゴリズムやディープラーニングを駆使し人間の脳の認識能力を模倣したり、計算処理を行っています。「機械学習、ディープラーニングとは?」と思った方は下記の記事を参照にしてください。特に機械学習についての2つはわかりやすくて概要を掴むのにぴったりです。





筆者は『機械学習技術は社会実装できる』と考えています。社会実装とは、社会技術研究開発センター(JST)が提唱した「社会の問題解決に資する研究開発成果の社会実装活動」を意味します。要するに技術を社会問題の解決に活用することです(例:介護ロボット、きゅうりやその他野菜の判別機 等)。ここでは社会問題の解決というよりも、私たちの日常生活に機械学習が実装される(根付いていく)という意味で使います。



機械学習技術の日常生活への実装、聞こえはいいのですがそれには予想外の弊害がいくつか存在します。1つ目は社会システムの問題。簡単に言えば機械学習技術に関する法律や有事の際の対処法などです。2つ目は使用者側の問題。後で例示しますが、技術の発展に人々の認知が追いついていないことを指します。そして3つ目が使用者と開発者も含めた人の問題。機械学習は絶対的な答えを見つけるものではなく、数ある選択肢の中から人にとって『より良い』ものを取ります。では『より良い』とは一体どういう意味でしょうか?


当記事はこの問題に直接的な答えを提示するものではなく『機械学習技術を社会、あるいは、日常生活に活用する』には何が問題になっているか?、という疑問を投げかけるものです。基本的に筆者の興味・関心に基づく分野に寄っているので悪しからず。


それでは機械学習に関する疑問を小見出し毎に分けているので、一緒に考えてみましょう。


日々の話のネタになれば幸いです。


自動運転は実現可能か?

機械学習""          

自動運転(車)が実現すればSFの世界のようでしょう。ここでの自動運転とは運転者がハンドルを持たなくても目的地までたどり着くことのできるような、完全自動運転を指します。今でも多くの車に走行中、障害物を検知して減速・停止するアシスト機能が付いていますが、当記事ではこれらは扱いません。

        
         

現在、フォルクスワーゲン社やフォード社が業務提携を結ぶなど世界の企業がこぞって自動運転車の開発に投資しています。しかし、自動運転車の開発、及び、社会実装には多くの問題が付随します。

        
        

1つ目は技術の問題。2016年に起きたテスラ社製の自動運転車での死亡事故は運転手の警告無視が原因と言われています。しかし2019年、ウーバー社の自動運転車が引き起こした死亡事故は交通ルールを無視した歩行者を車が認識できなかったため発生しました。このような問題は技術の発展とともに解決するでしょう。しかし、技術が発展した後に完全自動運転車が開発されても2つ目の問題が発生します。         
        

それは法律です。もし仮に自動運転車が事故を起こした場合は賠責補償はどうなるのでしょう。例えば現行の日本の法律では、事故を起こした際、運転者が賠償責任を負うと定められています。言い換えれば、人が車を運転する場合、運転者は『運転している人』なのでそこに賠償責任が生じます。では、完全自動運転車の場合、運転者は誰になるでしょう?運転席に座っていた人、もしくは、該当車の自動運転システムを開発した企業でしょうか?現段階ではこの責任の所在が非常に曖昧です。

        
        

また、少し話は違いますが、自動運転に際し大きな議論になっているハッキング問題が発生した場合はどう対処されうるのでしょうか?自動運転を可能にするネットワークを誰かがハッキングできれば、テロの武器に最適な技術になってしまいます。

        
        

不明瞭な部分が今後どのように明文化されるのか、みなさん気になるところではないでしょうか。いざとなった時の処置方法が曖昧なままであなたは喜んで自動運転車を使用しますか?

        

人間は機械学習技術を使いこなせるか?

機械学習""         
        

機械学習の社会実装において憂慮すべきは技術や法律だけの問題ではありません。機械学習の『使用者』にも問題は存在します。


アメリカ・ミシガン州フリント市の水道管施工の例を見てみましょう。同市では水道管に使用された素材が原因で深刻な水質汚染が発生していました。状況を深刻に捉えた科学者たちがGoogle社から支援を受け、どこの水道管を調査すべきか予測モデルの作成を行いました。しかしながら、市と施工会社はそのモデルを使用しませんでした。原因は施工会社のモデルの解釈に関する知識不足や、市長が住民からの支持を保つために行った政治的行動、予測モデルにより調査対象から外れうる住民の理解などが挙げられます。


ここで「無知は悪だ」、「政治は汚い」、「データ解釈ができないのは教育格差だ」なんてことを言いたいのではありません。あくまで主張したいのは、『いくら機械学習(もしくは、AI)技術が発達しようともそれを使うのは人間である』ということです。


使用者側が機械学習技術の使い方を理解していない、また、拒絶したりすれば、その技術は無駄になってしまいます(無論、無駄な技術や研究などない。のですが)。この例からわかるように機械学習の社会実装は、機械学習やデータ分析の知識を持ち合わせている人だけで成り立つものではありません。開発者側だけでなく、使用者側も機械学習に何ができて何ができないのかある程度理解しておくべきでしょう。


得体のしれない不気味で無機質な機械学習、ではなく社会問題や日々の生活で活用できる機械学習として周知するためにはどうすればいいでしょうか?


機械学習の判断を人は受け入れられるか?

機械学習""
         

冒頭で述べたように機械学習技術はめざましい発展を遂げています。その精度はますます上がり、応用される分野も拡大していき私たちの生活の中に深く根付いてきています。


しかし、どんなに機械学習技術が発達しても予測精度や正解率は100%にはなりません。もちろん生身の人間がおこなうより精度や計算速度が高くなるのは疑いようがないのですが。では、その100%ではない答えに多くの人は自身の選択を委ねることができるでしょうか?もしかすると、機械学習で出した選択肢は感情を排除しているためより客観的な判断が可能になるかもしれません。


そもそもデータには常にバイアスがかかっているので客観性については議論の余地があります。長くなってしまうので、後日別記事で同問題について書きます。


しかし、その正確性が100%でない以上、間違った判断をする可能性は0にはならないでしょう。


果たしてそれを多くの人たちは受け入れられるでしょうか?


自動運転の例で言えば、事故を完全に防げない完全自動運転バスに毎日乗るであろう老人は快く受け入れるでしょうか?フリントの例で言えば、ある地域の何十件かの家でたとえ80%の確率で問題ない水道管が使われていたと予測され、施工をしないと判断されたとします。果たして、そこに住む幼い子どもを持つ両親はその判断に納得するでしょうか?


人間が意思決定を行う際には感情や経験等、主観的な要素が入ります。そのため客観性でいえば機械学習を使った方がより合理的な判断をできるかもしれません。しかし、もし万が一、機械学習がその予想を外した場合はどうでしょう。


例えば、自身が乗っている完全自動運転車が事故に遭い後遺症が残ってしまいました。あなたはもう歩くことができません。あなたは「人間より精度の高い機械学習が判断したんだから仕方ない。」と自身の気持ちに折り合いをつけるでしょうか?水道管が施工されないと判断された地域に住んでいて、あなたの家族が何か重大な病気にかかってしまいました。「機械学習は完璧じゃないから仕方ない。」と疑いもなく言えるでしょうか?


『より良い』とは?

機械学習
   

最後に機械学習と人間の価値観・倫理観について議論を投げかけたいと思います。

  

繰り返しになりますが機械学習は数ある選択肢の中から『より良い』判断を下します。しかし、その『より良い』という判断をどうやって下すのでしょうか?これは予測精度に対する問いではなくて、何を持ってして、誰にとっての『より良い』なのか?という問いです。

     

Irving and Askell (2019)の"AI Safety Needs Social Scientist"によると、 そもそも 'better or worse' の受け取り方は人の価値観や倫理観によって異なるとあります。したがって、当著者達は機械学習の研究とともに、人そのものを対象とする研究も必要と述べています。

     

価値観や倫理観は個人の置かれてきた環境や信仰する宗教等、多くの要素によって左右されます。そのためすべての人に共通する『普遍的価値観』なるものは存在しません。例えば、有名な。これに対する答えは人それぞれなはずです。何が『より良くて』『正しい』のかという答えが明確でない以上、人の価値観や倫理観を機械に学習させることは果たして可能なのでしょうか?


Irving and Askell(2019)は機械学習側だけでなく人間側にも問題があり、人間自身も自分の持つ価値観や倫理観を説明できないと述べています。つまり、機械学習で使うデータに人間自身も説明できない概念が含まれてしまいます。


『より良い』という曖昧な概念、しかも、人もそれを説明できない。となると、人の価値観や倫理観に左右される事柄を機械学習を使って解決することはできるのでしょうか?


おわりに

 

機械学習技術は日々発展しています。上記で挙げた技術的問題は近い将来問題ではなくなるでしょう。しかし、それ以外の使う側の問題や、そもそも、人の価値観の違いなど機械学習で扱うべきかそもそも疑問を持つものもあります。


くどいようですが、機械学習は魔法ではありません。


使用者がその技術を使いこなせたとき初めてその価値を発揮するのではないでしょうか。機械学習は魔法でない故に全ての問題を『完璧』に解決できるわけではありません。あくまで、『より良い』選択を実行・提案するだけです。


そして、その『より良い』という判断基準も人の価値観・倫理観に基づくため決して『完璧』にはなりません。


世の中には機械学習やAIについて様々な記事や書籍が溢れています。明らかに嘘と判断できるものや不安を煽るものも数多く存在します(この記事ももしかすると嘘を述べているかもしれません)。それがすべての原因ではありませんが、人々を機械学習から遠ざけている一つの要素ではないでしょうか。機械学習を社会に役立てるようにする(社会実装する)には技術面の発達だけでは十分ではありません。それには使用者側も機械学習について知り、その技術を受け入れ、使いこなすための土台が必要となります。


当記事は数多く存在する機械学習に関する問題の解決方法を提案するものではありません。


『機械学習とは何なのか?』を知る際に一緒に機械学習の問題点や限界値なども知っておけば、よりその学びが楽しくなるのではと思い書いた次第です。


この機会に当記事内で投げかけた様々な問題点について、機械学習に精通する人や興味のある人はもちろん、機械学習に興味がない人、機械学習を忌み嫌っている人とも、話してみてはいかがでしょうか?


参考文献、サイト

         

ウーバーの自動運転車事故、交通違反の歩行者を認識せず AFPBB


国立研究開発法人科学技術振興機構


フォードとVW、業務提携を自動運転とEVに拡大 日経新聞


Irving, G. and Askell, A. (2019) "AI safety needs social scientists", Distill .


Madrigal, A. C. (2019) "How a feel-good AI story went wrong in Flint", The Atlantic , 03 Jan.


画像引用サイト(フリー素材)

         

PAKUTASO

         

photoAC

1,ベイズ統計学とは

ベイズ統計学とは、ベイズの定理を基礎とした統計学の体系である。

2,他の統計学との相違

  1. ベイズ統計学は標本を必ずしも必要とせず、母数が確率的に動くとみなす学問
  2. 記述統計学はデータを集計する手法を学ぶ学問
  3. 推計統計学は限られた標本のうち全体となる母集団の性質を推測する学問

3,ベイズ統計学の歴史

1700年頃、トーマス・ベイズによりベイズの定理が発表された。 後に、1800年代後半にベイズ統計の基礎ができた。 しかし、推計統計学論者のフィッシャーらによって主観確率を 取り扱う統計は科学的ではないとしてベイズ統計は闇に葬りさられた。 1950年代に入り、ベイズ統計の利便性の高さから注目されて、 近年は機械学習やビッグデータの分野で利用されることから多用されるようになった。

4,ベイズ統計の特徴

ベイズ統計では、主観確率を取り扱う。主観確率とは、 人により対象の確率が変動する主観に基づく確率の事である。 この確率を使用して事前確率と事後確率を用いて数式化する。

5,事前確率と事後確率

事前確率とは、データを手に入れる前に想定していた確率のことである。 事後確率とは、データを用いて事前確率を修正した結果の確率のことである。

6,ベイズ変更

事前確率を変更してより正確と考えられる事前確率に変更することをベイズ変更という。 ベイズ変更により事前確率が変更するため、その結果事後確率が変わる。

7,ベイズ統計の公式

ベイズの定理 P(A|X)=P(X)分のP(X|A)P(A)=P(A)✕P(X)分のP(X|A)

  • P(A|X):事象Xが起こった状況下で事象Aが起こる確率(事後確率)
  • P(A):事象Aが起こる確率(事前確率)
  • P(X):事象Xが起こる確率
  • P(X|A):事象Aが起こった状況下で事象Xが起こる確率

ベイズの定理を文字として表現すると、 事後確率=事前確率✕修正項 になる。 この数式に数を代入すれば事後確率が求まる。

8,ベイズ統計の使用例

1.迷惑メール判別

ユーザーがスパムとしたメールとスパムではないとしたメールから、タイトル、 本文に含まれる語句ごとの出現確率を抽出して点数をつける。 スパムと正常なメールを判別するための閾値を導き出す。 新規メールを受信したら、そのタイトルや本文を自然言語処理し、閾値と照らし合わせてスパムメールである 確率が高ければスパムメールとして振り分ける。

2.検索エンジン

Googleやマイクロソフトの検索エンジンはベイジアンフィルタを採用している。 1990年頃まで一般的だったif,and,or, butを使い判別する検索エンジンの検索精度や速度を凌駕した。

3.アプリケーション開発

インテル、マイクロソフトなどで活用されている他、LINEスタンプのレコメンドエンジンにも応用されている。

このアーカイブについて

このページには、過去に書かれた記事のうち統計学カテゴリに属しているものが含まれています。

前のカテゴリはTensorFlowです。

次のカテゴリはkaggleです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。