Column連載コラム
2021.11.22
統計学、機械学習、深層学習、データサイエンス、人工知能、ビッグデータ……
データサイエンスアカデミー兼任講師の笹森です。
本記事はタイトルで述べた用語についての記事です。本記事をまさに今読んでいる皆様もこの用語群に聞き覚えはあるのではないでしょうか?そして「何がどう違うのか分からない」と混乱した覚えもあるのではないでしょうか?まず初めに申し上げていくと、このあたりの用語を正確に区別するのは非常に難しいです。よって、もしも皆様が混乱したことがあるのだとしたら、それはある意味で当然のことと言えるでしょう。
本記事ではこのあたりの用語について、私なりの考えを述べようと思います。私自身はコンピュータサイエンスや統計学などの学位を持っているわけではありませんが、データサイエンティストとして実際に現場で働いている身ですので「データサイエンスについてそもそも知らない」人にとっては有益な情報になるのではないか、と妄想しております。
■ まずそもそも各々の立ち位置は?
タイトルで述べた用語はすべてが横並びではないと思われます。まずはその立ち位置をはっきりとさせましょう。私が考えるに、以下のような立ち位置になると思われます。
〇データサイエンス
・データ:ビックデータ
・分析技術:統計学、機械学習、深層学習
〇人工知能
つまり「ビッグデータ」と「統計学、機械学習、深層学習」は立ち位置が異なります。そして「データサイエンス」というのはデータであったり分析技術であったりを包含するような”ひとつ上のレイヤー”に位置します。そして「人工知能」は「データサイエンス」とはまた異なる観点です。(全く違う観点というわけではなく、お互いに関係はありますが、片方が他方を完全に包含するような関係ではないと思われます。)
■ビッグデータ
まずはビッグデータについてですが、この用語は正確な定義が難しいです。「大規模な量、様々な形式、頻繁な更新頻度の巨大かつ複雑なデータ」くらいの意味合いで大きく外れてはいないと思います。ただし厄介なのが正確な定義は難しいため”ビッグデータ”という言葉に広がりがあります。例えば私が実際に見てきた例ですと「年に1回、表形式で更新されるデータで、合わせると数百GB」という場合に”ビッグデータ”という用語が使われていたケースがあります。まず表形式だけですので様々な形式があるわけではないですし年1回の更新なので更新頻度が頻繁というというわけでもないです。数百GBというのも一見大きく感じるかもしれないですが「巨大」と呼ぶにはまだ小さすぎますかね。(私の感覚では「数百~数千TBであったりPB」になってくると”ビッグデータ”感を感じますが、数百GBでは特にびっくりはしません。そもそも家庭用の外付けHDDとして500GB~8TBのものがお手軽な値段で購入できる時代ですしね。)このように元来であればビッグデータの定義を厳密に満たしていない場合でもビッグデータという用語が使われるケースが多くあります。大体の場合は「容量が大きいデータ」のことを単にビッグデータと呼ぶケースがあるように思われます。
■ 統計学と機械学習
統計学と機械学習も使い分けが難しい話題ですが、私の考え方としてはまさに「考え方」に違いがあると思っております。つまり特定の手法の違いが統計学/機械学習を分けるものだとは思っておりません。統計学の場合は「そのデータを説明すること」を目的とします。よって”統計学”の文脈で例えば重回帰分析や決定木分析を行う場合は予測を行いたいというよりは「どの要因によってその結果が引き起こされているのか」を知りたい、といった場合が多いです。機械学習の場合は「そのデータを基に予測すること」を目的としますので”機械学習”の文脈で例えば重回帰分析や決定木分析を行う場合は予測値の精度を重要視します。例えば「売上はどのような要因によって成り立つのか知りたい(売上向上のためにどこに重点的に手を打てばいいかを知りたい)」という場合は”統計学”であり「よく分からないけど高精度の予測モデルができました」だとよろしくありません。逆に「スパムメール自動判定の精度を上げたい」という場合は”機械学習”であり予測モデルの中身というよりは実際の予測結果の精度が重要です。
■ 機械学習と深層学習
機械学習/深層学習の違いは割と明確です。違いというよりも「深層学習⊂機械学習」という関係です。ここで A⊂B は「AはBの中に含まれる」という意味です。例えば「男子小学生⊂小学生」ですね。つまり深層学習は機械学習の枠組みのひとつです。深層学習の典型例は多層ニューラルネットワークと呼ばれるものです(狭義には4層以上の多層ニューラルネットワークのことを指すようです)。「典型例は」と述べましたが実用上は「深層学習=多層ニューラルネットワーク」と認識しておいて特に大きな問題はありません。
■データサイエンス
データサイエンスは、多くの学問領域にわたる科学的手法、プロセス、アルゴリズム、システムを用いてデータから知見や洞察を引き出そうとすることを意味します。前述したようにデータサイエンスはひとつ上のレイヤーにあります。よって「ビッグデータを使って機械学習を行ってデータサイエンスをする」というような使い方(というより関係性)が正しくて「ビッグデータ≠データサイエンス」、「機械学習≠データサイエンス」です。「ビッグデータを使っていないデータサイエンス」、「機械学習を使っていないデータサイエンス」は山ほど存在します。典型的なのが臨床試験の結果の分析でしょう。ウイルスに対してワクチンを作ろうとした場合は臨床試験を行う必要があります。そしてその臨床試験の結果を統計学を駆使して、副作用はないか、効果はあるのか等を検証します。つまり要因や関係性が知りたいのであり予測をしたいわけではないです。また、臨床試験は何百万人を対象にできるものではなく、数十人、数百人の世界です。つまり臨床試験の結果の分析は「非常に小さなデータ」に対して「統計学」を用いてデータサイエンスをしていると言えます。
では結局データサイエンスとは何かというと、非常に乱暴な言い方をしてしまえば「何かしらのデータを用いて何かしらの集計や分析を行っていればそれはデータサイエンスだ」と言っても大きく外れていないでしょう。
■ 人工知能
人工知能はまた違った話です。正確な定義は今も明確に定まっていないようですが「人間の知能を人工的に構築できるかどうかを目指す分野」とよく言われます。もちろん人工知能とデータサイエンスとの間に関係性はあります。例えばディープラーニングを勉強すると必ずと言っていいほど「手書きで書かれた1,2,3,4,5,6,7,8,9,0を分類するモデルをつくる」といった例に出会いますが、これはまさに、人間ならばたやすく出来ることを機械ができるか」を目指して、大量のデータを学習させて深層学習を行う、といったことをしています。また、人工知能はデータを学習させる必要が必ずしもあるわけではありません。条件分岐をひたすら繰り返してルールベースで実現される人工知能もあります(完全なルールベースであればデータを用いていません)。よって「非常に密接な関係にあるが、データ分析とはまた違った観点である」という認識をしておけばいいと思います。
■ 終わりに
今回は、統計学、機械学習、深層学習、データサイエンス、人工知能、ビッグデータといった用語の位置づけをご紹介いたしました。最初に述べた通り、私自身はコンピュータサイエンスや統計学などの学位を持っているわけではありませんが、大きくは外していないだろうとは勝手ながら思っております。是非ともご参考にしていただければと思います。
なお、ちなみにデータサイエンティストとデータアナリストといった言葉の違いもありますが、それについては大きな違いはあると思っておりません。ただし私の感覚だと「機械学習エンジニア的な職務を含むときにはデータサイエンティスト、含まないときにはデータアナリスト」みたいな使い分けをされている印象があります。