アルゴリズムという用語のカオス
「アルゴリズムとは何か?」 (私のように)昔プログラミングを経験した人間にはごく基本的な(そして初歩的な)質問に思える。しかし、最近AI(機械学習など)に関する記事のなかで「アルゴリズム」という言葉をみると妙な違和感を感じる。 記事の文脈からアルゴリズムが意味する概念を読み取ろうとすると、私が思っているものとは違うようなのだ。私がAIに関しては素人同然だからなのか? 具体例に入る前に、従来のプログラミング(主に手続き型言語とよばれるもの)で使われるアルゴリズムを検索すると、以下の説明がある。(あくまで一例である) 「数学や情報科学、あるいは関連する分野において、有限回の手続きによって問題を解決するための一定の手順。・・・・アルゴリズムはコンピュータが情報処理を行なう場合の基盤となる。コンピュータにアルゴリズムを指示するための操作の並びを記述したものがプログラムにほかならない」 この定義はしっくりとくる。 アルゴリズムであるプログラムを可視化したものの代表例がフローチャートである。手続き型言語のフローチャートはシンプルである。シーケンシャルな手順と、繰り返し、条件分岐を組み合わせたものだ。 (最近話題になる)小学校のプログラミング教育も、このシンプルなフローチャートを前提にしていると思われる。実際のところ、文部科学省が発行している「小学校プログラミング教育の手引」をみると、 「コンピュータは人が命令を与えることによって動作します。端的に言えば、この命令が「プログラム」であり、命令を与えることが「プログラミング」です」と記されている。さて、アルゴリズムという言葉(概念)に違和感を感じた具体例を以下に示す。これは新聞の記事(専門誌ではなく一般紙である)にあったものである。 「アルゴリズムとは、コンピュータが膨大なデータをもとに問題を解いたり、目標を達成したりするための「計算手順」のことである。人工知能(AI)などで使われており、様々なデータを入力し、目的に合わせた予測や結果などを出力する。巨大IT企業では例えば、通販大手アマゾンがサイト上で消費者が関心を持ちそうなお勧め商品を表示する際や、フェイスブックが投稿の表示順を決める際などに使われている」 この定義ではAI(機械学習など)が前提になっているように読める。グーグルの検索エンジンや、通販サイトがお勧め商品を表示するレコメンドエンジンにAIが使われているか否か、私は知らないが、問題は 「コンピュータの出力結果(上記の文章では目的に合わせた予測や結果)が事前に予測可能か否か」 という点にあると思う。 手続き型言語の場合、コンピュータの出力結果は、入力データで一意に決まる。だから、プログラムをコンピュータ上で実行しなくとも、その結果を入力データから予測することが可能となる。 プログラムやその集まりであるソフトウェアのテストは、コンピュータの出力結果が事前の予測と相違ないことを確認する作業である。 しかし、上記の定義に含まれる機械学習を考えると、(いくつかの書籍などを読むと)結果を事前に予測するのは難しいようなことが書かれている場合がある。 このようなことから、AI(機械学習など)を「ブラックボックス化している」と称しているのであろうし、「出力結果に偏向(差別)がある場合がある」とか、「AIの説明責任」という類の話が出てくるのだろう。 つまり、機械学習全体を考えると、「コンピュータの出力結果が事前に予測可能か否か」という点に関しては、「必ずしも予測可能ではない」となってしまう。 これはどこが間違っているのだろうか? 多分、アルゴリズムと呼ばれるものの範囲が違うのだろう。 先に紹介した新聞記事には、検索エンジンやレコメンドエンジンの話(グーグルの検索結果や、SNSの投稿の表示順など)と、AIの話が渾然一体となって書かれている(ように読める)。 アルゴリズムという用語をAI(主に機械学習)で使う場合に上記のような混乱を招くのは、(いくつかのWebサイトの解説を読むと)「アルゴリズムとモデルを区別していないから」なのかもしれない。 それでは、AIにおけるアルゴリズム(モデルを作成するもの)とは何かというと、(これも幾つかのサイトを参照すると)ランダムフォレストとかロジスティック回帰、・・・などの用語が出ている。 最近はAIの研究、開発が加速しているようで、例えば日経コンピューター(2022年9月29日号)にその概要といくつかの事例が掲載されている。本書には、モデル化について分かりやすい解説が出ている。 日経コンピューターの記事を読んで驚くのは、機械学習モデルのパラメータ(変数)の数である。記事には、 |
|
ディスカッション
コメント一覧
まだ、コメントがありません