ダウンロード サンプルファイル (13.6 KB)
データサイエンスという分野は、データ収集や可視化などが身近になったことで、より重要になってきています。システムを使ってデータ分析する際、利用者は最終的な結果のみを求めますが、私たちエンジニアはその途中経過についても正しく評価する必要があります。そのためには、中学や高校で学んだ数学の知識が欠かせません。そこで本連載は、高校までに学ぶ基本的な数学知識を使って、データ分析やデータ表現の基礎的な考え方を紹介します。また、既に学んだ数学的基礎からデータの特徴を見つけるためにデータ表現する方法について紹介したいと思います。
はじめに
前回は一次関数や二次関数のグラフを実際に描いてみました。
今回は、三角関数に関連する図を描いてみます。基本的なD3の利用方法は同じなので、前回までの内容を理解していれば問題ありません。
そこで、今回は基本的な三角関数の復習とともに、動的グラフの更新までを紹介したいと思います。
三角関数の考え方が応用できる領域とは
三角関数は、私たちの身の回りのさまざまな現象に深く関係しています。波の性質を持つものから、一見関係なさそうな分野まで、その関連範囲は幅広いです。
身近な例では、「心電波形などの生体リズム」「地震の振動」「音声波形」などがあります。
これらの波形は、単純な三角関数そのものではありませんが、特定の特徴に着目して分解すると、そこに三角関数が現れてきます。複雑な波形も複数のシンプルな三角関数の波を組み合わせることで表現できるわけです。
また、どうしてここに三角関数が出てくるのだろうという疑問を持つ方もいるかと思います。どのような形で応用する場合でも、三角関数が持つ基本的なイメージを理解することが助けとなるはずです。
三角関数の復習に入る前に、まずは応用される一例を紹介します。
生成AI領域でも活用される三角関数
近年では生成AIの領域でも、「単語」や「文章」の類似度を計算する際に、三角関数の考え方が用いられることがあります。
これは、もちろん「文章」そのものの中に三角関数(円運動や波)の性質が直接含まれているということではありません。膨大な量の過去の文章データを参考に、それぞれの文章や単語が持つ関係性を、仮想上の空間に配置できたとしたら、「位置関係」に変換され、そこで三角関数も使えるという考え方に基づいています。これを「コサイン類似度」と呼びます。
コサイン類似度
AI分野において単語や文章の類似度を測るための「コサイン類似度」という概念があります。これは、図1のように言葉などを空間上の場所に置き換えた時に、それらをベクトル間の角度で測ろうとするものです。
今回はこれらの計算方法についての説明は省略します。ただ、この図を見て、似ているかどうかを判断するために「角度だけを見て、それぞれの位置を見ないのか」と疑問に感じる方もいるでしょう。
実際、2点間の距離で判断する方法(ユークリッド距離)もあります。しかし、距離(ここでは単語の意味の違いと見なしてください)はむしろ考えたくない場合があります。
例えば、「朝のあいさつ」という目的での「おはよう」に似た言葉として、「こんばんは」「よろ」「今朝はいい天気ですね」が候補にあった場合、このケースでは「今朝はいい天気ですね」が一番近いと考えられます。
これは本来は「あいさつ」の言葉ではありませんが、あいさつとしてこのような言葉を使う方も多くいるでしょう。しかし、「あいさつ」という形式として似ているものはどれかになれば、「こんばんは」が望む結果になります。
もし、読者がそれぞれの専門用語の違いについて詳しく分からなくても、「位置(距離)の違い」と「方向の違い」に置き換えて頭の中でイメージできれば判断しやすくなるでしょう。
三角関数が持つ円運動における「位置」と「方向」のイメージは、データ分析においても非常に強力なツールになります。データはしばしば仮想的な空間上に表現され、例えば、今回のケースでは単語や文章の特徴も、数値化され、N次元空間に配置されます。
「N次元空間」と聞くと難しく感じるかもしれませんが、ご安心ください。重要なのはデータ間の類似度が「角度」として捉えることができたという点です。このように、もしデータ間の関係において三角関数の考え方が現れた場合、それらのデータの関係性も、私たちが普段からイメージしやすい「位置」と「方向」の関係の置き換えて捉えられるようになるはずです。
この記事は参考になりましたか?
- データサイエンス基礎を高校数学から復習連載記事一覧
- この記事の著者
-
WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
