見出し画像

AIについて各々が好き勝手言っているので自分で調べてみた

2023年12月17日14時3分 改訂


はじめに

最近Sunoという楽曲生成AIが出てきて、自分が属しているボカロP界隈でも、そのメロディのクオリティの高さ、特にフレーズのキャッチーさに多くの人が驚いている状況です。そういった状況で、生成AIについてあまり知識がなさそうな人たち(自分を含む)が生成AIについて、あれこれ好き勝手に言及している印象を持ったので、可能な限り自分で調べてみることにしました。(※素人が調べただけなので、間違っている可能性大です。)

生成AIの定義

生成AIの生成とは、新たなコンテンツを生産または発生させられるという意味を持つらしいです。なので生成AIとは、学習したコンテンツを元に、新たなコンテンツを作るAIと言えるでしょう。また前提として、生成AIにはディープラーニングという学習手法が用いられています。ディープラーニングとは機械学習の一種で、その中でも三層以上のニューラルネットワークを用いた学習手法をディープラーニングと呼ぶそうです。ディープラーニングを用いたAIは結構前からあったのですが、初期のそれらのAIは、主に識別や分類(例えば与えられた画像が犬か猫かを識別するなど)を目的に使われていました。生成AIという呼び名は、それら従来の識別AIとの対比という意味でも使われているようです。

AIの分類

機械学習とは、大量のデータを学習データとしてインプットして、AIをトレーニングすることらしいです。機械学習の手法はAIモデルと呼ばれ、様々な種類のものがあります。代表的なものを挙げると、

【教師あり学習】
あらかじめ正解がラベリングされたデータを学習データとして、AIをトレーニングすること。代表的なものを挙げると、

回帰モデル:学習データにない未知の値の結果を予測する関数を得ることを目的とした学習。
分類モデル:データを分類する際の適切な境界となる関数を得ることを目的とした学習。

【教師なし学習】
正解となるラベルがないデータを学習データとして、AIをトレーニングすること。代表的なものを挙げると、

クラスタリング:分類対象のデータを適切な部分集合に分けることを目的とした学習。
主成分分析:多くの変数を持つデータを要約し(=次元を減らし)、新たな変数を求めることを目的とした学習。

【強化学習】
AIに様々な方法を取らせ、どの方法をとると最大の報酬が得られるかを学習させる手法。報酬を評価する関数を報酬関数と言い、この関数の値が最大となるようAIをトレーニングします。

他にも色々あるらしいです。ディープラーニングは教師あり学習、教師なし学習、強化学習のどの手法にも使える学習手法らしいです。

ディープラーニングについて詳しく

ディープラーニングとは、機械学習における三層以上のニューラルネットワークを用いた学習手法を指します。従って、ディープラーニングについて理解するには、ニューラルネットワークについて学ぶ必要があります。しかし、これらのトピックについて書き始めると、記事が凄まじく長大になってしまうので、詳しく知りたい方は以下のソースで学習することをおすすめします。

【このソースに書かれていることの要約】
ニューラルネットワークはニューロンの数理モデルである人工ニューロンのネットワークでできており、ものすごく単純化すると、ニューロンが発火する閾値(≒バイアス)と、ニューロンの出力に掛けられる重み付けで出来ています。(※実用化されているニューラルネットワークのニューロンの出力は発火する、発火しないの二値ではなく連続値を取ります。)ニューラルネットワークにおける学習とは、入力に対して目的の出力を得られるバイアス値と重みの値を決定することを指します。また、任意の連続関数を任意の精度で近似できる三層以上のニューラルネットワークが必ず存在します。(ニューラルネットワークの普遍性定理。)しかし当然のことですが、ニューラルネットワークが普遍性を持つことと、目的の出力を得られるニューラルネットワークを構築するための方法が簡単に見つかるかどうかは関係ありません。

学習済みのニューラルネットワークはどのように振る舞うのか

