ユーザ用ツール

サイト用ツール


outofscope:2025-02-03

生成AIってのは

DeepRacerに励んで約5年、アナログどっぷり人間にしては、予想のほか強化学習について考える時間が蓄積された。最初はなんのことかさっぱりわからないままAWSコンソールの最低限の操作方法だけを教わって最小限の操作で遊んでいたが、だんだん興味の範囲が広がってゆくにつれ思いついたアイデアや興味に引きつられるようにその界隈の書籍などもAmazonでポチっては斜め読むを繰り返し、徐々にAIってなんでAIなんだってあたりのおぼろげなシルエットがほわわんと意識の中に形作られてきた。
そんな中、ここ数年でAIが機械らしからぬ生々しいリザルトを返すと世間がざわついた生成AIが登場する。ネット界隈ではしばらく前から話題ではあったものの、世間全体がこれに気づいたのはほんとここ1~2年のことのように思う。
AIには大きく「強いAI」と「弱いAI」とがあると大きな定義がされている。もしかしたら軍事的だったり国家的だったりで秘密裏になにかあるかもみたいな水スペみたいな話は置いておけば、現代に強いAIはなく、すべてがまだ弱いAIでしかない。強いAIとは、たとえばドラえもんだったり鉄腕アトムだったりロボコップだったりターミーネーターだったりの、自立的に判断できるロボットがこれに属する。映画「ショートサーキット」(1986)で軍事用に量産されたロボットに偶然落雷し、この衝撃をきっかけに自意識を持つようになる。この落雷をきっかけに、主人公のロボット「No.5」は、弱いAIから強いAIに変態したのだろう。
現代における弱いAIである生成AIは、既存の情報をとにかく大量に飲み込み、「山」といえば「川」みたいな呪文を片っ端から丸暗記する。これを人間にははるか及ばない猛スピードで学習する。これによって、山→川だけでなく、山っぽいなら川らしい、というファジーなリザルトを返せるようになる。この仕組みを網目状に広げて、巷にあふれるあらゆる情報に反応できるように鍛えられている。

生成AIの元になった技術は深層学習AI(ディープラーニング)である。さらにこの深層学習の元になったものは強化学習(マシンラーニング)と呼ばれる技術である。
強化学習は大量のデータを元に「入力が◯◯であれば、出力は△△である」というような、入力と正解とのペアを与えられ、それがなぜそうなるのかの糸口を、無数の学習の中から最初は偶然に見つけ、その偶然を繰り返しながらだんだん必然を導いてゆく。たとえば、色の札を上げたらその色を英語で答えるような訓練があったとする。最初に赤い札を挙げられたのを見て「Green」と適当に答えるが不正解と評価される。次に青札を挙げられ「Red」と答え不正解、緑札を挙げられ「Yellow」と答えて不正解。。。。こんなふうに最初は不正解ばかりが並ぶだろう。しかしそのうち偶然に青札に「Blue」と答える時が来るだろう。そのとき正解の評価がもらえる。そうなるとそのときモデル(AI)はBlueと答えた根拠を覚えておく。次に緑札を見て「Blue」と答えると不正解となる。これも先程の青札のときの判断とくらべ、何が違うかを考え、その判断は違うんだと覚える。次第に青札にはBlueを、緑札にはGreenを、赤札にはRedを回答できる確率が上がってゆく。モデルは毎回の自分の判断を振り返り、正解と不正解の差をくらべて、間違った判断を補正してゆく。これを無限に繰り返すうちにやがて正解率が完璧へと近づいてゆく。こうやってものを判断できる強化学習の仕組みはしばらく前に考案されていたものの、この反復訓練の量は途方もない量であり、技術的に実現できなかった。しかし昨今の電算処理技術の高速化によって実現できるようになってきたとのこと。

この強化学習ではモデルに正解を与えて学習するが、正解がはっきり定義できないものもある。
たとえば自動運転。道路や障害物の状況に合わせて、ハンドルを何度切るか/アクセルやブレーキをどの程度踏み込むか。。。たとえば道路が左に曲がっていてもそれがゆるいカーブなら左に寄って回るが、急カーブだったらカーブ手前では道路右に寄ってから回り込むのが良いかもしれない。また、前方に障害物があればその動きを予測して自分と衝突しない軌道を予測して操作を選ぶことになる。こういった複雑な状況と複雑な判断の結果、シンプルな出力を求めるようなケースにおいては、判断パターンが無数にあり、学習用データを用意することは現実的ではない。こういうケースはモデルの選択に「点数をつける」形で学習の拠り所にする。モデルに入力されるデータとそこからモデルが導く選択について、点数をつける。左カーブでそれがタイトなら、まず右に寄ることを高評価とするが、それほどタイトでないなら左寄りのほうが高評価になるようなロジックをつくり、このロジックをつかった点数付けをもとにモデルに学習をさせる。それによってモデルは求められる判断を体得してゆく。こういう学習アプローチを深層学習と呼ぶ。

この深層学習で作られるモデルの内部は基本的に2つのプロセスに別けられる。前半の処理として、カメラなどから入ってくる画像データから特徴点を抽出する処理。画像の中に写っているオブジェクトを認識するプロセス。後半の処理でこの特徴点がこの状態で在るならば、どういう分類が適切なのかの分類を行い、最終的な出力を確定させる。
前半の処理をもうすこし具体的に説明する。カメラには人が写っているとする。その画像を入力としたときに、AIモデルはその処理の内部で人らしきオブジェクトを認識する。つまり、「人の画像→人という認識」の処理ができている状態。この、前半処理の部分を切り取り、この処理の出口と入口をひっくり返すことによって、「人という認識→人の画像」という処理が(理論上)できることになる。
モデルが「これは人だ」と認識できる人の画像は様々で、大人でも子どもでも白人でも黒人でも男性でも女性でも、あらゆる人間の像をみて「これは人だ」と認識できる。これをひっくり返して「人である」というのは「こういう画像でしょ」を導くとあらゆる人間の平均的な見た目の画像が生成されてくる。だれもが見覚えのある「たしかにこれは人間だ」という画像を出力してくる。そこに属性情報をつければなおのことリアルになる。「20代のスーツを着てメガネをかけた髪の長い男性」のように細かく指定すれば、それらの特徴(点)を有する画像を返す。これが生成AIの仕組みである。

outofscope/2025-02-03.txt · 最終更新: by atnmn