(注意:この項目は特に、私が勘違いしている可能性大です。)
学習済みのニューラルネットワーク(特に画像生成AI)がどのように振る舞うのかについて、人間的な概念での説明を試みます。なお、ここでの説明はたぶん楽曲生成AIにも適用できると思っています。
画像生成AIは、お題(プロンプト、例えばリンゴ)に該当するような(ここで言う該当とは、あくまでAIから見て該当しているだけで、不適切な学習をした生成AIは、人間から見て必ずしもリンゴに見える画像を出力してくれるわけではない)、学習した画像の特徴を持った新しい画像を生成します。なので、学習した画像と生成される画像は似た特徴を持っているわけです。
ここから先は、比喩を用いて、ものすごく単純化した説明をします。画像について学習済みのニューラルネットワークは、各層ごとに画像の特徴(もし人間に理解可能なものであれば、例えば色やテクスチャや輪郭など)を記憶しています。(※これらの特徴は、人間の持つ視覚概念とは必ずしも一致しないことに注意してください。)ここで例えば、リンゴというプロンプトを与えられたニューラルネットワークには、まず、プロンプトから翻訳された、人間には理解不能なノイズのような何らかの画像(※ここで言う画像とは各ニューロンが受け取る単なる数値、その集まりであることに注意してください。)が渡されます。そしてそれが以降の層に送られ、各層が記憶している特徴についてプロンプトに該当する出力が行われます。(例えば、色の層ではリンゴの色、テクスチャの層ではリンゴのテクスチャ、輪郭の層ではリンゴの輪郭が出力されるイメージです。)(補足:プロンプトに該当する出力が行われるというのは、AIがプロンプトの内容から目的意識を持って該当の出力をするという意味ではなく、初期値のノイズ画像でそのような出力になることが決まっているだけです。)このようにして、最終的にリンゴの画像が出力される仕組みだと、(あくまで)私は理解しています。(色々調べて一生懸命理解したつもりですが、根本的に間違っているようでしたらコメントなどで指摘してください。)

考えられる生成AIの性質

ここまでの説明で、画像生成AIが、リンゴという概念について人間のように理解しているわけではないことが、はっきり分かると思います。例えば当然ですが、リンゴは甘くて、木に実り、切ると断面が白い、などといったことを画像生成AIは理解していません。あくまでニューラルネットワークの中の各々の層が、単なる模様から、リンゴという特徴を持った模様を出力しているに過ぎません。(例えばリンゴの背景は木だったり果物カゴだったりで一定しないので、それらを画像生成AIはリンゴの特徴だと見なさないわけです。)よく言われることですが、画像生成AIが手を苦手とするのは、画像生成AIが指の本数や関節の可動域といった概念を持たない(=それらを特徴として見なせない)ためだと考えられます。
また、適切に訓練された生成AIが、学習したデータにはない特徴を持ったコンテンツを出力することは難しいことも分かると思います。例えば、ロックしか学習していない生成AIにクラシックを出力させることはおそらく不可能でしょうし、果物カゴに入ったリンゴばかり学習した生成AIは、おそらく果物カゴもリンゴの特徴とみなし、果物カゴに入ったリンゴの画像ばかり出力するでしょう。これが、巷で生成AIの創造は人間にはまだ及ばないと言われる原因なのではないでしょうか。(しかし、ロックしか聴かずに育ってクラシックの要素を持つ曲を作り始められる創造性を持った人間が、果たしてどのぐらいいるでしょうか?私はそんなにいないと思います。)逆に、明確な特徴を持った学習データを使えば、その特徴を持った出力が高確率で得られるので、例えばキャッチーなメロディをたくさん学習した生成AIは、キャッチーなメロディを出力できる確率が高いのではないでしょうか。(Sunoはその典型だと思います。)このように、人間にとって好ましい特徴をうまく学習できた生成AIは、今後人間の職などを奪っていくことが予想されます。

Sunoのような楽曲生成AIとバトルするにはどうしたらいいか

上記した通り、生成AIには、学習したデータにはない特徴を持ったコンテンツを出力することは難しいと考えられます。なので、学習データにはないような、異常で新しいスタイル(≒ジャンル)を切り拓いて曲を書いていくのが良いと思いました。(もちろん、その異常は人間にとって好ましい特徴を持っていないとあまり意味がないかもしれませんが……。)これからは異常がトレンドになる時代かもしれないですね。

参考資料

http://mdsc.kyushu-u.ac.jp/wp/wp-content/uploads/2023/07/f2ff747d5721a10c9dbd17d133856487.pdf

この記事が気に入ったらサポートをしてみませんか?